

	function Validate(){
	
		if ( 0 == document.getElementById("txtTitle").selectedIndex){
			alert("Please select your title") ;
			document.getElementById("txtTitle").focus() ;
			return false ;
		}
		
		if(0 == document.getElementById("txtForename").value.length){
			alert("Please enter your forename") ;
			document.getElementById("txtForename").focus() ;
			return false ;
		}
		
		if(0 == document.getElementById("txtSurname").value.length){
			alert("Please enter your surname") ;
			document.getElementById("txtSurname").focus() ;
			return false ;
		}
		
		if(0 == document.getElementById("txtAddress1").value.length){
			alert("Please enter your address") ;
			document.getElementById("txtAddress1").focus() ;
			return false ;
		}
		
		if(0 == document.getElementById("txtTown").value.length){
			alert("Please enter your town") ;
			document.getElementById("txtTown").focus() ;
			return false ;
		}		
		
		if(0 == document.getElementById("txtPostcode").value.length){
			alert("Please enter your postcode") ;
			document.getElementById("txtPostcode").focus() ;
			return false ;
		}	
		
		if(0 == document.getElementById("txtTelephoneNumber").value.length){
			alert("Please enter your telephone number") ;
			document.getElementById("txtTelephoneNumber").focus() ;
			return false ;
		}
		
		if(false == document.getElementById("chkOptIn").checked){
			document.getElementById("optInMessage").innerHTML = 'You must tick this field to become a Cruise Club Member';
			document.getElementById("chkOptIn").focus() ;
			return false ;
		}		
	
		if (document.getElementById("btn_action").value = "submit"){
			if (checkEmail() != true) {
				return false ;
			}
			if (checkTelephone() != true) {
				return false ;
			}				
			document.getElementById("success").value = "send" ;
		} else {
			document.getElementById("success").value = "do not";
		}
		
		var n ;
		var s ;
		
		for( n=0; n<=15; n++){
			s = document.getElementById("txtInfo" + n).value ;
			if(s.length > 0){
				if(IsNumeric(s) == false){
					alert("You can only enter a numeric value in the cruise detail fields") ;
					document.getElementById("txtInfo" + n).value = 0 ;
					document.getElementById("txtInfo" + n).focus() ;
					return false ;
				}
			}
		}
			
		return true ;
	}
	
	function checkEmail(){
		var email = document.getElementById("txtEmail").value ;
		if ( 0 != email.length ) {
			var char1 = email.indexOf("@") ;
			var char2 = email.indexOf(".") ;
			var char3 = -1 ;
			var lenE = email.length ;
			if ( - 1 != char1 && lenE > char1){    // check for more than 1 instance of the @ character
				var sSub = email.substring(char1 + 1, lenE) ;
				char3 = sSub.indexOf("@") ;
			} 
			if (-1 == char1 || -1 == char2 || char3 > -1){
				alert("Please enter a valid email address") ;
				document.getElementById("txtEmail").focus() ;
				return false ;
			} 
		}
		else
		{
			alert("Please enter a valid email address") ;
			document.getElementById("txtEmail").focus() ;
			return false ;
		}
		return true ;
	}
	
	function checkTelephone(){
	
		// telephone numbers aren't simply numeric often contain "(" ")" "+" and " "
		var sPhone = document.getElementById("txtTelephoneNumber").value ;
		if (0 != sPhone.length ){
			if( IsNumeric(sPhone) == false ){
				alert("The contact telephone number may only contain numbers") ;
				document.getElementById("txtTelephoneNumber").focus() ;				
				return false ;
			} 
		}
		return true ;
	}	
	
	function IsNumeric(strString)
	   //  check for valid numeric strings	
	   {
	   var strValidChars = "0123456789";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	
	   //  test strString consists of valid characters listed above
	   for (i = 0; i < strString.length && blnResult == true; i++)
		  {
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1)
			 {
			 blnResult = false;
			 }
		  }
	   return blnResult;
	   }	


