﻿function G2RoomingList_NumberOfAdults_Changed(ddlNumberOfAdults)
{
	var showTwin = ddlNumberOfAdults.showtwin!="False";//show twin flag only if relevant setup flag chosen
	var adults = parseInt(ddlNumberOfAdults.value);
	var row = G2_GetParentElementByTagName(ddlNumberOfAdults, "tr");
	var chkDoubleRoom = G2_FindServerControl(row, "chkDoubleRoom");
	var chkTwin = G2_FindServerControl(row, "chkTwin");
	var nextRow = row.nextSibling;
	var chkSharingRoom = G2_FindServerControl(nextRow, "chkSharingRoom");
	var show = adults==1;
	if (chkDoubleRoom != null)
		G2_ShowHideControl(G2_GetParentElementByTagName(chkDoubleRoom, "td"), show);
	show = (adults==2 && showTwin);
	G2_ShowHideControl(G2_GetParentElementByTagName(chkTwin, "td"), show);
	show = adults==1;
	if (chkSharingRoom != null)
		G2_ShowHideControl(nextRow, show);
}

function nddNumberOfChildren_Changed(event, headerElementId)
{
	var sender = G2Event.element(event);
	var parent = G2_FindParentElementByG2Tag(sender, "roomItem");
	
	var nddNumberOfAdults = findControl(sender, "roomItem.NddNumberOfAdults");
	
	G2RoomingList_NumberOfAdults_Changed(nddNumberOfAdults);
	var tblChildrenAges = G2_FindElementById(parent, "tblChildrenAges");
	var show = sender.value!="0";
	G2_ShowHideControl(tblChildrenAges, show);
}

function G2RoomingList_Init(id)
{
	var roomingList = document.getElementById(id);
	if(roomingList==null)
		return null;
		
}

/********************************************************************************
 * use function below to validate the "at least one adult per booking" clause,  *
 * also must change the error message (Msg13_Title) to a new one detailing the  *
 * two conditions, so the user will know he must specify at least 1 adult/child *
 * per room AND at least 1 adult per booking.                                   *
 ********************************************************************************/
function RoomingListNoPassengersSelected_ClientValidate(source, arguments)
{
    // we build 2 parallel arrays for the ddl's in every "room" selected
    var selects = document.getElementsByTagName("SELECT");
	var nddNumberOfChildren = new Array();
	var nddNumberOfAdults = new Array();
	var j = 0, k = 0;
	
	// these is the 2nd Validation flag, self-explanatory name
	var atLeastOneAdultInAllRooms = false; 

    function isVisible(e)
    {
        while (e!=null)
        {
            if (e.style!=null && e.style.display=="none")
                return false;
            e = e.parentElement;
        }
        return true;
    }

    // find all Adult and Children dropdowns, enter them into arrays of each control
    for (var i=0; i<selects.length; i++)
    {
        if((selects[i].progid=="NddNumberOfAdults") && isVisible(selects[i]))
        {
            nddNumberOfAdults[j]=selects[i];
            j++;
        }
        if((selects[i].progid=="NddNumberOfChildren") && isVisible(selects[i]))
        {
            nddNumberOfChildren[k]=selects[i];
            k++;
        }
    }

		 // Validation Logic:
    // =================
    // Run on each "room", check if it's "0-adults and 0-children"
    // Check value instead of SelectedIndex in case the dropDown minimun value is 1
    for(var i=0; i<nddNumberOfAdults.length; i++)
    {
			var numberOfAdults = parseInt(nddNumberOfAdults[i].value);
			var numberOfChildren = parseInt(nddNumberOfChildren[i].value);
      if(numberOfAdults == 0 && numberOfChildren == 0)
				return false; 
    }
    return true;
}