	function validate_email(sEmail) {

  		var sQtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
  		var sDtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
  		var sAtom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
  		var sQuotedPair = '\\x5c[\\x00-\\x7f]';
  		var sDomainLiteral = '\\x5b(' + sDtext + '|' + sQuotedPair + ')*\\x5d';
  		var sQuotedString = '\\x22(' + sQtext + '|' + sQuotedPair + ')*\\x22';
  		var sDomain_ref = sAtom;
  		var sSubDomain = '(' + sDomain_ref + '|' + sDomainLiteral + ')';
  		var sWord = '(' + sAtom + '|' + sQuotedString + ')';
  		var sDomain = sSubDomain + '(\\x2e' + sSubDomain + ')*';
  		var sLocalPart = sWord + '(\\x2e' + sWord + ')*';
  		var sAddrSpec = sLocalPart + '\\x40' + sDomain; // complete RFC822 email address spec
  		var sValidEmail = '^' + sAddrSpec + '$'; // as whole string
  		
  		var reValidEmail = new RegExp(sValidEmail);
  		
  		if (reValidEmail.test(sEmail)) {
  		  return true;
  		}
  		
  		return false;
  		
	}


	function validateThis(check_boxes) {
	
		var title = document.getElementById("title").value;
		var firstname = document.getElementById("firstname").value;
		var lastname = document.getElementById("lastname").value;
		
		var email = document.getElementById("email").value;
		var email_repeat = document.getElementById("email_repeat").value;

		
		var password = document.getElementById("password").value;
		var password_repeat = document.getElementById("password_repeat").value;
		
		var error = "";
		
		if (title == "")
			error += "Please enter your title\n";
			
		if (firstname == "")
			error += "Please enter your first name\n";
			
		if (lastname == "")
			error += "Please enter your last name\n";
			
		if (email == "" || email_repeat == "" || (email != email_repeat) || (validate_email(email) == false || validate_email(email_repeat) == false))
			error += "Please enter the same valid email address into both email fields\n";
			
		if (password == "" || password_repeat == "" || (password != password_repeat))
			error += "Please enter the same password into both password fields\n";

		if (check_boxes == true) {
		
			if (CheckPostSms() != true)
				error += CheckPostSms();
				
		}
			
		
		if (error == "") {
		
			return true;
		
		} else {
		
			return error;
			
		}
	
	}
	
	
	function validateHoliday() {
	
		var title = document.getElementById("title").value;
		var firstname = document.getElementById("firstname").value;
		var lastname = document.getElementById("lastname").value;
		
		var email = document.getElementById("email").value;
		
		var error = "";
		
		if (title == "")
			error += "Please enter your title\n";
			
		if (firstname == "")
			error += "Please enter your first name\n";
			
		if (lastname == "")
			error += "Please enter your last name\n";
			
		if (email == "" || validate_email(email) == false)
			error += "Please enter a valid email address\n";

		
		if (error == "") {
		
			return true;
		
		} else {
		
			return error;
			
		}
	
	}
	

	function CheckPostSms() {
		var postbox = document.getElementById("comm_post").checked;
		var smsbox = document.getElementById("comm_sms").checked;
		var mobile = document.getElementById("mobile").value;
		var postcode = document.getElementById("postcode").value;
		var address1 = document.getElementById("address1").value;
		
		var error = "";
		
		if(postbox == true){
			if(postcode == "" || address1 == ""){
				error += "Please ensure you have entered an address or untick the 'Receive Special Offers by Post' box\n";
			}
		}
		
		if(smsbox == true){
			if(mobile == ""){
				error += "Please ensure you have entered a mobile number or untick the 'Receive Special Offers by SMS' box\n";
			}
		}
		
		
		if (error == "") {
		
			return true;
		
		} else {
		
			return error;
			
		}
	
	}	