﻿function bindRooms(roomCount, start, completeDelegate) {
    var rooms = [];
    for (i = 1; i <= roomCount; i++)
        rooms.push(i);

    var updateTarget = $("#divRoomGuests");

    if (!start)
        $("#divCriteriaSearch").slideUp();

    updateTarget.slideUp(function() {
        updateTarget.setTemplateElement("roomTemplate");
        updateTarget.processTemplate(rooms);

        if (!start)
            $("#divCriteriaSearch").slideDown();

        updateTarget.slideDown();

        $("#selRooms").val(roomCount);
        $("#selRooms").change(function() {
            bindRooms($(this).val())
        });

        $(".childs").change(function() {
            if (parseInt($(this).val()) == 0)
                $(this).closest(".roomCriteria").find(".divChildAge").hide("slow");
            else
                $(this).closest(".roomCriteria").find(".divChildAge").show("slow");
        });

        if (completeDelegate != null)
            completeDelegate();
    });
}

function setupHotelDatePicker(id, callback, callbackArgs) {
    $(id).datepicker({
        numberOfMonths: 2,
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy-mm-dd',
        showButtonPanel: true,
        onSelect: function(dateFrom) { $(id).val(dateFrom); if (callback) { callback(callbackArgs) } }
    });
}

function dateFromChanged(container) {
    var dateFrom = $(container).find(".dateFrom").val();
    var y = parseInt(dateFrom.substring(0, 4));
    var m = dateFrom.substring(5, 7);
    var d = dateFrom.substring(8, 10);

    var dateTo = new Date(y, m, d);
    dateTo.setMonth(dateTo.getMonth() - 1);
    dateTo.setDate(dateTo.getDate() + 2);

    var dateToString = dateTo.getFullYear() + "-" + getLastTwo("0" + (dateTo.getMonth() + 1)) + "-" + getLastTwo("0" + dateTo.getDate());
    $(container).find(".dateTo").val(dateToString);
}


function getLastTwo(val) {
    return val.substring(val.length, val.length - 2);
}

function validateHotelCriteria(container) {
    
    var totalPax = 0;
    var isChdAgesValid = true;
    jQuery.each($(container).find(".adults"), function(i, obj) {
        var adtCount = parseInt($(obj).val());
        totalPax += adtCount;
    });
   

    jQuery.each($(container).find(".childs"), function(i, obj) {
        var chdCount = parseInt($(obj).val());
        totalPax += chdCount;
        if (chdCount > 0) {
            var chdAges = $(obj).closest(".roomCriteria").find(".childAges");
            var enteredChdAges = $(chdAges).val().split(",");
            if (enteredChdAges.length != chdCount) {
                alert("Vänligen fyll i rätt antal barnåldrar!\nÅldern på flera barn läggs till genom att skriva '1,5' tex");
                isChdAgesValid = false;
                return;
            }

            for (var i = 0; i < enteredChdAges.length; i++) {

                var enteredAge = enteredChdAges[i];
                if (!enteredAge || isNaN(enteredAge)) {
                    alert("Vänligen fyll i rätt antal barnåldrar!\nÅldern på flera barn läggs till genom att skriva '1,5' tex");
                    isChdAgesValid = false;
                    return;
                }
            };
        }
    });

    if (!isChdAgesValid)
        return false;

    if (totalPax > 9) {
        alert("Det totala antalet resenärer får inte överstiga 9. Vänligen gör flera bokningar för att boka mer än 9 personer.");
        return false;
    }

    var dateFrom = $(container).find(".dateFrom").val();
    var dateTo = $(container).find(".dateTo").val();

    if (dateFrom == "" || dateTo == "") {
        alert("Vänligen välj till- och fråndatum!");
        return false;
    }

    return true;
}
