/**
/* validate_contact_us_frm.js
/*
/* @Descrip:
/*   File contains client-side form validators for contact us form.
/*
/* @Author : Justin R. Schwimmer                  
/**/

function ValidateContactUsForm() {
   var ErrMsg = "";
   var ErrCnt = 0;
  
  // First Name check: No blanks, only contain letters
  if (IsEmpty(document.contact_us.firstname.value)) {
    ErrMsg += "  => First name field is required.\n";
    ErrCnt += 1;
  } else if (LettersOnly(document.contact_us.firstname.value)) {
    ErrMsg += "  => First name can only contain letters.\n";
    ErrCnt += 1;
  }   
  
  // Last Name check: No blanks, only contain letters, hypens, or whitespace
  if (IsEmpty(document.contact_us.lastname.value)) {
    ErrMsg += "  => Last name field is required.\n";
    ErrCnt += 1;
  } else if (ContainsChars(document.contact_us.lastname.value)) {
    ErrMsg += "  => Last name can only contain letters, hypens, or whitespace.\n";
    ErrCnt += 1;
  }   
   
  // Address check: only numbers, letters, hypens, or whitespace
  if (IsStreetAddress(document.contact_us.address.value)) {
    ErrMsg += "  => Address can only contain numbers, letters, hypens, or whitespace.\n";
    ErrCnt += 1;
  }   
   
  // City check: only letters, whitespace and symbols: - '
  if (ContainsChars(document.contact_us.city.value)) {
    ErrMsg += "  => City can only contain letters, whitespace and symbols: - '\n";
    ErrCnt += 1;
  }   
    
  // State check: only letters and whitespace
  if (LettersOnly(document.contact_us.state.value)) {
    ErrMsg += "  => State can only contain letters and whitespace.\n";
    ErrCnt += 1;
  }   
    
  // Zip check: only numbers, hyphens, and whitespace
  if (IsZip(document.contact_us.zip.value)) {
    ErrMsg += "  => Zip can only contain numbers, hyphens, and whitespace.\n";
    ErrCnt += 1;
  }   
   
  // Phone check: only numbers, parenthesis, hyphens, and whitespace
  if (IsPhone(document.contact_us.phone.value)) {
    ErrMsg += "  => Phone can only contain numbers, parenthesis, hyphens, and whitespace.\n";
    ErrCnt += 1;
  }   
  
  // Email check: No blanks. Must take the form of <account name>@<domain name>.<extension>
  if (IsEmpty(document.contact_us.email.value)) {
    ErrMsg += "  => Email address field is required.\n";
    ErrCnt += 1;
  } else if (IsEmail(document.contact_us.email.value)) {
    ErrMsg += "  => Email address must take the form of <account name>@<domain name>.<extension>.\n";
    ErrCnt += 1;
  }   
  
  // Questions/Comments check: No blanks. only contain letters, numbers, whitespace and symbols: ! - _ ? ' $ . : / \ ,
  if (IsEmpty(document.contact_us.questions.value)) {
    ErrMsg += "  => Questions/Comments field is required.\n";
    ErrCnt += 1;
  } else if (ContainsNumAndSpecialChars(document.contact_us.questions.value)) {
    ErrMsg += "  => Questions/Comments can only contain letters, numbers, whitespace and symbols: ! - _ ? ' $ . : / \ ,\n";
    ErrCnt += 1;
  }   
   
   if (ErrCnt != 0) {
    ErrMsg = ErrCnt + ((ErrCnt == 1)? " Error has" : " Errors have") + " occurred, please see below for details. \n\n" + ErrMsg;
    alert(ErrMsg);
    return false;  
  }
}