﻿    var performCallback = true;
    var onRequest = false;
    
    function OnVacancy(Result, Context)
    {
        var error = false;
    
        try 
        {
            var o = eval("(" + Result + ")");
        } 
        catch (err)
        {
            error = true;
        }
        
        if (!error && !o.error) {
            if (pax != o.pax) {
                pax = o.pax;
                
                performCallback = false;
                try {
                    cboAdults.beginUpdate();
                    
                    var idx = cboAdults.get_selectedIndex();
                    
                    while (cboAdults.getItem(0))
                        cboAdults.removeItemAt(0);
                    
                    for (var i=1; i<=pax; i++) {
                        var item = new ComponentArt.Web.UI.ComboBoxItem();
                        item.set_text(i);
                        item.set_value(i);
                        cboAdults.addItem(item);
                    }
                    
                    cboAdults.endUpdate();
                    cboAdults.selectItemByIndex(idx < pax ? idx : 0);
                    
                    cboChildren.disable();
                    cboChildren.beginUpdate();
            
                    while (cboChildren.getItem(1))
                        cboChildren.removeItemAt(1);
                        
                    var n = pax - 1;
                    
                    for (var i=1; i<=n; i++) {
                        var item = new ComponentArt.Web.UI.ComboBoxItem();
                        item.set_text(i);
                        item.set_value(i);
                        cboChildren.addItem(item);
                    }
                        
                    cboChildren.selectItemByIndex(0);
                    cboChildren.endUpdate();
                } finally {
                    performCallback = true;
                }
            }

            var sd = CalendarFrom.getSelectedDate();
            var d = new Date(o.year, o.month - 1, o.day);
            
            if (sd.getDate() == d.getDate() && sd.getMonth() == d.getMonth() && sd.getFullYear() == d.getFullYear()) {
                CalendarFrom.setSelectedDate(d);
                PickerFrom.setSelectedDate(d);
            } else {
                alert("Dato / varighed er ændret pga. fast skiftedag");
            }
            
            CalendarFrom.setSelectedDate(d);        
            PickerFrom.setSelectedDate(d);
            
            performCallback = false;
            try {
                ddlPeriod.selectItemByIndex(o.period);
            } finally {
                performCallback = true;
            }

            document.getElementById("ctl00_SearchBox1_lblPrice").style.display = "block";
            document.getElementById("ajax-loader").style.display = "none";

            document.getElementById("ctl00_SearchBox1_lblPrice").innerHTML = o.price;
            document.getElementById("ctl00_SearchBox1_btnBook").disabled = "";

            document.getElementById("ctl00_SearchBox1_btnBook").value = 
                (o.btn != "") ? o.btn :
                "Læg i indkøbskurv";
            
            /*    
            var numChildren = cboChildren.getSelectedItem().get_value();
            
            for (var i=1; i<=numChildren; i++)
                document.getElementById("ctl00_cntLeft_BookBar1_child-age-" + i).style.display = "block";
                
            var c = numChildren + 1;
            var ctrl = document.getElementById("ctl00_cntLeft_BookBar1_child-age-" + c);
            
            while (ctrl) {
                ctrl.style.display = "none";
                c++;
                ctrl = document.getElementById("ctl00_cntLeft_BookBar1_child-age-" + c);
            }
            
            if (pax - cboAdults.getSelectedItem().get_value() > 0)
                cboChildren.enable();
            else
                cboChildren.disable();*/
        }
        else
        {
            document.getElementById("ctl00_SearchBox1_lblPrice").style.display = "block";
            document.getElementById("ajax-loader").style.display = "none";

            document.getElementById("ctl00_SearchBox1_lblPrice").innerHTML = "-";
        }
    }

    function PickerFrom_OnDateChange(sender, eventArgs)
    {
        var fromDate = CalendarFrom.getSelectedDate();
        PickerFrom.setSelectedDate(fromDate);
    }

    function CalendarFrom_OnChange(sender, eventArgs)
    {
        var fromDate = CalendarFrom.getSelectedDate();
        PickerFrom.setSelectedDate(fromDate);

        getVacancyInfo(cboAdults.getSelectedItem().get_value(), cboChildren.getSelectedItem().get_value(), 
            getChildAges(), CalendarFrom.getSelectedDate().toLocaleString(), ddlPeriod.get_selectedIndex(), 
            cboCategory.getSelectedItem().get_value());
    }
  
    function ButtonFrom_OnClick(event)
    {
        if (CalendarFrom.get_popUpShowing())
        {
            CalendarFrom.hide();
        }
        else
        {
            CalendarFrom.setSelectedDate(PickerFrom.getSelectedDate());
            CalendarFrom.show();
        }
    }

    function ButtonFrom_OnMouseUp(event)
    {
        if (CalendarFrom.get_popUpShowing())
        {
            event.cancelBubble=true;
            event.returnValue=false;
            return false;
        }
        else
        {
            return true;
        }
    }
  
    function periodChanged(sender, eventArgs)
    {
        getVacancyInfo(cboAdults.getSelectedItem().get_value(), cboChildren.getSelectedItem().get_value(), 
            getChildAges(), CalendarFrom.getSelectedDate().toLocaleString(), ddlPeriod.get_selectedIndex(), 
            cboCategory.getSelectedItem().get_value());
    }
    
    function TimeSpan(days, months, years) {
        this.days = days;
        this.months = months;
        this.years = years;
    }
    
    function dateSubtract(d, span) {
        d.setDate(d.getDate() - span.days);
        d.setMonth(d.getMonth() - span.months);
        d.setFullYear(d.getFullYear() - span.years);
        
        return d;
    }
    
    function dateCopy(d) {
        return new Date(d.getFullYear(), d.getMonth(), d.getDate());        
    }

    function calFrom_afterVisibleDateChanged(sender, eventArgs)
    {
        var vd = sender.get_visibleDate();
        var d = dateCopy(vd);
        d = dateSubtract(d, new TimeSpan(0, 2, 0));
        
        sender.get_disabledDates().selectRange(d, dateSubtract(new Date(), new TimeSpan(1, 0, 0)), false);
    }       

    function OnAdultsChanged(sender, eventArgs)
    {
        cboChildren.disable();
        cboChildren.beginUpdate();
        
        while (cboChildren.getItem(1))
            cboChildren.removeItemAt(1);
        
        var c = sender.getSelectedItem().get_value();
        var n = pax - c;
        var i;
        
        for (i=1; i<=n; i++) {
            var item = new ComponentArt.Web.UI.ComboBoxItem();
            item.set_text(i);
            item.set_value(i);
            cboChildren.addItem(item);
        }
        
        cboChildren.selectItemByIndex(0);
        cboChildren.endUpdate();
        
        if (c > 0) {
            cboChildren.enable();
        } else {
            cboChildren.disable();
        }
            
        getVacancyInfo(c, cboChildren.getSelectedItem().get_value(), getChildAges(),
            CalendarFrom.getSelectedDate().toLocaleString(), ddlPeriod.get_selectedIndex(), 
            cboCategory.getSelectedItem().get_value());
        
    }
    
    function getChildAges() {
        var n = cboChildren.getSelectedItem().get_value();
    
        var i;
        var s = "";       
        
        for (i=1; i<=n; i++) {
            if (s.length > 0)
                s += ",";
                
            s += window['cboChildAge' + i].getSelectedItem().get_value();            
            
        }        
        return s;
    }
    
    function OnCategoryChanged(sender, eventArgs) {
        getVacancyInfo(cboAdults.getSelectedItem().get_value(), cboChildren.getSelectedItem().get_value(), 
            getChildAges(), CalendarFrom.getSelectedDate().toLocaleString(), ddlPeriod.get_selectedIndex(), 
            cboCategory.getSelectedItem().get_value());
    }
    
    function OnChildAgeChanged(sender, eventArgs) {
        getVacancyInfo(cboAdults.getSelectedItem().get_value(), cboChildren.getSelectedItem().get_value(), 
            getChildAges(), CalendarFrom.getSelectedDate().toLocaleString(), ddlPeriod.get_selectedIndex(), 
            cboCategory.getSelectedItem().get_value());
    }

    function OnChildrenChanged(sender, eventArgs) {
        var c = sender.getSelectedItem().get_value();
        var i;
        
        if (c == 0) {
            for (i=1; i<=pax; i++)
                document.getElementById("ctl00_cntLeft_BookBar1_child-age-" + i).style.display = "none";
            
            document.getElementById("ctl00_cntLeft_BookBar1_thChildrenAges").disabled = "disabled";
        } else {
            document.getElementById("ctl00_cntLeft_BookBar1_thChildrenAges").disabled = "";
        
            cboAdults.disable();
            cboAdults.beginUpdate();

            for (i=1; i<=c; i++)
                document.getElementById("ctl00_cntLeft_BookBar1_child-age-" + i).style.display = "block";
            
            for (i=c+1; i<=pax; i++)
                document.getElementById("ctl00_cntLeft_BookBar1_child-age-" + i).style.display = "none";
            
            cboAdults.endUpdate();
            cboAdults.enable();
            
            getVacancyInfo(cboAdults.getSelectedItem().get_value(), c, getChildAges(), 
                CalendarFrom.getSelectedDate().toLocaleString(), ddlPeriod.get_selectedIndex(), 
                cboCategory.getSelectedItem().get_value());
        }
    }
    
    function cbPriceBefore(sender, eventArgs) {
        document.getElementById("ctl00_cntLeft_BookBar1_btnCheckout").disabled = "disabled";
    }
    
    function cbPriceAfter(sender, eventArgs) {
        document.getElementById("ctl00_cntLeft_BookBar1_btnCheckout").disabled = "";
    }
