// ERD Form Validation
//
// Version: 1.0
// Revision Date: 1/9/2003
// Revision Date: 9/15/2003 fjl added message limits...

function ClearFocus(thisArray,focusArray) {

  var n = 0;
  var m = thisArray.length;

  while (n < m)
  {
    focusArray[thisArray[n]] = 0;
    n = n + 1;
  }
  return (focusArray);
}


function validateForm(formName) {
  var NoProduct = 0;
  var NumProduct = 17;
  var ChkProduct = 0;
  var ProdArray = new Array(NumProduct);
  var NoSeminar = 0;
  var NumSeminar = 13;
  var ChkSeminar = 0;
  var SemArray = new Array(NumSeminar);
  var NoContact = 0;
  var NumContact = 2;
  var ChkContact = 0;
  var ContArray = new Array(NumContact);
  var NoCustomer = 0;
  var NumCustomer = 2;
  var ChkCustomer = 0;
  var CustArray = new Array(NumCustomer);
  var NoHealth = 0;
  var NumHealth = 2;
  var ChkHealth = 0;
  var HealthArray = new Array(NumHealth);
  var NoCPARef = 0;
  var NumCPARef = 2;
  var ChkCPARef = 0;
  var CPARefArray = new Array(NumCPARef);
  var CPARefYes = 0;
  var NoLNChange = 0;
  var NumLNChange = 3;
  var ChkLNChange = 0;
  var LNArray = new Array(NumLNChange);
  var FocusChk = new Array(1000);
  var msg;
  var errors="";

  for (var i=0; i < formName.length; i++)
  {
    currField=formName.elements[i];
    switch(currField.name)
    {
      case 'firstname':
      if (currField.value.length < 2) {
        errors += "- First name not provided in full.\n";
        FocusChk[i] = 1;
      }
      break;

      case 'lastname':
      if (currField.value.length < 2) {
        errors += "- Last name not provided in full.\n";
        FocusChk[i] = 1;
      }
      break;

      case 'company':
      if (currField.value.length < 2) {
        errors += "- Company Name not entered.\n";
        FocusChk[i] = 1;
      }
      break;

      case 'address':
        if (currField.value.length < 2) {
        errors += "- Company Address not entered in full.\n";
        FocusChk[i] = 1;
      }
      break;

      case 'city':
        if (currField.value.length < 2) {
        errors += "- City not identified.\n";
        FocusChk[i] = 1;
      }
      break;

      case 'state':
        if (currField.value.length < 2) {
        errors += "- State not properly identified.\n";
        FocusChk[i] = 1;
      }
      break;

      case 'zip':
        if (currField.value.length < 5) {
        errors += "- ZIP Code not properly entered.\n   (Must contain at least 5 digits.)\n";
        FocusChk[i] = 1;
      }
      break;

      case 'phone':
        if (currField.value.length < 10) {
        errors += "- Phone Number not completed.\n   (Include area code.)\n";
        FocusChk[i] = 1;
      }
      break;

      case 'email':
        item1 = currField.value.split("@");
        if ((item1.length != 2) || ((item1[item1.length-1] == "") || (item1[item1.length-1] == null)))
        {
          errors += "- E-mail Address format not valid.\n   (e.g., yourname@domain.com)\n";
          FocusChk[i] = 1;
        }
        else
        {
          item2 = item1[1].split(".");
          if (item2.length < 2) {
            errors += "- E-mail Address format not valid.\n   (e.g., yourname@domain.com)\n";
            FocusChk[i] = 1;
          }

          if ((item2[item2.length-1] == "") ||  (item2[item2.length-1] == null)) {
            errors += "- E-mail Address format not valid.\n   (e.g., yourname@domain.com)\n";
            FocusChk[i] = 1;
          }
        }
        break;

      case 'message':
        if (currField.value.length < 2)
        {
          errors += "- Message not entered.\n";
          FocusChk[i] = 1;
        }
        else if (currField.value.length > 512)
        {
          errors += "- Message must be less than 512 characters long.\n";
          FocusChk[i] = 1;
        }
        break;
    }
  }

  for (var j = 0; j < formName.length; j++)
  {
    if (FocusChk[j] == 1)
    {
      formName.elements[j].focus();
      j = formName.length + 1;
    }
  }

  if (!errors)
  {
    return true;
  }
  msg = "__________________________________________________\n\n";
  msg += "This form was not submitted due to the error(s) listed below.\n";
  msg += "Please correct them and resubmit the form.\n";
  msg += "__________________________________________________\n\n";
  msg += errors;
  alert(msg);
  return false;
}

