var messages = [];
function trim(str) {
  return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
function field_error(field, message) {
  var label = document.getElementById(field.name+'Label');
  messages.push(message);
  if (label && label.className.search(/ error_field/) == -1) {
    label.className = label.className+' error_field';
  }
}
function field_clear(field) {
  var label = document.getElementById(field.name+'Label');
  if (label && label.className.search(/ error_field/) != -1) {
    label.className = label.className.replace(/ error_field/,'');
  }
}
function field_require(field, message) {
  if (trim(field.value) == '') {
    field_error(field, message);
    return false;
  }
  field_clear(field);
  return true;
}
function field_conform(field, regexp, message) {
  re = new RegExp(regexp);
  if (!re.test(field.value)) {
    field_error(field, message);
    return false;
  }
  field_clear(field);
  return true;
}
// this should match the logic found in /submit.php:validate_form()
function validate_form(form) {
  messages = [];
  field_require(form.FirstName, "Please enter your first name.");
  field_require(form.LastName, "Please enter your last name.");
  // ### not validated by e.g. http://www,itsjustlunchraleigh.com
  //field_require(form.StreetAddress, "Please enter your street address.");
  //field_require(form.City, "Please enter your city.");
  //field_require(form.State, "Please enter your state.");
  //field_require(form.ZipCode, "Please enter your zip code.");
  if (field_require(form.EmailAddress, "Please enter your email address.")) {
    field_conform(form.EmailAddress,'^[\\w.-]+\\@[\\w.-]+\\.\\w+$', "Please enter a valid email address.");
  }
  if (trim(form.HomePhone.value) == '' && trim(form.CellWorkPhone.value) == '') {
    field_error(form.CellWorkPhone, 'Please enter at least one phone number.');
  } else {
    field_clear(form.CellWorkPhone);
    if (trim(form.HomePhone.value) != '') {
      field_conform(form.HomePhone,'^\\(?\\d{3}[)-]? ?\\d{3}-?\\d{4}$', "Please enter a valid phone number.");
    }
    if (trim(form.CellWorkPhone.value) != '') {
      field_conform(form.CellWorkPhone,'^\\(?\\d{3}[)-]? ?\\d{3}-?\\d{4}$', "Please enter a valid phone number.");
    }
  }
  // ### not validated by e.g. http://www,itsjustlunchraleigh.com
  //if (field_require(form.Age, "Please enter your age.")) {
  //  field_conform(form.Age,'^[0-9]+$', 'Please enter your age as a numeric value.')
  //}
  //field_require(form.Gender, "Please select your gender.");
  //if (form.Source.value == 0) {
  //  field_error(form.Source, 'Please select how you heard about us.');
  //} else {
  //  field_clear(form.Source);
  //}
  if (messages.length) {
    alert(messages.join("\n"));
    return false;
  }
  return true;
}
