﻿// JScript File

function configureUI(controlsToHide, controlsToShow, titleLabelToUpdate)
{
    try
    {
        var obj = document.getElementById("titleLabel");
        
        updateTitleText(titleLabelToUpdate);
        hideSearchControls(controlsToHide);
        showSearchControls(controlsToShow);
    }
    catch(e)
    {
        alert("Debido a problemas de conexión con nuestros proveedores no podemos continuar con tu proceso de compra, por favor inténtalo en unos minutos. Disculpa las molestias.");
        window.location ="./Default.aspx";
    }
    finally{ }
}

function updateTitleText(titleLabelToUpdate)
{
    var objTitleLabel = document.getElementById(titleLabelToUpdate[0]);
    if(objTitleLabel != null) objTitleLabel.innerHTML = titleLabelToUpdate[1];
}

function hideSearchControls(controlsToHide)
{   
    for(var i = 0; i != controlsToHide.length; i++)
    {
        var obj = document.getElementById(controlsToHide[i]);
        if(obj != null) obj.style.display = 'none';
    }
}

function showSearchControls(controlsToShow)
{
    for(var i = 0; i != controlsToShow.length; i++)
    {
        var obj = document.getElementById(controlsToShow[i]);
        if(obj != null) obj.style.display = '';
    }
}

function handleItemsRequesting(comboBox)
{   
    var text = comboBox.GetText();
          
    if ((text.length < 3) && 
    ((text.length != 0) && 
    comboBox.Items.length <= 0))
    {
        return false;    
    }
}

function handleDropDownOpening(comboBox)
{   
    var text = comboBox.GetText();
    
    if(text.length < 2)
    {
        return false;
    }
}

// MultiSearchFlightPassengerControl Scripting
    function adultsChange_Handler(objAdultsSelect, objChildrenSelect, objBabiesSelect)
    {
        var MAX_NUMBER_OF_ADULTS = 9;
        
        var adultsSelectedValue;
        var childrenSelectedValue;
        var babiesSelectedValue;
        
        if(typeof(objAdultsSelect) == "string")
        {
            objAdultsSelect = document.getElementById(objAdultsSelect);
            objChildrenSelect = document.getElementById(objChildrenSelect);
            objBabiesSelect = document.getElementById(objBabiesSelect);
        }
         
        adultsSelectedValue = objAdultsSelect.value;
        childrenSelectedValue = objChildrenSelect.value;
        babiesSelectedValue = objBabiesSelect.value;
        
//        var numberOfChildren = Math.min(MAX_NUMBER_OF_ADULTS - adultsSelectedValue, adultsSelectedValue * 2);
//        var numberOfBabies = Math.min((2 * adultsSelectedValue) - childrenSelectedValue, adultsSelectedValue);

        var numberOfChildren = adultsSelectedValue * 2;
        var numberOfBabies = Math.min((2 * adultsSelectedValue) - childrenSelectedValue, adultsSelectedValue); ;
        
        deleteSelectOptions(objChildrenSelect);
        deleteSelectOptions(objBabiesSelect);

        numberOfChildren = (numberOfChildren > 0) ? numberOfChildren : 0;
        setOptionValues(objChildrenSelect, numberOfChildren);
        numberOfBabies = (numberOfBabies > 0) ? numberOfBabies : 0;
        setOptionValues(objBabiesSelect, numberOfBabies);
    }
    
    function childrenChange_Handler(objAdultsSelect, objChildrenSelect, objBabiesSelect)
    {
        var adultsSelectedValue = objAdultsSelect.value;
        var childrenSelectedValue = objChildrenSelect.value;
        var babiesSelectedValue = objBabiesSelect.value;
        
        var numberOfBabies = Math.min((2 * adultsSelectedValue) - childrenSelectedValue, adultsSelectedValue);
        
        deleteSelectOptions(objBabiesSelect);
        setOptionValues(objBabiesSelect, numberOfBabies);
    }
    
    function setOptionValues(objSelect, numberOfOptions)
    {
        for(var i = 0; i <= numberOfOptions; i++)
        {
            objSelect.options[i] = new Option(i, i);
        }
        
        objSelect.options[0].selected = true;
    }
    
    function deleteSelectOptions(objSelect)
    {
        while(objSelect.options.length != 0)
        {
            objSelect.options[0] = null;
        }
    }

//---------------------------------------------------

//MultiSearchHotelRoomsControl Scripting

    function roomsQuantity_Handler(launchControl, controlsToHide, adultControlsToShow, childrenControlsToShow, firstChildAge, secondChildAge)
    {
        var objControlToLaunch = document.getElementById(launchControl);
        
        for(var i = 1; i < objControlToLaunch.value; i++)
        {
            var obj;
            
            obj = document.getElementById(adultControlsToShow[i]);
            if(obj != null) obj.style.display = "";
            
            obj  = document.getElementById(childrenControlsToShow[i]);
            if(obj != null) obj.style.display = "";
        }
        
        for(var i = 5; i >= objControlToLaunch.value; i--)
        {
            var obj;
            
            obj = document.getElementById(adultControlsToShow[i]);
            if(obj != null) obj.style.display = "none";
            
            obj = document.getElementById(childrenControlsToShow[i]);
            if(obj != null) obj.style.display = "none";
            
            obj = document.getElementById(firstChildAge[i]);
            if(obj != null) obj.style.display = "none";
            
            obj = document.getElementById(secondChildAge[i]);
            if(obj != null) obj.style.display = "none";
        }
    }
    
    function childrenQuantity_Handler(launchControl, controlsToShowHide)
    {
        var objControlToLaunch = document.getElementById(launchControl);
        
        hideControls(controlsToShowHide);
        showRoomsControls(controlsToShowHide, objControlToLaunch.value);
    }
    
    function hideControls(controlsToHide)
    {
        for(var i = 0; i < controlsToHide.length; i++)
        {
            var obj = document.getElementById(controlsToHide[i]);
            if(obj != null) obj.style.display = 'none';
        }
    }
    
    function showRoomsControls(controlsToShow, numberOfControlsToShow)
    {
        for(var i = 0; i < numberOfControlsToShow; i++)
        {
            var obj = document.getElementById(controlsToShow[i]);
            if(obj != null) obj.style.display = '';
        }
    }


//---------------------------------------------------

//MultiSearchFlightAndHotelRoomsControl Scripting

    function RoomsQuantityDropDownListChange_Handler(launchControl, controlsToHide, adultControls, childrenControls, babiesControls)
    {
        var objLaunchControl = document.getElementById(launchControl);
        
        hideFlightAndHotelControls(controlsToHide);
        showFlightAndHotelControls(adultControls, objLaunchControl.value);
        showFlightAndHotelControls(childrenControls, objLaunchControl.value);
        showFlightAndHotelControls(babiesControls, objLaunchControl.value);
    }
    
    function childrenFlightAndHotelChange_Handler(launchControl, babiesControl)
    {
        var objLaunchControl = document.getElementById(launchControl);
        var objSelectBabiesControl = document.getElementById(babiesControl);
        var numberOfElements = (2 - objLaunchControl.value);
        
        deleteFlightAndHotelSelectOptions(objSelectBabiesControl);
        setFlightAndHotelOptionValues(objSelectBabiesControl, numberOfElements);
    }
    
    function hideFlightAndHotelControls(controlsToHide)
    {
        for(var i = 0; i < controlsToHide.length; i++)
        {
            var obj = document.getElementById(controlsToHide[i]);
            if(obj != null) obj.style.display = 'none';
        }
    }
    
    function showFlightAndHotelControls(controlsToShow, numberOfControlsToShow)
    {
        for(var i = 0; i < numberOfControlsToShow -1; i++)
        {
            var obj = document.getElementById(controlsToShow[i]);
            if(obj != null) obj.style.display = '';
        }
    }
    
    function setFlightAndHotelOptionValues(objSelect, numberOfOptions)
    {
        for(var i = 0; i <= numberOfOptions; i++)
        {
            objSelect.options[i] = new Option(i, i);
        }
        
        objSelect.options[0].selected = true;
    }
    
    function deleteFlightAndHotelSelectOptions(objSelect)
    {
        while(objSelect.options.length != 0)
        {
            objSelect.options[0] = null;
        }
    }

//---------------------------------------------------