// Form Validation Functions

function validate_form(){
	// Validate Form Data
	
	var email_check, email_check_dot, errors = "";
	var form = document.forms['signup_form'];
	
	// Check Firstname Field is Valid
	if(form.firstname.value.length < 2){
		errors += "Please enter your Name\n";
		form.firstname.className = 'error_field';
	} else {
		form.firstname.className = 'valid_field';
	}		

	// Check Name Field is Valid
	if(form.surname.value.length < 2){
		errors += "Please enter your Surname\n";
		form.surname.className = 'error_field';
	} else {
		form.surname.className = 'valid_field';
	}	

	// Check Email Address Field is Valid - Check for @
	email_check_at = form.email.value.indexOf('@');
	email_check_dot = form.email.value.indexOf('.');
	if(form.email.value.length < 6) {
		errors += "Please enter a valid Email Address\n";
		form.email.className = 'error_field';
		form.verify.className = 'error_field';
	} else if(email_check_at < 1 || email_check_dot < 1 || email_check == form.email.value.length - 1){
		errors += "Please enter a valid Email Address\n";
		form.email.className = 'error_field';
		form.verify.className = 'error_field';
	} else {
		form.email.className = 'valid_field';
		form.verify.className = 'valid_field';
	}	
	
	// Check Email Address and Verify Email Address Match
	if(form.verify.value !== form.email.value || form.email.value.length < 6){
		errors += "Please verify your Email Address\n";
		form.verify.className = 'error_field';
		form.email.className = 'error_field';
	} else {
		form.verify.className = 'valid_field';
		form.email.className = 'valid_field';
	}

	// Check Telephone Field is Valid
	if(validate_phone_number(form.telephone.value) == 0){
		errors += "Please enter a valid Telephone Number\n";
		form.telephone.className = 'error_field';
	} else {
		form.telephone.className = 'valid_field';
	}	

	// Check Address Field is Valid
	if(form.address.value.length < 4){
		errors += "Please enter the first line of your Address\n";
		form.address.className = 'error_field';
	} else {
		form.address.className = 'valid_field';
	}	

	// Check Town Field is Valid
	if(form.town.value.length < 2){
		errors += "Please enter your Town\n";
		form.town.className = 'error_field';
	} else {
		form.town.className = 'valid_field';
	}
	
	// Check County Field is Valid
	if(form.county.value.length < 2){
		errors += "Please enter your County\n";
		form.county.className = 'error_field';
	} else {
		form.county.className = 'valid_field';
	}		

	// Check Postcode is Valid
	if(form.postcode.value.length < 7){
		errors += "Please enter a valid Postcode\n";
		form.postcode.className = 'error_field';
	} else {
		form.postcode.className = 'valid_field';
	}
	
	form.address2.className = 'valid_field'
		
	if(errors == ''){
		document.valid = true;
	} else {
		alert(errors);
		document.valid = false;	
	}	
}

function enable_submit(){
	// Only enable submit if either restaurant or accomodation checked
	var form = document.forms['signup_form']
	if(form.restaurant.checked == true || form.accommodation.checked == true){
		form.submit.disabled = false;	
	} else {
		form.submit.disabled = true;
	}
}

function validate_phone_number(phone_number){
	// Check Phone Number has no invalid characters
	var valid = 0;
	if(phone_number.length < 11){
		valid = 0;	
	} else {
		phone_regex = /^[0-9()+ -]*$/;
		if(phone_regex.test(phone_number)){
			valid = 1;					
		} else {
			valid = 0;	
		}
	}
	return valid;	
}
