function validate() {
	var error = false;
	var errorMessage;
	var contactForm = document.contactForm;

	var birthFormat = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
	
	var firstname = contactForm.elements['firstname'].value;
	var lastname = contactForm.elements['lastname'].value;
	var state = contactForm.elements['state'].selectedIndex;
	var postcode = contactForm.elements['postcode'].value;
	var phone = contactForm.elements['phone'].value;
	var email = contactForm.elements['email'].value;
	var birth = contactForm.elements['date_of_birth'].value;
	var gender = contactForm.elements['gender'].selectedIndex;
	var tcs = contactForm.elements['privacy'].checked;
	errorMessage = "Oops! Looks like you've forgotten to complete\nthe following required fields:\n\n";
	
	if(firstname == "") {
		errorMessage += "- First Name\n";
		error = true;
	}
	
	if(lastname == "") {
		errorMessage += "- Last name\n";
		error = true;
	}
	
	if(state == "0") {
		errorMessage += "- State\n";
		error = true;
	}

	if(postcode == "") {
		errorMessage += "- Postcode\n";
		error = true;
	}
	
	if(phone == "") {
		errorMessage += "- Contact Number\n";
		error = true;
	}
	
	if(email == "") {
		errorMessage += "- Email Address\n";
		error = true;
	}
	else if(validEmail(email) == false) {
		errorMessage += "- A Valid Email Address\n";
		error = true;
	}

	if(birth == "") {
		errorMessage += "- Date Of Birth\n";
		error = true;
	}
	else if(!birth.match(birthFormat)) {
		errorMessage += "- Date Of Birth eg. dd/mm/yyyy\n";
		error = true;
	}

	if(gender == "0") {
		errorMessage += "- Gender\n";
		error = true;
	}
			
	if(!tcs) {
		errorMessage += "- Terms & Conditions\n";
		error = true;
	}

	if (error!=false) {
		alert(errorMessage);
		return false;
	}
	else {
		contactForm.submit();
		return false;
	}
}
			
function validEmail(x)	{
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(x);
}