var Booking = Booking || {};

Booking.page = 
{
    skinPath: "",
    gmapMainIconColor: "#126E95",
    gmapFocusIconColor: "#F66333",
    
    setupFront: function()
    {        
        Booking.page.setupDetailsButtons();
        Booking.page.setupHotelDetailsButtons();
        Booking.page.setupMapButtons();
        Booking.page.setupDatePickers();
        Booking.page.setupScrollPane(); 
        Booking.page.setupEventCycle();    
        Booking.page.setupTooltips();
    },

    setupInner: function()
    {
    },

    setupSearchTabs: function() {
        $("#search-tab-hotel").click(function() {
            if ($(this).is(".active")) return;
            $("#search-tab-packets").removeClass("active");
            $(this).addClass("active");
            $("#facet-accomodation").show();
            Booking.facet.triggerAccomodationFacet("accomodation", $("#facet-accomodation-select").val());
        });
        $("#search-tab-packets").click(function() {
            if ($(this).is(".active")) return;
            $("#search-tab-hotel").removeClass("active");
            $(this).addClass("active");
            $("#facet-accomodation").hide();
            Booking.facet.triggerAccomodationFacet("accomodation", Booking.facet.packetsName);
        });
        if (Booking.facet.packetsCount == 0)
            $("#search-tab-packets").hide();
    },
    
    setupTooltips: function() {      
      $(".tooltip").hoverIntent(
        function() {
            var id = "#"+this.href.split("#")[1];
            $(id).slideDown();
        },
        function() {
            var id = "#"+this.href.split("#")[1];
            $(id).slideUp();
        }
      );
      
    },
    
    setupDatePickers: function()
    {
        $("#checkin, #checkout").datepicker({
            dateFormat: "dd/mm/yy"
        });        
    },

    setupCart: function()
    {
        Booking.page.setupCartDetailsButtons();
        Booking.page.setupCartBillingButtons();
        Booking.page.setupCartPayButtons();
        Booking.page.setupCartProvince();
        Booking.page.setupEventCycle();    
        Booking.page.setupTooltips();         
    },

    setupResults: function(extraMargin) {
        var fm = Booking.page.footerMargin;
        //if ($.browser.msie)
        //     fm += 18;

        function resizeResultsBox(evt) {
            var results = $("#results-box");
            var wh = $(window).height();
            //var fh = $("#footer").height();
            var ro = results.offset();
            results.height(wh - ro.top - extraMargin);
        }
        
        $(window).unbind("resize");
        $(window).resize(resizeResultsBox);
        resizeResultsBox();
    },

    setupDetailsButtons: function() {
        $(".hotel-open-details").click(function(evt) {
            $(evt.target).parent().hide();
            $(evt.target).parent().siblings(".hotel-long").slideDown();
        });

        $(".hotel-close-details").click(function(evt) {
            $(evt.target).parent().slideUp();
            $(evt.target).parent().siblings(".hotel-short").show();
        });    
    },

    setupCartDetailsButtons: function() {

        $(".hotel-open-details").click(function(evt) {            
            $(evt.target).parent().parent().find(".details").slideDown(); 
            $(evt.target).hide();
        });

        $(".hotel-close-details").click(function(evt) {
            $(evt.target).parent().slideUp();            
            $(evt.target).parent().parent().find(".hotel-open-details").show();
        });    
    },

    setupCartBillingButtons: function() {
        if ($("#bill-toggle-lite").length != 1) return;
        if ($("#bill-toggle-full").length != 1) return;
        
        function checkBillLite(v) {
            if (v == 'false') {
                $(".bill-toggle-lite-elt").slideUp();
                $("#cart-form").attr("action", "?_action=save");
            }
            else {
                $(".bill-toggle-lite-elt").slideDown();
                $("#cart-form").attr("action", "?_action=save-billing-lite");
                checkBillFull($("#bill-toggle-full").val());
            }
        }

        function checkBillFull(v) {
            if (v == 'false') {
                $(".bill-toggle-full-elt").slideUp();
                $("#cart-form").attr("action", "?_action=save-billing-lite");
            }
            else {
                $(".bill-toggle-full-elt").slideDown();
                $("#cart-form").attr("action", "?_action=save-billing-full");
            }
        }

        $("#bill-toggle-lite").change(function(evt) { checkBillLite($(this).val()); });
        $("#bill-toggle-full").change(function(evt) { checkBillFull($(this).val()); });

        checkBillLite($("#bill-toggle-lite").val());
    },

    setupCartPayButtons: function() {
        var ccdefault = null;
        
        if ($("#b12_payment_method_cc").length != 1) return;
        if ($("#b12_payment_method_sw").length != 1) return;

        function setChecked(el) {
            //$("#b12_payment_mode_cc_balance").removeAttr("checked");
            //$("#b12_payment_mode_cc_deposit").removeAttr("checked");
            //$("#b12_payment_mode_sw_balance").removeAttr("checked");
            el.get(0).checked = true;
        }
        
        function checkCC(v) {
            if (!v) return;
            
            if (ccdefault == null) {
                if ($("#b12_payment_mode_cc_balance").attr("checked"))
                    ccdefault = $("#b12_payment_mode_cc_balance");
                else
                    ccdefault = $("#b12_payment_mode_cc_deposit");
            }
            
            $("#pay-creditcard").show();
            $("#pay-swift").hide();
            setChecked(ccdefault);
        }

        function checkSW(v) {
            if (!v) return;
            $("#pay-creditcard").hide();
            $("#pay-swift").show();
            setChecked($("#b12_payment_mode_sw_balance"));
        }

        $("#b12_payment_method_cc").change(function(evt) { checkCC($(this).attr("checked")); });
        $("#b12_payment_method_sw").change(function(evt) { checkSW($(this).attr("checked")); });

        checkCC($("#b12_payment_method_cc").attr("checked"));
        checkSW($("#b12_payment_method_sw").attr("checked"));
    },

    setupCartProvince: function() {
        function checkCountry(prefix, country) {
            if (country != "IT") {
                $(prefix+"_input").removeAttr("disabled").show();
                $(prefix+"_select").attr("disabled", 1).hide();
            }
            else {
                $(prefix+"_input").attr("disabled", 1).hide();
                $(prefix+"_select").removeAttr("disabled").show();
            }
        }
        
        $("#b12_country").change(function(evt) {
            checkCountry("#b12_province", $(this).val());
        });
        $("#b12_bill_country").change(function(evt) {
            checkCountry("#b12_bill_province", $(this).val());
        });
        
        checkCountry("#b12_province", $("#b12_country").val());
        checkCountry("#b12_bill_province", $("#b12_bill_country").val());
    },

    setupMapButtons: function() {
        $("#search-show-map").click(function(evt) {
            $("#map-box").show();
            $("#search-hide-map").show();
            $("#search-show-map").hide();
            Booking.facet.redrawGMap();
            Booking.page.setupResults(60+10);
        });

        $("#search-hide-map").click(function(evt) {
            $("#map-box").hide();
            $("#search-show-map").show();
            $("#search-hide-map").hide();
            Booking.page.setupResults(60+10);
        });
    },

    setupEventAnimation: function() {
        $("#event-logo").css("top", (120 - $("#event-logo").height())/2);
        $("#event-logo").css("left", (192 - $("#event-logo").width())/2);
        $("#event-text div").css("top", (120 - $("#event-text div").height())/2);
        $("#event-text div").css("left", (192 - $("#event-text div").width())/2);
        
        $("#event-text").hide();
        $("#event-logo").hide();
        
        setTimeout("Booking.page.ea_showLogo()", 1000);
    },
    
    setupHomeNewsAnimation: function() {
          $("#home-news-box").cycle({
                fx: 'scrollUp',
                timeout: 6000,
                delay: -2000
           });         
    },
    
    setupEventCycle: function() {
          $("#new-event-box .cycle").cycle({
                fx: 'scrollLeft',
                timeout: 6000,
                delay: -2000
                
           });         
    },        
    ea_showLogo: function() {
        $("#event-logo").fadeIn(1500, function() {
            setTimeout("Booking.page.ea_hideLogo()", 3000);
        });    
    },

    ea_hideLogo: function() {
        $("#event-logo").hide("scale", {}, 1500, function() {
            Booking.page.ea_showText();
        });    
    },

    ea_showText: function() {
        $("#event-text").fadeIn(1500, function() {
            setTimeout("Booking.page.ea_hideText()", 3000);
        });    
    },

    ea_hideText: function() {
        $("#event-text").hide("slide", { direction: "down" }, 1500, function() {
            Booking.page.ea_showLogo();
        });    
    },

    setupHotelDetails: function() {

    },

    setupScrollPane: function() {
        $("#results-box .search-item").hoverIntent(
            function(evt) {
                if(!$(this).find(".hotel-long").is(":visible"))
                    $(this).find(".hotel-short").fadeIn();
            },
            function(evt) {
                $(this).find(".hotel-short").fadeOut();
            }
        );  
    },
        
    setupHotelDetailsButtons: function() {        
        $(".hotel-open-details").click(function(evt) {
            $(evt.target).parents(".hotel-short").hide().siblings(".hotel-long").slideDown(2000);
            var target = $(evt.target).parent().parent();
            $("#results-container").scrollTo(target , 2000,{offset: -6});
            Booking.facet.focusGMapHotel($(this).parents(".search-item")[0]);
        });

        $(".hotel-close-details").click(function(evt) {
            $(evt.target).parents(".hotel-long").slideUp().siblings(".hotel-short").fadeIn(3000);
        });    

        $(".hotel-map-details").click(function(evt) {
            Booking.facet.focusGMapHotel($(this).parents(".search-item")[0]);
        });
    },
    book: function(b02_id,b21_id,b20_id,adults,checkin,checkout) {
        $('#b02_id').val(b02_id);
        $('#b20_id').val(b20_id);
        $('#b21_id').val(b21_id);
        $('#ad').val(adults);
        $('#tin').val(checkin);
        $('#tout').val(checkout);
        
        $('#form-book').submit();
        
    }
    
    
};

