   NS4 = (document.layers);
   IE4 = (document.all);
  ver4 = (NS4 || IE4);
 isMac = (navigator.appVersion.indexOf("Mac") != -1);
isMenu = (NS4 || (IE4 && !isMac));

  var selectedClient = "";

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported)
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  var r3 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str))|| (!r1.test(str) && r3.test(str));
}

function isValidStr(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported)
    return (str.length > 5);
  var r = new RegExp("[^a-zA-Z0-9]");
  return ((str.length > 5) && (!r.test(str)));
}

function isValidLoginStr(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported)
  {
    alert("not supported reg exp");
    return isValidLoginLength(str.length)
  }
  var r = new RegExp("[^0-9]");
  return ((isValidLoginLength(str.length)) && (!r.test(str)));
}

function isValidLoginLength(strLength)
{
   if (selectedClient.length == 2)
      return ((strLength >= 6) && (strLength <= 8));
   return (strLength == 6);
}

function setColor(el, bg)
{
  if (el.style) el.style.backgroundColor = bg;
}

function checkInput(form)
{
  var bgBad  = "#cccc99";
  var bgGood = "white";
  var valid  = true;

  if (form.firstname.value == "") {
     valid = false;
     setColor(form.firstname, bgBad);
     form.firstname.focus();
     alert("Please fill out the First Name.");
     return valid;
  }
  else {
    setColor(form.firstname, bgGood);
  }
  if (form.lastname.value == "") {
     valid = false;
     setColor(form.lastname, bgBad);
     form.lastname.focus();
     alert("Please fill out the Last Name.");
     return valid;
  }
  else {
    setColor(form.lastname, bgGood);
  }
  if (form.address1.value == "") {
     valid = false;
     setColor(form.address1, bgBad);
     form.address1.focus();
     alert("Please fill out the Address1.");
     return valid;
  }
  else {
    setColor(form.address1, bgGood);
  }
  if (form.city.value == "") {
     valid = false;
     setColor(form.city, bgBad);
     form.city.focus();
     alert("Please fill out the City.");
     return valid;
  }
  else {
    setColor(form.city, bgGood);
  }
  if (form.country.options[form.country.selectedIndex].value == "") {
    valid = false;
    setColor(form.country, bgBad);
    form.country.focus();
    alert("Please fill out the Country.");
    return valid;
  }
  else {
    if (form.country.options[form.country.selectedIndex].value == "US")
    {
      if (form.state.options[form.state.selectedIndex].value == "") {
        valid = false;
        setColor(form.state, bgBad);
        form.state.focus();
        alert("Please select a State.");
        return valid;
      }
      else {
        setColor(form.state, bgGood);
      }
    }
  }
  selectedClient = form.client.options[form.client.selectedIndex].value;
  if (selectedClient == "")
  {
    valid = false;
    setColor(form.client, bgBad);
    form.client.focus();
    alert("Please fill out the Company Name.");
    return valid;
  }
  else {
    setColor(form.client, bgGood);
  }
  if (form.zip.value == "") {
    valid = false;
    setColor(form.zip, bgBad);
    form.zip.focus();
    alert("Please fill out the Postal Code.");
    return valid;
  }
  else {
    setColor(form.zip, bgGood);
  }
  if (form.phone.value == "") {
    valid = false;
    setColor(form.phone, bgBad);
    form.phone.focus();
    alert("Please fill out the Phone.");
    return valid;
  }
  else {
    setColor(form.phone, bgGood);
  }
  if (form.email.value == "") {
    valid = false;
    setColor(form.email, bgBad);
    form.email.focus();
    alert("Please fill out the email.");
    return valid;
  }
  else {
    if (isEmail(form.email.value))
    {
      setColor(form.email,bgGood)
    }
    else {
      valid = false;
      setColor(form.email,bgBad);
      form.email.focus();
      alert("Please fill out a valid email address.");
      return valid;
    }
  }

  valid = false;
  if (form.business_area.length)
  {
    for (i=0; i<form.business_area.length; i++)
    {
      if (form.business_area[i].checked)
        valid = true;
    }
  }
  else
  {
    if (form.business_area.checked)
      valid = true;
  }
  if (!valid)
  {
    alert("The Primary Product Line is required");
    return valid;
  }

  if (form.title.options[form.title.selectedIndex].value == "") {
    valid = false;
    setColor(form.title, bgBad);
    form.title.focus();
    alert("Please select a Title.");
    return valid;
  }
  else {
    setColor(form.title, bgGood);
  }
  if (isValidLoginStr(form.login.value)) {
    setColor(form.login, bgGood);
  }
  else {
    valid = false;
    setColor(form.login, bgBad);
    form.login.focus();
    alert("Please fill out a valid Login Name.");
    return valid;
  }
  if (isValidStr(form.passwd.value)) {
    setColor(form.passwd, bgGood);
  }
  else {
    valid = false;
    setColor(form.passwd, bgBad);
    form.passwd.focus();
    alert("Please fill out a valid Password.");
    return valid;
  }
  if (form.passwd1.value == "") {
    valid = false;
    setColor(form.passwd1, bgBad);
    form.passwd1.focus();
    alert("Please fill out the confirmed Password.");
    return valid;
  }
  else {
    if (form.passwd.value == form.passwd1.value) {
      setColor(form.passwd1, bgGood);
    }
    else {
      valid = false;
      setColor(form.passwd1, bgBad);
      alert("The password is not confirmed, Please reenter the same Password .");
      form.passwd1.focus();
      return valid;
    }
  }
  form.client_fullname.value = form.client.options[form.client.selectedIndex].text;
  form.title_fullname.value  = form.title.options[form.title.selectedIndex].text;
  form.country_fullname.value  = form.country.options[form.country.selectedIndex].text;

  if (!valid) {
    alert("Please fill out the entire form.");
    return valid;
  }

  return confirm("First Name:     " + form.firstname.value + "\n" +
        "Last Name:      " + form.lastname.value + "\n" +
        "Company Name:   " + form.client_fullname.value + "\n" +
        "Email:          " + form.email.value + "\n" +
        "Login Id:       " + selectedClient + form.login.value + "\n" +
        "Password:       " + form.passwd.value);
}
