// feedback_validation.js
// client-side validation of form input

function validate(form_element)
{
  var valid = true;
  var error = '';
    
  // test various form elements for correct values
  
  // title - can be anything but "none"
  if(form_element.title.options[form_element.title.selectedIndex].value == "none")
  {
    valid = false;
    error = "Please specify a title.";
  }
  // surname - can be anything but "Surname"
  else if(form_element.surname.value.toLowerCase() == "surname")
  {
    valid = false;
    error = "Please enter your surname.";
  }
  // first name - can be anything but "First Name"
  else if(form_element.first_name.value.toLowerCase() == "first name")
  {
    valid = false;
    error = "Please enter your first name.";
  }
  // e-mail address - optional, but if it's been set, we should probably run a
  // preliminary check to see if it's valid - a full check will go through fcheck()
  // on submission of the form
  else if(form_element.email.value.toLowerCase() != "e-mail address" && (form_element.email.value.indexOf('@') == -1 || form_element.email.value.indexOf('.') == -1))
  {
    valid = false;
    error = "Please enter a valid e-mail address.";
  }
  // home telephone - optional
  // mobile telephone - optional
  // house name/number - optional
  // postcode - optional
  // preferred method - ensure that whichever option is selected has a corresponding valid value,
  // e.g. if email is selected, a valid e-mail address must be present, etc.
  else if(form_element.preferred_contact.options[form_element.preferred_contact.selectedIndex].value == "none")
  {
    valid = false;
    error = "Please select your preferred contact method.";
  }
  else if(form_element.preferred_contact.options[form_element.preferred_contact.selectedIndex].value == "email" && (form_element.email.value.toLowerCase() == "e-mail address" || form_element.email.value.indexOf('@') == -1 || form_element.email.value.indexOf('.') == -1))
  {
    valid = false;
    error = "You have selected e-mail as your preferred contact method, but have not provided a valid e-mail address.";
  }
  else if(form_element.preferred_contact.options[form_element.preferred_contact.selectedIndex].value == "home_tel" && form_element.home_tel.value.toLowerCase() == "home telephone")
  {
    valid = false;
    error = "You have selected home telephone as your preferred contact method, but have not provided a home telephone number.";
  }
  else if(form_element.preferred_contact.options[form_element.preferred_contact.selectedIndex].value == "mobile_tel" && form_element.mobile_tel.value.toLowerCase() == "mobile telephone")
  {
    valid = false;
    error = "You have selected mobile telephone as your preferred contact method, but have not provided a mobile telephone number.";
  }
  else if(form_element.preferred_contact.options[form_element.preferred_contact.selectedIndex].value == "post" && (form_element.house_name_number.value.toLowerCase() == "house name or number" || form_element.postcode.value.toLowerCase() == "post code"))
  {
    valid = false;
    error = "You have selected post as your preferred contact method, but have failed to provide either your house name/number or your postcode.";
  }
  // preferred branch
  else if(form_element.branch.options[form_element.branch.selectedIndex].value == "none")
  {
    valid = false;
    error = "Please select a preferred branch.";
  }
    
  if(valid == true)
  {
    form_element.submit();
  }
  else
  {
    alert(error);
  }
}
