// JavaScript Document
var showAgeSelRmTitles = true;
var size = 1;
var active_des = false;
var active_dep = false;
var noSupportedRooms = 3;
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var maxChildrenPerRoom = 4;

function flights_only() {
	return(document.forms['custom'].vacation_type.value == "AO");  
}

function hotel_only() {
	return(document.forms['custom'].vacation_type.value == "LO");  
}

function flights_and_hotel() {
	return(document.forms['custom'].vacation_type.value == "LA");  
}

function packages() {
	return(document.forms['custom'].vacation_type.value == "SP");  
}

function update_tabs(radio_obj) {
	document.forms['custom'].vacation_type.value = radio_obj;
	switch (radio_obj) {
		case "AO": 		//flights only
			document.getElementById("rSPC").style.display = "inline";
			document.getElementById("rFHC").style.display = "inline";
			document.getElementById("rFH").style.display = "none";
			document.getElementById("rHC").style.display = "inline";
			document.getElementById("rSPCcell").className = "appleFormTab";
			document.getElementById("rFHCcell").className = "appleFormTab";
			document.getElementById("rFHcell").className = "appleFormTabOn";
			document.getElementById("rHCcell").className = "appleFormTab";
			document.getElementById("rSPCcellTop").className = "appleFormTabTop";
			document.getElementById("rFHCcellTop").className = "appleFormTabTop";
			document.getElementById("rFHcellTop").className = "appleFormTabOn";
			document.getElementById("rHCcellTop").className = "appleFormTabTop";
			break;
		case "LO":	//hotel only
			document.getElementById("rSPC").style.display = "inline";
			document.getElementById("rFHC").style.display = "inline";
			document.getElementById("rFH").style.display = "inline";
			document.getElementById("rHC").style.display = "none";
			document.getElementById("rSPCcell").className = "appleFormTab";
			document.getElementById("rFHCcell").className = "appleFormTab";
			document.getElementById("rFHcell").className = "appleFormTab";
			document.getElementById("rHCcell").className = "appleFormTabOn";
			document.getElementById("rSPCcellTop").className = "appleFormTabTop";
			document.getElementById("rFHCcellTop").className = "appleFormTabTop";
			document.getElementById("rFHcellTop").className = "appleFormTabTop";
			document.getElementById("rHCcellTop").className = "appleFormTabOn";
			break;
		case "LA":	//flights and hotel
			document.getElementById("rSPC").style.display = "inline";
			document.getElementById("rFHC").style.display = "none";
			document.getElementById("rFH").style.display = "inline";
			document.getElementById("rHC").style.display = "inline";
			document.getElementById("rSPCcell").className = "appleFormTab";
			document.getElementById("rFHCcell").className = "appleFormTabOn";
			document.getElementById("rFHcell").className = "appleFormTab";
			document.getElementById("rHCcell").className = "appleFormTab";
			document.getElementById("rSPCcellTop").className = "appleFormTabTop";
			document.getElementById("rFHCcellTop").className = "appleFormTabOn";
			document.getElementById("rFHcellTop").className = "appleFormTabTop";
			document.getElementById("rHCcellTop").className = "appleFormTabTop";
			break;
		case "SP":	// packages
			document.getElementById("rSPC").style.display = "none";
			document.getElementById("rFHC").style.display = "inline";
			document.getElementById("rFH").style.display = "inline";
			document.getElementById("rHC").style.display = "inline";
			document.getElementById("rSPCcell").className = "appleFormTabOn";
			document.getElementById("rFHCcell").className = "appleFormTab";
			document.getElementById("rFHcell").className = "appleFormTab";
			document.getElementById("rHCcell").className = "appleFormTab";
			document.getElementById("rSPCcellTop").className = "appleFormTabOn";
			document.getElementById("rFHCcellTop").className = "appleFormTabTop";
			document.getElementById("rFHcellTop").className = "appleFormTabTop";
			document.getElementById("rHCcellTop").className = "appleFormTabTop";
			break;
		default:	//packages
			document.getElementById("rSPC").style.display = "none";
			document.getElementById("rFHC").style.display = "inline";
			document.getElementById("rFH").style.display = "inline";
			document.getElementById("rHC").style.display = "inline";
			document.getElementById("rSPCcell").className = "appleFormTabOn";
			document.getElementById("rFHCcell").className = "appleFormTab";
			document.getElementById("rFHcell").className = "appleFormTab";
			document.getElementById("rHCcell").className = "appleFormTab";
			document.getElementById("rSPCcellTop").className = "appleFormTabOn";
			document.getElementById("rFHCcellTop").className = "appleFormTabTop";
			document.getElementById("rFHcellTop").className = "appleFormTabTop";
			document.getElementById("rHCcellTop").className = "appleFormTabTop";
	}
}

function update_des() {
	var field = document.forms['custom'].prefix_des;
	var list = document.forms['custom'].destination_city_code;
	field.value = list.options[list.selectedIndex].value;
	//account for destination changing from cun/mbj to something else
	//or from something else to cun/mbj if not Flights Only
	updateResortAreas();
}

function updateResortAreas() {
	var field = document.forms['custom'].prefix_des;
	if (flights_only()) {
		hideResortAreas();
	} else if (field.value == "CUN") {
	setDisplay("resort_area_row_container", "block");
	//setDisplay("resort_area_row", "block");
	//	showResortAreas();
		setDisplay("resort_cun", "block");
	} else if (field.value == "MBJ") {
	setDisplay("resort_area_row_container", "block");
	//setDisplay("resort_area_row", "block");
	//	showResortAreas();
		setDisplay("resort_mbj", "block");         
	} else {
		hideResortAreas();
	}
}

function hideResortAreas() {
	setDisplay("resort_cun", "none");
	setDisplay("resort_mbj", "none");      
	setDisplay("resort_area_row", "none");
	setDisplay("resort_area_row_container", "none");
}

function showResortAreas() {
	//setDisplay("resort_area_row", "block");
	setDisplay("resort_area_row_container", "block");
	setDisplay("resort_cun", "none");
	setDisplay("resort_mbj", "none");      
}
 
function update_dep() {
	var field = document.forms['custom'].prefix_dep;
	var list = document.forms['custom'].departure_city_code;
	field.value = list.options[list.selectedIndex].value;
}

function select(list, i) {
	if (list.selectedIndex != i) list.selectedIndex = i;
}

function checkKey() {
	var field;
	var list;
	if (active_dep) {
		field = document.forms['custom'].prefix_dep;
		list = document.forms['custom'].departure_city_code;
	} else {
		if (active_des) {
			field = document.forms['custom'].prefix_des;
			list = document.forms['custom'].destination_city_code;
		} else return;
	}
	var str = field.value.toLowerCase();
	if (str == "") {
		select(list, 0);
		return;
	}
	//changed to search all codes first
	for (var i = 0; i < list.options.length; ++i) {
		if (list.options[i].value.toLowerCase().indexOf(str) == 0) {
			select(list, i);
			return;
		}
	}    
	//if no match on codes, check city names    
	for (var i = 0; i < list.options.length; ++i) {
		if (list.options[i].text.toLowerCase().indexOf(str) == 0) {
			select(list, i);
			return;
		}
	}
}

// -- Room functions  
function showRooms() {
	showAgeSelRmTitles = true;    
	setDisplay("RoomTitle1", "block");
	setDisplay("num_of_rooms", "block");
	showHideAgeSelects(parseInt(document.forms['custom'].num_of_rooms.value)); 
	showRoomDetail();
}

function hideRooms() {
	document.forms['custom'].num_of_rooms.value = 1; //flights_only
	showAgeSelRmTitles = false;
	setDisplay("RoomTitle1", "none");
	setDisplay("num_of_rooms", "none");    
	showHideAgeSelects(1);
	showRoomDetail();
}

function showHideAgeSelects(n) {
	var Total1=document.forms['custom'].num_of_children1.value;
	var Total2=document.forms['custom'].num_of_children2.value;
	var Total3=document.forms['custom'].num_of_children3.value;
	var obj = null;
	n = (!flights_only()) ? parseInt(n) : 1;
	if(Total1 != 0) setDisplay("ageSel0", "block");
	else setDisplay("ageSel0", "none");
	if(Total2 != 0) setDisplay("ageSel1", "block");
	else setDisplay("ageSel1", "none");
	if(Total3 != 0) setDisplay("ageSel2", "block");
	else setDisplay("ageSel2", "none");
	ShowAges();
}

function ShowAges() {
	var Total1=document.forms['custom'].num_of_children1.value;
	var Total2=document.forms['custom'].num_of_children2.value;
	var Total3=document.forms['custom'].num_of_children3.value;
	var total=0;
	var rooms = (!flights_only()) ? parseInt(document.forms['custom'].num_of_rooms.value) : 1;
	if (rooms==1)
		total = parseInt(Total1);
	else if (rooms==2)
		total = parseInt(Total1) + parseInt(Total2);
	else  
		total = parseInt(Total1) + parseInt(Total2) + parseInt(Total3);
	if(total==0) {
		setDisplay("ageFrame", "none");
	} else {
		setDisplay("ageFrame", "block");
		ShowAgeSelects();
	}
}

function ShowAgeSelects() {
	// -- for each room
	for (var i=0; i < ((!flights_only()) ? noSupportedRooms : 1); i++) {
		// -- For each room, get unique prefix char, e.g. "a", "b", etc.
		var roomPrefix = alphabet.substr(i, 1);
		var numChildrenInRoom = parseInt(eval("document.forms['custom'].num_of_children" + (i + 1).toString() + ".value"));
		if (numChildrenInRoom > 0) {
			// -- This is the "Room 1", etc. title for the age selects
			setVisibility("r" + i.toString(), !flights_only());
			// -- for each child's age selection, up to max #
			//if (!flights_only()) {
			for (var j=0; j < maxChildrenPerRoom; j++) {
				setVisibility("ageSel" + roomPrefix + j.toString(), ((j < numChildrenInRoom) ? true : false));
			}
			//} 
		} else {
			setVisibility("r" + i.toString(), false);
			for (var j=0; j < maxChildrenPerRoom; j++) {
				setVisibility("ageSel" + roomPrefix + j.toString(), false);
			}        
		}
	}
	// set initial display for infant lap/seat choice here.
	// elsewhere the display can change as ages get changed
	ShowInfantLapSeat(); 
}

function ShowInfantLapSeat() {
	// called initially by ShowAgeSelects, then onChange for all child ages
	// only show infant in seats or laps selection 
	// if !hotel_only && at least one child has age = 1 (under 2)
	var show_infant_lap = "none";
	if (!hotel_only()) {
		// check all rooms, all children: if any one of them is an infant, 
		// show the lap/seat choice
		// -- for each room
		for (var i=0; i < ((!flights_only()) ? noSupportedRooms : 1); i++) {
			var numChildrenInRoom = parseInt(eval("document.forms['custom'].num_of_children" + (i + 1).toString() + ".value"));
			if (numChildrenInRoom > 0) {
				// -- For each room, get unique prefix char, e.g. "a", "b", etc.
				var roomPrefix = alphabet.substr(i, 1);
				// -- for each child's age selection, up to max #
				for (var j=0; j < maxChildrenPerRoom; j++) {
					age_name = "document.forms['custom']." + roomPrefix + j.toString();
					age_test = eval( age_name + "[" + age_name + ".selectedIndex" + "].value");
					if (age_test == '1') {
						show_infant_lap = "block";
						break;
					}
				}
			}
		} //for
	} //if !hotel_only
	//setVisibility("infants", show_infant_lap); 
	setDisplay("infants", show_infant_lap);
}

function showRoomDetail() {
	if (parseInt(document.forms['custom'].num_of_rooms.value) == 1 || flights_only() ) {
		setDisplay("Rm2","none");
		setDisplay("Rm3","none");
		setDisplay("RoomsRm1Title", "none");
	} else if (parseInt(document.forms['custom'].num_of_rooms.value) == 2) {
		setDisplay("Rm2","block");
		setDisplay("Rm3","none");
		setDisplay("RoomsRm1Title", "inline");
	} else if (parseInt(document.forms['custom'].num_of_rooms.value) == 3) {
		setDisplay("Rm2","block");
		setDisplay("Rm3","block");
		setDisplay("RoomsRm1Title", "block");
	}
}          

function ShowIS(d,s) {
	if(s==1) setDisplay("infant","block");
	else setDisplay("infant","none");
}

function showWarnInLaps() {
	setDisplay("warnInLaps", "block");
}

function hideWarnInLaps() {
	setDisplay("warnInLaps", "none");
}
// -- End Room functions

// -- Flag to enable/disable buttons
this.checked = false;

function processPage() {
	if (this.checked) {
		window.alert("We are processing your previous request.");
		return;
	}  
	this.checked = true;
	document.forms['custom'].submit();
}

