﻿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()
{
    calcEndDate();
}

function onPackageDateChange(packageDateID)
{
    calcEndDate();

    var packageDate = WebApp_GetDatePickerValue(WebApp_Fields.PackageDate);
    var ticketDate = WebApp_GetDatePickerValue(WebApp_Fields.TicketDate);

    if (packageDate && (!ticketDate || (ticketDate < packageDate)))
    {
        WebApp_SetDatePickerValue(WebApp_Fields.TicketDate,packageDate);
    }
}

function onTicketDateChange(packageDateID)
{
    var packageDate = WebApp_GetDatePickerValue(WebApp_Fields.PackageDate);
    var ticketDate = WebApp_GetDatePickerValue(WebApp_Fields.TicketDate);
    
    if (ticketDate && (!packageDate || (ticketDate < packageDate)))
    {
        WebApp_SetDatePickerValue(WebApp_Fields.PackageDate,ticketDate);
    }
}

function calcEndDate()
{
    var packageDate = WebApp_GetDatePickerValue(WebApp_Fields.PackageDate);
    var numNights = document.getElementById(numNightsClientID);

    if (packageDate && (numNights.selectedIndex >= 0))
    {
        var endDate = new Date(packageDate.getFullYear(),packageDate.getMonth(),packageDate.getDate() + parseInt(numNights.value,10));
        document.getElementById(endDateClientID).innerHTML = formatDate(endDate,"dd/MM/yyyy");
    }
}

function validateForm(src,args)
{
    args.IsValid = true;

    var packageDate = WebApp_GetDatePickerValue(WebApp_Fields.PackageDate);
    var ticketDate = WebApp_GetDatePickerValue(WebApp_Fields.TicketDate);
    var numRooms = document.getElementById(numRoomsClientID);
    //var ticket = document.getElementById(ticketClientID);

    if (packageDate == null)
    {
        args.IsValid = false;
        WebApp_SetDatePickerFocus(WebApp_Fields.PackageDate);
    }
    else if ((ticketDate == null) || (ticketDate < packageDate))
    {
        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.PA_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.PA_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',calcEndDate);
}
else
{
    window.addEventListener('load',calcEndDate,false);
} 

