// JavaScript Document

function Membership_Validator(theForm)
{
  var error_message = "Please check the following error(s):\n\n";
  var ret = true;
  
  if (theForm.Salutation.selectedIndex < 0)
  {
	error_message = error_message + ">  Please select one of the \"D1\" options.\n";
    ret = false;
  }

  if (theForm.Name.value == "")
  {
    error_message = error_message + ">  Please enter a value for the \"Name\" field.\n";
    theForm.Name.focus();
    ret = false;
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
  var checkStr = theForm.Name.value;
  var allValid = true;
  var validGroups = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    error_message = error_message + ">  Please enter only letter and whitespace characters in the \"Name\" field.\n";
    theForm.Name.focus();
    ret = false;
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
  var checkStr = theForm.Spouse.value;
  var allValid = true;
  var validGroups = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    error_message = error_message + ">  Please enter only letter and whitespace characters in the \"Spouse\" field.\n";
    theForm.Spouse.focus();
    ret = false;
  }

  if (theForm.Last.value == "")
  {
    error_message = error_message + ">  Please enter a value for the \"Last\" field.\n";
    theForm.Last.focus();
    ret = false;
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
  var checkStr = theForm.Last.value;
  var allValid = true;
  var validGroups = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    error_message = error_message + ">  Please enter only letter and whitespace characters in the \"Last\" field.\n";
    theForm.Last.focus();
    ret = false;
  }

  if (theForm.Address.value == "")
  {
    error_message = error_message + ">  Please enter a value for the \"Address\" field.\n";
    theForm.Address.focus();
    ret = false;
  }

  if (theForm.City.value == "")
  {
    error_message = error_message + ">  Please enter a value for the \"City\" field.\n";
    theForm.City.focus();
    ret = false;
  }

  if (theForm.State.value == "")
  {
    error_message = error_message + ">  Please enter a value for the \"State\" field.\n";
    theForm.State.focus();
    ret = false;
  }

  if (theForm.State.value.length < 2)
  {
    error_message = error_message + ">  Please enter at least 2 characters in the \"State\" field.\n";
    theForm.State.focus();
    ret = false;
  }

  if (theForm.State.value.length > 2)
  {
    error_message = error_message + ">  Please enter at most 2 characters in the \"State\" field.\n";
    theForm.State.focus();
    ret = false;
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";
  var checkStr = theForm.State.value;
  var allValid = true;
  var validGroups = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    error_message = error_message + ">  Please enter only letter characters in the \"State\" field.\n";
    theForm.State.focus();
    ret = false;
  }

  if (theForm.Zip.value == "")
  {
    error_message = error_message + ">  Please enter a value for the \"Zip\" field.\n";
    theForm.Zip.focus();
    ret = false;
  }

  if (theForm.Zip.value.length < 5)
  {
    error_message = error_message + ">  Please enter at least 5 characters in the \"Zip\" field.\n";
    theForm.Zip.focus();
    ret = false;
  }

  if (theForm.Zip.value.length > 5)
  {
    error_message = error_message + ">  Please enter at most 5 characters in the \"Zip\" field.\n";
    theForm.Zip.focus();
    ret = false;
  }

  var checkOK = "0123456789-.";
  var checkStr = theForm.Zip.value;
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch == ".")
    {
      allNum += ".";
      decPoints++;
    }
    else
      allNum += ch;
  }
  if (!allValid)
  {
    error_message = error_message + ">  Please enter only digit characters in the \"Zip\" field.\n";
    theForm.Zip.focus();
    ret = false;
  }

  if (decPoints > 1 || !validGroups)
  {
    error_message = error_message + ">  Please enter a valid number in the \"Zip\" field.\n";
    theForm.Zip.focus();
    ret = false;
  }

  if (theForm.Home_Phone.value == "")
  {
    error_message = error_message + ">  Please enter a value for the \"Home Telephone\" field.\n";
    theForm.Home_Phone.focus();
    ret = false;
  }

  if (theForm.Home_Phone.value.length < 10)
  {
    error_message = error_message + ">  Please enter at least 10 characters in the \"Home Telephone\" field.\n";
    theForm.Home_Phone.focus();
    ret = false;
  }

  if (theForm.Home_Phone.value.length > 12)
  {
    error_message = error_message + ">  Please enter at most 12 characters in the \"Home Telephone\" field.\n";
    theForm.Home_Phone.focus();
    ret = false;
  }

  var checkOK = "0123456789-,";
  var checkStr = theForm.Home_Phone.value;
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch != ",")
      allNum += ch;
  }
  if (!allValid)
  {
    error_message = error_message + ">  Please enter only digit characters in the \"Home Telephone\" field.\n";
    theForm.Home_Phone.focus();
    ret = false;
  }

  if (theForm.Business_Phone.value.length > 12)
  {
    error_message = error_message + ">  Please enter at most 12 characters in the \"Business Phone\" field.\n";
    theForm.Business_Phone.focus();
    ret = false;
  }

  var checkOK = "0123456789- ";
  var checkStr = theForm.Business_Phone.value;
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch != " ")
      allNum += ch;
  }
  if (!allValid)
  {
    error_message = error_message + ">  Please enter only digit characters in the \"Business Phone\" field.\n";
    theForm.Business_Phone.focus();
    ret = false;
  }

  var checkOK = "0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@!_.,";
  var checkStr = theForm.Email.value;
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  
  if (!allValid)
  {
    error_message = error_message + ">  Please ensure the proper format in the \"Email\" field.\n";
    theForm.Email.focus();
    ret = false;
  }
  if (theForm.Email.value.length < 5)
  {
    error_message = error_message + ">  Please enter a valid \"Email Address\".\n";
    theForm.Home_Phone.focus();
    ret = false;
  }
  
  
  if (theForm.Level.selectedIndex == 0)
  {
    error_message = error_message + ">  Please select one of the \"Level\" options.\n";
    theForm.Level.focus();
    ret = false;
  }

  if (false == ret)
  {
	  alert(error_message);
  }


  return (ret);
}