
function viewHotelDetail(hotelOID) {
	var f = document.myForm;
	f.elements[FN_HOTEL_OID].value = hotelOID;
	f.action = FORWARD_HOTEL_DETAIL;
	post();
}

function selectHotel(roomOID, showOptionWarning) {
	var f = document.myForm;
	if (showOptionWarning && HOTELCHANGE_OPTION_WARN) {
		var conf = confirm(HOTELCHANGE_OPTION_WARN);
		if (!conf)
			return;
	}
	
	f.elements[FN_HOTEL_ROOM_SPECIFICATION_OID].value = roomOID;
	f.action = FORWARD_HOTEL_SELECTION;
	post();
}

function selectHotelAndChangeFlight(roomOID, showOptionWarning) {
	var f = document.myForm;
	if (showOptionWarning && HOTELCHANGE_OPTION_WARN) {
		var conf = confirm(HOTELCHANGE_OPTION_WARN);
		if (!conf)
			return;
	}
	
	f.elements[FN_HOTEL_ROOM_SPECIFICATION_OID].value = roomOID;
	f.action = FORWARD_HOTEL_SELECTION_CHANGE_FLIGHT;
	post();
}

function swapHotelIMG(img) { document.mainIMG.src = OM_IMAGE_PATH + img; }

function swapHotelIMG_ALT(img, alt) { 
	document.mainIMG.src = OM_IMAGE_PATH + img;
	document.mainIMG.alt = alt;
}

function KeepThisHotel(){
	var f = document.myForm;
   f.elements[FN_ACTION].value = ACTION_KEEP_THIS;
   f.action = FORWARD_KEEP_THIS;
   f.submit();
}

function swapTripDates(swapid) {
   var tsb = document.getElementById('TripSummaryBlock');
   var mtb = document.getElementById('ModifyTravelDatesBlock');
   var orig = document.getElementById(swapid).style.display || 'none';
   
   tsb.style.display = 'none';
   mtb.style.display = 'none';
   
   if (orig == 'none')
      document.getElementById(swapid).style.display = 'block';
}

/**
 * Change number of rooms available
 * @author mathieu.gagnon@
 * @date 2005-11-07
 */
function changeRoomAssignment(rowsparent) {
	var rooms = parseInt(document.getElementById(FN_NUMBER_ROOM).value);
	var rows = document.getElementById(rowsparent);
	
	for (var i = 0; i < rows.childNodes.length; i++) {
		if (!rows.childNodes[i].tagName)
			continue;
		rows.childNodes[i].style.background = '#ffffff';
		
		for (var j = 0, col = -1; j < rows.childNodes[i].childNodes.length; j++) {
			var colnode = rows.childNodes[i].childNodes[j];
			if (!colnode.tagName)
				continue;
			col++;
			colnode.style.visibility = (col > rooms) ? 'hidden' : 'visible';
		}
	}
}

/**
 * Validation method for the roomAssignement
 * - no unassigned person (highlight the error)
 * - a room cannot only have a lap child in it (alert error)
 * - no empty room (change "number of rooms" and retry)
 * @author mathieu.gagnon@
 * @date 2005-11-07
 */
function roomAssignmentForm(rowsparent) {
	var ERROR_TRAVELER_NO_ROOM = "A traveler has no room assignment(s).\n";
	var ERROR_ROOM_EMPTY = "A room has no traveler(s) assigned to it.\n";
	var ERROR_ROOM_EMPTY_LAPCHILD = "A room cannot have only a lap child assigned to it.\n";
	var raform = document.getElementById('roomAssignmentForm');
	var adultscount = parseInt(raform.adultCount.value) + parseInt(raform.childCount.value);
	var rooms = new Array( parseInt(document.getElementById(FN_NUMBER_ROOM).value) );
	var rows = document.getElementById(rowsparent);
	var errors = new Array(3);

	for (var i = 0, row = -1; i <= rows.childNodes.length; i++) {
		if (!rows.childNodes[i] || !rows.childNodes[i].tagName)
			continue;
		row++;
		if (row < 1) //ignore header
			continue;

		var radios = raform[FN_TRAVELER_ROOM_SELECTION + '_' + row];
		if (radios.type != null && radios.type == 'radio') {
			radios = new Array();
			radios[0] = raform[FN_TRAVELER_ROOM_SELECTION + '_' + row];
		}
		
		var roomempty = false;
		for (var j = 0; j < rooms.length; j++) {
			if (radios[j].checked) {
				if (row <= adultscount)
					rooms[j] = true;
				else if (rooms[j] != true) {
					rows.childNodes[i].style.background = '#f0f0f0';
					rooms[j] = "lap";
				}
				roomempty = true;
			}
			//alert( row + ":" + j + ":" + roomempty + ":" + rooms[j] )
		}
		if (!roomempty) {
			rows.childNodes[i].style.background = '#f0f0f0';
			errors[0] = ERROR_TRAVELER_NO_ROOM;
		}
	}
	for (var i = 0; i < rooms.length; i++) {
		if (rooms[i] == "lap") {
			errors[2] = ERROR_ROOM_EMPTY_LAPCHILD;
		} else if (!rooms[i]) {
			errors[1] = ERROR_ROOM_EMPTY;
		}
	}
	
	if (errors.join("") != "") {
		alert(errors.join(""));	
		return;
	}

	raform.action = FORWARD_HOTEL_LIST;
	raform.submit();
}

