// CREATION DATE: APRIL 11, 2007 | C.W. MILLER IV
// MODIFIED DATE: AUGUST 13, 2007 | C.W. MILLER IV

// FUNCTION TO CHECK FOR VALID EMAIL
var emailCheck = function(emailStr)
{
  
  var emailPat=/^(\".*\"|[\w_\-\.]+)@(\[\d{1,3}(\.\d{1,3}){3}]|[\w_\-\.]+(\.[\w_\-\.]+)+)$/;
  var matchArray = emailStr.match(emailPat);
  
  if (matchArray == null)
  {
    alert("Your email address seems incorrect.  Please try again (check the '\@' and '.'s in the email address)");
    return false;
  };

  var IPArray = matchArray[2].match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
  
  if (IPArray != null) 
  {
    for (var i=1;i<=4;i++)
    {
      if (IPArray[i]>255)
      {
        alert("Destination IP address is invalid!");
        return false;
      };
    };
  };
  
  return true;
  
};

var CheckFields = function()
{
  
  // FIELD VARIABLES
  var rating = document.forms["The_Form"]["lRating"];
  var firstName = document.forms["The_Form"]["lFirstName"];
  var lastName = document.forms["The_Form"]["lLastName"];
  var companyName = document.forms["The_Form"]["lCompany"];
  var companySize = document.forms["The_Form"]["lNoOfEmployees"];
  var streetAddress = document.forms["The_Form"]["lStreet1"];
  var city = document.forms["The_Form"]["lCity"];
	var state = document.forms["The_Form"]["lState"];
  var country = document.forms["The_Form"]["lCountry"];
  var zipCode = document.forms["The_Form"]["lZip"];
  var phoneNumber = document.forms["The_Form"]["lPhone"];
  var emailAddress = document.forms["The_Form"]["lEmail"];
  var purchaseTime = document.forms["The_Form"]["lPurchaseTime"];
  var contactMe = document.forms["The_Form"]["lContactMe"];
	
  // RATING SCHEMA
  if (contactMe)
  {
    if (contactMe.value=="Yes")
    {
      rating.value="A";
    };
  };

  if (purchaseTime)
  {
    if ((purchaseTime.value=="0-3 months") || (purchaseTime.value=="3-6 months"))
    {
      rating.value="A";
    };
  };
  
  if (purchaseTime)
  {
    if ((purchaseTime.value=="6-12 months") || (purchaseTime.value=="+ 1 year") || (purchaseTime.value=="No Project Currently"))
    {
      rating.value="B";
    };
  };

  if (contactMe)
  {
    if (contactMe.value=="No")
    {
      rating.value="C";
    };
  };
  
  // FIELD VALIDATION
  if (firstName)
  {
    if (firstName.value=="")
    {
      alert ("Please enter your first name.");
      firstName.focus();
      return false;
    };
  };
  
  if (lastName)
  {
    if (lastName.value=="")
    {
      alert ("Please enter your last name.");
      lastName.focus();
      return false;
    };
  };
  
  if (companyName)
  {
    if (companyName.value=="")
    {
      alert ("Please enter your company name.");
      companyName.focus();
      return false;
    };
  };

  if (companySize)
  {
    if (companyName.value=="")
    {
      alert ("Please enter your company size.");
      companyName.focus();
      return false;
    };
  };
  
  if (streetAddress)
  {
    if (streetAddress.value=="")
    {
      alert ("Please enter your address.");
      streetAddress.focus();
      return false;
    };
  };
  
  if (city)
  {
    if (city.value=="")
    {
      alert ("Please enter your city.");
      city.focus();
      return false;
    };
  };
  
  if (country)
  {
    if (country.value=="")
    {
      alert ("Please enter your country.");
      country.focus();
      return false;
    };
  };
	
	// IF US IS SELECTED A STATE MUST BE SELECTED
  if ((country) && (state))
  {
    if ((country.value=="US") && (state.value=="") )
    {
      alert ("Please enter your state.");
      state.focus();
      return false;
    };
  };

  if (zipCode)
  {
    if (zipCode.value=="")
    {
      alert ("Please enter your zip code.");
      zipCode.focus();
      return false;
    };
  };
  
  if (phoneNumber)
  {
    var strippedNumber = phoneNumber.value.replace(/[\(\)\.\-\ ]/g, '');
    if (strippedNumber=="")
    {
      alert ("Please enter your phone number.");
      phoneNumber.focus();
      return false;
    }
    else if ((isNaN(parseInt(strippedNumber))) || (strippedNumber.length < 10))
    {
      alert ("Please enter a valid phone code.");
      phoneNumber.focus();
      return false;
    };
  };
  
  if (emailAddress)
  {
    if (emailAddress.value=="")
    {
      alert ("Please enter your email address.");
      emailAddress.focus();
      return false;
    }
    else if (emailCheck(emailAddress.value) == 0)
    {
      emailAddress.focus();
      return false;
    };
  };
  
  if (purchaseTime)
  {
    if (purchaseTime.value=="")
    {
      alert ("Please enter your purchase time frame.");
      purchaseTime.focus();
      return false;
    };
  };
  
  if (contactMe)
  {
    if (contactMe.value=="")
    {
      alert ("Would you like to be contacted?");
      contactMe.focus();
      return false;
    };
  };
  
  return true;
  
};
