$(function(){

var form = "";
var submitted = false;
var error = false;
var error_message = "";

function check_input(field_name, field_size, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    if (field_size == 0) return;
    var field_value = form.elements[field_name].value;

    if (field_value == '' || field_value.length < field_size) {
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

function check_password(field_name_1, field_name_2, field_size, message_1, message_2) {
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
    var password = form.elements[field_name_1].value;
    var confirmation = form.elements[field_name_2].value;

    if (password == '' || password.length < field_size) {
      error_message = error_message + "* " + message_1 + "\n";
      error = true;
    } else if (password != confirmation) {
      error_message = error_message + "* " + message_2 + "\n";
      error = true;
    }
  }
}

function check_password_new(field_name_1, field_name_2, field_name_3, field_size, message_1, message_2, message_3) {
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
    var password_current = form.elements[field_name_1].value;
    var password_new = form.elements[field_name_2].value;
    var password_confirmation = form.elements[field_name_3].value;

    if (password_current == '' || password_current.length < field_size) {
      error_message = error_message + "* " + message_1 + "\n";
      error = true;
    } else if (password_new == '' || password_new.length < field_size) {
      error_message = error_message + "* " + message_2 + "\n";
      error = true;
    } else if (password_new != password_confirmation) {
      error_message = error_message + "* " + message_3 + "\n";
      error = true;
    }
  }
}

function CheckEmail(email){
	 var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
	 flag = pattern.test(email); 
	 if(!flag){ 
	  	error_message = error_message + "* E-mail format error. exp xx@xx.xx\n";
      	error = true;
	 }
}

function check_form(form_name) {

  error = false;
  form = document.getElementById("reg_form");
  error_message = "Errors have occurred during the processing of your form.\n\nPlease make the following corrections:\n\n";

  check_input("firstname", 2, "Is your first name correct? Our system requires a minimum of 2 characters. Please try again.");
  check_input("lastname", 2, "Is your last name correct? Our system requires a minimum of 2 characters. Please try again.");

  check_input("street_address", 5, "Your Street Address must contain a minimum of 5 characters.");
  check_input("postcode", 4, "Your Post/ZIP Code must contain a minimum of 4 characters.");
  check_input("city", 2, "Your City must contain a minimum of 2 characters.");

  //check_input("telephone", 6, "Your Telephone Number must contain a minimum of 6 characters.");
  
  check_input("email_address", 6, "Is your email address correct? It should contain at least 6 characters. Please try again.");
  if(!error) CheckEmail($("#email-address").val());
  check_password("password", "confirmation", 5, "Your Password must contain a minimum of 5 characters.", "The Password Confirmation must match your Password.");
  check_password_new("password_current", "password_new", "password_confirmation", 5, "Your Password must contain a minimum of 5 characters.", "Your new Password must contain a minimum of 5 characters.", "The Password Confirmation must match your new Password.");

  if (error == true) {
    alert(error_message);
    return false;
  }else{
  	return true;
  }

}

	$("#btn_sub").bind("click", check_form);

});