function fValidateEmail(str) 
{
 var at="@";
 var dot=".";
 var lat=str.indexOf(at);
 var lstr=str.length;
 var ldot=str.indexOf(dot);
 var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
 var suffix=str.substring(str.lastIndexOf('.')+1);

 for (i=0; i<invalidChars.length; i++) 
 {
  if (str.indexOf(invalidChars.charAt(i),0) > -1) 
  {
   return(false);
  }
 }

 for (i=0; i<str.length; i++) 
 {
  if (str.charCodeAt(i)>127) 
  {
   return false;
  }
 }

 if (str.indexOf(at)==-1)
 {
  return(false);
 }

 if (str.indexOf(at)==0)
 {
  return(false);
 }

 if (str.indexOf(at)==lstr)
 {
  return(false);
 }

 if (str.indexOf(at,lat+1)>-1)
 {
  return(false);
 }

 if (str.indexOf('..')>-1)
 {
  return(false);
 }

 if (str.indexOf(dot)==-1)
 {
  return(false);
 }

 if (str.indexOf(dot)==0)
 {
  return(false);
 }

 if (str.indexOf(dot)==lstr)
 {
  return(false);
 }

 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
 {
  return(false);
 }

 if (str.indexOf(dot,(lat+2))==-1)
 {
  return(false);
 }

 if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') 
 {
  return(false);
 }

 if (suffix.length == 2 && suffix != 'ws') 
 {
  return(false);
 }

 return(true);
}

function fValidateInt(xstr) 
{  
 var validChars = "1234567890";
	
 for (x=0; x<xstr.length; x++)
 {
  y = xstr.charAt(x);
  if (validChars.indexOf(y) == -1)
  {
   return(false);
  }
 }

 return(true);
}

function fValidateLength(xstr) 
{  
 for (x=0; x<xstr.length; x++)
 {
  y = xstr.charAt(x);
 }

 return(x);
}

function validate_form(frm)
{

 if (frm.name.value=="")
 {
  alert('Please enter name.');
  frm.name.focus();
  return(false);
 }

 if (frm.address1.value=="")
 {
  alert('Please enter address.');
  frm.address1.focus();
  return(false);
 }

 if (frm.city_state.value=="")
 {
  alert('Please enter city and state.');
  frm.city_state.focus();
  return(false);
 }

 if (frm.zip.value=="")
 {
  alert('Please enter zip code.');
  frm.zip.focus();
  return(false);
 }

 if (!fValidateInt(frm.zip.value))
 {
  alert('Zip code requires numeric values only.  Please enter a valid zip code.');
  frm.zip.value="";
  frm.zip.focus();
  return(false);
 }

 if ((fValidateLength(frm.zip.value))<5) 
 {
  alert('Zip code requires 5 digits.');
  frm.zip.focus();
  return(false);
 }

 if (frm.areacode.value=="")
 {
  alert('Please enter the area code.');
  frm.areacode.focus();
  return(false);
 }

 if (frm.phone1.value=="") 
 {
  alert('Please enter complete telephone number.');
  frm.phone1.focus();
  return(false);
 }

 if (frm.phone2.value=="") 
 {
  alert('Please enter complete telephone number.');
  frm.phone2.focus();
  return(false);
 }

 if (!fValidateInt(frm.areacode.value))
 {
  alert('Area code requires numeric values only.  Please enter a valid area code.');
  frm.areacode.value="";
  frm.areacode.focus();
  return(false);
 }

 if ((fValidateLength(frm.areacode.value))<3) 
 {
  alert('Area code field requires 3 numbers.');
  frm.areacode.focus();
  return(false);
 }

 if (!fValidateInt(frm.phone1.value))
 {
  alert('Telephone number requires numeric values only.  Please enter a valid telephone number.');
  frm.phone1.value="";
  frm.phone1.focus();
  return(false);
 } 

 if ((fValidateLength(frm.phone1.value))<3) 
 {
  alert('Telephone number field requires 3 numbers.');
  frm.phone1.focus();
  return(false);
 }

 if (!fValidateInt(frm.phone2.value))
 {
  alert('Telephone number requires numeric values only.  Please enter a valid telephone number.');
  frm.phone2.value="";
  frm.phone2.focus();
  return(false);
 }

 if ((fValidateLength(frm.phone2.value))<4) 
 {
  alert('Telephone number field requires 4 digits.');
  frm.phone2.focus();
  return(false);
 }

 if (frm.email.value=="")
 {
  alert('Please enter an email address.');
  frm.email.focus();
  return(false);
 }

 if (fValidateEmail(frm.email.value)==false)
 {
  alert('Invalid email address. Please enter a valid email addresss.');     
  frm.email.value="";
  frm.email.focus();   
  return(false);    
 }

 if (frm.securitycode.value=="")
 {     
  frm.securitycode.focus();   
  alert('Please enter the security code.');
  return(false);    
 }

 return(true);    
}

function fSetFocus() 
{
 if (document.getElementById) 
 {
  document.getElementById('name').focus();
 }
 else
 { 
  if (document.all) 
  {
   document.forms(0).item(0).focus();
  }
 }
}
