 /*
	JS for welcome page
*/

function WriteLayer(ID,parentID,sText) {
	if (document.layers) { var oLayer = (parentID)? eval('document.' + parentID + '.document.' + ID + '.document') : document.layers[ID].document;
		oLayer.open();
		oLayer.write(sText);
		oLayer.close();
	} else if (document.all) {
		document.all[ID].innerHTML = sText;
	} else if (parseInt(navigator.appVersion)>=5&&navigator.appName=="Netscape") {
		document.getElementById(ID).innerHTML = sText;
	}
}

// Place this script wherever you want your calendar
// The first parameter must match the var name

// Set the first date to show in calendar
// If the opening date is after today, display from opening date
// If not show from today onwards
// Don't like hard coding the date here, but hey, only has to change once a year
// And there's a long time between seasons to change it over!
var openingDate = new Date(2007,2,25,0,0,0);
//var numCals = 8;
var previousLinkDisabled = false;
var nextLinkDisabled = false;

// Get today and set to midnight
var startDay = new Date();
startDay.setHours(0);
startDay.setMinutes(0);
startDay.setSeconds(0);
startDay.setMilliseconds(0);

if(startDay < openingDate) {
	startDay = openingDate;
}

// Now loop through 
var startMonth = startDay.getMonth();
var aCalendarStrings = new Array();
var aCalendarNames = new Array();
var iMonthLen;
var lastDayAvailable;
var firstDate = new Date();
var temp = '';
//var totalNumCals = 0;
var currentCalendar = 0;
var calCounter = 0;
var numDays = 2; // The number of days the drop down starts on
var numMonths = availableDates.length;

var id_agentForm;
var id_callCentreForm;

/*
for(var i = startMonth; i < numMonths; i++) {
	aMonth = availableDates[i];
	if(aMonth.length > 0) {
		aMonth = removeDates(aMonth,startDay);
		iMonthLen = aMonth.length;
		lastDayAvailable = aMonth[iMonthLen - 1].substr(0,2);
		firstDate = convertDate(aMonth[0]);
		eval('var cal' + i + ' = new calendar( \'cal' + i + '\', firstDate, \'onDateChange\', \'chauntry\', false, false, aMonth, Array(0,lastDayAvailable), ' + numDays + ' );');
		eval('temp = cal' + i + '.write();');
		aCalendarStrings[calCounter] = temp;
		aCalendarNames[calCounter] = 'cal' + i;
		calCounter = calCounter + 1;
		temp = "";
	}
}
*/
function onload_function() {
	if(document.getElementById('searchForm')){
		frm = document.searchForm;
		showing_agentForm = true;
		showing_callCentreForm = true;
		changeInfants();
		/*if(currentCalendar < aCalendarStrings.length) {
			WriteLayer('calContainer1',null,aCalendarStrings[currentCalendar]);
		}
		if((currentCalendar+1) < aCalendarStrings.length) {
			WriteLayer('calContainer2',null,aCalendarStrings[currentCalendar+1]);
		}
		checkLinks();
		
		dateSpecificEvents( frm.ParkDate.value);*/
	}
}

function checkLinks() {
	var previousOn = '<a href=\'javascript:scrollCalendars(-1);checkLinks();\'><img src="/images/groups/legolandtickets/left_arrow_off.gif" width="38" height="35" border="0"></a>';
	var previousOff = '<img src="/images/groups/legolandtickets/spacer.gif" width="38" height="35" border="0">';
	var nextOn = '<a href=\'javascript:scrollCalendars(1);checkLinks();\'><img src="/images/groups/legolandtickets/right_arrow_off.gif" width="38" height="35" border="0"></a>';
	var nextOff = '<img src="/images/groups/legolandtickets/spacer.gif" width="38" height="35" border="0">';
	
	if( currentCalendar == 0) {
		WriteLayer('calPreviousLink',null,previousOff);
		previousLinkDisabled = true;
	} else {
		WriteLayer('calPreviousLink',null,previousOn);
		previousLinkDisabled = false;
	}

	// Dont want a next link if we are on last TWO months

	if( currentCalendar >= (aCalendarStrings.length - 2)) {
		WriteLayer('calNextLink',null,nextOff);
		nextLinkDisabled = true;
	} else {
		WriteLayer('calNextLink',null,nextOn);
		nextLinkDisabled = false;
	}
}

function dateSpecificEvents( x) {
	var chosenDate;
	var numEvents = 5;
	var defaultCopy = "<table cellpadding=\"0\" cellspacing=\"0\" width=\"200\"><tr><td style=\"color:#ffffff;\"><span style=\"font-size:12px;font-weight:normal;\">After Dark Birthday Party - 8 & 9 April</span><br /><img src=\"/images/groups/legolandtickets/show.jpg\" border=\"0\" width=\"200\"><br /><span style=\"font-size:12px;\">Help LEGOLAND Windsor celebrate their 10th birthday! Marvel at the dazzling laser shows, acrobats, stilt-walkers and balloon artists!</span></td></tr></table>";
	var dateRanges = new Array(numEvents);
	var copy = defaultCopy;
	
	if( x == '') {
		chosenDate = new Date();
	} else {
		var chosenDateText = x.substring( 0, 2) + " " + x.substring( 2, 5) + " 20" + x.substring( 5, 7);
		chosenDate = new Date( chosenDateText);
	}
	
	var chosenDateTime = chosenDate.getTime();
	
	var secondDate = chosenDate;
	secondDate.setDate( secondDate.getDate()+1);
	var secondDateTime = secondDate.getTime();
	
	var thirdDate = new Date( secondDate);
	thirdDate.setDate( thirdDate.getDate()+1);
	var thirdDateTime = thirdDate.getTime();
	
	if( frm.SeatType.options[frm.SeatType.selectedIndex].value == 'LEG') {
		var numDays = 2;
	} else {
		var numDays = 3;
	}
	dateRanges[0] = new Array(new Date('08 APR 2006 00:00:00'),new Date('09 APR 2006 23:59:59'));
	dateRanges[1] = new Array(new Date('17 JUN 2006 00:00:00'),new Date('18 JUN 2006 23:59:59'));
	dateRanges[2] = new Array(new Date('19 JUN 2006 00:00:00'),new Date('22 JUN 2006 23:59:59'));
	dateRanges[3] = new Array(new Date('21 JUL 2006 00:00:00'),new Date('23 JUL 2006 23:59:59'));
	dateRanges[4] = new Array(new Date('09 AUG 2006 00:00:00'),new Date('10 AUG 2006 23:59:59'));
	
	var eventCopy = new Array(numEvents);
	eventCopy[0] = defaultCopy;
	eventCopy[1] = "<table cellpadding=\"0\" cellspacing=\"0\" width=\"200\"><tr><td style=\"color:#ffffff;\"><span style=\"font-size:12px;font-weight:normal;\">Medieval Jousting - 17 & 18 June</span><br /><img src=\"/images/groups/legolandtickets/jousting.jpg\" border=\"0\" width=\"200\"><br /><span style=\"font-size:12px;\">Enjoy the jousting</span></td></tr></table>";
	eventCopy[2] = 'Event copy 3';
	eventCopy[3] = 'Event copy 4';
	eventCopy[4] = 'Event copy 5';
	
	if( numDays == 2) {
		if(( chosenDateTime >= dateRanges[0][0].getTime()) && (chosenDateTime <= dateRanges[0][1].getTime()) || ( secondDateTime >= dateRanges[0][0].getTime()) && (secondDateTime <= dateRanges[0][1].getTime())) {
			copy = eventCopy[0];
		} else if(( chosenDateTime >= dateRanges[1][0].getTime()) && (chosenDateTime <= dateRanges[1][1].getTime()) || ( secondDateTime >= dateRanges[1][0].getTime()) && (secondDateTime <= dateRanges[1][1].getTime())) {
			copy = eventCopy[1];
		} 
	} else {
		if(( chosenDateTime >= dateRanges[0][0].getTime()) && (chosenDateTime <= dateRanges[0][1].getTime()) || ( secondDateTime >= dateRanges[0][0].getTime()) && (secondDateTime <= dateRanges[0][1].getTime()) || ( thirdDateTime >= dateRanges[0][0].getTime()) && (thirdDateTime <= dateRanges[0][1].getTime())) {
			copy = eventCopy[0];
		} else if(( chosenDateTime >= dateRanges[1][0].getTime()) && (chosenDateTime <= dateRanges[1][1].getTime()) || ( secondDateTime >= dateRanges[1][0].getTime()) && (secondDateTime <= dateRanges[1][1].getTime()) || ( thirdDateTime >= dateRanges[1][0].getTime()) && (thirdDateTime <= dateRanges[1][1].getTime())) {
			copy = eventCopy[1];
		}
	}	
	/*else if(( chosenDateTime >= dateRanges[2][0].getTime()) && (chosenDateTime <= dateRanges[2][1].getTime())) {
		copy = eventCopy[2];
	} else if(( chosenDateTime >= dateRanges[3][0].getTime()) && (chosenDateTime <= dateRanges[3][1].getTime())) {
		copy = eventCopy[3];
	} else if(( chosenDateTime >= dateRanges[4][0].getTime()) && (chosenDateTime <= dateRanges[4][1].getTime())) {
		copy = eventCopy[4];
	}*/
	
	WriteLayer( 'specialEvents', null, copy);	
}



function scrollCalendars(direction) {
	var counter = 0;
	var ccIndex;
	
	if(direction == 1) {
		WriteLayer('calContainer1',null,aCalendarStrings[currentCalendar + 1]);
		WriteLayer('calContainer2',null,aCalendarStrings[currentCalendar + 2]);
		currentCalendar = currentCalendar + 1;
	} else {
		WriteLayer('calContainer1',null,aCalendarStrings[currentCalendar - 1]);
		WriteLayer('calContainer2',null,aCalendarStrings[currentCalendar]);
		currentCalendar = currentCalendar - 1;
	}
	
}

function getQuote(){
	document.quoteForm.quoteRef.value=document.quoteForm.quoteRef.value.toUpperCase()
	document.quoteForm.submit()
}

/*
if(navigator.platform=="Win32"&&navigator.appName=="Microsoft Internet Explorer"&&window.attachEvent){
	document.writeln('<style type="text/css">img { visibility:hidden; } </style>')
	window.attachEvent("onload",fnLoadPngs)
		
}
*/

function setNightsDropDown(minNights) {
	var currentNights = frm.Nights.options[frm.Nights.selectedIndex].value;
	var maxNights = 5;
	
	frm.Nights.length = 0;
	
	var numElems = ((maxNights + 1) - minNights) +1;
	frm.Nights.length = numElems;
	frm.Nights[0].value = '0';
	frm.Nights[0].text = 'Nights';
	var j = 1;
	for( var i=minNights; j<numElems; i++) {
		frm.Nights[j].value = i;
		frm.Nights[j].text = i;
		if( currentNights == i) {
			frm.Nights.selectedIndex = j;
		}
		j++;
	}
}

function checkInfantCotRemoval( infDdown) {
	if( infDdown.disabled == false) {
		if( infDdown.options[infDdown.selectedIndex].value == 'N') {
			alert('Are you sure that you do not want a cot? Infants under 2 years old are normally accomodated in a cot. If you remove the cot from your booking please either take your own travel cot or select a larger room type with sufficient beds for the whole family, including your infant.');
		}
	}
}

function changeInfants() {
	if( (frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value - 0) > 0) {
		// Loop thru all elements
		// If its an infant check box, make it enabled
		frm.inf_room_1.disabled = false;
		frm.inf_room_1.selectedIndex = 1;
		if( (frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value - 0) >= 2) {
			frm.inf_room_2.disabled = false;
			frm.inf_room_2.selectedIndex = 1;
			if( (frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value - 0) == 2) {
				if( frm.inf_room_3.disabled == false) {
					frm.inf_room_3.disabled = true;
					frm.inf_room_3.selectedIndex = 0;
				}
			}
		} else {
			// Must be >0 <2 ie 1! Disable the others
			if( frm.inf_room_2.disabled == false) {
				frm.inf_room_2.disabled = true;
				frm.inf_room_2.selectedIndex = 0;
			}
			if( frm.inf_room_3.disabled == false) {
				frm.inf_room_3.disabled = true;
				frm.inf_room_3.selectedIndex = 0;
			}
		}
		if( (frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value - 0) == 3) {
			frm.inf_room_3.disabled = false;
			frm.inf_room_3.selectedIndex = 1;
		}
		/*
		if( document.getElementById) {
			id_roomInfantsNote = document.getElementById('roomInfantsNote');
		} else {
			id_roomInfantsNote = document.all('roomInfantsNote');
		}
		
		var infantsNote = "All under 2's are allocated a cot, not a bed. Maximum 1 cot per room.<br>Infants over 2 should be treated as a child in your room type selection."
		
		id_roomInfantsNote.innerHTML = infantsNote;
		*/
	} else {
	// Loop thru all elements and untick them all
	// If its an infant check box, make it disabled	
		frm.inf_room_1.disabled = true;
		frm.inf_room_1.selectedIndex = 0;
		frm.inf_room_2.disabled = true;
		frm.inf_room_2.selectedIndex = 0;
		frm.inf_room_3.disabled = true;
		frm.inf_room_3.selectedIndex = 0;
		/*
		if( document.getElementById) {
			id_roomInfantsNote = document.getElementById('roomInfantsNote');
		} else {
			id_roomInfantsNote = document.all('roomInfantsNote');
		}
		
		id_roomInfantsNote.innerHTML = "";
		*/
	
	}	
	
	
}

function hotelArrivalDate() {
	// Get the ParkDate
	// Give day before & day of 
	//var frm = document.searchForm;
	frm.ArrivalDate.length = 0;
		
	var pkDateStr = frm.ParkDate.value.substring( 0, 2) + " " + frm.ParkDate.value.substring( 2, 5) + " 20" + frm.ParkDate.value.substring( 5, 7) + " GMT";

	// Get a date object then loop adding 4 dates to the drop down
	oParkDate = new Date( pkDateStr );
		
	todaysDate = Date().substring( 4,15);
	IEtodaysDate = Date().substring( 4,10) + Date().substring( 19,24);
	testDate = frm.ParkDate.value.substring( 2, 5) + " " + frm.ParkDate.value.substring( 0, 2) + " 20" + frm.ParkDate.value.substring( 5, 7);
	
	frm.ArrivalDate.length = 2;
	if ((todaysDate == testDate) || (IEtodaysDate == testDate)) {
	for ( dayCount = 0; dayCount <=1; dayCount++ ) {
		oCurrDate = new Date( oParkDate.getTime() + ( dayCount * 86400000 ) );
		strCurrDate = oCurrDate.toUTCString().substr(0,16);
		optionIndex = 0 + dayCount;
		frm.ArrivalDate.options[optionIndex].value = strCurrDate;
		frm.ArrivalDate.options[optionIndex].text = strCurrDate;
	}
	} else {
	for ( dayCount = -1; dayCount <=0; dayCount++ ) {
		oCurrDate = new Date( oParkDate.getTime() + ( dayCount * 86400000 ) );
		strCurrDate = oCurrDate.toUTCString().substr(0,16);
		optionIndex = 1 + dayCount;
		frm.ArrivalDate.options[optionIndex].value = strCurrDate;
		frm.ArrivalDate.options[optionIndex].text = strCurrDate;
	}
	}
}

function dateAdd( startDate, numDays, numMonths, numYears ) {
	var returnDate = new Date( startDate.getTime() );
	var yearsToAdd = numYears;
	
	var month = returnDate.getMonth()	+ numMonths;
	if ( month > 11 ) {
		yearsToAdd = Math.floor( ( month + 1 ) / 12 );
		month -= 12*yearsToAdd;
		yearsToAdd += numYears;
	}
	returnDate.setMonth( month );
	returnDate.setFullYear( returnDate.getFullYear()	+ yearsToAdd );
	
	returnDate.setTime( returnDate.getTime() + 60000 * 60 * 25 * numDays );
	
	return returnDate;
}

// Function to show and hide cots text per room.
function showCots() {

	var cotsText = "+ cot";

	if( document.getElementById) {
		id_roomCot1 = document.getElementById('roomCot1');
		id_roomCot2 = document.getElementById('roomCot2');
		id_roomCot3 = document.getElementById('roomCot3');
	} else {
		id_roomCot1 = document.all('roomCot1');
		id_roomCot2 = document.all('roomCot2');
		id_roomCot3 = document.all('roomCot3');
	}
	
	
	if(frm.inf_room_1.checked == true) {		
		id_roomCot1.innerHTML = cotsText;
	} else {
		id_roomCot1.innerHTML = "";
	}
	
	if(frm.inf_room_2.checked == true) {
		id_roomCot2.innerHTML = cotsText;
	} else {
		id_roomCot2.innerHTML = "";
	}
	
	if(frm.inf_room_3.checked == true) {
		id_roomCot3.innerHTML = cotsText;
	} else {
		id_roomCot3.innerHTML = "";
	}	
}



function checkTickets_v_Rooms() {
	// Check that they have chosen the correct rooms for the number of people they have selected.
	// ie right num adults for a double, not 3 adults, and just a double.
	var roomNumAdults = 0;
	var roomNumChildren = 0;
	
	var parkNumAdults = 0;
	var parkNumChildren = 0;
	
	var numRooms = 0;
	var msg = "";
	
	parkNumAdults = frm.parkAdults.options[frm.parkAdults.selectedIndex].value;
	// parkInfants2 - total 3 dropdowns 
	//parkNumChildren = ((frm.parkChildren.options[frm.parkChildren.selectedIndex].value - 0) + (frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value - 0));
	parkNumChildren = frm.parkChildren.options[frm.parkChildren.selectedIndex].value - 0;

	if(  frm.Room1.options[frm.Room1.selectedIndex].value != '') {
		var room1Adults = frm.Room1.options[frm.Room1.selectedIndex].value.substr(1,1);
		var room1Children = frm.Room1.options[frm.Room1.selectedIndex].value.substr(2,1);
		roomNumAdults = roomNumAdults + (room1Adults - 0);
		roomNumChildren = roomNumChildren + (room1Children - 0);
		numRooms++;
	}
	
	if(  frm.Room1.options[frm.Room1.selectedIndex].value != '' && frm.Room2.options[frm.Room2.selectedIndex].value != '') {
		var room2Adults = frm.Room2.options[frm.Room2.selectedIndex].value.substr(1,1);
		var room2Children = frm.Room2.options[frm.Room2.selectedIndex].value.substr(2,1);
		roomNumAdults = roomNumAdults + (room2Adults - 0);
		roomNumChildren = roomNumChildren + (room2Children - 0);
		numRooms++;
	}
	
	if(  frm.Room1.options[frm.Room1.selectedIndex].value != '' && frm.Room2.options[frm.Room2.selectedIndex].value != '' && frm.Room3.options[frm.Room3.selectedIndex].value != '') {
		var room3Adults = frm.Room3.options[frm.Room3.selectedIndex].value.substr(1,1);
		var room3Children = frm.Room3.options[frm.Room3.selectedIndex].value.substr(2,1);
		roomNumAdults = roomNumAdults + (room3Adults - 0);
		roomNumChildren = roomNumChildren + (room3Children - 0);
		numRooms++;
	}
	
	
	if( numRooms < frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value) {
		msg += "You have not selected the correct number of rooms. Only one infant under 2 per room.\n";
	}
	
	
	if(( roomNumAdults != parkNumAdults) || ( roomNumChildren != parkNumChildren)) {
		//msg += 'Please check your room type selection again, paying particular attention to any child and infant selection.\n';
		msg += 'Please check your room type selection again, paying particular attention to any child and infant selection. You have chosen ' + roomNumAdults + ' adults and ' + roomNumChildren + ' children for the hotel, ' + parkNumAdults + ' adults and ' + parkNumChildren + ' children for the park.\n';
	
	}	

	return( msg);
}

function checkTickets_v_Rooms2() {
	// Check that they have chosen the correct rooms for the number of people they have selected.
	// ie right num adults for a double, not 3 adults, and just a double.
	var roomNumAdults = 0;
	var roomNumChildren = 0;
	
	var parkNumAdults = 0;
	var parkNumChildren = 0;
	
	var numRooms = 0;
	var msg = "";
	
	parkNumAdults = frm.parkAdults.options[frm.parkAdults.selectedIndex].value;
	// parkInfants2 - total 3 dropdowns 
	//parkNumChildren = ((frm.parkChildren.options[frm.parkChildren.selectedIndex].value - 0) + (frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value - 0));
	parkNumChildren = frm.parkChildren.options[frm.parkChildren.selectedIndex].value - 0;

	if(  frm.Room1.options[frm.Room1.selectedIndex].value != '') {
		var room1Adults = frm.Room1.options[frm.Room1.selectedIndex].value.substr(1,1);
		var room1Children = frm.Room1.options[frm.Room1.selectedIndex].value.substr(2,1);
		roomNumAdults = roomNumAdults + (room1Adults - 0);
		roomNumChildren = roomNumChildren + (room1Children - 0);
		numRooms++;
	}
	
	if(  frm.Room2.options[frm.Room2.selectedIndex].value != '') {
		var room2Adults = frm.Room2.options[frm.Room2.selectedIndex].value.substr(1,1);
		var room2Children = frm.Room2.options[frm.Room2.selectedIndex].value.substr(2,1);
		roomNumAdults = roomNumAdults + (room2Adults - 0);
		roomNumChildren = roomNumChildren + (room2Children - 0);
		numRooms++;
	}
	
	if(  frm.Room3.options[frm.Room3.selectedIndex].value != '') {
		var room3Adults = frm.Room3.options[frm.Room3.selectedIndex].value.substr(1,1);
		var room3Children = frm.Room3.options[frm.Room3.selectedIndex].value.substr(2,1);
		roomNumAdults = roomNumAdults + (room3Adults - 0);
		roomNumChildren = roomNumChildren + (room3Children - 0);
		numRooms++;
	}
	
	
	if( numRooms < frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value) {
		msg += "You have not selected the correct number of rooms. Only one infant under 2 per room.\n";
	}
	
	
	if(( roomNumAdults != parkNumAdults) || ( roomNumChildren != parkNumChildren + (frm.parkInfants2.options[frm.parkInfants2.options].value -0))) {
		//msg += 'Please check your room type selection again, paying particular attention to any child and infant selection.\n';
		msg += 'Please check your room type selection again, paying particular attention to any child and infant selection. You have chosen ' + roomNumAdults + ' adults and ' + roomNumChildren + ' children for the hotel, ' + parkNumAdults + ' adults and ' + parkNumChildren + ' children for the park.\n';
	
	}	

	return( msg);
}


function checkInfants() {
	var numInfantBoxesTicked = 0;
	var msg = "";
	
	if( frm.inf_room_1.options[frm.inf_room_1.selectedIndex].value == 'Y') {
		numInfantBoxesTicked++;
	}
	
	if( frm.inf_room_2.options[frm.inf_room_2.selectedIndex].value == 'Y') {
		numInfantBoxesTicked++;
	}
	
	if( frm.inf_room_3.options[frm.inf_room_3.selectedIndex].value == 'Y') {
		numInfantBoxesTicked++;
	}
	
	if( numInfantBoxesTicked > frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value) {
		var ticketsPlural = '';
		if( frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value > 1) {
		ticketsPlural = 's';
		}
		
		var cotsPlural = '';
		
		if( numInfantBoxesTicked > 1) {
		cotsPlural = 's';
		}
		
		msg = "You have only selected " + frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value + " infant ticket" + ticketsPlural + " for the park, but asked for " + numInfantBoxesTicked + " cot" + cotsPlural + " at the hotel.\n";
	}
	
	return( msg);
}

function checkNightsAtHotel() {
	msg = '';
	
	if( frm.Nights.options[frm.Nights.selectedIndex].value == '0') {
	msg = 'You must select how many nights you intend to stay at the hotel.\n';
	}
	
	return( msg);
}

function checkParkDate() {
	var msg = '';
	
	if( frm.ParkDate.value == '' || frm.ParkDate.value == 'select') {
	msg = 'Please select your park entry date by clicking on the calendar.\n';
	}
	
	return(msg);

}

function checkHotelDate() {
	var msg = '';
	
	if( frm.ArrivalDate.value == '') {
	msg = 'Please select the date you will arrive at the hotel.\n';
	}
	
	return(msg);
}

function checkForm() {
	var res = true;
	var msg = '';
	var tickets = '';
	var infants = '';
	var nights = '';
	var parkDate = '';
	parkDate = checkParkDate();
	
	if( parkDate != '') {
		msg += parkDate;
	}
	
	hotelDate = checkHotelDate();
	
	if( hotelDate != '') {
	msg += hotelDate;
	}
	
	tickets = checkTickets_v_Rooms();
	
	if(tickets != '') {
	msg += tickets;
	}
	
	infants = checkInfants();
	if( infants != '') {
	msg += infants;
	}
	
	nights = checkNightsAtHotel();
	
	if( nights != '') {
	msg += nights;
	}
	
	
	if( frm.SeatType.value == 'AL2') {
	
		allowedDate = check_form_alton_onsubmit();
		
		if( allowedDate != '') {
		msg += allowedDate;
		}	
	}
	
	if( !( msg == '')) {
	alert( 'The following errors occured: \n\n' + msg);
	res = false;
	}
	
	return( res);
}
// for the holidayextras site theme park engine

function parkChange() {

var frm = document.searchForm;

var dropDown = frm.parkDropdown.options[frm.parkDropdown.selectedIndex].value;

if ( dropDown == "alton" ) {

frm.Park.value = "THMALT";

frm.action = "https://secure.holidayextras.co.uk/pasalton/c/availability";

} else if ( dropDown == "thorpe" ) {

frm.Park.value = "THMTHO";

frm.action = "https://secure.holidayextras.co.uk/pasthorpe/c/availability";
} 
changefunction();
}

function submitForm() {
var frm = document.searchForm;
frm.submit();
}

// adds options to select fields
function addOption(selectObject,optionText,optionValue) { 
var optionObject = new Option(optionText,optionValue);
var optionRank = selectObject.options.length;

selectObject.options[optionRank]=optionObject; 
}

// ticket type dropdown

function changefunction() {

var frm = document.searchForm;

frm.SeatType.options.length = 0;

if(frm.parkDropdown.options[frm.parkDropdown.selectedIndex].value != "select") {

if(frm.parkDropdown.options[frm.parkDropdown.selectedIndex].value == "alton") {

addOption(frm.SeatType,"Please Select Ticket Type","select");
addOption(frm.SeatType,"1 Day Ticket","AL1");
addOption(frm.SeatType,"2 Day Ticket","AL2");

} else if (frm.parkDropdown.options[frm.parkDropdown.selectedIndex].value == "thorpe") {

addOption(frm.SeatType,"Please Select Ticket Type","select");
addOption(frm.SeatType,"1 Day Ticket","TP1");
addOption(frm.SeatType,"2 Day Ticket","TP2");
// addOption(frm.SeatType,"Thorpe Park & Chessington Ticket","TP3");

} 

/* else if (frm.parkDropdown.options[frm.parkDropdown.selectedIndex].value == "chessington") {

addOption(frm.SeatType,"Please Select Ticket Type","select");
addOption(frm.SeatType,"1 Day Ticket","CH1");
addOption(frm.SeatType,"2 Day Ticket","CH2");
// addOption(frm.SeatType,"Combined Chessington and Thorpe Park ticket","CH3");

} else if (frm.parkDropdown.options[frm.parkDropdown.selectedIndex].value == "legoland") {

addOption(frm.SeatType,"Please Select Ticket Type","select");
addOption(frm.SeatType,"2 Day Unlimited Access Pass - 2 for 1","LEG");
addOption(frm.SeatType,"3 Day Unlimited Access Pass - 3 for 2","LEH"); 
}
*/

} else {

addOption(frm.SeatType,"Please Select Park","select");

}
}

// option to select more than 1 room


function checkExtraRooms()  {
	if (frm.extraRoomSelection.checked) {
		document.getElementById('extraRooms2').style.display='';
		document.getElementById('extraRooms3').style.display='';
	} else {
		document.getElementById('extraRooms2').style.display='none';
		document.getElementById('extraRooms3').style.display='none';
	} 
	
}

function check_form_thorpe() {
var frm = document.searchForm

var closeddates_thorpe = new Array(28) 
		
		closeddates_thorpe[0]="02Oct06";
		closeddates_thorpe[1]="03Oct06";
		closeddates_thorpe[2]="04Oct06";
		closeddates_thorpe[3]="05Oct06";		
		closeddates_thorpe[4]="09Oct06";
		closeddates_thorpe[5]="10Oct06";
		closeddates_thorpe[6]="11Oct06";
		closeddates_thorpe[7]="12Oct06";
		
		closeddates_thorpe[8]="19Feb07";
		closeddates_thorpe[9]="20Feb07";
		closeddates_thorpe[10]="21Feb07";
		closeddates_thorpe[11]="22Feb07";
		closeddates_thorpe[12]="23Feb07";
		closeddates_thorpe[13]="26Feb07";
		closeddates_thorpe[14]="27Feb07";
		closeddates_thorpe[15]="28Feb07";
		closeddates_thorpe[16]="01Mar07";
		closeddates_thorpe[17]="02Mar07";
		closeddates_thorpe[18]="05Mar07";
		closeddates_thorpe[19]="06Mar07";
		closeddates_thorpe[20]="07Mar07";
		closeddates_thorpe[21]="08Mar07";
		closeddates_thorpe[22]="09Mar07";
		closeddates_thorpe[23]="12Mar07";
		closeddates_thorpe[24]="13Mar07";
		closeddates_thorpe[25]="14Mar07";
		closeddates_thorpe[26]="15Mar07";
		closeddates_thorpe[27]="16Mar07";
		
		checkClosed( closeddates_thorpe, ticketDayCheck( frm.Park ) );
		
		/*
		for(i=0;i<27;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_thorpe[i]) {
				alert("Park is closed on this date - please check the opening times and try again")
				return false;
				frm.ParkDate.focus();
			}
		}
		*/

}

function check_form_alton() {
var frm = document.searchForm

var closeddates_alton = new Array(19) 
		
		closeddates_alton[0]="26Feb07";
		closeddates_alton[1]="27Feb07";
		closeddates_alton[2]="28Feb07";
		closeddates_alton[3]="01Mar07";		
		closeddates_alton[4]="02Mar07";
		closeddates_alton[5]="03Mar07";
		closeddates_alton[6]="04Mar07";
		closeddates_alton[7]="05Mar07";
		closeddates_alton[8]="06Mar07";
		closeddates_alton[9]="07Mar07";
		closeddates_alton[10]="08Mar07";
		closeddates_alton[11]="09Mar07";
		closeddates_alton[12]="10Mar07";
		closeddates_alton[13]="11Mar07";
		closeddates_alton[14]="12Mar07";
		closeddates_alton[15]="13Mar07";
		closeddates_alton[16]="14Mar07";
		closeddates_alton[17]="15Mar07";
		closeddates_alton[18]="16Mar07";

var half_term_dates = new Array(16) 
		
		half_term_dates[0]="10Feb07";
		half_term_dates[1]="11Feb07";
		half_term_dates[2]="12Feb07";
		half_term_dates[3]="13Feb07";		
		half_term_dates[4]="14Feb07";
		half_term_dates[5]="15Feb07";
		half_term_dates[6]="16Feb07";
		half_term_dates[7]="17Feb07";
		half_term_dates[8]="18Feb07";
		half_term_dates[9]="19Feb07";
		half_term_dates[10]="20Feb07";
		half_term_dates[11]="21Feb07";
		half_term_dates[12]="22Feb07";
		half_term_dates[13]="23Feb07";
		half_term_dates[14]="24Feb07";
		half_term_dates[15]="25Feb07";

		checkClosed( closeddates_alton, ticketDayCheck( frm.Park ) );
		
		/*
		for(i=0;i<18;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_alton[i]) {
				alert("Park is closed on this date - please check the opening times and try again.\n")
				return false;
				frm.ParkDate.focus();
			}
		}
		*/


		for(i=0;i<15;i++) {
			if( (frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == half_term_dates[i]) && (frm.SeatType.options[frm.SeatType.options.selectedIndex].value == "AL2") ) {
				alert("Two Day Tickets are not available for February Half Term visits.\n")
				return false;
				frm.SeatType.focus();
			}
		}



}

function check_form_alton_onsubmit() {
var frm = document.searchForm

msg = '';

var closeddates_alton = new Array(19) 
		
		closeddates_alton[0]="26Feb07";
		closeddates_alton[1]="27Feb07";
		closeddates_alton[2]="28Feb07";
		closeddates_alton[3]="01Mar07";		
		closeddates_alton[4]="02Mar07";
		closeddates_alton[5]="03Mar07";
		closeddates_alton[6]="04Mar07";
		closeddates_alton[7]="05Mar07";
		closeddates_alton[8]="06Mar07";
		closeddates_alton[9]="07Mar07";
		closeddates_alton[10]="08Mar07";
		closeddates_alton[11]="09Mar07";
		closeddates_alton[12]="10Mar07";
		closeddates_alton[13]="11Mar07";
		closeddates_alton[14]="12Mar07";
		closeddates_alton[15]="13Mar07";
		closeddates_alton[16]="14Mar07";
		closeddates_alton[17]="15Mar07";
		closeddates_alton[18]="16Mar07";

var half_term_dates = new Array(16) 
		
		half_term_dates[0]="10Feb07";
		half_term_dates[1]="11Feb07";
		half_term_dates[2]="12Feb07";
		half_term_dates[3]="13Feb07";		
		half_term_dates[4]="14Feb07";
		half_term_dates[5]="15Feb07";
		half_term_dates[6]="16Feb07";
		half_term_dates[7]="17Feb07";
		half_term_dates[8]="18Feb07";
		half_term_dates[9]="19Feb07";
		half_term_dates[10]="20Feb07";
		half_term_dates[11]="21Feb07";
		half_term_dates[12]="22Feb07";
		half_term_dates[13]="23Feb07";
		half_term_dates[14]="24Feb07";
		half_term_dates[15]="25Feb07";

		
		checkClosed( closeddates_alton, ticketDayCheck( frm.Park ) );
		/*
		for(i=0;i<18;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_alton[i]) {
				msg = 'Park is closed on this date - please check the opening times and try again.\n';
			}
		}

*/
		for(i=0;i<15;i++) {
			if( (frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == half_term_dates[i]) && (frm.SeatType.options[frm.SeatType.options.selectedIndex].value == "AL2") ) {
				msg = 'Two Day Tickets are not available for February Half Term visits.\n';
			}
		}


		return( msg);
		
}


function check_form_legoland() {
var frm = document.searchForm

var closeddates_legoland = new Array(22) 

closeddates_legoland[0]="24Apr07";
closeddates_legoland[1]="25Apr07";
closeddates_legoland[2]="01May07"; 
closeddates_legoland[3]="02May07"; 
closeddates_legoland[4]="08May07"; 
closeddates_legoland[5]="09May07";
closeddates_legoland[6]="15May07";
closeddates_legoland[7]="16May07";
closeddates_legoland[8]="22May07";
closeddates_legoland[9]="23May07";
closeddates_legoland[10]="11Sep07";
closeddates_legoland[11]="12Sep07";
closeddates_legoland[12]="18Sep07"; 
closeddates_legoland[13]="19Sep07"; 
closeddates_legoland[14]="25Sep07"; 
closeddates_legoland[15]="26Sep07";
closeddates_legoland[16]="02Oct07";
closeddates_legoland[17]="03Oct07";
closeddates_legoland[18]="09Oct07";
closeddates_legoland[19]="10Oct07";
closeddates_legoland[20]="16Oct07";
closeddates_legoland[21]="17Oct07";

checkClosed( closeddates_legoland, ticketDayCheck( frm.Park ) );

/*
for(i=0;i<21;i++) {
	if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_legoland[i]) {
		alert("Park is closed on this date - please check the opening times and try again")
		return false;
		frm.ParkDate.focus();
	}
}
*/
}


function check_form_paultons() {
var frm = document.searchForm

var closeddates_paultons = new Array(9) 

closeddates_paultons[0]="27Feb07";
closeddates_paultons[1]="28Feb07";
closeddates_paultons[2]="01Mar07"; 
closeddates_paultons[3]="06Mar07";
closeddates_paultons[4]="07Mar07";
closeddates_paultons[5]="08Mar07"; 
closeddates_paultons[6]="13Mar07";
closeddates_paultons[7]="14Mar07";
closeddates_paultons[8]="15Mar07";

checkClosed( closeddates_paultons, ticketDayCheck( frm.Park ) );

/*
for(i=0;i<9;i++) {
if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_paultons[i]) {
alert("Park is closed on this date - please check the opening times and try again")
return false;
frm.ParkDate.focus();
}
}
*/
}

function check_form_mds() {
var frm = document.searchForm

var closeddates_mds = new Array(66) 

closeddates_mds[0]="26Mar07";
closeddates_mds[1]="27Mar07";
closeddates_mds[2]="28Mar07"; 
closeddates_mds[3]="29Mar07";
closeddates_mds[4]="30Mar07";
closeddates_mds[5]="16Apr07"; 
closeddates_mds[6]="17Apr07";
closeddates_mds[7]="18Apr07";
closeddates_mds[8]="19Apr07";
closeddates_mds[9]="20Apr07";
closeddates_mds[10]="23Apr07";
closeddates_mds[11]="24Apr07";
closeddates_mds[12]="25Apr07";
closeddates_mds[13]="26Apr07";
closeddates_mds[14]="27Apr07";
closeddates_mds[15]="30Apr07";
closeddates_mds[16]="01May07";
closeddates_mds[17]="02May07";
closeddates_mds[18]="03May07";
closeddates_mds[19]="04May07";
closeddates_mds[20]="08May07";
closeddates_mds[21]="09May07";
closeddates_mds[22]="10May07";
closeddates_mds[23]="11May07";
closeddates_mds[24]="14May07";
closeddates_mds[25]="21May07";
closeddates_mds[26]="04Jun07";
closeddates_mds[27]="11Jun07";
closeddates_mds[28]="18Jun07";
closeddates_mds[29]="25Jun07";
closeddates_mds[30]="03Sep07";
closeddates_mds[31]="04Sep07";
closeddates_mds[32]="05Sep07";
closeddates_mds[33]="06Sep07";
closeddates_mds[34]="07Sep07";
closeddates_mds[35]="10Sep07";
closeddates_mds[36]="11Sep07";
closeddates_mds[37]="12Sep07";
closeddates_mds[38]="13Sep07";
closeddates_mds[39]="14Sep07";
closeddates_mds[40]="17Sep07";
closeddates_mds[41]="18Sep07";
closeddates_mds[42]="19Sep07";
closeddates_mds[43]="20Sep07";
closeddates_mds[44]="25Sep07";
closeddates_mds[45]="26Sep07";
closeddates_mds[46]="27Sep07";
closeddates_mds[47]="28Sep07";
closeddates_mds[48]="01Oct07";
closeddates_mds[49]="02Oct07";
closeddates_mds[50]="03Oct07";
closeddates_mds[51]="04Oct07";
closeddates_mds[52]="05Oct07";
closeddates_mds[53]="08Oct07";
closeddates_mds[54]="09Oct07";
closeddates_mds[55]="10Oct07";
closeddates_mds[56]="11Oct07";
closeddates_mds[57]="12Oct07";
closeddates_mds[58]="22Oct07";
closeddates_mds[59]="23Oct07";
closeddates_mds[60]="24Oct07";
closeddates_mds[61]="25Oct07";
closeddates_mds[62]="26Oct07";
closeddates_mds[63]="29Oct07";
closeddates_mds[64]="30Oct07";
closeddates_mds[65]="31Oct07";

	checkClosed( closeddates_mds, ticketDayCheck( frm.Park ) );

/*
for(i=0;i<66;i++) {
if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_mds[i]) {
alert("Park is closed on this date - please check the opening times and try again")
return false;
frm.ParkDate.focus();
}
}
*/
}


function check_form_chessington() {
var frm = document.searchForm

var closeddates_chessington = new Array(58) 
		
closeddates_chessington[0]="09May07";
closeddates_chessington[1]="10May07";
closeddates_chessington[2]="15May07";
closeddates_chessington[3]="16May07";
closeddates_chessington[4]="17May07";
closeddates_chessington[5]="11Sep07";
closeddates_chessington[6]="12Sep07";
closeddates_chessington[7]="13Sep07";
closeddates_chessington[8]="18Sep07";
closeddates_chessington[9]="19Sep07";
closeddates_chessington[10]="20Sep07";
closeddates_chessington[11]="25Sep07";
closeddates_chessington[12]="26Sep07";
closeddates_chessington[13]="27Sep07";
closeddates_chessington[14]="01Oct07";
closeddates_chessington[15]="02Oct07";
closeddates_chessington[16]="03Oct07";
closeddates_chessington[17]="04Oct07";
closeddates_chessington[18]="08Oct07";
closeddates_chessington[19]="09Oct07";
closeddates_chessington[20]="10Oct07";
closeddates_chessington[21]="11Oct07";
closeddates_chessington[22]="15Oct07";
closeddates_chessington[23]="16Oct07";
closeddates_chessington[24]="17Oct07";
closeddates_chessington[25]="01Nov07";
closeddates_chessington[26]="02Nov07";
closeddates_chessington[27]="05Nov07";
closeddates_chessington[28]="06Nov07";
closeddates_chessington[29]="07Nov07";
closeddates_chessington[30]="08Nov07";
closeddates_chessington[31]="09Nov07";
closeddates_chessington[32]="12Nov07";
closeddates_chessington[33]="13Nov07";
closeddates_chessington[34]="14Nov07";
closeddates_chessington[35]="15Nov07";
closeddates_chessington[36]="16Nov07";
closeddates_chessington[37]="19Nov07";
closeddates_chessington[38]="20Nov07";
closeddates_chessington[39]="21Nov07";
closeddates_chessington[40]="22Nov07";
closeddates_chessington[41]="23Nov07";
closeddates_chessington[42]="26Nov07";
closeddates_chessington[43]="27Nov07";
closeddates_chessington[44]="28Nov07";
closeddates_chessington[45]="29Nov07";
closeddates_chessington[46]="30Nov07";
closeddates_chessington[47]="03Dec07";
closeddates_chessington[48]="04Dec07";
closeddates_chessington[49]="05Dec07";
closeddates_chessington[50]="06Dec07";
closeddates_chessington[51]="07Dec07";
closeddates_chessington[52]="10Dec07";
closeddates_chessington[53]="11Dec07";
closeddates_chessington[54]="12Dec07";
closeddates_chessington[55]="13Dec07";
closeddates_chessington[56]="14Dec07";
closeddates_chessington[57]="25Dec07";

		checkClosed( closeddates_chessington, ticketDayCheck( frm.Park ) );
		
		/*
		for(i=0;i<58;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_chessington[i]) {
				alert("Park is closed on this date - please check the opening times and try again")
				return false;
				frm.ParkDate.focus();
			}
		}
		*/

}

function check_form_drayton() {
var frm = document.searchForm

var closeddates_drayton = new Array(10) 
		
closeddates_drayton[0]="17Sep07";
closeddates_drayton[1]="18Sep07";
closeddates_drayton[2]="24Sep07";
closeddates_drayton[3]="25Sep07";
closeddates_drayton[4]="01Oct07";
closeddates_drayton[5]="02Oct07";
closeddates_drayton[6]="08Oct07";
closeddates_drayton[7]="09Oct07";
closeddates_drayton[8]="15Oct07";
closeddates_drayton[9]="16Oct07";
	
	checkClosed( closeddates_drayton, ticketDayCheck( frm.Park ) );
			
	/*
	for(i=0;i<10;i++) {
		if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_drayton[i]) {
			alert("Park is closed on this date - please check the opening times and try again")
			return false;
			frm.ParkDate.focus();
		}
	}
	*/
}

function check_form_gullivers() {
var frm = document.searchForm

var closeddates_gullivers = new Array(72) 
		
closeddates_gullivers[0]="26Mar07";
closeddates_gullivers[1]="27Mar07";
closeddates_gullivers[2]="28Mar07";
closeddates_gullivers[3]="29Mar07";
closeddates_gullivers[4]="30Mar07";
closeddates_gullivers[5]="16Apr07";
closeddates_gullivers[6]="17Apr07";
closeddates_gullivers[7]="18Apr07";
closeddates_gullivers[8]="19Apr07";
closeddates_gullivers[9]="20Apr07";
closeddates_gullivers[10]="23Apr07";
closeddates_gullivers[11]="24Apr07";
closeddates_gullivers[12]="25Apr07";
closeddates_gullivers[13]="26Apr07";
closeddates_gullivers[14]="27Apr07";
closeddates_gullivers[15]="30Apr07";
closeddates_gullivers[16]="01May07";
closeddates_gullivers[17]="02May07";
closeddates_gullivers[18]="03May07";
closeddates_gullivers[19]="04May07";
closeddates_gullivers[20]="08May07";
closeddates_gullivers[21]="09May07";
closeddates_gullivers[22]="10May07";
closeddates_gullivers[23]="11May07";
closeddates_gullivers[24]="14May07";
closeddates_gullivers[25]="15May07";
closeddates_gullivers[26]="16May07";
closeddates_gullivers[27]="17May07";
closeddates_gullivers[28]="18May07";
closeddates_gullivers[29]="21May07";
closeddates_gullivers[30]="22May07";
closeddates_gullivers[31]="23May07";
closeddates_gullivers[32]="24May07";
closeddates_gullivers[33]="25May07";
closeddates_gullivers[34]="05Sep07";
closeddates_gullivers[35]="06Sep07";
closeddates_gullivers[36]="07Sep07";
closeddates_gullivers[37]="10Sep07";
closeddates_gullivers[38]="11Sep07";
closeddates_gullivers[39]="12Sep07";
closeddates_gullivers[40]="13Sep07";
closeddates_gullivers[41]="14Sep07";
closeddates_gullivers[42]="17Sep07";
closeddates_gullivers[43]="18Sep07";
closeddates_gullivers[44]="19Sep07";
closeddates_gullivers[45]="20Sep07";
closeddates_gullivers[46]="21Sep07";
closeddates_gullivers[47]="24Sep07";
closeddates_gullivers[48]="25Sep07";
closeddates_gullivers[49]="26Sep07";
closeddates_gullivers[50]="27Sep07";
closeddates_gullivers[51]="28Sep07";
closeddates_gullivers[52]="01Oct07";
closeddates_gullivers[53]="02Oct07";
closeddates_gullivers[54]="03Oct07";
closeddates_gullivers[55]="04Oct07";
closeddates_gullivers[56]="05Oct07";
closeddates_gullivers[57]="08Oct07";
closeddates_gullivers[58]="09Oct07";
closeddates_gullivers[59]="10Oct07";
closeddates_gullivers[60]="11Oct07";
closeddates_gullivers[61]="12Oct07";
closeddates_gullivers[62]="15Oct07";
closeddates_gullivers[63]="16Oct07";
closeddates_gullivers[64]="17Oct07";
closeddates_gullivers[65]="18Oct07";
closeddates_gullivers[66]="19Oct07";
closeddates_gullivers[67]="29Oct07";
closeddates_gullivers[68]="30Oct07";
closeddates_gullivers[69]="31Oct07";
closeddates_gullivers[70]="01Nov07";
closeddates_gullivers[71]="02Nov07";

	checkClosed( closeddates_gullivers, ticketDayCheck( frm.Park ) );
		
		/*
		for(i=0;i<71;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_gullivers[i]) {
				alert("Park is closed on this date - please check the opening times and try again")
				return false;
				frm.ParkDate.focus();
			}
		}
		*/

}

function check_form_camelot() {
var frm = document.searchForm

var closeddates_camelot = new Array(75) 
		
closeddates_camelot[0]="16Apr07";
closeddates_camelot[1]="17Apr07";
closeddates_camelot[2]="18Apr07";
closeddates_camelot[3]="19Apr07";
closeddates_camelot[4]="20Apr07";
closeddates_camelot[5]="23Apr07";
closeddates_camelot[6]="24Apr07";
closeddates_camelot[7]="25Apr07";
closeddates_camelot[8]="26Apr07";
closeddates_camelot[9]="27Apr07";
closeddates_camelot[10]="01May07";
closeddates_camelot[11]="02May07";
closeddates_camelot[12]="03May07";
closeddates_camelot[13]="04May07";
closeddates_camelot[14]="08May07";
closeddates_camelot[15]="09May07";
closeddates_camelot[16]="10May07";
closeddates_camelot[17]="11May07";
closeddates_camelot[18]="14May07";
closeddates_camelot[19]="15May07";
closeddates_camelot[20]="16May07";
closeddates_camelot[21]="17May07";
closeddates_camelot[22]="18May07";
closeddates_camelot[23]="21May07";
closeddates_camelot[24]="22May07";
closeddates_camelot[25]="23May07";
closeddates_camelot[26]="24May07";
closeddates_camelot[27]="25May07";
closeddates_camelot[28]="04Jun07";
closeddates_camelot[29]="05Jun07";
closeddates_camelot[30]="07Jun07";
closeddates_camelot[31]="08Jun07";
closeddates_camelot[32]="11Jun07";
closeddates_camelot[33]="12Jun07";
closeddates_camelot[34]="14Jun07";
closeddates_camelot[35]="15Jun07";
closeddates_camelot[36]="18Jun07";
closeddates_camelot[37]="19Jun07";
closeddates_camelot[38]="21Jun07";
closeddates_camelot[39]="22Jun07";
closeddates_camelot[40]="03Sep07";
closeddates_camelot[41]="04Sep07";
closeddates_camelot[42]="05Sep07";
closeddates_camelot[43]="06Sep07";
closeddates_camelot[44]="07Sep07";
closeddates_camelot[45]="10Sep07";
closeddates_camelot[46]="11Sep07";
closeddates_camelot[47]="12Sep07";
closeddates_camelot[48]="13Sep07";
closeddates_camelot[49]="14Sep07";
closeddates_camelot[50]="17Sep07";
closeddates_camelot[51]="18Sep07";
closeddates_camelot[52]="19Sep07";
closeddates_camelot[53]="20Sep07";
closeddates_camelot[54]="21Sep07";
closeddates_camelot[55]="24Sep07";
closeddates_camelot[56]="25Sep07";
closeddates_camelot[57]="26Sep07";
closeddates_camelot[58]="27Sep07";
closeddates_camelot[59]="28Sep07";
closeddates_camelot[60]="01Oct07";
closeddates_camelot[61]="02Oct07";
closeddates_camelot[62]="03Oct07";
closeddates_camelot[63]="04Oct07";
closeddates_camelot[64]="05Oct07";
closeddates_camelot[65]="08Oct07";
closeddates_camelot[66]="09Oct07";
closeddates_camelot[67]="10Oct07";
closeddates_camelot[68]="11Oct07";
closeddates_camelot[69]="12Oct07";
closeddates_camelot[70]="15Oct07";
closeddates_camelot[71]="16Oct07";
closeddates_camelot[72]="17Oct07";
closeddates_camelot[73]="18Oct07";
closeddates_camelot[74]="19Oct07";

		checkClosed( closeddates_camelot, ticketDayCheck( frm.Park ) );
		
		/*
		for(i=0;i<75;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_camelot[i]) {
				alert("Park is closed on this date - please check the opening times and try again")
				return false;
				frm.ParkDate.focus();
			}
		}
		*/

}

function check_form_lightwatervalley() {
var frm = document.searchForm

var closeddates_lightwatervalley = new Array(70) 
		
closeddates_lightwatervalley[0]="16Apr07";
closeddates_lightwatervalley[1]="17Apr07";
closeddates_lightwatervalley[2]="18Apr07";
closeddates_lightwatervalley[3]="19Apr07";
closeddates_lightwatervalley[4]="20Apr07";
closeddates_lightwatervalley[5]="23Apr07";
closeddates_lightwatervalley[6]="24Apr07";
closeddates_lightwatervalley[7]="25Apr07";
closeddates_lightwatervalley[8]="26Apr07";
closeddates_lightwatervalley[9]="27Apr07";
closeddates_lightwatervalley[10]="30Apr07";
closeddates_lightwatervalley[11]="01May07";
closeddates_lightwatervalley[12]="02May07";
closeddates_lightwatervalley[13]="03May07";
closeddates_lightwatervalley[14]="04May07";
closeddates_lightwatervalley[15]="08May07";
closeddates_lightwatervalley[16]="09May07";
closeddates_lightwatervalley[17]="10May07";
closeddates_lightwatervalley[18]="11May07";
closeddates_lightwatervalley[19]="14May07";
closeddates_lightwatervalley[20]="15May07";
closeddates_lightwatervalley[21]="16May07";
closeddates_lightwatervalley[22]="17May07";
closeddates_lightwatervalley[23]="18May07";
closeddates_lightwatervalley[24]="21May07";
closeddates_lightwatervalley[25]="22May07";
closeddates_lightwatervalley[26]="23May07";
closeddates_lightwatervalley[27]="24May07";
closeddates_lightwatervalley[28]="25May07";
closeddates_lightwatervalley[29]="04Jun07";
closeddates_lightwatervalley[30]="05Jun07";
closeddates_lightwatervalley[31]="11Jun07";
closeddates_lightwatervalley[32]="12Jun07";
closeddates_lightwatervalley[33]="18Jun07";
closeddates_lightwatervalley[34]="19Jun07";
closeddates_lightwatervalley[35]="05Sep07";
closeddates_lightwatervalley[36]="06Sep07";
closeddates_lightwatervalley[37]="07Sep07";
closeddates_lightwatervalley[38]="10Sep07";
closeddates_lightwatervalley[39]="11Sep07";
closeddates_lightwatervalley[40]="12Sep07";
closeddates_lightwatervalley[41]="13Sep07";
closeddates_lightwatervalley[42]="14Sep07";
closeddates_lightwatervalley[43]="17Sep07";
closeddates_lightwatervalley[44]="18Sep07";
closeddates_lightwatervalley[45]="19Sep07";
closeddates_lightwatervalley[46]="20Sep07";
closeddates_lightwatervalley[47]="21Sep07";
closeddates_lightwatervalley[48]="24Sep07";
closeddates_lightwatervalley[49]="25Sep07";
closeddates_lightwatervalley[50]="26Sep07";
closeddates_lightwatervalley[51]="27Sep07";
closeddates_lightwatervalley[52]="28Sep07";
closeddates_lightwatervalley[53]="01Oct07";
closeddates_lightwatervalley[54]="02Oct07";
closeddates_lightwatervalley[55]="03Oct07";
closeddates_lightwatervalley[56]="04Oct07";
closeddates_lightwatervalley[57]="05Oct07";
closeddates_lightwatervalley[58]="08Oct07";
closeddates_lightwatervalley[59]="09Oct07";
closeddates_lightwatervalley[60]="10Oct07";
closeddates_lightwatervalley[61]="11Oct07";
closeddates_lightwatervalley[62]="12Oct07";
closeddates_lightwatervalley[63]="13Oct07";
closeddates_lightwatervalley[64]="14Oct07";
closeddates_lightwatervalley[65]="15Oct07";
closeddates_lightwatervalley[66]="16Oct07";
closeddates_lightwatervalley[67]="17Oct07";
closeddates_lightwatervalley[68]="18Oct07";
closeddates_lightwatervalley[69]="19Oct07";

		checkClosed( closeddates_lightwatervalley, ticketDayCheck( frm.Park ) );
		
		/*
		for(i=0;i<69;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_lightwatervalley[i]) {
				alert("Park is closed on this date - please check the opening times and try again")
				return false;
				frm.ParkDate.focus();
			}
		}
		*/

}

function check_form_diggerland() {
var frm = document.searchForm

var closeddates_diggerland = new Array(83) 
		
closeddates_diggerland[0]="14Mar07";
closeddates_diggerland[1]="15Mar07";
closeddates_diggerland[2]="16Mar07";
closeddates_diggerland[3]="19Mar07";
closeddates_diggerland[4]="20Mar07";
closeddates_diggerland[5]="21Mar07";
closeddates_diggerland[6]="22Mar07";
closeddates_diggerland[7]="23Mar07";
closeddates_diggerland[8]="26Mar07";
closeddates_diggerland[9]="27Mar07";
closeddates_diggerland[10]="28Mar07";
closeddates_diggerland[11]="29Mar07";
closeddates_diggerland[12]="30Mar07";
closeddates_diggerland[13]="23Apr07";
closeddates_diggerland[14]="24Apr07";
closeddates_diggerland[15]="25Apr07";
closeddates_diggerland[16]="26Apr07";
closeddates_diggerland[17]="27Apr07";
closeddates_diggerland[18]="30Apr07";
closeddates_diggerland[19]="01May07";
closeddates_diggerland[20]="02May07";
closeddates_diggerland[21]="03May07";
closeddates_diggerland[22]="04May07";
closeddates_diggerland[23]="08May07";
closeddates_diggerland[24]="09May07";
closeddates_diggerland[25]="10May07";
closeddates_diggerland[26]="11May07";
closeddates_diggerland[27]="14May07";
closeddates_diggerland[28]="15May07";
closeddates_diggerland[29]="16May07";
closeddates_diggerland[30]="17May07";
closeddates_diggerland[31]="18May07";
closeddates_diggerland[32]="21May07";
closeddates_diggerland[33]="22May07";
closeddates_diggerland[34]="23May07";
closeddates_diggerland[35]="24May07";
closeddates_diggerland[36]="25May07";
closeddates_diggerland[37]="04Jun07";
closeddates_diggerland[38]="05Jun07";
closeddates_diggerland[39]="06Jun07";
closeddates_diggerland[40]="07Jun07";
closeddates_diggerland[41]="08Jun07";
closeddates_diggerland[42]="11Jun07";
closeddates_diggerland[43]="12Jun07";
closeddates_diggerland[44]="13Jun07";
closeddates_diggerland[45]="14Jun07";
closeddates_diggerland[46]="15Jun07";
closeddates_diggerland[47]="18Jun07";
closeddates_diggerland[48]="19Jun07";
closeddates_diggerland[49]="20Jun07";
closeddates_diggerland[50]="21Jun07";
closeddates_diggerland[51]="22Jun07";
closeddates_diggerland[52]="25Jun07";
closeddates_diggerland[53]="26Jun07";
closeddates_diggerland[54]="27Jun07";
closeddates_diggerland[55]="28Jun07";
closeddates_diggerland[56]="29Jun07";
closeddates_diggerland[57]="02Jul07";
closeddates_diggerland[58]="03Jul07";
closeddates_diggerland[59]="04Jul07";
closeddates_diggerland[60]="05Jul07";
closeddates_diggerland[61]="06Jul07";
closeddates_diggerland[62]="09Jul07";
closeddates_diggerland[63]="10Jul07";
closeddates_diggerland[64]="11Jul07";
closeddates_diggerland[65]="12Jul07";
closeddates_diggerland[66]="13Jul07";
closeddates_diggerland[67]="10Sep07";
closeddates_diggerland[68]="10Sep07";
closeddates_diggerland[69]="11Sep07";
closeddates_diggerland[70]="12Sep07";
closeddates_diggerland[71]="13Sep07";
closeddates_diggerland[72]="14Sep07";
closeddates_diggerland[73]="17Sep07";
closeddates_diggerland[74]="18Sep07";
closeddates_diggerland[75]="19Sep07";
closeddates_diggerland[76]="20Sep07";
closeddates_diggerland[77]="21Sep07";
closeddates_diggerland[78]="24Sep07";
closeddates_diggerland[79]="25Sep07";
closeddates_diggerland[80]="26Sep07";
closeddates_diggerland[81]="27Sep07";
closeddates_diggerland[82]="28Sep07";

		checkClosed( closeddates_diggerland, ticketDayCheck( frm.Park ) );
		
		/*
		for(i=0;i<82;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_diggerland[i]) {
				alert("Park is closed on this date - please check the opening times and try again")
				return false;
				frm.ParkDate.focus();
			}
		}
		*/

}

function check_form_disney() {
var frm = document.searchForm

var closeddates_disney = new Array(1) 
		
closeddates_disney[0]="25Dec07";
		
		for(i=0;i<1;i++) {
			if(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closeddates_disney[i]) {
				alert("Park is closed on this date - please check the opening times and try again")
				return false;
				frm.ParkDate.focus();
			}
		}

}

function checkClosed (closedDateArray, ticketDays) {
	
	var frm = document.searchForm;
	var msg = "";
		
	for ( i=0; i<closedDateArray.length; i++ ) {
		
		if ( frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value == closedDateArray[i] ) {
			
			msg = "Park is closed on this date - please check the opening times and try again";
			
		}
		
	}
		
	if ( ticketDays > 1 ) {

		for ( ticketDaysCount = 0; ticketDaysCount < ticketDays; ticketDaysCount++ ) {
			
			for ( i=0; i < closedDateArray.length; i++ ) {
				
				testDate = addDate(frm.ParkDate.options[frm.ParkDate.options.selectedIndex].value, ticketDaysCount);
				
				if ( testDate == closedDateArray[i] ) {
				
					msg = "Park is closed on one of your selected dates - please check the opening times and your ticket type and try again";
				
				}
		
			}
		}
	}
	
	if (msg != "") {
		alert(msg);
		frm.ParkDate.focus();
	}
	
}


function fullYear ( year ) {
	
	return "20" + year;
	
}

function getMonthNumeric ( month ) {
	
	month = month.toUpperCase();
	
	switch(month) {
		
		case "JAN":
			return 1;
			break;
		case "FEB":
			return 2;
			break;
		case "MAR":
			return 3;
			break;
		case "APR":
			return 4;
			break;
		case "MAY":
			return 5;
			break;
		case "JUN":
			return 6;
			break;
		case "JUL":
			return 7;
			break;
		case "AUG":
			return 8;
			break;
		case "SEP":
			return 9;
			break;
		case "OCT":
			return 10;
			break;
		case "NOV":
			return 11;
			break;
		case "DEC":
			return 12;
			break;
			
	}
	
}

function addDate ( date, addition ) {
	
	dateObj = new Date();
	
	dateObj.setYear( fullYear(date.substr( 5 , 4 )) );
	dateObj.setDate( date.substr( 0, 2 ) );
	dateObj.setMonth( getMonthNumeric( date.substr( 2, 3 ) ) - 1 );
	
	dateObj.setDate( dateObj.getDate() + addition );
	
	day = dateObj.getDate();
	
	if (day.length == 1) {
		day = '0' + day;
	}
	
	month = dateObj.getMonth();
	
	switch (month) {
		case 0:
			month = 'Jan';
			break;
		case 1:
			month = 'Feb';
			break;
		case 2:
			month = 'Mar';
			break;
		case 3:
			month = 'Apr';
			break;
		case 4:
			month = 'May';
			break;
		case 5:
			month = 'Jun';
			break;
		case 6:
			month = 'Jul';
			break;
		case 7:
			month = 'Aug';
			break;
		case 8:
			month = 'Sep';
			break;
		case 9:
			month = 'Oct';
			break;
		case 10:
			month = 'Nov';
			break;
		case 11:
			month = 'Dec';
			break;
		default:
			break;
	}
	
	year = dateObj.getFullYear();
	
	year = year + "";
	
	year = year.substr( 2, 2 );
	
	ourDate = "" + day + month + year;
	
	return ourDate;
	
}

function ticketDayCheck( parkInput ) {
	
	var frm = document.searchForm;
	
	if ( parkInput.type == "hidden" ) {
		var parkCode = parkInput.value;
	} else {
		var parkCode = parkInput.options[parkInput.selectedIndex].value;
	}
	
	if ( frm.SeatType.type == "hidden" ) {
		var seatType = frm.SeatType.value;
	} else {
		var seatType = frm.SeatType.options[frm.SeatType.selectedIndex].value;
	}
	
	
	switch(parkCode) {
		
		case "THMDRY":
			switch(seatType) {
			 	case "DR1":
					return 1;
					break;
				case "DR2":
					return 2;
					break;
			}
			break;
			
		case "THMTHO":
			switch(seatType) {
			 	case "TP1":
					return 1;
					break;
				case "TP2":
					return 2;
					break;
			}
			break;
			
		case "THMALT":
			switch(seatType) {
			 	case "AL1":
					return 1;
					break;
				case "AL2":
					return 2;
					break;
			}
			break;
			
		case "THMPPK":
			switch(seatType) {
			 	case "PP1":
					return 1;
					break;
				case "PP2":
					return 2;
					break;
			}
			break;
			
		case "THMLEP":
			switch(seatType) {
			 	case "LEP":
					return 2;
					break;
				case "LET":
					return 3;
					break;
			}
			break;
			
		case "THMCHE":
			switch(seatType) {
			 	case "CH1":
					return 1;
					break;
				case "CH2":
					return 2;
					break;
			}
			break;
			
		case "THMDIS":
			switch(seatType) {
			 	case "DS1":
					return 1;
					break;
				case "DS2":
					return 2;
					break;
				case "DS3":
					return 3;
					break;
				case "DS4":
					return 4;
					break;
				case "DS5":
					return 5;
					break;
			}
			break;
		case "THMCAM":
			switch(seatType) {
			 	case "CM1":
					return 1;
					break;
				case "CM2":
					return 2;
					break;
			}
			break;
		case "THMLWV":
			switch(seatType) {
			 	case "LW1":
					return 1;
					break;
			}
			break;
		case "THMMAD":
			switch(seatType) {
			 	case "MD1":
					return 1;
					break;
			}
			break;
		case "THMBPB":
			switch(seatType) {
			 	case "BP1":
					return 1;
					break;
				case "BP2":
					return 2;
					break;
			}
			break;
		case "THMGUL":
			switch(seatType) {
			 	case "GUL":
					return 1;
					break;
				default:
					return 1;
					break;
			}
			break;
		case "THMGMB":
			switch(seatType) {
			 	case "GMB":
					return 1;
					break;
				default:
					return 1;
					break;
			}
			break;
		case "THMGMK":
			switch(seatType) {
			 	case "GMK":
					return 1;
					break;
				default:
					return 1;
					break;
			}
			break;
		case "THMDEV":
			switch(seatType) {
			 	case "DG1":
					return 1;
					break;
				default:
					return 1;
					break;
			}
			break;
		case "THMDUR":
			switch(seatType) {
			 	case "DU1":
					return 1;
					break;
				default:
					return 1;
					break;
			}
			break;
		case "THMKEN":
			switch(seatType) {
			 	case "KE1":
					return 1;
					break;
				default:
					return 1;
					break;
			}
			break;
		default:
			break;
		
	}
	
}