<!-- Hide code from non-js browsers
//First set up some global variables
var pickUp=""
var dropOff=""
var departUK=""
var departFrance=""
var leaveUKTime=""
var leaveFranceTime=""

var today=new Date()
var validForm="false"
//var childAge=16
var minAge=18

var mSecYear=(24*60*60*1000*365.25)
var mSecYear=(24*60*60*1000*365.25)
var mSecMonth=(24*60*60*1000*365.25)/12
var mSecWeek=(24*60*60*1000*7)
var mSecDay=(24*60*60*1000)

var boatMaxNoDays=90

var numberPeople=0
var departdd=0
var departmm=0
var departyy=0

var adults=0
var children=0

var emailAddress=""
var dd=""
var mm=""
var yy=""

var personData = new Array()

function dummyData(formObj) {
	formObj.forename1.value="Tim"
	formObj.surname1.value="Dwyer"
	formObj.birthday1.value="24/10/1968"
	formObj.pickUp.value="3/7/2006"
	formObj.dropOff.value="13/7/2006"
	formObj.address1.value="3 Acacia Villas"
	formObj.address2.value="Snowside Street"
	formObj.town.value="Brookside"
	formObj.postcode.value="TN34 7TY"	
	formObj.email.value="france@thedwyers.co.uk"
}


function checkAddress(formObj)
{
		formObj.address1.value=stripCharsNotInBagTidy(formObj.address1.value,addressChars)
		formObj.address2.value=stripCharsNotInBagTidy(formObj.address2.value,addressChars)
		formObj.town.value=stripCharsNotInBagTidy(formObj.town.value,addressChars)
		formObj.county.value=stripCharsNotInBagTidy(formObj.county.value,addressChars)
		formObj.country.value=stripCharsNotInBagTidy(formObj.country.value,addressChars)
		formObj.postcode.value=stripCharsNotInBagTidy(formObj.postcode.value,addressChars)
		
		//alert("186 checkaddress running")

		if (isWhitespace(formObj.address1.value)&&isWhitespace(formObj.address2.value)&&isWhitespace(formObj.town.value))
		{
			alert("You have not told us your address\nPlease fill this in and try again");
			formObj.address1.focus();
			return false;
		}
		
		//alert("Checking postcode")
		//alert("Postcode="+formObj.postcode.value)
		if (formObj.postcode.value == "")
		{
			alert("You have not told us your postcode\nPlease fill this in and try again");
			formObj.postcode.focus();
			return false;
		}
		
		if (formObj.country.value=="")
		{
			alert("You have not told us your country\nPlease fill this in and try again");
			formObj.country.focus();
			formObj.country.select();
			return false;
		}	
		

		//alert(formObj.email.value)	
		if (isWhitespace(formObj.email.value))
		{
			alert("The E-MAIL field is blank.\n\nPlease enter your e-mail address.")
			formObj.email.focus();
			return false;
		}
		if (formObj.email.value.indexOf ('@',0) == -1 ||formObj.email.value.indexOf ('.',0) == -1)
		{
			alert("The E-MAIL field requires a \"@\" and a \".\"be used.\n\nPlease re-enter your e-mail address.")
			formObj.email.select();
			formObj.email.focus();
			return false;
		}
	return true;
}



// persondata Object Constructor

function createData(forename, surname, birthday, person) {
	this.forename=forename
	this.surname=surname
	this.birthday=birthday
	this.person=person
}


function validateForm(formObj)
{
	if (formObj.pickUp.value=="test")
	{
		dummyData(formObj)
		return false
	}
	
	timeStamp=(formObj.timeStamp.value)*1000
	quoteRef =""

	adults=0
	children=0

	for (var i=1; i<2; i++) 
	{	
		eval("formObj.forename"+i+".value = stripCharsNotInBag(formObj.forename"+i+".value, nameChars)")
		eval("formObj.surname"+i+".value = stripCharsNotInBag(formObj.surname"+i+".value, nameChars)")
		eval("formObj.birthday"+i+".value = stripCharsNotInBag(formObj.birthday"+i+".value, dateChars)")
	}
	
	for (var i=1; i<2; i++) 
	{
  		personData[i]=new createData("", "", "", "","")
	}	
	//fill in personal data array from form objects
	for (var i=1; i<2; i++)
	{
		personData[i]=new createData(eval("formObj.forename"+i+".value"),eval("formObj.surname"+i+".value"),eval("formObj.birthday"+i+".value"))
	}
		
	pickUp=checkDate(formObj.pickUp.value,true)

	// Check validity of departure date
	if (pickUp==false)
	{
		alert("I can not understand the boat pick up date\nPlease fill in this date and try again");
		formObj.pickUp.focus()
		formObj.pickUp.select()
		return false;
	}
	
	if ((pickUp.getTime()+3600)<timeStamp)
	{
		//Note 3600 added on to the above to take account of the difference in calculation methods of the two timestamps
		alert("Sorry, I can not sell you a holiday that starts before today!");
		formObj.pickUp.focus()
		formObj.pickUp.select()
		return false;
	}
	
	dropOff=checkDate(formObj.dropOff.value,true)
	
	// Check validity of return date
	if (dropOff==false)
	{
		alert("I can not understand the boat drop off date\nPlease fill in this date and try again");
		formObj.dropOff.focus()
		formObj.dropOff.select()
		return false;
	}
	
	if (dropOff.getTime()<pickUp.getTime())
	{
		alert("The end date can not be before the start date");
		formObj.dropOff.focus()
		formObj.dropOff.select()
		return false;
	}
	

	boatDays=((dropOff.getTime()-pickUp.getTime())/mSecDay)+1
	if (boatDays>boatMaxNoDays)
	{
		alert("You can only hire up to "+boatMaxNoDays+" days");
		formObj.pickUp.focus()

		formObj.pickUp.select()
		return false;
	}
	
	baseName=getSelectValue(formObj.baseName)
	if (baseName==0)
	{
		alert("You have not selected a boatyard\nPlease select this and try again");
		formObj.baseName.focus();
		return false
	}
	
	boatID=getSelectValue(formObj.boatID)
	if (boatID==0)
	{
		alert("You have not selected a boat\nPlease select this and try again");
		formObj.boatID.focus();
		return false
	}
	
/*
	if (boatID.indexOf('North')>-1) north=1
	else north=0
	if (boatID.indexOf('South')>-1) south=1
	else south=0
*/	
	
	OneWay=getRadioValue(formObj.OneWay)
	CarTransfer=getRadioValue(formObj.CarTransfer)
	transfer=getRadioValue(formObj.transfer)
	
	if (OneWay==0 && (CarTransfer==1||transfer==1)) {
		alert("Transfers are only used when a one way trip is booked");
		return false
	}
	
/*
	if (OneWay==0 && (north==1||south==1)) {
		alert("You have selected a 'one-way' boat but not selected the 'one-way' option\nPlease alter your selections");
		return false
	}
	
	if (OneWay==1 && (north==0 && south==0)) {
		alert("You have selected a 'one-way' option but have not selected the 'one-way' boat\nPlease alter your selections");
		return false
	}
*/

	if (isWhitespace(personData[1].birthday))
	{

		alert("You have not told us your birthdate\nPlease fill this in and try again");
		formObj.birthday1.focus();
		return false
	}
			
	// Check validity of birth date
	birthDate=checkDate(personData[1].birthday,false)
	if (birthDate==false)
	{
		alert("Your date of birth doesn't appear to be correct\nPlease fill this in and try again");
		formObj.birthday1.focus();
		formObj.birthday1.select();
		return false
	}
		
	personData[1].birthday=birthDate
	personData[1].ageDepart=(pickUp.getTime()- birthDate.getTime())/mSecYear
	if(personData[1].ageDepart<minAge)
	{

		alert("Sorry, you are too young to hire this boat")
		person="tooYoung"
		return false
	}
	else
	{
		person="adult"
	}
	
	personData[1].person=person
	//alert("person1 is a "+person)
		
	adults=getSelectValue(formObj.adults)
	children=getSelectValue(formObj.children)
	
	/*Travel Removed November 2008
	travel=formObj.travel.checked
	vehicle=formObj.vehicle.value
	registration=formObj.registration.value
	vehicleHeight=formObj.vehicleHeight.value
	trailer=getRadioValue(formObj.trailer)
	//If there is a travel section filled in
	if (travel==true){
		travelCo=getSelectValue(formObj.travelCo)
		if (travelCo==0)
		{
			alert("You have not selected a travel operator (You have ticked the box to indicate that you want travel arrangements made)\nPlease select this and try again");
			formObj.travelCo.focus();
			return false
		}
		if ((isWhitespace(vehicle)||isWhitespace(registration))&&travelCo>1) {
			if (!confirm("If possible please enter your car make, model and registration.\nPress Cancel to complete the details or OK to send them to us later"))
			{
				return false
			}
		}
		departUK=checkDate(formObj.departUK.value,true)

		// Check validity of departure date
		if (departUK==false)
		{
			alert("I can not understand the UK departure date\nPlease fill in this date and try again");
			formObj.departUK.focus()
			formObj.departUK.select()
			return false;
		}
		
		if ((departUK.getTime()+3600)<timeStamp)
		{
			//Note 3600 added on to the above to take account of the difference in calculation methods of the two timestamps
			alert("Sorry, that start date is before today!");
			formObj.departUK.focus()
			formObj.departUK.select()
			return false;
		}
		if (dropOff.getTime()<departUK.getTime())
		{
			alert("The travel date can not be after the boat pick up date");
			formObj.departUK.focus()
			formObj.departUK.select()
			return false;
		}
		
		// Check validity of return date
		departFrance=checkDate(formObj.departFrance.value,true)

		if (departFrance==false)
		{
			alert("I can not understand the France departure date\nPlease fill in this date and try again");
			formObj.departFrance.focus()
			formObj.departFrance.select()
			return false;
		}
		if (departFrance.getTime()<dropOff.getTime())
		{
			alert("The return travel date can not be before the boat drop off date");
			formObj.departFrance.focus()
			formObj.departFrance.select()
			return false;
		}
	}
	else {
		//ie travel has not be checked
	
		if (!isWhitespace(vehicle)||!isWhitespace(registration)||!isWhitespace(departUK)||!isWhitespace(departFrance)) {
			if (confirm("You have not marked the box to show that you want a travel quote but you have filled some travel details in\nPress OK if you do NOT want any travel bookings or CANCEL to complete the details")) {
				formObj.vehicle.value=""
				formObj.registration.value=""
				formObj.departUK.value=""
				formObj.departFrance.value=""
			}
			else return false;
		}
	}
	*/

	/*
	confirmConditions=formObj.confirmConditions.checked
	if(confirmConditions!=true) {
		alert("You must confirm that you have agreed to our conditions by ticking the box at the bottom");
		return false
	}
	*/
	
	if(checkAddress(formObj)){
		return true
	}
	else return false
}
// end hiding -->
