function validate() {
	var returnBool = true;
	var errorMessage = "";
	
	if (document.getElementById("first_name").value.length < 1) {
		errorMessage += "Please enter your first name.<br />";
		returnBool = false;
	}
	if (document.getElementById("last_name").value.length < 1) {
		errorMessage += "Please enter your last name.<br />";
		returnBool = false;
	}
	if (document.getElementById("email").value.length < 1) {
		errorMessage += "Please enter your email address.<br />";
		returnBool = false;
	}	
	if (!validateEmailv2(document.getElementById("email").value)) {
		errorMessage += "Please enter a valid email.<br />";
		returnBool = false;
	}
	if (document.getElementById("postcode").value.length < 1) {
		errorMessage += "Please enter your postcode.<br />";
		returnBool = false;
	}			
	if (document.getElementById("dob").selectedIndex == 0) {
		errorMessage += "Please enter the day of your date of birth.<br />";
		returnBool = false;
	}	
	if (document.getElementById("dobm").value == 0) {
		errorMessage += "Please enter the month of your date of birth.<br />";
		returnBool = false;
	}	
	if (document.getElementById("doby").value.length < 1) {
		errorMessage += "Please enter the year of your date of birth.<br />";
		returnBool = false;
	}		
	if (!IsNumeric(document.getElementById("doby").value)) {
		errorMessage += "Please enter a valid year for your date of birth.<br />";
		returnBool = false;
	}
	if (document.getElementById("username").value.length < 1) {
		errorMessage += "Please enter a username.<br />";
		returnBool = false;
	}	
	if (document.getElementById("password").value.length < 1) {
		errorMessage += "Please enter a password.<br />";
		returnBool = false;
	}	
	document.getElementById("errorMessage").innerHTML = errorMessage;
	return returnBool;		
}

function validateEmailv2 (email) {
	if (email.length <= 0) {
	  return true;
	}
	var splitted = email.match("^(.+)@(.+)$");
	if (splitted == null) return false;
	if (splitted[1] != null ) {
	  var regexp_user=/^\"?[\w-_\.]*\"?$/;
	  if (splitted[1].match(regexp_user) == null) return false;
	}
	if (splitted[2] != null) {
	  var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
	  if (splitted[2].match(regexp_domain) == null) {
		var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
		if (splitted[2].match(regexp_ip) == null) return false;
	  }// if
	  return true;
	}
	return false;
}

function IsNumeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
      }
   }
   return IsNumber;
}