/**
 * validate.js
 *
 * 20100207
 * MCG
 */

/**
 * validate_email()
 *
 * Run through some sanity checks on the submitted email address.
 */
function validate_email(field, alerttxt) {
  with (field) {
    apos = value.indexOf("@");
    dotpos = value.lastIndexOf(".");
    if (apos < 1 || dotpos - apos < 2) {
      alert(alerttxt);
      return false;
    }
    else {
      return true;
    }
  }
}


/**
 * validate_required()
 *
 * Ensure that required fields have _something_ entered.
 */
function validate_required(field, alerttxt) {
  with (field) {
    if (value == null || value == "") {
      alert(alerttxt);
      return false;
    }
    else {
      return true;
    }
  }
}


/**
 * validate_birthdate()
 *
 * Ensure that birthdate is in expected format (YYYY-MM-DD).
 */
function validate_birthdate(field, alerttxt) {
  with (field) {
    if (value.match(/\d\d\d\d-\d\d-\d\d/)) {
      return true;
    }
    else {
      alert(alerttxt);
      return false;
    }
  }
}


/**
 * validate_phonenumber()
 *
 * Ensure that phone number is in expected format (XXX-XXX-XXXX).
 */
function validate_phonenumber(field, alerttxt) {
  with (field) {
    if (value.match(/\d\d\d-\d\d\d-\d\d\d\d/)) {
      return true;
    }
    else {
      alert(alerttxt);
      return false;
    }
  }
}


/**
 * validate_form()
 *
 * Main validation function
 */
function validate_form(thisform) {
  with (thisform) {
    if (validate_required(tp_firstname, "First Name must be filled out!") == false) {
      tp_firstname.focus();
      return false;
    }
    if (validate_required(tp_lastname, "Last Name must be filled out!") == false) {
      tp_lastname.focus();
      return false;
    }
    if (validate_email(tp_email, "Not a valid e-mail address!") == false) {
      tp_email.focus();
      return false;
    }
    if (validate_required(tp_country, "Country must be filled out!") == false) {
      tp_country.focus();
      return false;
    }
    if (validate_required(tp_region, "State/Province must be filled out!") == false) {
      tp_region.focus();
      return false;
    }
    if (validate_required(tp_zipcode, "Zip/Postal Code must be filled out!") == false) {
      tp_zipcode.focus();
      return false;
    }
    if (validate_required(tp_message, "Please enter you Chocolate Story!") == false) {
      tp_message.focus();
      return false;
    }
  }
}
