//<![CDATA[
  function initForm() {
    if (frmTemplate.ContactUs_txtFirstName != null)
      frmTemplate.ContactUs_txtFirstName.focus();
  }

  function isBlank(s) {
    for (var i = 0; i < s.length; i++) {
      var c = s.charAt(i);

      if ((c != ' ') && (c != '\n') && (c != '\t'))
        return false;
    }

    return true;
  }

  function validateForm() {
    var f = document.forms[0];
    var msg = "";
    var empty_fields = "";
    var errors = "";
    var confirm = "";
    var first = true;

    if (f.ContactUs_ddlState.value != "NO") {
      f.ContactUs_txtProvince.optional = true;
      f.ContactUs_txtProvince.style.backgroundColor = "#FFFFFF";
    } else {

    if (!isBlank(f.ContactUs_txtProvince.value)) {
      f.ContactUs_ddlState.optional = true;
      f.ContactUs_ddlState.style.backgroundColor = "#FFFFFF";
    }
    }
    for (var i = 0; i < f.length; i++) {
      var e = f.elements[i];

      if (!e.optional)
        e.style.backgroundColor = "#FFFFFF";

      if (((e.type == "text") || (e.type == "password") || (e.type == "textarea")) && !e.optional) {
        if ((e.value == null) || (e.value == "") || isBlank(e.value)) {
          empty_fields += "<br>" + e.name;
          e.style.backgroundColor = "#FFFFC0";

          if (first)
          {
            e.focus();
            first = false;
          }

          continue;
        }

        if (e.numeric || (e.min != null) || ( e.max != null)) {
          var v = parseFloat(e.value);
          
          if (isNaN(v) ||
              ((e.min != null) && (v < e.min)) ||
              ((e.max != null) && (v > e.max))) {
            errors += "- The field must be a number";
            e.style.backgroundColor = "#FFFFC0";
            
            if (e.min != null)
              errors += " that is greater than " + e.min;
              
            if (e.max != null && e.min != null)
              errors += " and less than " + e.max;
            else if (e.max != null)
              errors += " that is less than " + e.max;
              
            errors += ".<br>";
          }
        }
      }
      
      if ((e.type == "select-one") && ((e.value == "NO") || (e.value == "NONE")) && !e.optional) {
        errors += "Selection required.";
        e.style.backgroundColor = "#FFFFC0";
      }
    }

    if ((f.ContactUs_txtEmail != null) && (f.ContactUs_txtConfirm != null)) {
      if (isValidEmail(f.ContactUs_txtEmail.value)) {
        f.ContactUs_txtEmail.style.backgroundColor = "#FFFFFF";

        if (f.ContactUs_txtEmail.value.toUpperCase() != f.ContactUs_txtConfirm.value.toUpperCase()) {
          confirm += "E-mail addresses do not match.";
          f.ContactUs_txtEmail.style.backgroundColor = "#FFFFC0";
          f.ContactUs_txtConfirm.style.backgroundColor = "#FFFFC0";
        }
      } else {
        confirm += "Invalid E-mail address format.";
        f.ContactUs_txtEmail.style.backgroundColor = "#FFFFC0";

        f.ContactUs_txtEmail.focus();
      }
    }

    if (!empty_fields && !errors && !confirm)
    {
      f.submit();
      return true;
    }

    if (empty_fields || errors) {
      msg += "Required field(s) are highlighted.<br>";
    }

    if (confirm) {
      msg += confirm;
    }

    tdRequired.style.color = "red";
    tdRequired.style.fontWeight = "bold";
    tdRequired.innerHTML = msg;

    return false;
  }
  
  function optionalFields() {
    if (frmTemplate.ContactUs_txtCompany != null)
      frmTemplate.ContactUs_txtCompany.optional = true;

    if (frmTemplate.ContactUs_txtTitle != null)
      frmTemplate.ContactUs_txtTitle.optional = true;

    if (frmTemplate.ContactUs_txtPhone != null)
      frmTemplate.ContactUs_txtPhone.optional = true;

    if (frmTemplate.ContactUs_txtExt != null)
      frmTemplate.ContactUs_txtExt.optional = true;

    if (frmTemplate.ContactUs_txtAddress1 != null)
      frmTemplate.ContactUs_txtAddress1.optional = true;

    if (frmTemplate.ContactUs_txtAddress2 != null)
      frmTemplate.ContactUs_txtAddress2.optional = true;

    if (frmTemplate.ContactUs_txtCity != null)
      frmTemplate.ContactUs_txtCity.optional = true;

    if (frmTemplate.ContactUs_ddlState != null)
      frmTemplate.ContactUs_ddlState.optional = true;

    if (frmTemplate.ContactUs_txtProvince != null)
      frmTemplate.ContactUs_txtProvince.optional = true;

    if (frmTemplate.ContactUs_txtZip != null)
      frmTemplate.ContactUs_txtZip.optional = true;

    if (frmTemplate.ContactUs_ddlCountry != null)
      frmTemplate.ContactUs_ddlCountry.optional = true;

    if (frmTemplate.ContactUs_txtIndustry != null)
      frmTemplate.ContactUs_txtIndustry.optional = true;

    if (frmTemplate.ContactUs_txtComments != null)
      frmTemplate.ContactUs_txtComments.optional = true;
  }

  function isValidEmail(str) {
    var emailFormat = /^\w(\.?[\w-])*@\w(\.?[\w-])*\.[a-zA-Z]{2,6}(\.[a-zA-Z]{2})?$/i;

    return emailFormat.test(str);
  }
//]]>