// Basic form validation
// By Arthur Klepchukov (02.23.2006) updated on 01.18.2008 by author
// initially for use with the Petris Symposium Registration Form

function compare_email(field1, field2) {
  if (field1.value != field2.value) {
    return false;
  } else {
    return true;
  }
}

function validate_email(field, alerttxt) {
  apos=field.value.indexOf("@");
  dotpos=field.value.lastIndexOf(".");
  if (apos < 1 || dotpos - apos < 2) {
    alert(alerttxt);
    return false;
  } else {
    return true;
  }
}

function validate_numeric(value) {
  if (value.match(/^\d+$/)) {
    return true;
  } else {
    return false;
  }
}

function validate_form(thisform) {
  for (var i = 0; i < thisform.elements.length; i++) {
    //Ignores all but the text elements
    if (thisform.elements[i].type != "text") continue;
    
    //Get the users entry, except for address2 (not required)
    if (thisform.elements[i].name != "add2") {
      var text = thisform.elements[i].value;
    }
    
    //If blank, alert the user
    if (text == null || text.length == 0) {
      alert("Please fill in all required form fields.");
      return false;
    }
  }

  // Makes sure zip code is 5 characters long and numeric
  if(thisform.zip.value.length < 5 || !validate_numeric(thisform.zip.value)) {
    alert("Invalid zip code.");
    return false;
  }

  // Makes sure email is a valid email address (has an "@" and "." character) 
  if (validate_email(thisform.email, "Invalid email address.")) {
    // Makes sure the user filled out his or her email correctly
    if (compare_email(thisform.email, thisform.email2)) {
      return true;
    } else {
      alert("Email addresses do not match.");
      return false;
    }
  } else {
    return false;
  }
}

