
function checkMandatoryInput(input)
{
	if(input.value.length == 0) {
		input.className = "invalid";
		return(false);
	}
	
	input.className = "valid";
	return(true);
}

function isValidEmailAddress(email_address)
{
	var re = new RegExp("^[0-9a-zA-Z.]+@[0-9a-zA-Z-]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
	
	if(re.test(email_address.value) == false) {
		email_address.className = "invalid";
		return(false);
	}
	return(true);
}

function isValidPassword(password)
{
	if(password.value.length < 6) {
		password.className = "invalid";
		return(false);
	}
	return(true);
}

function isNumeric(phone_number)
{
	  var re = new RegExp("^[0-9]+$");
	  var str = removeWhitespace(phone_number.value);
	  
	 if(re.test(str) == false) {
		  phone_number.className = "invalid";
		  return(false);
	 }
	  return(true);
}

function matchedEmailAddress(email_address, email_address_verify)
{
	if(email_address.value != email_address_verify.value) {
		email_address_verify.className = "invalid";
		return(false);
	}
	return(true);
}

function matchedPasswords(password, password_verify)
{
	if(password.value != password_verify.value) {
		password_verify.className = "invalid";
		return(false);
	}
	return(true);
}

function removeWhitespace(str) { return(str.replace(/\s*/g, "")); }

//-----------------------------------------------------------------------------
// MAIN REGISTRATION FUNCTION PROCESSING
//-----------------------------------------------------------------------------

function validateRegisterForm() 
{	
	var error = 0;
	
	// all of the inputs that we wish to check from the registration form
	var forename = document.register_form.forename;
	var surname = document.register_form.surname;
	var phone_number = document.register_form.phone_number;
	var email_address = document.register_form.email_address;
	var email_address_verify = document.register_form.email_address_verify;
	var password = document.register_form.password;
	var password_verify = document.register_form.password_verify;
	
	if(checkMandatoryInput(forename) == false) error++;
	if(checkMandatoryInput(surname) == false) error++;
	if(checkMandatoryInput(phone_number) == false) error++;
	if(checkMandatoryInput(email_address) == false) error++;
	if(checkMandatoryInput(email_address_verify) == false) error++;
	if(checkMandatoryInput(password) == false) error++;
	if(checkMandatoryInput(password_verify) == false) error++;
	
	if(error > 0) {
		alert("Oxigen Registration Form - Missing Mandatory Fields" + "\n\n" + "Please enter the required information in the highlighted fields.");
		return;
	}
	
	// check that we have a numerical phone number entered
	if(isNumeric(phone_number) == false) {
		alert("Oxigen Registration Form - Validation Error" + 
			  "\n\n" + 
			  "You have entered an invalid phone number.\n" +
			  "Only numeric characters are accepted, e.g 0207 7303984"
			  );
		error++;
	}
	
	// check that we have a valid email address
	if(isValidEmailAddress(email_address) == false) {
		alert("Oxigen Registration Form - Validation Error" + "\n\n" + "You have entered an invalid email address.");
		error++;
	}
	
	// check that we have a valid password length.
	if(isValidPassword(password) == false) {
		alert("Oxigen Registration Form - Validation Error" + "\n\n" + "Passwords must be at least 6 characters in length.");
		error++;
	}
	
	if(error > 0) return;
	
	// check that the email address and the password re-entries match
	if(matchedEmailAddress(email_address, email_address_verify) == false) {
		alert("Oxigen Registration Form - Verification Error" + "\n\n" + "The email addresses that you provided do not match");
		error++;
	}
	
	// finally, check if the passwords match or not
	if(matchedPasswords(password, password_verify) == false) {
		alert("Oxigen Registration Form - Verification Error" + "\n\n" + "The passwords that you provided do not match");
		error++;
	}
	
	if(error > 0) return;
	
	//-------------------------------------------------------------------------
	// Everything was fine - submit the form to the php processor
	//-------------------------------------------------------------------------
	
	document.register_form.submit();
	return;
}