<!--//
// 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

   //Validation Rules
   function notEmpty(str)
   {
      if(strip(" \n\r\t",str).length ==0)
         return false;
      else
         return true;
   }
   
   function validateInteger(str)
   {
      str = strip(' \n\r\t',str);
      //remove leading zeros, if any
      while(str.length > 1 && str.substring(0,1) == '0'){
         str = str.substring(1,str.length);
      }
      var val = parseInt(str);
      if(isNaN(val))
         return false;
      else
         return true;
   }
   
   function validateYear(year)
   {
   		if (year.length!=4)
   		return false;
	else
		return true;
   }
   
   function validateFloat(str)
   {
      str = strip(' \n\r\t',str);
      //remove leading zeros, if any
      while(str.length > 1 && str.substring(0,1) == '0'){
         str = str.substring(1,str.length);
      }
      var val = parseFloat(str);
      if(isNaN(val))
         return false;
      else
         return true;
   }

   function validateUSPhone(str)
   {
      str = strip("*() -./_\n\r\t\\",str);
      if(str.length == 10 || str.length == 7)
         return true;
      else
         return false;
   }
   
   function validateZip(str)
   {
      str = strip("- \n\r\t",str);
      if(validateInteger(str) && (str.length==9 || 
         str.length==5))
      return true;
      else
         return false;
   }
   
   function validateDate(str)
   {
      var dateVar = new Date(str);
      if(isNaN(dateVar.valueOf()) || 
         (dateVar.valueOf() ==0))
         return false;
      else
         return true;
   }
   
   function validateEMail(str)
   {
      str = strip(" \n\r\t",str);
      if(str.indexOf("@") > -1 && str.indexOf(".") > -1)
         return true;
      else
         return false;
   }
   
   function validateRadio(radioArray)
   {
		for(i=0; i<radioArray.length; i++){
			if(radioArray[i].checked) return radioArray[i].value;
		}
		return false;
	}
   
   //End Validation Rules
   
     //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);
      }
   }
   function formatDate(str,style){
      var dateVar = new Date(str);
      var year = dateVar.getYear();
      if(year<10)
         year += 2000;
      if(year<100)
         year += 1900;
      switch(style){
         case "MM/DD/YY":
            return (dateVar.getMonth() + 1) + "/" + 
              dateVar.getDate() + "/" + year;
            break;
         case "DD/MM/YY":
            return dateVar.getDate() + "/" + 
              (dateVar.getMonth() + 1) + "/" + year;
            break;
         case "Month Day, Year":
            return getMonthName(dateVar) + " " + 
              dateVar.getDate() + ", " + year;
            break;
         case "Day, Month Day, Year":
            return getDayName(dateVar) + ", " + 
              getMonthName(dateVar) + " " + 
              dateVar.getDate() + ", " + year;
            break;
         default:
            return (dateVar.getMonth() + 1) + "/" + 
              dateVar.getDate() + "/" + year;
            break;
      }
   }
   //End Formatting Functions
   
   //Form Validator
   function validator(form){
     
	 //Validate applicant name
	  if(notEmpty(form.name.value)==false){
		 alert("Please enter your name.");
         form.name.focus();
         return false;
      }
	  
	  //Validate at least 1 line of address is entered
	  if(notEmpty(form.address1.value)==false){
		 alert("Enter your address.");
         form.address1.focus();
         return false;
      }
	  
	  //Skip address 2, not necessarily required
	   
	   //Validate applicant city
	  if(notEmpty(form.city.value)==false){
		 alert("Enter your city.");
         form.city.focus();
         return false;
      }
	  
	  //Validate applicant state
	   	if(form.state.value=="<Select state>"){
		 alert("Choose your state from the list.");
         form.state.focus();
         return false;
		 }
		 
		 //Validate applicant zip code
	   if(notEmpty(form.zip.value)==false){
		 alert("Enter your zip code.");
         form.zip.focus();
         return false;
      }
	  else{
	  form.zip.value = formatZip(form.zip.value);
       if(validateZip(form.zip.value)==false){
		 alert("Enter a valid zip code.");
         form.zip.focus();
         return false;
         }
	  }
	  
	  //Validate applicant phone number
	   if(notEmpty(form.telephone.value)==false){
		 alert("Enter your phone number.");
         form.telephone.focus();
         return false;
      }
	  else{
	  form.telephone.value = formatPhone(form.telephone.value);
	  if(validateUSPhone(form.telephone.value)==false){
		 alert("Enter a valid phone number.");
         form.telephone.focus();
         return false;
         }
		}
		
		//Validate contact email
	   if(notEmpty(form.email.value)==false){
		 alert("Please enter your email address (i.e. 'yourname@yourdomain.com').");
         form.email.focus();
         return false;
      }
	  else{
	  form.email.value = strip(" \n\r\t",form.email.value); 
		if(validateEMail(form.email.value)==false){
		 alert("Please enter a valid email address (i.e. 'yourname@yourdomain.com').");
         form.email.focus();
         return false;
         }
		}
		
		 //End form validator code	
	  
}
//-->