function validateForm() {

	var digitFilter = /[0-9]/;																//Define digit filter
	var spaceFilter = /^\s+|\s+$/g;															//Define space filter for ltrim and rtrim
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/;											//Define email filter
	var illegalCharsForEmail= /[\(\)\<\>\,\;\:\\\"\[\]]/;									//Define illegal chars
	

	var title = document.form1.selectTitle.value;
	var forename = document.form1.textForename.value;
	var surname = document.form1.textSurname.value;
	var address1 = document.form1.textAddress1.value;
	var town = document.form1.textTown.value;
	var postcodeFull = document.form1.textPostcodeFull.value;
	var country = document.form1.selectCountry.value;
	var homeEmail = (document.form1.textHomeEmail.value).replace(/ /gi, "");				//Remove all the spaces
	var telephone = (document.form1.textHomeTel.value).replace(/ /gi, "");					//Remove all the spaces
	var mobile = (document.form1.textMobile.value).replace(/ /gi, "");						//Remove all the spaces
	var babyDay = document.form1.selectDay.value;
	var babyMonth = document.form1.selectMonth.value;
	var babyYear = document.form1.selectYear.value;
	


/****************** VALIDATE QUESTION 1 *********************/
	var i;
	var numberOfChecked = 0;
	for(i=0;i<9;i++) {
		if(form1.elements['checkboxAnswer['+i+']'].checked) {
			numberOfChecked=1;
		}
	}
	if (numberOfChecked==0) {
		alert ("Please select at least one option of Question 1");
		return false;
	}
	
	if (form1.elements['checkboxAnswer['+7+']'].checked && document.form1.textOther.value.length==0) {
		alert ("Please state an information for Other section in Question 1");	
		return (false);
	}	
/************************** END *****************************/

/****************** VALIDATE QUESTION 2 *********************/
	var checkedRadio=0;
	for (var i=0; i<document.form1.radioButton.length; i++) {
		if (document.form1.radioButton[i].checked) {
			checkedRadio=checkedRadio+1;
		}
	}

	if (checkedRadio==0) {
		alert ("Please select an option of Question 2");	
		return (false);
	}
/************************** END *****************************/


	/************************************** SECTION 1 **************************************/
	if(title == ""){
		alert("ERROR: Please select your title");
		return false;
	}
	if(forename.replace(spaceFilter, "") == ""){
		alert ("ERROR: Please enter your forename");
		return false;
	}
	if(forename.match(digitFilter)){
		alert ("ERROR: Please do not enter digit as your forename");
		return false;
	}
	if(surname.replace(spaceFilter, "") == ""){
		alert ("ERROR: Please enter your surname");
		return false;
	}
	if(surname.match(digitFilter)){
		alert ("ERROR: Please do not enter digit as your surname");
		return false;
	}	
	if(address1.replace(spaceFilter, "") == ""){
		alert ("ERROR: Please enter your address");
		return false;
	}
	if(town.replace(spaceFilter, "") == ""){
		alert ("ERROR: Please enter your town");
		return false;
	}

	var code = country.substring(0, 4);
	if(code != "GB~~"){

		if(postcodeFull.replace(spaceFilter, "") == ""){
			alert ("ERROR: Please enter your postcode");
			return false;
		}
		
	} else {
		
		var noSpacePostcode = postcodeFull.replace(/ /gi, "");
		var postcodeLen = noSpacePostcode.length;
		if(postcodeLen == 5 || postcodeLen == 6 || postcodeLen == 7){

		} else {
			alert ("ERROR: A valid postcode should be min 5 max 7 characters for UK");
			return false;
		}
	}

	
	if(homeEmail.replace(spaceFilter, "") == ""){
		alert ("ERROR: Please enter your home email address");
		return false;
	} else {
		if(!(emailFilter.test(homeEmail))){
			alert ("ERROR: Please enter a valid home email address");
			return false;		
		} else {
			if(homeEmail.match(illegalCharsForEmail)){
				alert ("ERROR: The home email address contains illegal characters");
				return false;		
			}
		}
	}

	if(telephone != ""){
		var firstTwoDigits = telephone.substring(2,0);
	
		if(isNaN(telephone)){
			alert ("ERROR: Please enter digit only for home number");
			return false;
		} else if(telephone.length < 10){													//Normally 11 digits max but kept 12 in html
			alert ("ERROR: Please enter a valid home number");
			return false;
		}
		
		if("GB~~United Kingdom" == country){
			if (firstTwoDigits != 01 && firstTwoDigits != 02){
				alert ("ERROR: Please enter a valid home number");
				return false;
			}
		}
	}

	if(mobile != ""){
		var firstTwoDigits = mobile.substring(2,0);
	
		if(isNaN(mobile)){
			alert ("ERROR: Please enter digit only for mobile number");
			return false;
		} else if(mobile.length != 11){
			alert ("ERROR: Please enter 11 digits for mobile number");
			return false;
		}

		if("GB~~United Kingdom" == country){
			if (firstTwoDigits != 07){
				alert ("ERROR: Please enter a valid mobile number");
				return false;
			}
		}
	}



	if(babyDay == "" || babyMonth == "" || babyYear == ""){
		alert ("ERROR: Please select Baby’s due date");
		return false;
	}






/************************** END *****************************/

/***************** VALIDATE TERM and COND *******************/
	if (!(document.form1.checkboxTermsAndCond.checked)) {
        alert ("You need to accept the Term and Conditions to continue.");
	return (false);
    }				
/************************** END *****************************/
	
	return (true);
}






