	 //Formatting functions
function formatPhone(str){
	str = strip("*() -./_\n\r\t\\",str);
	if(str.length==10)
		return reformat(str,"(",3,") ",3,"-",4);
	if(str.length==7)
		return reformat(str,"",3,"-",4);
}

function formatZip(str){
	str = strip("- \n\r\t",str);
	if(str.length==5)
		return str;
	if(str.length==9)
		return reformat(str,"",5,"-",4);
}
function formatCC(str,type){
	str = strip("-./_\n\r\t\\",str);
	switch(type){
		case "1": 
			return reformat(str,"",4,"-",4,"-",4,"-",4);
			break;
		case "2": 
			return reformat(str,"",4,"-",4,"-",4,"-",4);
			break;
		case "3": 
			return reformat(str,"",4,"-",4,"-",4,"-",4);
			break;
		case "4":
			return reformat(str,"",4,"-",6,"-",5);
	}
}

 	 // Support Functions
function strip(filter,str){
	var i,curChar;
	var retStr = '';
	var len = str.length;
	for(i=0; i<len; i++){
		curChar = str.charAt(i);
		if(filter.indexOf(curChar)<0) //not in filter, keep it
			retStr += curChar;
	}
	return retStr;
}

function reformat(str){
      var arg;
      var pos = 0;
      var retStr = '';
      var len = reformat.arguments.length;
      for(var i=1; i<len; i++){
         arg = reformat.arguments[i];
         if(i%2==1)
            retStr += arg;
         else{
            retStr += str.substring(pos, pos + arg);
            pos += arg;
         }
      }
      return retStr;
   }
	  //End Support Functions