$().ready(function () {

    $('.slideShow').cycle({
        fx: 'fade',
        speed: 2500,
        timeout: 9000,
        pause: 1,
        pager: '#nav',
        slideExpr: 'div.slide'
    });


    //booking box
    $(".bookingBox").addClass("jqBookingBox");
    $(".bookingBox .experiences").addClass("hiddenTxt");
    //"highlight" and add cover for bottom shadow
    $(".bookingBox h3").append("<span></span>");
    $(".bookingBox .accommodationHeading").addClass("selected");
    $(".bookingBox h3").click(function () {
        if (!($(this).is(".selected"))) {
            $(".bookingBox .content").toggleClass("hiddenTxt");
            $(".bookingBox h3").toggleClass("selected");
        }
    });
    //tabbing through
    $(".bookingBox input").focus(function () {
        $(this).parents(".bookingBox").find(".content").not($(this).parents(".content")).addClass("hiddenTxt");
        $(this).parents(".content").removeClass("hiddenTxt");
        $(this).parents(".bookingBox").find("h3").not($(this).parents(".content").prev()).removeClass("selected");
        $(this).parents(".content").prev().addClass("selected");
    });

    $(".datePick").each(function () {
        $(this).click(function () {
            $(this).find('.datepicker').datepicker("show");
        });
    });



    //activity calendar week and month selection
    if ($(".activityCalendar").size() > 0) {
        var calMode = String(window.location.href);
        var subStrStart = calMode.indexOf("mode");
        if (subStrStart == -1) { // week
            $(".activityCalendar td.selected").siblings().not("td:eq(0)").addClass("selected");
        }
        var mode = calMode.substr(subStrStart + 5, 5); // month
        if (mode == "month") {
            $(".activityCalendar tr:gt(2)").each(function () {
                $(this).find("td:gt(0)").not("td.inactive").addClass("selected");
            });
        }
    }

    //hotel facilities list two rows
    $(".facilities ul").each(function () {
        if ($(this).find("li").size() > 8) {
            $(this).find("li:gt(7)").addClass("hiddenTxt");
            $(this).prev().addClass("expand");
        }
        $(this).find("li:lt(8)").each(function () {
            if ($(this).height() > 25) {
                $(this).css("width", "49%");
                //hide this if it's the 8th
                if ($(this).index() == 7) {
                    $(this).addClass("hiddenTxt");
                }
                //hide next if it's before the 8th, and more than 7 items
                if ($(this).index() < 7 && $(this).parent().find("li").size() > 7) {
                    $(this).next().addClass("hiddenTxt");
                }
            }
        });
    });
    //collapse expand facilities
    $(".facilities .expand").live("click", function () {
        $(this).toggleClass("collapse");
        $(this).next().toggleClass("expanded");
    });


    if (typeof initializeGoogleMaps == 'function') {
        initializeGoogleMaps();
    }

    // Children ages
    var $children = $(".children");
    if ($children.length > 0) {
        $children.find('select').change(function () {
            var numberOfChildren = $(this).find(":selected").val();
            if (numberOfChildren != '0') {
                $children.find('div').removeAttr('style');
                var textBoxes = $children.find('input');

                var i = 0;
                $(textBoxes).each(function () {
                    if (i < numberOfChildren)
                        $(this).removeAttr('style');
                    else
                        $(this).attr('style', 'display:none');
                    i++;
                });
            } else {
                $children.find('div').attr('style', 'display:none');
            }
        });
    }

    // Category filter
    var $accomodationCategories = $(".accommodationCategories");
    if ($accomodationCategories.length > 0) {
        $accomodationCategories.find('input:checkbox').change(function () {
            var firstName = $accomodationCategories.find('input:checkbox:first').attr('name');
            if ($(this).is(":checked")) {
                if ($(this).attr('name') != firstName) {
                    $("input").each(function () {
                        if ($(this).attr('name') == firstName) {
                            $(this).removeAttr("checked");
                        }
                    });
                }
            }
        });
    }

    //"Geiloguiden" company overview filter
    var $companyOverview = $(".accommodationSearchRow.companyOverview");
    if ($companyOverview.length > 0) {

        //get values from hidden field
        var values = $companyOverview.find("input:hidden").val();
        if (values != '') {
            var hiddenArrayed = values.split(",");
            $(".categorySearch div label:gt(0) input:checkbox").each(function () {
                for (var i = 0; i < hiddenArrayed.length; i++) {
                    if ($(this).val() == hiddenArrayed[i]) {
                        $(this).attr("checked", "checked");
                    }
                }
            });
        } else { // Mark all
            var valuesArray = [];
            $(".categorySearch div label:gt(0) input:checkbox").each(function () {
                $(this).attr("checked", "checked");
                valuesArray.push($(this).val());
            });
            $(".categorySearch div label:eq(0) input:checkbox").attr("checked", "checked");
            //convert value array to a string
            values = valuesArray.join(",");
            //set values to hidden form field
            $companyOverview.find("input:hidden").val(values);
        }

        //when one of the checkboxes change state
        $companyOverview.find(".categorySearch div input:checkbox").change(function () {
            //convert values to array
            var valuesArrayed = values.split(",");
            //when checkbox is checked
            if ($(this).is(":checked")) {
                //when "all" is checked, check all
                if ($(this).val() == "-1") {
                    valuesArrayed = [];
                    $(".categorySearch div label:gt(0) input:checkbox").each(function () {
                        $(this).attr("checked", "checked");
                        valuesArrayed.push($(this).val());
                    });
                } else {
                    valuesArrayed.push($(this).val());
                    $(".categorySearch div label:eq(0) input:checkbox").removeAttr("checked");
                }
            } else {
                //when "all" is unchecked
                if ($(this).val() == "-1") {
                    valuesArrayed = [];
                    $(".categorySearch div label:gt(0) input:checkbox").each(function () {
                        $(this).removeAttr("checked");
                    });
                } else {
                    $(".categorySearch div label:eq(0) input:checkbox").removeAttr("checked");
                    var thisIndex = jQuery.inArray($(this).val(), valuesArrayed);
                    console.log(thisIndex);
                    valuesArrayed.splice(thisIndex, 1);
                }
            }
            //convert value array to a string
            values = valuesArrayed.join(",");
            //set values to hidden form field
            $companyOverview.find("input:hidden").val(values);
        });
    }
});


