function verifyForm()
{
  var id=document.getElementById('id').value;
  var isGuide=document.getElementById('isguide').value;
  var noAccount = '';
  if (isGuide == '0' & id == 'new') {
    noAccount=document.getElementById('noaccount').value;
  }
  
  if(id == 'new' && !document.getElementById('termsofuse').checked)
  {
    return err("You must agree to the terms of use before saving.");
  };

  var flds = new Array("firstname", "lastname","phone","address1","city","state","postalcode","email","confirmemail");
  var descs = new Array("First Name", "Last Name", "Phone Number", "Address", "City", "State", "Postal Code", "Email Address", "Confirm Email Address");
  
  if(id == 'new' && noAccount != '1')
  {
    flds.push('pw');
    flds.push('confirmpw');
    descs.push('Password');
    descs.push('Confirm Password');
  }
  
  for(i=0; i<flds.length; i++)
  {
    if(document.getElementById(flds[i]).value == '')
    {
      return err('Please enter a value for ' + descs[i] + ' and try again.');
    };
  };
  
  //verify formats of phones and dates
  var phoneRegEx = /[0-9]{3}-[0-9]{3}-[0-9]{4}/;
  var dateRegEx = /(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])\/20[0-9]{2}/;
  var postalRegEx = /[0-9]{5}/;
  
  if(!phoneRegEx.test(document.getElementById('phone').value))
  {
    return err("Please enter a valid phone number formatted as ###-###-#### and try again.");
  };

  if(document.getElementById('alternatephone').value != '' && !phoneRegEx.test(document.getElementById('alternatephone').value))
  {
    return err("Please enter a valid alternate phone number formatted as ###-###-#### and try again.");
  };

  if(document.getElementById('mobilephone').value != '' && !phoneRegEx.test(document.getElementById('mobilephone').value))
  {
    return err("Please enter a valid alternate phone number formatted as ###-###-#### and try again.");
  };

  if(isGuide == '1')
  {
    if(document.getElementById('fax').value != '' && !phoneRegEx.test(document.getElementById('fax').value))
    {
      return err("Please enter a valid fax number formatted as ###-###-#### and try again.");
    };
  };

  if(!postalRegEx.test(document.getElementById('postalcode').value))
  {
    return err("Please enter a valid, 5-digit postal code and try again.");
  };

  var email = document.getElementById('confirmemail');
  if(email.value != document.getElementById('email').value)
  {
    alert("The email addresses you entered do not match.  Please try again.");
    email.value = '';
    email.focus();
    return false;
  };
  
  if(id == 'new' && noAccount != '1')
  {
    var pwconfirm = document.getElementById('confirmpw');
    if(pwconfirm.value != document.getElementById('pw').value)
    {
      alert("The passwords you entered do not match.  Please try again.");
      pwconfirm.value = '';
      pwconfirm.focus();
      return false;
    };
  };
  
  return true;
};

function err(txt)
{
  alert(txt);
  return false;
};

function checkEmail()
{
  var xmlHttp = createHTTPRequest();
  var email = document.getElementById('email').value;
  var id = document.getElementById('id').value;
  
  xmlHttp.onreadystatechange = function()
  {
    if (xmlHttp.readyState == 4)
    {
      hideWait();
      var text = xmlHttp.responseText.trim();
      if (text == "TRUE")
      {
        if(verifyForm())
          document.getElementById('theform').submit();
      }
      else
      {
        alert('This email address has already been registered.  Please select the forgot password link if you have forgotten your password.');
      };
    };
  };
  
  var params = "id=" + id + "&email=" + escape(email);
  
  xmlHttp.open("POST","/hfg/registration/email_check.php",true);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", params.length);
  xmlHttp.setRequestHeader("Connection", "close");
  showWait();

  xmlHttp.send(params);
};

function checkNewEmailAddress()
{
  var xmlHttp = createHTTPRequest();
  var email = document.getElementById('email').value;
  var id = document.getElementById('id').value;
  
  xmlHttp.onreadystatechange = function()
  {
    if (xmlHttp.readyState == 4)
    {
      hideWait();
      var text = xmlHttp.responseText.trim();
      if (text == "TRUE")
      {
        if(verifyForm())
          document.getElementById('theform').submit();
      }
      else
      {
        alert('This email address has already been registered.  Please select the forgot password link if you have forgotten your password.');
      };
    };
  };
  
  var params = "id=" + escape(id) + "&email=" + escape(email);
  
  xmlHttp.open("POST","/profile_check.php",true);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", params.length);
  xmlHttp.setRequestHeader("Connection", "close");
  showWait();

  xmlHttp.send(params);
};

function showPassword()
{
  if(document.getElementById('chkRegister').checked)
  {
    document.getElementById('passwordContainer').style.visibility="visible";
    document.getElementById('passwordContainer').style.display="block";
  }
  else
  {
    document.getElementById('passwordContainer').style.visibility="none";
    document.getElementById('passwordContainer').style.display="hidden";
  };
}

function registrationShowAccountDetails()
{
  if(document.getElementById('noaccount').checked)
  {
    document.getElementById('registrationaccountpreferences').style.visibility="hidden";
    document.getElementById('registrationaccountpreferences').style.display="none";
    document.getElementById('registrationpasswordfields').style.visibility="hidden";
    document.getElementById('registrationpasswordfields').style.display="none";
  }
  else
  {
    document.getElementById('registrationaccountpreferences').style.visibility="visible";
    document.getElementById('registrationaccountpreferences').style.display="block";
    document.getElementById('registrationpasswordfields').style.visibility="visible";
    document.getElementById('registrationpasswordfields').style.display="block";
  };
}

