function validate(theForm)
{

  if (theForm.First_Name.value == "")
  {
    alert("Please enter a value for the \"First Name\" field.");
    theForm.First_Name.focus();
    return (false);
  }

  if (theForm.First_Name.value.length < 2)
  {
    alert("Please enter at least 2 characters in the \"First Name\" field.");
    theForm.First_Name.focus();
    return (false);
  }

  if (theForm.First_Name.value.length > 30)
  {
    alert("Please enter at most 30 characters in the \"First Name\" field.");
    theForm.First_Name.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ.- \t\r\n\f";
  var checkStr = theForm.First_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)
  {
    alert("Please enter only letter, whitespace and \".-\" characters in the \"First Name\" field.");
    theForm.First_Name.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ-.";
  var checkStr = theForm.Surname.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)
  {
    alert("Please enter only letter and \"-.\" characters in the \"Surname\" field.");
    theForm.Surname.focus();
    return (false);
  }

  if (theForm.Last_Name.value == "")
  {
    alert("Please enter a value for the \"Last_Name\" field.");
    theForm.Last_Name.focus();
    return (false);
  }

  if (theForm.Last_Name.value.length < 2)
  {
    alert("Please enter at least 2 characters in the \"Last_Name\" field.");
    theForm.Last_Name.focus();
    return (false);
  }

  if (theForm.Last_Name.value.length > 30)
  {
    alert("Please enter at most 30 characters in the \"Last_Name\" field.");
    theForm.Last_Name.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ-";
  var checkStr = theForm.Last_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)
  {
    alert("Please enter only letter and \"-\" characters in the \"Last_Name\" field.");
    theForm.Last_Name.focus();
    return (false);
  }

  if (theForm.Dental_Program.selectedIndex < 0)
  {
    alert("Please select one of the \"Dental Program\" options.");
    theForm.Dental_Program.focus();
    return (false);
  }

  if (theForm.Dental_Program.selectedIndex == 0)
  {
    alert("The first \"Dental Program\" option is not a valid selection.  Please choose one of the other options.");
    theForm.Dental_Program.focus();
    return (false);
  }
  
  var checkOK = "0123456789-";
  var checkStr = theForm.Class.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;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    alert("Please enter only digit characters in the \"Class\" field.");
    theForm.Class.focus();
    return (false);
  }

  var chkVal = allNum;
  var prsVal = parseInt(allNum);
  if (chkVal != "" && !(prsVal >= "1900" && prsVal <= "3000"))
  {
    alert("Please enter a value greater than or equal to \"1900\" and less than or equal to \"2006\" in the \"Class\" field.");
    theForm.Class.focus();
    return (false);
  }

  if (theForm.License_State.value.length > 2)
  {
    alert("Please enter at most 2 characters in the \"State\" field.");
    theForm.License_State.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";
  var checkStr = theForm.License_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)
  {
    alert("Please enter only letter characters in the \"State\" field.");
    theForm.License_State.focus();
    return (false);
  }

  if (theForm.Date_Retired.value.length > 7)
  {
    alert("Please enter at most 7 characters in the \"Date Retired\" field.");
    theForm.Date_Retired.focus();
    return (false);
  }

  var checkOK = "0123456789-/";
  var checkStr = theForm.Date_Retired.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)
  {
    alert("Please enter only digit and \"/\" characters in the \"Date Retired\" field.");
    theForm.Date_Retired.focus();
    return (false);
  }

  if (theForm.Mobile.value.length > 15)
  {
    alert("Please enter at most 15 characters in the \"Mobile Number\" field.");
    theForm.Mobile.focus();
    return (false);
  }

  var checkOK = "0123456789-().-";
  var checkStr = theForm.Mobile.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)
  {
    alert("Please enter only digit and \"().-\" characters in the \"Mobile Number\" field.");
    theForm.Mobile.focus();
    return (false);
  }

  if (theForm.Spouse_Name.value.length > 50)
  {
    alert("Please enter at most 50 characters in the \"Spouse Name\" field.");
    theForm.Spouse_Name.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ.- \t\r\n\f";
  var checkStr = theForm.Spouse_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)
  {
    alert("Please enter only letter, whitespace and \".-\" characters in the \"Spouse Name\" field.");
    theForm.Spouse_Name.focus();
    return (false);
  }

  var checkOK = "0123456789-";
  var checkStr = theForm.Spouse_Class.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;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    alert("Please enter only digit characters in the \"Spouse Class\" field.");
    theForm.Spouse_Class.focus();
    return (false);
  }

  var chkVal = allNum;
  var prsVal = parseInt(allNum);
  if (chkVal != "" && !(prsVal >= "1900" && prsVal <= "2006"))
  {
    alert("Please enter a value greater than or equal to \"1900\" and less than or equal to \"2006\" in the \"Spouse Class\" field.");
    theForm.Spouse_Class.focus();
    return (false);
  }
  return (true);
}