function InitRoomListQuery(existRoomListStr,servType,familyPlan)
{
	if (!document.form || !document.getElementById('roomCount'))
		return;
	if (existRoomListStr != "") {
		// Init combox with values from existing pfile
		roomCount = 0;
		var arr = existRoomListStr.split("|");
		if (arr.length > 0) {
			if (arr[0] == "roomList") {
				var roomDescCount = arr[1];
				for (var i = 0; i < roomDescCount; i++) {
					var arr2 = arr[i+2].split(",");
					for (var j = 0; j < arr2[0]; j++) {
						eval("form.adultCount"+roomCount+".value=arr2[1]");
						eval("form.childCount"+roomCount+".value=arr2[2]");
						for (var k = 0; k < arr2[2]; k++) {
							if (typeof(arr2[4+k]) != "undefined")
								eval("form.childAge"+roomCount+"_"+k+".value=arr2[4+k]");
						}
						roomCount++;
						
						if ( arr2[3] == "1")
						{
							var twinRoomObj = document.getElementById('twinRoom' + i);
							if (twinRoomObj) 
								twinRoomObj.checked = true;
						}
						if (arr2[3] == "2")
						{
							var dblRoomObj = document.getElementById('dblRoom' + i);
							if (dblRoomObj) 
								dblRoomObj.checked = true;
						}
					}
				}
				if (roomCount != 0)
					eval("document.getElementById('roomCount').value=roomCount");
			}
			else if (arr[0] == "paxList") {
				var adultCount=0, childCount=0;
				var childAge=0, childAgeIndex=0;
				for (var i = 1; i < arr.length; i++) {
					var arr2 = arr[i].split(":");
					if (arr2[0] == "pax_child" || arr2[0] == "pax_infant") {
						var arr3 = arr2[1].split(",");
						var chdCount = parseInt(arr2[1],10);
						childCount += chdCount;
						if (arr2[0] == "pax_child") 
							childAge = 12;
						else
							childAge = 1; // Infant
						for (var j = 0; j < chdCount; j++) {
							eval("form.childAge0"+"_"+childAgeIndex+".value=childAge");
							childAgeIndex++;
						}
					}
					else 
						adultCount += parseInt(arr2[1],10);					
					form.adultCount0.value = adultCount;
					form.childCount0.value = childCount;
				}
			}
		}
	}
	if(familyPlan==0){
		if(document.ftmParams && document.ftmParams.GMFloat && document.ftmParams.GMFloat.value==1)
			ShowTotalRoom(1,"",true);
		else
			ShowTotalRoom(1,"FloatLayerCategory",false);
	}	
	else	
		ShowRoomList(servType,familyPlan);
}

function RoomCountChange()
{
	var DEF_NUM_OF_ROOMS = 4;
	var roomCount = document.getElementById('roomCount').value; 
	var maxRooms = form.maxRooms.value;
	//If maxRooms is 0 , use default value
	if( maxRooms == 0 )
		maxRooms = DEF_NUM_OF_ROOMS;
	
	for (var i = 0; i < roomCount; i++) {
		eval("roomQtyRow"+i+".style.display=''");
		if (eval("form.childCount"+i+".value > 0"))
			eval("childAgeRow"+i+".style.display=''");
	}
	for (var i = roomCount; i < maxRooms; i++) {
		
		eval("roomQtyRow"+i+".style.display='none'");
		eval("childAgeRow"+i+".style.display='none'");
	}
	DisplayChildAgeTable();
	DisplayPaxRoomsJoin(maxRooms,"hotel");
}

function AdultCountChange(i,servType)
{
	var roomCount = document.getElementById('roomCount').value;
	var childCount = eval("form.childCount"+i+".value");
	var adultCount = eval("form.adultCount"+i+".value");
	if ((adultCount != 1) && (servType == "TOUR")){
		eval("form.reqShareCount"+i+".checked=false");
	}
	if (adultCount == 2)
		eval("twinRoomCol"+i+".style.display=''");
	else
		eval("twinRoomCol"+i+".style.display='none'");
	if (adultCount == 1)
		eval("dblRoomCol"+i+".style.display=''");
	else			
		eval("dblRoomCol"+i+".style.display='none'");
	if(servType=="TOUR")
	{
		if (adultCount == 1 && childCount == 0)
			eval("reqShareCol"+i+".style.display=''");
		else			
			eval("reqShareCol"+i+".style.display='none'");
		eval("reqShareCol"+i+".checked=false");	
	}
	eval("form.twinRoom"+i+".checked=false");
	eval("form.dblRoom"+i+".checked=false");	
	SetDbl4SngDisplay(i);
	DisplayRoomsJoin("hotel");
}

function ChildCountChange(i,maxChildren,servType)
{
	var roomCount = document.getElementById('roomCount').value;
	var childCount = eval("form.childCount"+i+".value");
	var adultCount = eval("form.adultCount"+i+".value");
	if (childCount == "")
		childCount = 0;
	DisplayChildAgeTable();
	// Show/hide combox
	if (childCount > 0) {
		eval("childAgeRow"+i+".style.display=''");
		if(servType=="TOUR"){
			eval("reqShareCol"+i+".style.display='none'");
			eval("reqShareCol"+i+".checked=false");
			}
		for (var j = 0; j < childCount; j++) {
			eval("childAgeCol"+i+"_"+j+".style.display=''");
			}
		for (var j = childCount; j < maxChildren ; j++) {
			
			eval("childAgeCol"+i+"_"+j+".style.display='none'");
			}
	}
	else {
		eval("childAgeRow"+i+".style.display='none'");
		if(servType=="TOUR" && adultCount == 1 && childCount == 0)
			eval("reqShareCol"+i+".style.display=''");
	}
	// Show/hide child titles
	var maxChildCount = 0;
	for (var k = 0; k < roomCount; k++) {
		var childCount = eval("form.childCount"+k+".value");
		if (childCount > maxChildCount)
			maxChildCount = childCount;
	}
	for (var j = 0; j < maxChildCount; j++) 
		eval("childAgeTitle"+j+".style.display=''");
	for (var j = maxChildCount; j < maxChildren ; j++) 
		eval("childAgeTitle"+j+".style.display='none'");
		
	SetDbl4SngDisplay(i);
	DisplayRoomsJoin("hotel");		
}

//This function displays/hides the td of the dbl 4 sng so it will only be displayed
//when the number of children is 0 and the number of adults is 1
function SetDbl4SngDisplay(i) 
{
	var dbl4sngObj = document.getElementById('dblRoomCol' + i);
	var adultCount = eval("form.adultCount"+i+".value");
	var childCount = eval("form.childCount"+i+".value");
	if (dbl4sngObj == null)
		return;
	if (adultCount == 1 && childCount==0)
		dbl4sngObj.style.display='';
	else	
		dbl4sngObj.style.display='none';
}

function ValidRoomCount()
{
	var roomCount = document.getElementById('roomCount').value;
	return (roomCount > 0);
}

function ValidChildSelect()
{
	var roomCount = document.getElementById('roomCount').value;
	var totalAdultCount = 0, totalChildCount = 0;
	for (var i = 0; i < roomCount; i++) {
		var adultCount = eval("form.adultCount"+i+".value");
		var childCount = eval("form.childCount"+i+".value");
		totalAdultCount += parseInt(adultCount,10);
		totalChildCount += parseInt(childCount,10);
	}
	if (totalAdultCount == 0 && totalChildCount > 0)
		return false;
	return true;
}

function ValidChildAge()
{
	var roomCount = document.getElementById('roomCount').value;
	for (var i = 0; i < roomCount; i++) {
		var childCount = eval("form.childCount"+i+".value");
		if (childCount > 0) {
			for (var j = 0; j < childCount; j++) {
				childAge = eval("form.childAge"+i+"_"+j+".value");
				if (childAge == 0)
					return false;
			}
		}
	}
	return true;
}

function ValidRoomList(roomList)
{
	var roomCount = document.getElementById('roomCount').value;
	var arr = roomList.split(";")
	if (roomList.length > 0 && roomList != "0") {
		for (var i = 0; i < roomCount; i++) {
			var adultCount = eval("form.adultCount"+i+".value");
			var childCount = eval("form.childCount"+i+".value");
			var validRoomList = false;
			if( adultCount || childCount )
			{
				for (var j = 0; j < arr.length; j++) {
					var arr2 = arr[j].split(",")
					if (adultCount == arr2[0] && childCount == arr2[1]) {
						validRoomList = true;
						break;
					}
				}
			}
			if (!validRoomList)
				return false;
		}
	}
	return true;
}

function DisplayChildAgeTable()
{
	var roomCount = document.getElementById('roomCount').value;
	var hasChild = false;
	for (var k = 0; k < roomCount; k++) {
		if (eval("form.childCount"+k+".value") > 0)
			hasChild = true;
	}
	if (hasChild)
		childAgeTable.style.display='';
	else
		childAgeTable.style.display='none';
}



function ShowRoomList(servType,familyPlan)
{
	try 
	{	
		var roomCount = document.getElementById('roomCount').value;
		if (familyPlan==1)
			roomCount = 1
		for (var i = 0; i < roomCount; i++) 
			eval("roomQtyRow"+i+".style.display=''");
		DisplayChildAgeTable();
		for (var i = 0; i < roomCount; i++) {
			var adultCount = eval("form.adultCount"+i+".value");
			var childCount = eval("form.childCount"+i+".value");
			if (adultCount == 2)
				eval("twinRoomCol"+i+".style.display=''");
			else			
				eval("twinRoomCol"+i+".style.display='none'");
			if (adultCount == 1)
				eval("dblRoomCol"+i+".style.display=''");
			else			
				eval("dblRoomCol"+i+".style.display='none'");
			if(servType=="TOUR"){
				if (adultCount == 1 && childCount == 0)
					eval("reqShareCol"+i+".style.display=''");
				else			
					eval("reqShareCol"+i+".style.display='none'");
			}
			if (childCount == "")
				childCount = 0;
			if (childCount > 0) {
				eval("childAgeRow"+i+".style.display=''");
				for (var j = 0; j < childCount; j++)
					eval("childAgeCol"+i+"_"+j+".style.display=''");
			}
		}
		// Show/hide child titles
		var maxChildCount = 0;
		for (var k = 0; k < roomCount; k++) {
			var childCount = eval("form.childCount"+k+".value");
			if (childCount > maxChildCount)
				maxChildCount = childCount;
		}
		for (var j = 0; j < maxChildCount; j++) 
			eval("childAgeTitle"+j+".style.display=''");
		for (var j = maxChildCount; j < 9 ; j++)			
			eval("if (childAgeTitle"+j+")childAgeTitle"+j+".style.display='none'");
	}
	
	catch (e) {	}
}

function SortFunction(x, y)
{
   return y - x;
}


function SetRoomListHiddenFields(f,servType)
{
	var roomDescArr = new Array();
	var roomDescArrQty = new Array();
	var roomDescCount = 0;
	var reqShareCount = 0;
	var adultCount, childCount, flags, doubleForSingle, s, found, i, j, k, val, fldStr;
	var TWIN_ROOM			= 1;
	var DOUBLE_FOR_SINGLE	= 2;
	var REQUEST_SHARE		= 4;
	var adultCountSum = 0, childCountSum = 0;
	if (!document.getElementById('roomCount'))
		return;
	var roomCount = document.getElementById('roomCount').value;
	var ageArr;
	for (i = 0; i < roomCount; i++) {
		adultCount = eval("form.adultCount"+i+".value");
		childCount = eval("form.childCount"+i+".value");
		adultCountSum += adultCount;
		childCountSum += childCount;
		flags = 0;
		if (servType=="TOUR"){
			if (eval("form.reqShareCount"+i+".checked")) {
				s = "2,0," + REQUEST_SHARE;	// 1 Adult, 0 child, flags(4=RequestShare)
				roomDescArr[roomDescCount] = s;
				roomDescArrQty[roomDescCount] = 1;
				roomDescCount++;
				adultCount = adultCount - 1
			}
		}

		if (eval("form.twinRoom"+i) && (eval("form.twinRoom"+i+".parentElement.style.display") != "none") && eval("form.twinRoom"+i+".checked"))
			flags |= TWIN_ROOM;
		if (eval("form.dblRoom"+i+".checked"))
			flags |= DOUBLE_FOR_SINGLE;
		if (adultCount > "0" || childCount > "0") {
			s = adultCount + "," + childCount + "," + flags;
			
			/* case 2974 - infant should be the last one in the pax list
			Create array so we can sort the children age, in order to place the infants at the end of the pax list (after the children)
			for (j = 0; j < childCount; j++) {
				childAge = eval("form.childAge"+i+"_"+j+".value");
				s = s + "," + childAge;
			} */
			ageArr = new Array(childCount);
			for (j = 0; j < childCount; j++) 
			    ageArr[j] = eval("form.childAge"+i+"_"+j+".value");
			ageArr.sort(SortFunction);
			s = s + "," + ageArr.join();  
			
			found = false;
			for (k = 0; k < roomDescCount; k++) {
				if (roomDescArr[k] == s) {
					roomDescArrQty[k]++;
					found = true;
					break;
				}
			}
			if (!found) {
				roomDescArr[roomDescCount] = s;
				roomDescArrQty[roomDescCount] = 1;
				roomDescCount++;
			}
		}
	
		
	}
	fldStr = "";
	fldStr += "<input type='hidden' name='roomDescCount' value='"+roomDescCount+"'>\n";
	// The string for roomDesc: "qty,adultCount,childCount,flags,childAge1,childAge2,..."
	// flags bitmask: 1=isTwin, 2=doubleForSingle, 4=reqShare
	for (i = 0; i < roomDescCount; i++) {
		val = roomDescArrQty[i]+","+roomDescArr[i];
		fldStr += "<input type='hidden' name='roomDesc"+i+"' value='"+val+"'>\n";
		
		if (f)
		{
			f.pax_adult.value = adultCountSum;	 
			f.pax_child.value = childCountSum;
		}	
	}
	try {
		divRoomListHidden.innerHTML = fldStr;
	}
	catch (e) {
		alert("Please define divRoomListHidden for roomList");
	}
}

function SaveRoomListCtrlState()
{
	var roomDescArr = new Array();
	var roomDescArrQty = new Array();
	var roomDescCount = 0;
	var reqShareCount = 0;
	var adultCount, childCount, flags, doubleForSingle, s, found, i, j, k, val;
	var TWIN_ROOM			= 1;
	var DOUBLE_FOR_SINGLE	= 2;
	var REQUEST_SHARE		= 4;
	if (!document.getElementById('roomCount'))
		return;
	var roomCount = document.getElementById('roomCount').value;
	for (i = 0; i < roomCount; i++) {
		adultCount = eval("form.adultCount"+i+".value");
		childCount = eval("form.childCount"+i+".value");
		flags = 0;
		
		if (eval("form.twinRoom"+i) && (eval("form.twinRoom"+i+".parentElement.style.display") != "none") && eval("form.twinRoom"+i+".checked"))
			flags |= TWIN_ROOM;
		if (eval("form.dblRoom"+i+".checked"))
			flags |= DOUBLE_FOR_SINGLE;		
		if (adultCount > "0" || childCount > "0") {
			s = adultCount + "," + childCount + "," + flags;
			for (j = 0; j < childCount; j++) {
				childAge = eval("form.childAge"+i+"_"+j+".value");
				s = s + "," + childAge;
			}
			found = false;
			for (k = 0; k < roomDescCount; k++) {
				if (roomDescArr[k] == s) {
					roomDescArrQty[k]++;
					found = true;
					break;
				}
			}		
			if (!found) {
				roomDescArr[roomDescCount] = s;
				roomDescArrQty[roomDescCount] = 1;
				roomDescCount++;
			}
		}
		
	}

	s = "";
	for (var i = 0; i < roomDescCount; i++) {
		val = roomDescArrQty[i]+","+roomDescArr[i];
		if (s.length > 0)
			s = s + "|";
		s += val;
	}
	return s;
}

function RestoreRoomListCtrlState(ctrlState)
{
	var roomDescArr = new Array();
	var roomDescArrQty = new Array();
	var roomDescCount = 0;
	var reqShareCount = 0;
	var adultCount, childCount, flags, doubleForSingle, i, j;
	var TWIN_ROOM			= 1;
	var DOUBLE_FOR_SINGLE	= 2;
	var REQUEST_SHARE		= 4;

	if (!document.getElementById('roomCount'))
		return;
	var roomCount = 0;
	var arr = ctrlState.split("|");
	for (var i = 0; i < arr.length; i++) {
		var arr2 = arr[i].split(",");
		var qty = parseInt(arr2[0],10);
		for (var j = 0; j < qty; j++) {
			adultCount = parseInt(arr2[1],10);
			childCount = parseInt(arr2[2],10);
			eval("form.adultCount"+roomCount+".value="+adultCount);
			eval("form.childCount"+roomCount+".value="+childCount);
			var flags = parseInt(arr2[3],10);
			if (flags & TWIN_ROOM)
				eval("form.twinRoom"+i+".checked=1")
			if (flags & DOUBLE_FOR_SINGLE)
				eval("form.dblRoom"+i+".checked=1")
			if (adultCount > 0 || childCount > 0) {
				for (var k = 0; k < childCount; k++)
					eval("form.childAge"+roomCount+"_"+k+".value="+arr2[4+k]);
			}
			roomCount++;
		}
	}
	document.getElementById('roomCount').value = roomCount;
	ShowRoomList();
}

// Set roomDesc hidden fields with roomList string stored for product.
// Use this to set alternative roomList which bring valid price for product.
function SetRoomList(form, s)
{
	if (!form.roomDescCount)
		return;
	var arr = s.split(";")
	form.roomDescCount.value = arr.length;
	for (var i = 0; i < arr.length; i++) {
		var fld = eval("form.roomDesc"+i);
		fld.value = arr[i];
	}
}

// Restore original roomList as select in query page.
// Use this to cancel the alternative roomList which set before and user press back.
function RestoreOrgRoomList(form)
{
	if (!form.roomDescCount)
		return;
	for (var i = 0; i < form.roomDescCount.value; i++) {
		var fld = eval("form.roomDesc"+i);
		var fldOrg = eval("form.orgroomDesc"+i);
		fld.value = fldOrg.value;
	}
}

//This function reads from the query string parameters about the number of adults and children and
//according to those parameters it initializes the combo boxes
//query string example: ?numOfAdult=1&numOfChildren=2&chdAge1=3&chdAge2=4&numOfAdultB=2&numOfChildrenB=3&chdAge1B=4&chdAge2B=5&numOfAdultC=3&numOfChildrenC=4&chdAge1C=5&chdAge2C=6
function UpdateRoomFilterFromQueryStr()
{	
	var obj_adultCount, obj_childCount, obj_chdAge1, obj_chdAge2, obj_roomCount;	
	var index, numOfAdult, numOfChildren, chdAge1, chdAge2;	
	var arrType = new Array("", "B", "C");
	
	QueryString_Parse();
	for(index = 0 ; index < 3; index++)
	{	
		numOfAdult = QueryString("numOfAdult" + arrType[index]);
		numOfChildren = QueryString("numOfChildren" + arrType[index]);
	   
		if (numOfAdult==null || numOfChildren==null)
			break;
		
		chdAge1	= QueryString("chdAge1" + arrType[index]);
		chdAge2	= QueryString("chdAge2" + arrType[index]);		
		obj_roomCount	= document.getElementById('roomCount');
		if (obj_roomCount)
			obj_roomCount.value = index + 1;
				
		obj_adultCount	= document.getElementById('adultCount' + index);		
		obj_childCount	= document.getElementById('childCount' + index);		
		obj_chdAge1		= document.getElementById('childAge' + index + '_0');		
		obj_chdAge2		= document.getElementById('childAge' + index + '_1');	
							
		if (obj_adultCount && obj_adultCount.options[numOfAdult])
			obj_adultCount.value =	numOfAdult;
		if (obj_childCount && obj_childCount.options[numOfChildren])
			obj_childCount.value =	numOfChildren;
		if (obj_chdAge1 && obj_chdAge1.options[chdAge1])
			obj_chdAge1.value	=	chdAge1;
		if (obj_chdAge2 && obj_chdAge2.options[chdAge2])
			obj_chdAge2.value	=	chdAge2;										
	} 	
}

//Build the content of simple combo box
//minVal - The lowest value in the combo
//maxVal - The biggest value in the combo
//sel - The selected item
function buildSimpleComboContent(minVal,maxVal,sel)
{
	var j = 0;
	var retStr = "";
	for( j = minVal ; j <= maxVal ; j++ )
	{
		if( j != sel )
			retStr += "<OPTION VALUE=" + j + ">" + j;
		else
			retStr += "<OPTION SELECTED VALUE=" + j + ">" + j;
	}
	return retStr;
}

//Dynamic build of the room list table
//maxRooms - maximum number of rooms to display
function buildRoomList(parentTableName,childTableName,maxRooms,maxAdult,maxChildren,dispTwin,dispDoubleForSingle,roomTitle,twinTitle,doubleForSingleTitle,dispShare,disableCombo)
{	
	var MIN_CHILD_AGE = 0;
	var MAX_CHILD_AGE = 18;
	var DEF_NUM_OF_ROOMS = 4;
	var tbl = document.getElementById(parentTableName);
	var lastRow,rowObj,cellObj,tempString,i = 0,j = 0;
	var selAdult = 2;
	var selChildren = 0;
	var selChildAge = 12;
	var string = "child", s;
	var disableStr = "";
	if (disableCombo == 1)
	    disableStr = "disabled";
	//If maxRooms is 0 , use default value
	if( maxRooms == 0 )
		maxRooms = DEF_NUM_OF_ROOMS;
			
	for( i = 0 ; i < maxRooms ; i++ )
	{
		lastRow = tbl.rows.length;
		rowObj = tbl.insertRow(lastRow);
		//Hide all except the first row
		if( i )
			rowObj.style.display = "none";
		rowObj.id = "roomQtyRow" + i;
		cellObj = rowObj.insertCell();
		if( !i )
		{
			tempString = "<select class='ComboBoxes' name='roomCount' size='1' onchange='RoomCountChange();'" + disableStr + ">";
			tempString += buildSimpleComboContent(1,maxRooms,1);
			tempString += "</select>";
			cellObj.innerHTML = tempString;
		}		
		cellObj = rowObj.insertCell();
		cellObj.innerHTML = roomTitle + " " + (i + 1) + " &nbsp;";
		cellObj = rowObj.insertCell();
		tempString = "<select class='ComboBoxes' name='adultCount" + i + "' size='1' onchange='AdultCountChange(" + i + ")'" + disableStr + ">";
		tempString += buildSimpleComboContent(0,maxAdult,selAdult);
		tempString += "</select>";
		cellObj.innerHTML = tempString;
		cellObj = rowObj.insertCell();
		tempString = "<select class='ComboBoxes' name='childCount"  + i + "' size='1' onchange='ChildCountChange(" + i + "," + maxChildren + ")'" + disableStr + ">";
		tempString += buildSimpleComboContent(0,maxChildren,selChildren);
		tempString += "</select>";
		cellObj.innerHTML = tempString;
		cellObj = rowObj.insertCell();
		cellObj.id = "twinRoomCol" + i;
		if (dispTwin) 
			cellObj.innerHTML = "<input type=checkbox name=twinRoom" + i + " class='no_class'>" + twinTitle;
		else
			cellObj.innerHTML = "<input type=checkbox name=twinRoom" + i + " class='no_class' style='display:none'>";
		cellObj = rowObj.insertCell();
		cellObj.id = "dblRoomCol" + i;
		if (dispDoubleForSingle) 
			cellObj.innerHTML = "<input type=checkbox name=dblRoom" + i + " class='no_class'>" + doubleForSingleTitle;
		else
			cellObj.innerHTML = "<input type=checkbox name=dblRoom" + i + " class='no_class' style='display:none'>";
		cellObj.style.display = "none";
	}
	//Create the child age table
	tbl = document.getElementById(childTableName);
	rowObj  = tbl.rows[0];
	for( j = 0 ; j < maxChildren ; j++ )
	{
		cellObj = rowObj.insertCell();
		cellObj.id = "childAgeTitle" + j;
		cellObj.style.display = "none";
		cellObj.value = string + " " + (j+1) + ":&nbsp;&nbsp;"; 	
	}	
	for( j = 0 ; j < maxRooms ; j++ )
	{
		lastRow = tbl.rows.length;
		rowObj = tbl.insertRow(lastRow);
		rowObj.id = "childAgeRow" + j;
		rowObj.style.display = "none";
		cellObj = rowObj.insertCell();
		cellObj.innerHTML = roomTitle + " " + (j+1) + "&nbsp;&nbsp;&nbsp";
		for( i = 0 ; i < maxChildren ; i++ )
		{
			cellObj = rowObj.insertCell();
			cellObj.id = "childAgeCol" + j + "_" + i;
			cellObj.style.display = "none";
			tempString = "<select class='ComboBoxes' name='childAge" + j + "_" + i + "' size='1' onchange='RoomCountChange()'" + disableStr + ">";
			tempString += buildSimpleComboContent(MIN_CHILD_AGE,MAX_CHILD_AGE,selChildAge);
			tempString += "</select>&nbsp;&nbsp;";
			cellObj.innerHTML = tempString;
		}		
	}
}

//Function to hide the children table
function HideChildTable()
{
	var childAgeTableObj = document.getElementById("childAgeTable");
	if (childAgeTableObj) childAgeTableObj.style.display = 'none';
}

function DisplayRoomsJoin(type)
{
	var prevJoinNum, nextJoinNum, imgId, imgName, imgTitle, paxCount;
	var isTwin, childShare, joinNum, path, pathDir, innerHtmlImg, maxRooms;
	var DEF_NUM_OF_ROOMS = 4;
	if (type == "hotel")
	    maxRooms = form.maxRooms.value;
	else
	    maxRooms = 0;
	var valuesObj = document.getElementById("imgPath");
	if (valuesObj != null){
		path = valuesObj.value;
		valuesObj = document.getElementById("imgDir");
		if (valuesObj != null)
			pathDir = valuesObj.value;
		else
			pathDir = "";
		//If maxRooms is 0 , use default value
		if( maxRooms == 0 )
			maxRooms = DEF_NUM_OF_ROOMS;
		servCustIndex = 0;
		joinNum = 0;
		DisplayPaxRoomsJoin(maxRooms,type);
		if (type == ""){
		    paxCount = 0;
		    if (form.pax_adult && form.pax_adult.value != "") 
                paxCount += parseInt(form.pax_adult.value,10);
            if (form.pax_child && form.pax_child.value != "") 
                paxCount += parseInt(form.pax_child.value,10);	    
            if (form.pax_infant && form.pax_infant.value != "") 
                paxCount += parseInt(form.pax_infant.value,10);	
            if (form.pax_senior && form.pax_senior.value != "") 
                paxCount += parseInt(form.pax_senior.value,10);
            isTwin = 0;	
            childShare = 0;
        }
		for (var i=0; i<maxRooms; i++){
			paxCount = 0;
			adultCount = 0; childCount = 0;
			if ((type == "hotel") && (eval("roomQtyRow"+i+".style.display")=="")){
				adultCount = parseInt(eval("form.adultCount"+i+".value"),10);
				childCount = parseInt(eval("form.childCount"+i+".value"),10);
				paxCount += adultCount;
				paxCount += childCount;
				var twinRoomObj = document.getElementById('twinRoom' + i);
				isTwin = 0;
				if (twinRoomObj) 
					if (twinRoomObj.checked)
						isTwin = 1;
				twinRoomObj = document.getElementById('reqShareCol' + i);
				childShare = 0;
				if (twinRoomObj) 
					if (twinRoomObj.checked)
						childShare=1;
			}
			if (paxCount > 0){
    			joinNum++;
    			adultQty = adultCount;
				for (var j =0; j<paxCount; j++){
					prevJoinNum = joinNum;
					nextJoinNum = joinNum;
					if (j == 0)
						prevJoinNum = joinNum-1;
					if (j == (paxCount-1))
						nextJoinNum = joinNum+1;
					if (adultQty == 0)
                        childShare = 1;					    
					if (paxCount > 1)
						imgId = JoinViewBitmap(joinNum, prevJoinNum, nextJoinNum, paxCount, childShare, isTwin);
					else
						imgId = JoinViewBitmap(joinNum, prevJoinNum, nextJoinNum, UCHAR_MAX, childShare, isTwin);
					imgName = GetJoinImage(imgId);
					imgTitle = GetJoinImageTitle(imgId);
					innerHtmlImg = "<img src='"+path+imgName+"' ALT='"+imgTitle+"' border='0' "+pathDir+">";
                    try {					
					    eval("servCustJoin"+servCustIndex+".innerHTML=innerHtmlImg;");
					}
					catch (e) {
					    break;
					}
					if (adultQty > 0)
					    adultQty--;
					servCustIndex++;
				}
			}
		}			
	}
}
//Function to hide or display the servcust lines(if exist)
function DisplayPaxRoomsJoin(maxRooms,type)
{
	var valuesObj = document.getElementById("values");
	if (valuesObj != null){
		var paxCount = 0;
		if (type == "hotel") {
		    for (var i=0; i<maxRooms; i++){
			    if (eval("roomQtyRow"+i+".style.display")==""){
				    paxCount += parseInt(eval("form.adultCount"+i+".value"),10);
				    paxCount += parseInt(eval("form.childCount"+i+".value"),10);
			    }
		    }
		}
		else { 
		    if (form.pax_adult && form.pax_adult.value != "")
	            paxCount += parseInt(form.pax_adult.value,10); 
	        if (form.pax_child && form.pax_child.value != "")
	            paxCount += parseInt(form.pax_child.value,10);
	        if (form.pax_infant && form.pax_infant.value != "")	     
	            paxCount += parseInt(form.pax_infant.value,10);	
	        if (form.pax_senior && form.pax_senior.value != "")
	            paxCount += parseInt(form.pax_senior.value,10);	
		}
		var selCustCount = parseInt(GetAttr(valuesObj, "custCount"),10);
		var display = 0;
		try {
		    for (var i=0; i<paxCount; i++){
		        if (eval("servCustLine"+i+".style.display")=="")
		            display++; 
		           
		        custObj = EId("selCust_"+i);    
		        custObj.selectedIndex= 0
			    eval("servCustLine"+i+".style.display=''");
			}
	    }
	    catch (e) {}
	    try {
		    for (var i=paxCount; i<selCustCount; i++) 
			    eval("servCustLine"+i+".style.display='none'");
			if (paxCount == 1)
			    FillCombo_NotSelected(-2, 0, 0, 1);
			else{
			    for (var i=0; i<paxCount; i++){
					passenger = countPassenger();
			        if (i < passenger)
			            FillCombo_NotSelected(-1, i, 0, passenger);
			}}
			UpdatePrices();
	    }
	    catch (e) {}
	}
}
