function trimString(str) {
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
  }

var msg = "";
var focusIsSet = false;

function setError(formField, addMsg) {
  msg += addMsg + "\n";
  if (!focusIsSet) {
    formField.focus();
    focusIsSet = true;
    }
  }

function chkForm(formType) {
  msg = "";
  focusIsSet = false;
  with (document.PAGEFORM) {
    var reqAddress = (formType == "Registration");
    if (formType == "Request_Info") reqAddress = SendLiterature.checked;

    Name.value = trimString(Name.value);
    if (Name.value=="") setError(Name, "Please enter Name.");

    Address.value = trimString(Address.value);
    if (reqAddress && (Address.value=='')) setError(Address, "Please enter Address.");

    City.value = trimString(City.value);
    if (City.value=="") setError(City, "Please enter City.");

    State_Region.value = trimString(State_Region.value);
    if (State_Region.value=="") setError(State_Region, "Please enter State / Province / Region.");

    Zip.value = trimString(Zip.value);
    if (reqAddress && (Zip.value=='')) setError(Zip, "Please enter Zip / Postal code.");

    Country.value = trimString(Country.value);
    if (reqAddress && (Country.value=='')) setError(Country, "Please enter Country.");

    Phone.value = trimString(Phone.value);
    if (Phone.value=="") setError(Phone, "Please enter Phone#.");

    Email.value = trimString(Email.value);
    if (Email.value=="") setError(Email, "Please enter Email address.");
    else if (!ftEmail(Email.value)) setError(Email, "Email address is invalid.");

    if (formType == "Registration") {
      SerialNumber.value = trimString(SerialNumber.value);
      if (SerialNumber.value=="") setError(SerialNumber, "Please enter Serial Number.");
      }
    }

  if (msg != "") {
    alert(msg);
    return false;
    }
  else return true;
  }

function ftEmail(emailStr) {
  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars="\[^\\s" + specialChars + "\]"
  var quotedUser="(\"[^\"]*\")"
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+'
  var word="(" + atom + "|" + quotedUser + ")"
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
  var matchArray=emailStr.match(emailPat)
  if (matchArray==null) return false
  var user=matchArray[1]
  var domain=matchArray[2]
  if (user.match(userPat)==null) return false
  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null) {
    for (var i=1;i<=4;i++) {
      if (IPArray[i]>255) return false
      }
    return true
    }
  var domainArray=domain.match(domainPat)
  if (domainArray==null) return false
  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2 || 
  domArr[domArr.length-1].length>4) return false
  if (len<2) return false
  return true;
  }
