function validate() {
	var returnBool = true;
	var errorMessage = "";
	
	if (!isValidDate(document.getElementById("birthday").value, "DMY")){
		errorMessage += "Please enter a valid date in the format dd/mm/yyyy.<br />";
		returnBool = false;
	}		
	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("birthday").value.length < 1) {
		errorMessage += "Please enter your date of birth.<br />";
		returnBool = false;
	}		
	document.getElementById("errorMessage").innerHTML = errorMessage;
	return returnBool;		
}

function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}


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;
}