 /*
	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;
	}
}



function onload_function() {
	if(document.getElementById('searchForm_hotelrideshow')){
		frm = document.searchForm_hotelrideshow;
		showing_agentForm = true;
		showing_callCentreForm = true;
		changeInfants();

	}
}





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() {
	//var frm = document.searchForm_hotelrideshow;
	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 
	frm = document.searchForm_hotelrideshow;
	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 showArrivalDate() {
	// Get the ParkDate
	// Give day before & day of 
	frm = document.searchForm_hotelshow;
	var pkDate = frm.ParkDate.options[frm.ParkDate.selectedIndex].value;

	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";
	var pkDateStr = pkDate.substring( 0, 2) + " " + pkDate.substring( 2, 5) + " 20" + pkDate.substring( 5, 7) + " GMT";
	//alert(pkDateStr);
	var night1 = new Date( pkDateStr);
	var night2 = new Date( pkDateStr);

	night2.setDate(night2.getDate() -1);
	
	var night1Display = night1.toUTCString();
	night1Display = night1Display.substr(0,16);
	
	var night2Display = night2.toUTCString();
	night2Display = night2Display.substr(0,16);

	frm.ArrivalDate.length = 2;
	frm.ArrivalDate.options[0].value = night2Display;
	frm.ArrivalDate.options[1].value = night1Display;
	frm.ArrivalDate.options[0].text = night2Display;
	frm.ArrivalDate.options[1].text = night1Display;
}


// 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() {	
	var parkBeds = 0;
	var hotelBeds = 0;
	
	var numRooms = 0;
	var msg = "";
	var numCots = 0;
	
	parkBeds = ((frm.parkAdults.options[frm.parkAdults.selectedIndex].value - 0) + (frm.disChild.options[frm.disChild.selectedIndex].value - 0) + (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);
		hotelBeds = hotelBeds + (room1Adults - 0) + (room1Children - 0);
		if( frm.inf_room_1.options[frm.inf_room_1.selectedIndex].value == 'Y') {
		    numCots++;
		}
		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);
		hotelBeds = hotelBeds + (room2Adults - 0) + (room2Children - 0);
		if( frm.inf_room_2.options[frm.inf_room_2.selectedIndex].value == 'Y') {
		    numCots++;
		}
		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);
		hotelBeds = hotelBeds + (room3Adults - 0) + (room3Children - 0);
		if( frm.inf_room_3.options[frm.inf_room_3.selectedIndex].value == 'Y') {
		    numCots++;
		}
		numRooms++;
	}
	
	if ((frm.Room1.options[frm.Room1.selectedIndex].value == '' && frm.Room2.options[frm.Room2.selectedIndex].value != '') || (frm.Room1.options[frm.Room1.selectedIndex].value == '' && frm.Room3.options[frm.Room3.selectedIndex].value != '') || (frm.Room1.options[frm.Room1.selectedIndex].value == '' && frm.Room2.options[frm.Room2.selectedIndex].value != '' && frm.Room3.options[frm.Room3.selectedIndex].value != '')) {msg = 'Please use the first room type options before you require more rooms.\n'} else {
	
	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( frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value > 0) {
	    if( !( numCots == frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value)) {
	        var extraInfants = frm.parkInfants2.options[frm.parkInfants2.selectedIndex].value - numCots;
	        if( hotelBeds > (parkBeds + extraInfants)) {
	            msg = 'The hotel room(s) you have selected do not match the number of park tickets requested.';
	        }
	    } else {
            if( !(hotelBeds == parkBeds)) {
	            msg = 'The hotel room(s) you have selected do not match the number of park tickets requested.';
	        }
	    }
	} else if( !(hotelBeds == parkBeds)) {
	   msg = 'The hotel room(s) you have selected do not match the number of park tickets requested.';
	}
	}
	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;

	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)) {
		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 == '') {
	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( 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_hotelrideshow;

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_hotelrideshow;
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; 
}


// 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_blackpool_old() {
var frm = document.searchForm_hotelrideshow

var closeddates_blackpool = new Array(29) 

closeddates_blackpool[0]="30Apr07";
closeddates_blackpool[1]="01May07";
closeddates_blackpool[2]="08May07"; 
closeddates_blackpool[3]="14May07"; 
closeddates_blackpool[4]="15May07"; 
closeddates_blackpool[5]="21May07";
closeddates_blackpool[6]="22May07";

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

}

function check_form_blackpool() {
	var frm = document.searchForm_hotelrideshow ;
	var closeddates_blackpool = new Array(7) 

	closeddates_blackpool[0]=new Date("30 Apr 2007");
	closeddates_blackpool[1]=new Date("01 May 2007");
	closeddates_blackpool[2]=new Date("08 May 2007"); 
	closeddates_blackpool[3]=new Date("14 May 2007"); 
	closeddates_blackpool[4]=new Date("15 May 2007"); 
	closeddates_blackpool[5]=new Date("21 May 2007");
	closeddates_blackpool[6]=new Date("22 May 2007");

	var chosenDate = new Date(frm.ParkDate.options[frm.ParkDate.selectedIndex].value.substr(0,2) + ' ' + frm.ParkDate.options[frm.ParkDate.selectedIndex].value.substr(2,3) + ' 20' + frm.ParkDate.options[frm.ParkDate.selectedIndex].value.substr(5,2));
	var crap = chosenDate.getDate();
	crap = crap + 1;
	var oneDayOn = new Date( chosenDate);
	oneDayOn.setDate( crap);

	for(i=0;i<7;i++) {
		if(chosenDate.toUTCString() == closeddates_blackpool[i].toUTCString()) {
			alert("Park is closed on this date - please check the opening times and try again. You can view the park timetable by clicking on Park Info above, and then on Opening Times in the left menu.");
			frm.ParkDate.selectedIndex = 0;
			return false;
		} else if((frm.SeatType.options[frm.SeatType.selectedIndex].value == 'PB2') && (oneDayOn.toUTCString() == closeddates_blackpool[i].toUTCString())) {
			var closedDate = closeddates_blackpool[i].toString();
			alert("Park is closed on " + closedDate.substr(0,15) + " - it is not possible to purchase a 2 day ticket. Please try alternative dates. You can view the park timetable by clicking on Park Info above, and then on Opening Times in the left menu." );
			frm.ParkDate.selectedIndex = 0;
			return false;
		}
	}
}





function check_form_blackpool2() {
	var frm = document.searchForm_hotelshow
	
	var closeddates_blackpool = new Array(29) 
	
	closeddates_blackpool[0]="30Apr07";
	closeddates_blackpool[1]="01May07";
	closeddates_blackpool[2]="08May07"; 
	closeddates_blackpool[3]="14May07"; 
	closeddates_blackpool[4]="15May07"; 
	closeddates_blackpool[5]="21May07";
	closeddates_blackpool[6]="22May07";
	
	for(i=0;i<28;i++) {
		if(frm.ParkDate.options[frm.ParkDate.selectedIndex].value == closeddates_blackpool[i]) {
			alert("Park is closed on this date - please check the opening times and try again. You can view the park timetable by clicking on Park Info above, and then on Opening Times in the left menu.");
			frm.ParkDate.selectedIndex = 0;
			return false;
		}
	}

}
