﻿var oldRooms = 0;
var oldRoomPeople = new Array();
var win = null;

function addEvent(element, eventName, func)
{
    if (window.attachEvent)
        element.attachEvent("on"+eventName, func);
    else
        element.addEventListener(eventName, func, false);
}

function openPopup()
{    
    LeftPosition = (screen.width) ? (screen.width-800)/2 : 0;
    TopPosition = (screen.height) ? (screen.height-600)/2 : 0;
    settings ='height=600 ,width=800,top='+TopPosition+',left='+LeftPosition+',scrollbars=yes,resizable';
    win = window.open('anuncio.html','anuncio',settings)
}
function getElementValue(id)
{
    var element = document.getElementById(id);
    if (element)
        return element.value;
    return null;
}


function rooms_Changed()
{
    var numRooms = 0;
    var hdnRooms = document.getElementById("hiddenRooms");

    if (hdnRooms.value != "")
    {
        var info = hdnRooms.value.split("-");
        numRooms = info.length;
        
        document.getElementById("chambres").value = numRooms;
        
        oldRoomPeople = new Array();
        for (var i=0; i<numRooms; i++)
        {
            var roomInfo = info[i].split("|");
            var childrenInfo = roomInfo[2].split(",");
            
            oldRoomPeople[oldRoomPeople.length] = [ roomInfo[0], 
                                                    roomInfo[1],
                                                    childrenInfo[0],
                                                    childrenInfo[1],
                                                    childrenInfo[2],
                                                    childrenInfo[3] ];
        }
        
    }
    else
    {
        numRooms = document.getElementById("chambres").value;

        if (oldRooms != 0)
        {
            oldRoomPeople = new Array();
            for (var i=0; i<oldRooms; i++)
            {
                oldRoomPeople[oldRoomPeople.length] = [ getElementValue("people_" + i + "_0"), 
                                                        getElementValue("people_" + i + "_1"),
                                                        getElementValue("people_" + i + "_c0"),
                                                        getElementValue("people_" + i + "_c1"),
                                                        getElementValue("people_" + i + "_c2"),
                                                        getElementValue("people_" + i + "_c3") ];
            }
        }

    }


    var container = document.getElementById("chambresConfiguration");
    container.innerHTML = "";
    
    for (var i=0; i<numRooms; i++)
    {
        var fieldSetContainer = document.createElement("div");
        fieldSetContainer.className = "chambreContainer";
        container.appendChild(fieldSetContainer);
    
        var fieldSet = document.createElement("fieldSet");
        fieldSet.className = "chambre";
        fieldSetContainer.appendChild(fieldSet);
        
        var fieldSetTitle = document.createElement("legend");
        fieldSet.appendChild(fieldSetTitle);
        fieldSetTitle.innerHTML = RESOURCES.HB_Room + " " + (i+1);
        
        var columns = [RESOURCES.HB_Adults + "<small>" + RESOURCES.HB_AdultsAgeInfo + "</small>", 
                       RESOURCES.HB_Children + "<small>" + RESOURCES.HB_ChildrenAgeInfo + "</small>"];
        for (var k=0; k<columns.length; k++)
        {
            var dl = document.createElement("dl");
            fieldSet.appendChild(dl);
            
            var dt = document.createElement("dt");
            dl.appendChild(dt);
            
            var label = document.createElement("label");
            dt.appendChild(label);
            label.setAttribute("for","type");
            label.innerHTML = columns[k];
            
            var dd = document.createElement("dd");
            dl.appendChild(dd);
            
            var info = ((i < oldRoomPeople.length) ? oldRoomPeople[i] : [2,0,null,null,null,null] ); 
            
            var select = document.createElement("select");
            dd.appendChild(select);
            select.id = "people_" + i + "_" + k;
            for (var n=0; n<5; n++)
            {
                var option = document.createElement("option");
                select.options.add(option);
                option.value = n;
                option.innerHTML = n;
            }
            select.value = info[k];
            
            if (k == 1)
            {
                addEvent(select, "change", rooms_Changed);

                if (info[k] > 0)
                {
                    var br = document.createElement("br");
                    fieldSetContainer.appendChild(br);
                    
                    var div = document.createElement("div");
                    fieldSetContainer.appendChild(div);
                    div.className = "enfants";
                    
                    var label = document.createElement("span");
                    div.appendChild(label);
                    label.innerHTML = RESOURCES.HB_ChildrenAges;

                    var br2 = document.createElement("br");
                    div.appendChild(br);
                    
                    for (var e=0; e<info[k]; e++)
                    {
                        var select2 = document.createElement("select");
                        div.appendChild(select2);
                        select2.id = "people_" + i + "_c" + e;
                        var option = document.createElement("option");
                        select2.options.add(option);
                        option.value = "";
                        option.innerHTML = "--";
                        for (var n=0; n<=11; n++)
                        {
                            option = document.createElement("option");
                            select2.options.add(option);
                            option.value = n;
                            option.innerHTML = n;
                        }
                        var enfants = info[k+e+1];
                        if (enfants !== null)
                            select2.value = enfants;
                    }
                }
            }
        }
    }
    
    oldRooms = numRooms;
    hdnRooms.value = "";
}


function countRooms(src,args)
{
    args.IsValid = false;
    
    var destination = document.getElementById("Destination");
    if (destination.value == "")
    {
        alert(RESOURCES.HB_Error_City_Required);
        destination.focus();
        return;
    }

    var numRooms = document.getElementById("chambres").value;

    var info = "";
    for (var i=0; i<numRooms; i++)
    {
        if (i>0)
            info = info + "-";

        var sum = 0;
        for (var k=0; k<2; k++)
        {
            var num = getElementValue("people_" + i + "_" + k);
            sum += parseInt(num,10);
            info = info + (k==0 ? "" : "|") + num;
            
            if ((k == 0) && (sum == 0))
            {
                alert(RESOURCES.HB_Error_Adult_Required);
                document.getElementById("people_" + i + "_" + k).focus();
                return;
            }
            
            if (k == 1)
            {
                for (var c=0; c<num; c++)
                {
                    var combo = document.getElementById("people_" + i + "_c" + c);
                    var age = combo.value;
                    if (age == "")
                    {
                        alert(RESOURCES.HB_Error_ChildAgeRequired);
                        args.IsValid = false;
                        combo.focus();
                        return;
                    }
                }
            }
        }
        
        if ((sum == 0) || (sum > 6))
        {
            document.getElementById("people_" + i + "_" + 0).focus();
            return;
        }
        
        for (var k=0; k<4; k++)
        {
            info = info + (k==0 ? "|" : ",") + getElementValue("people_" + i + "_c" + k);
        }
    }

    var hdnRooms = document.getElementById("hiddenRooms");
    hdnRooms.value = info;
    
    args.IsValid = true;
}


function createComboNumPeople(container)
{
    var select = document.createElement("select");
    container.appendChild(select);
    
    for (var i=0; i<8; i++)
    {
        var option = document.createElement("option");
        select.add(option);
        option.value = i;
        option.innerHTML = i;
    }
    
    return select;
}


function onStartDateChange(picker)
{
    var startDate = WebApp_GetDatePickerValue(WebApp_Fields.StartDate);
    var endDate = WebApp_GetDatePickerValue(WebApp_Fields.EndDate);
    
    if (startDate && (!endDate || (endDate <= startDate)))
    {
        endDate = new Date(startDate.getFullYear(),startDate.getMonth(),startDate.getDate()+1);
        WebApp_SetDatePickerValue(WebApp_Fields.EndDate,endDate);
    }

    calcNumNights();
}

function onEndDateChange(picker)
{
    var startDate = WebApp_GetDatePickerValue(WebApp_Fields.StartDate);
    var endDate = WebApp_GetDatePickerValue(WebApp_Fields.EndDate);
    
    if (startDate && (!endDate || (endDate <= startDate)))
    {
        startDate = new Date(endDate.getFullYear(),endDate.getMonth(),endDate.getDate()-1);
        WebApp_SetDatePickerValue(WebApp_Fields.StartDate,startDate);
    }

    calcNumNights();
}

function onNumNightsChange()
{
    var nights = parseInt(document.getElementById(NumNightsClientID).value,10);
    if (!isNaN(nights))
    {
        var startDate = WebApp_GetDatePickerValue(WebApp_Fields.StartDate);
        
        if (startDate != null)
        {
            endDate = new Date(startDate.getFullYear(),startDate.getMonth(),startDate.getDate()+nights);
            WebApp_SetDatePickerValue(WebApp_Fields.EndDate,endDate);
        }
    }
}

function calcNumNights()
{
    var startDate = WebApp_GetDatePickerValue(WebApp_Fields.StartDate);
    var endDate = WebApp_GetDatePickerValue(WebApp_Fields.EndDate);

    if (startDate)
        starDate = Date.UTC(startDate.getFullYear(),startDate.getMonth(),startDate.getDate(),0,0,0,0);
    if (endDate)
        endDate = Date.UTC(endDate.getFullYear(),endDate.getMonth(),endDate.getDate(),0,0,0,0);
        
    var oneDay = 1000*3600*24;
    document.getElementById(NumNightsClientID).value = ((startDate != null) && (endDate != null)) 
                                                       ? Math.round(((endDate-startDate)/(oneDay)))
                                                       : "";
}

function validateStartEndDate(src,args)
{
    var startDate = WebApp_GetDatePickerValue(WebApp_Fields.StartDate);
    var endDate = WebApp_GetDatePickerValue(WebApp_Fields.EndDate);
    
    args.IsValid = ((startDate != null) && (endDate != null) && (startDate < endDate));
}
