function downloadValidation(theForm) {

  if (theForm.Name.value == "") {
    alert("Please enter a value for the \"Name\" field.");
    theForm.Name.focus();
    return (false);
  }

  if (theForm.Name.value.length < 5) {
    alert("Please enter at least 5 characters in the \"Name\" field.");
    theForm.Name.focus();
    return (false);
  }

  if (theForm.Company.value == "") {
    alert("Please enter a value for the \"Company\" field.");
    theForm.Company.focus();
    return (false);
  }

  if (theForm.Company.value.length < 5) {
    alert("Please enter at least 5 characters in the \"Company\" field.");
    theForm.Company.focus();
    return (false);
  }

  if (theForm.Address1.value == "") {
    alert("Please enter a value for the \"Address\" field.");
    theForm.Address1.focus();
    return (false);
  }

  if (theForm.Address1.value.length < 5) {
    alert("Please enter at least 5 characters in the \"Address\" field.");
    theForm.Address1.focus();
    return (false);
  }

  if (theForm.City.value == "") {
    alert("Please enter a value for the \"City\" field.");
    theForm.City.focus();
    return (false);
  }

  if (theForm.City.value.length < 3) {
    alert("Please enter at least 3 characters in the \"City\" field.");
    theForm.City.focus();
    return (false);
  }

  if (theForm.State.value == "") {
    alert("Please enter a value for the \"State\" field.");
    theForm.State.focus();
    return (false);
  }

  if (theForm.State.value.length < 2) {
    alert("Please enter at least 2 characters in the \"State\" field.");
    theForm.State.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&fnof;&Scaron;&OElig;&#381;&scaron;&oelig;&#382;&Yuml;&Agrave;&Aacute;&Acirc;&Atilde;&Auml;&Aring;&AElig;&Ccedil;&Egrave;&Eacute;&Ecirc;&Euml;&Igrave;&Iacute;&Icirc;&Iuml;&ETH;&Ntilde;&Ograve;&Oacute;&Ocirc;&Otilde;&Ouml;&Oslash;&Ugrave;&Uacute;&Ucirc;&Uuml;&Yacute;&THORN;&szlig;&agrave;&aacute;&acirc;&atilde;&auml;&aring;&aelig;&ccedil;&egrave;&eacute;&ecirc;&euml;&igrave;&iacute;&icirc;&iuml;&eth;&ntilde;&ograve;&oacute;&ocirc;&otilde;&ouml;&oslash;&ugrave;&uacute;&ucirc;&uuml;&yacute;&thorn;&yuml;";
  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) {
    alert("Please enter only letter characters in the \"State\" field.");
    theForm.State.focus();
    return (false);
  }

  if (theForm.Zip.value == "") {
    alert("Please enter a value for the \"Zip or Mail Code\" field.");
    theForm.Zip.focus();
    return (false);
  }

  if (theForm.Zip.value.length < 5) {
    alert("Please enter at least 5 characters in the \"Zip or Mail Code\" field.");
    theForm.Zip.focus();
    return (false);
  }

  if (theForm.Country.value == "") {
    alert("Please enter a value for the \"Country\" field.");
    theForm.Country.focus();
    return (false);
  }

  if (theForm.Country.value.length < 3) {
    alert("Please enter at least 3 characters in the \"Country\" field.");
    theForm.Country.focus();
    return (false);
  }

  var checkOK ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&fnof;&Scaron;&OElig;&#381;&scaron;&oelig;&#382;&Yuml;&Agrave;&Aacute;&Acirc;&Atilde;&Auml;&Aring;&AElig;&Ccedil;&Egrave;&Eacute;&Ecirc;&Euml;&Igrave;&Iacute;&Icirc;&Iuml;&ETH;&Ntilde;&Ograve;&Oacute;&Ocirc;&Otilde;&Ouml;&Oslash;&Ugrave;&Uacute;&Ucirc;&Uuml;&Yacute;&THORN;&szlig;&agrave;&aacute;&acirc;&atilde;&auml;&aring;&aelig;&ccedil;&egrave;&eacute;&ecirc;&euml;&igrave;&iacute;&icirc;&iuml;&eth;&ntilde;&ograve;&oacute;&ocirc;&otilde;&ouml;&oslash;&ugrave;&uacute;&ucirc;&uuml;&yacute;&thorn;&yuml;()-+,. \t\r\n\f";
  var checkStr = theForm.Country.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 \"Country\" field.");
    theForm.Country.focus();
    return (false);
  }

  if (theForm.Phone.value == "") {
    alert("Please enter a value for the \"Phone\" field.");
    theForm.Phone.focus();
    return (false);
  }

  if (theForm.Phone.value.length < 10) {
    alert("Please enter at least 10 characters in the \"Phone\" field.");
    theForm.Phone.focus();
    return (false);
  }

  if (theForm.Email.value == "") {
    alert("Please enter a value for the \"Email\" field.");
    theForm.Email.focus();
    return (false);
  }

  if (theForm.Email.value.length < 6) {
    alert("Please enter at least 6 characters in the \"Email\" field.");
    theForm.Email.focus();
    return (false);
  }


  if (theForm.Source[0].checked && theForm.search_engine_used.value == ""){  
    alert("Please enter a value for the \"search_engine_used\" field.");
    theForm.search_engine_used.focus();
    return (false);
  }

  if (theForm.Source[0].checked && theForm.search_engine_used.value.length < 3) {
    alert("Please enter at least 3 characters in the \"search_engine_used\" field.");
    theForm.search_engine_used.focus();
    return (false);
  }

  if (theForm.Source[0].checked && theForm.search_engine_terms.value == "") {
    alert("Please enter a value for the \"search_engine_terms\" field.");
    theForm.search_engine_terms.focus();
    return (false);
  }

  if (theForm.Source[0].checked && theForm.search_engine_terms.value.length < 3) {
    alert("Please enter at least 3 characters in the \"search_engine_terms\" field.");
    theForm.search_engine_terms.focus();
    return (false);
  }

  return (true);
}
