	// JavaScript Document
	
	//----------------------------------------------------------------
	//##SUPPORT FUNCTIONS FOR FORM VALIDATION
	//----------------------------------------------------------------
	//Checks if msg is empty and assign empty value
	function checkMsg(msg){
		if(msg.lenght<1){
			msg = ""		
		}
		return(msg)
	}
	
	// return the value of the radio button that is checked
	// return an empty string if none are checked, or
	// there are no radio buttons
	function getCheckedValue(radioObj) {
		if(!radioObj)
			return "";
		var radioLength = radioObj.length;
		if(radioLength == undefined)
			if(radioObj.checked)
				return radioObj.value;
			else
				return "";
		for(var i = 0; i < radioLength; i++) {
			if(radioObj[i].checked) {
				return radioObj[i].value;
			}
		}
		return "";
	}
	
	// set the radio button with the given value as being checked
	// do nothing if there are no radio buttons
	// if the given value does not exist, all the radio buttons
	// are reset to unchecked
	function setCheckedValue(radioObj, newValue) {
		if(!radioObj)
			return;
		var radioLength = radioObj.length;
		if(radioLength == undefined) {
			radioObj.checked = (radioObj.value == newValue.toString());
			return;
		}
		for(var i = 0; i < radioLength; i++) {
			radioObj[i].checked = false;
			if(radioObj[i].value == newValue.toString()) {
				radioObj[i].checked = true;
			}
		}
	}
	//#Email validation checking.
	function validateEmailv2(email){	 
		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 THAT VALIDATES FORM
	//-----------------------------------------------------------------------------------
	//validate form1	
	function validate(){
		//form variables
		//var at=document.getElementById("email").value.indexOf("@")
		var at=document.getElementById("email").value
		var fname=document.getElementById("firstName").value
		var lname=document.getElementById("lastName").value
		var phone=document.getElementById("phone").value
		var cover=document.getElementById("cover").value
		var day=document.getElementById("day").value
		var month=document.getElementById("month").value
		var year=document.getElementById("year").value
		
		//error message variable
		var msg=""
		
		//define background colors for error state (errorColor) and success state (noColor)
		var errorColor="#D2EFF5" //Light blue
		var noColor = "#FFFFFF" // White
		
		//set all fields to be valid, and if invalid code wills et to false
		submitOK="true"
		
		//Validates first name
		if (fname.length<1){
			submitOK="false"
			//msg = checkMsg(msg)
			document.getElementById("firstName").style.background=errorColor
			msg = "- First Name\n";
		}else{
			document.getElementById("firstName").style.background=noColor;	
		}

		//Validates last name
		if (lname.length<1){
			submitOK="false"
			msg = checkMsg(msg)
			document.getElementById("lastName").style.background=errorColor
			msg = msg + "- Last Name\n";
		}else{
			document.getElementById("lastName").style.background=noColor;	
		}

		//Validates email address
		var result = validateEmailv2(at)
		if (result==false){
		 	submitOK="false"
			msg = checkMsg(msg)
			document.getElementById("email").style.background=errorColor			
			msg = msg + "- Email Address\n";
		}else{
			document.getElementById("email").style.background=noColor;	
		}

		//Validates phone number
		if (phone.length<1){
				submitOK="false"
				msg = checkMsg(msg)
				document.getElementById("phone").style.background=errorColor
				msg = msg + "- Phone Number\n";			
		}else{
			document.getElementById("phone").style.background=noColor;	
		}

		//Validates gender
		var result = getCheckedValue(document.forms['form1'].elements['sex'])			
		if (result==''){
			submitOK="false"
			msg = checkMsg(msg)
			//document.getElementById("sex").style.background=errorColor
			msg = msg + "- Gender\n";
		}else{
			//document.getElementById("sex").style.background=noColor	;
		}

		//Validates Life Insurance Cover
		if (cover.length<1 ){
			submitOK="false"
			msg = checkMsg(msg)
			document.getElementById("cover").style.background=errorColor
			msg = msg + "- Life Insurance Amount\n";			
		}else{
			document.getElementById("cover").style.background=noColor;	
		}
		//Validates Smoker status
		var result = getCheckedValue(document.forms['form1'].elements['smoker'])			
		if (result==''){
			submitOK="false"
			msg = checkMsg(msg)
			//document.getElementById("smoker").style.background=errorColor
			msg = msg + "- Are you a smoker?\n";
		}else{
			//document.getElementById("smoker").style.background=noColor;	
		}

		//Validates DOB - day
		if (day.length<2 || day<1 || day>31){
			submitOK="false"
			document.getElementById("day").style.background=errorColor
			msg = checkMsg(msg)
			msg = msg + "- Date of Birth (Day) \n";
		}else{
			document.getElementById("day").style.background=noColor
		}
		//Validates DOB - month
		if (month.length<2 || month<1 || month>12){
			submitOK="false"
			document.getElementById("month").style.background=errorColor
			msg = checkMsg(msg)
			msg = msg + "- Date of Birth (Month)\n";
		}else{
			document.getElementById("month").style.background=noColor
		}			
		//Validates DOB - year
		if (year.length<4 || year<1870 || year>2100){
			submitOK="false"
			document.getElementById("year").style.background=errorColor
			msg = checkMsg(msg)
			msg = msg + "- Date of Birth (Year) \n";
		}else{
			document.getElementById("year").style.background=noColor
		}
		//Validates insurance type
		var result = getCheckedValue(document.forms['form1'].elements['insurance_type_radio'])			
		if (result==''){
			submitOK="false"
			msg = checkMsg(msg)
			//document.getElementById("sex").style.background=errorColor
			msg = msg + "- Insurance Type\n";
		}else{
			//document.getElementById("sex").style.background=noColor	;
		}
		
						
		//display message if anything is found to be invalid
		if (submitOK=="false"){
			msg = "Please note all the following fields are required:\n\n" + msg
			alert(msg)			
			return false
		}
	}
