﻿function numRooms_changed()
{
    var numRooms = document.getElementById(numRoomsClientID).value;
    var roomsTable = document.getElementById(roomsTableClientID);
    
    for (i=1; i<roomsTable.tBodies[0].rows.length; i++)
    {
        roomsTable.tBodies[0].rows[i].style.display = (i <= numRooms ? "" : "none");
        showHideChildren(document.getElementById(eval("PeopleRoom" + i + "[2]")),i);
    }

}

function numNights_changed()
{
    calcCheckOutDate();
}

function onCheckInDateChange(checkInDateID)
{
    calcCheckOutDate();

    var checkInDate = WebApp_GetDatePickerValue(WebApp_Fields.CheckInDate);
    var ticketDate = WebApp_GetDatePickerValue(WebApp_Fields.TicketDate);

    if (checkInDate && (!ticketDate || (ticketDate < checkInDate)))
        changeDates(checkInDate, checkInDate);
}

function onTicketDateChange(checkInDateID)
{
    var checkInDate = WebApp_GetDatePickerValue(WebApp_Fields.CheckInDate);
    var ticketDate = WebApp_GetDatePickerValue(WebApp_Fields.TicketDate);
    
    if (ticketDate && (!checkInDate || (ticketDate < checkInDate)))
        changeDates(ticketDate,ticketDate);
    else if (ticketDate)
        changeDates(checkInDate,ticketDate);
}

function calcCheckOutDate()
{
    var checkInDate = WebApp_GetDatePickerValue(WebApp_Fields.CheckInDate);
    var numNights = document.getElementById(numNightsClientID);

    if (checkInDate && (numNights.selectedIndex >= 0))
    {
        var checkOutDate = new Date(checkInDate.getFullYear(),checkInDate.getMonth(),checkInDate.getDate() + parseInt(numNights.value,10));
        document.getElementById(checkOutDateClientID).innerHTML = formatDate(checkOutDate,"dd/MM/yyyy");
    }
}

function changeDates(checkInDate,ticketDate)
{
    document.getElementById(hdnCheckInDateID).value = (checkInDate ? checkInDate.format("yyyy-MM-dd") : "");
    document.getElementById(hdnTicketDateID).value = (ticketDate ? ticketDate.format("yyyy-MM-dd") : "");
    eval(btnDateChangedJS);
}

function validateForm(src,args)
{
    args.IsValid = true;

    var checkInDate = WebApp_GetDatePickerValue(WebApp_Fields.CheckInDate);
    var ticketDate = WebApp_GetDatePickerValue(WebApp_Fields.TicketDate);
    var numRooms = document.getElementById(numRoomsClientID);
    var ticket = document.getElementById(ticketClientID);

    if (checkInDate == null)
    {
        args.IsValid = false;
        WebApp_SetDatePickerFocus(WebApp_Fields.checkInDate);
    }
    else if ((ticketDate == null) || (ticketDate < checkInDate))
    {
        args.IsValid = false;
        WebApp_SetDatePickerFocus(WebApp_Fields.TicketDate);
    }
    else if ((ticket.selectedIndex < 0) || (ticket.value == ""))
    {
        args.IsValid = false;
        ticket.focus();
    }
    else
    {
        var numRooms = document.getElementById(numRoomsClientID).value;

        for (i=1; i<=numRooms; i++)
        {
            var people = 0
            var peopleRoomIDs = eval("PeopleRoom" + i);
            var childrenAgesIDs = eval("ChildrenAges" + i);
            for (k=0; k<2 /*peopleRoomIDs.length*/; k++)
            {
                var people = people + parseInt(document.getElementById(peopleRoomIDs[k]).value,10);
            }
            if (people == 0)
            {
                alert(RESOURCES.TM_Error_AdultRequired);
                args.IsValid = false;
                document.getElementById(peopleRoomIDs[0]).focus();
                return;
            }
            var numChildren = parseInt(document.getElementById(peopleRoomIDs[2]).value,10);
            for (k=0; k<numChildren; k++)
            {
                var age = document.getElementById(childrenAgesIDs[k]).value;
                if (age == "")
                {
                    alert(RESOURCES.TM_Error_ChildAgeRequired);
                    args.IsValid = false;
                    document.getElementById(childrenAgesIDs[k]).focus();
                    return;
                }
            }
        }

    }
}

function showHideChildren(numChildrenCombo, roomNumber)
{
    var numChildren = parseInt(numChildrenCombo.value,10);
    var childrenIDs = eval("ChildrenAges"+roomNumber);
    for (var i=0; i<childrenIDs.length; i++)
    {
        var childrenCombo = document.getElementById(childrenIDs[i]);
        childrenCombo.style.visibility = (i < numChildren ? "visible" : "hidden");
    }
}

if (window.attachEvent)
{
    window.attachEvent('onload',calcCheckOutDate);
}
else
{
    window.addEventListener('load',calcCheckOutDate,false);
} 
