var contactForm = document.getElementById("contact_form");

function validateEmail(el)
{
  var email = new Email(el.id, el.value, "email_err");
  email.setRequired();
  return email.verify();
}

contactForm.onsubmit = function()
{
  var els = contactForm.elements;

  var fields = [
    "subject",
	"name",
    "email",
    "message"
  ];

  var el, val;

  /* clear display of previous error messages */
  document.getElementById("form_error_msg").style.visibility =
    "hidden";

  for (var i = 0; i < fields.length; i++) {
    try {
      document.getElementById(fields[i] + "_err").style.visibility =
        "hidden";
    }
    catch (e) {
      alert("DEBUG fields[] : " + fields[i] + " : " + e);
    }
  }

  for (var i = 0; i < fields.length; i++) {
    switch (fields[i]) {
      case "subject":
        el = els["subject"];
        if (!el.selectedIndex) {
          validateInput.showError("subject_err",
            "Please indicate why you are contacting us.");
          validateInput.showError("form_error_msg", formErrorMsg);
          el.focus();
          return false;
        }
        break;
		
	  case "name":
        el = els["name"];
        if (el.value == "" ||
            !(/\S+/.test(el.value))) {
          validateInput.showError(fields[i] + "_err",
            "Please enter your name.");
          validateInput.showError("form_error_msg", formErrorMsg);
          el.value = "";
          el.focus();
          return false;
        }
        break;
		
      case "email":
        el = els["email"];
        val = validateEmail(el);
        if (val !== false) {
          el.value = val;
        }
        else {
          validateInput.showError("form_error_msg", formErrorMsg);
          // el.value = "";
          el.focus();
          return false;
        }
        break;

      case "message":
        el = els["message"];
        if (el.value == "" ||
            !(/\S+/.test(el.value))) {
          validateInput.showError(fields[i] + "_err",
            "This field may not be blank.");
          validateInput.showError("form_error_msg", formErrorMsg);
          el.value = "";
          el.focus();
          return false;
        }
        break;
    }
  }
  return true;
}
