
function validateContact() {

   var pattern = /\s*\w+@[^\.]+\.[^\.]+(\.[^\.])*\s*/;
   var letters = /[a-zA-Z]/;
   var numbers = /[0-9]/;
   legalChars = "~0123456789.-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_@+";
   alphaNums = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
   errorMsg = "";

    
    with (document.ContactForm) {

    if (FormType.value == "Contact")
    {
	if (VisitorName.value.length < 2)  errorMsg += "\nPlease provide your name";
	if (Phone.value.length < 10)  errorMsg += "\nPhone Number is required";
	/******* EMAIL CHECK *********/
	  if (FromEmail.value.length < 7)
	    errorMsg += "\nE-Mail address must be at least 7 characters";
	  //Validate Email against pattern match
	  if (FromEmail.value != "") {
	      if(!pattern.test(FromEmail.value)) {
	      errorMsg += "\nInvalid E-Mail Address."
	      }
	  }
	  //This enhances the previous EMail check. This checks for legal values and returns illegal values
	  if (FromEmail.value != "" && FromEmail.value.length > 1) {
	      for(x=0; x < FromEmail.value.length; x++) {
	    if (legalChars.indexOf(FromEmail.value.substring(x,x+1)) < 0)
		errorMsg += "\n" + "Illegal character '"+FromEmail.value.substring(x,x+1)+"' at position " +(x+1)+ " in E-Mail Address.";
	      }
	  }
    }
	/****************************/

    if (FormType.value == "PreEstimates")
    {
	if (VisitorName.value.length < 2)  errorMsg += "\nPlease provide your name";
	if (City.value.length < 2)  errorMsg += "\nCity is required";
	if (Phone.value.length < 10)  errorMsg += "\nPhone Number is required";
    }


    if (FormType.value == "Estimates")
    {
	if (VisitorName.value.length < 2)  errorMsg += "\nPlease provide your name";
	if (BestTime.value.length < 2)  errorMsg += "\nBest Time To Call is required";
	if (NumberWindows.value.length < 1)  errorMsg += "\nNumber of Windows is required";
	if (YearBuilt.value.length < 2)  errorMsg += "\nYear House Was Built is required";
	if (HowHeard.selectedIndex < 1)  errorMsg += "\nHow You Heard of Window Nation is required";
	if (Address.value.length < 2)  errorMsg += "\nPlease provide your Address";
	if (City.value.length < 2)  errorMsg += "\nCity is required";
	if (StateCode.value.length < 2)  errorMsg += "\nPlease provide your State";
	if (ZipCode.value.length < 5)  errorMsg += "\nZip Code is required";
	if (Phone.value.length < 10)  errorMsg += "\nPhone Number is required";
    }
    if (FormType.value == "Employment")
    {
	if (FirstName.value.length < 2)  errorMsg += "\nPlease provide your First Name";
	if (LastName.value.length < 2)  errorMsg += "\nPlease provide your Last Name";

	/******* EMAIL CHECK *********/
	  if (FromEmail.value.length < 7)
	    errorMsg += "\nE-Mail address must be at least 7 characters";
	  //Validate Email against pattern match
	  if (FromEmail.value != "") {
	      if(!pattern.test(FromEmail.value)) {
	      errorMsg += "\nInvalid E-Mail Address."
	      }
	  }
	  //This enhances the previous EMail check. This checks for legal values and returns illegal values
	  if (FromEmail.value != "" && FromEmail.value.length > 1) {
	      for(x=0; x < FromEmail.value.length; x++) {
	    if (legalChars.indexOf(FromEmail.value.substring(x,x+1)) < 0)
		errorMsg += "\n" + "Illegal character '"+FromEmail.value.substring(x,x+1)+"' at position " +(x+1)+ " in E-Mail Address.";
	      }
	  }
	/****************************/

	if (Address.value.length < 2)  errorMsg += "\nPlease provide your Address";
	if (City.value.length < 2)  errorMsg += "\nCity is required";
	if (StateCode.value.length < 2)  errorMsg += "\nPlease provide your State";
	if (ZipCode.value.length < 5)  errorMsg += "\nZip Code is required";
	if (Phone.value.length < 10)  errorMsg += "\nPhone Number is required";
    }



  //FINAL CHECK FOR ERROR MESSAGES
  if (errorMsg.length > 0) {
    errorMsg = "The following errors must be corrected before submitting this form: \n" + errorMsg
    alert (errorMsg);
    return false;
  }

   }  //end WITH

return true;
}
