$(window).load(function () {

    $('.navBox').css("display", "block")
    $(document).foundation();

});

$(document).ready(function () {
    $('img')
        .removeAttr('width')
        .removeAttr('height');

    $('a[rel*="lightbox"]').fancybox({
        helpers: {
            title: {
                type: 'inside',
            },
            overlay: {
                locked: false
            }
        }
    });

    $('.slickSlider.head').slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        dots: false,
        arrows: false,
        infinite: true,
        autoplay: true,
        autoplaySpeed: 7500,
        speed: 1500,
        fade: true,
        pauseOnHover: false,
    });

    $('.co-teaser-boxes__slider').slick({
        slidesToShow: 4,
        slidesToScroll: 1,
        dots: false,
        arrows: true,
        infinite: true,
        autoplay: false,
        autoplaySpeed: 4000,
        prevArrow: '<button type="button" class="slick-prev slick-arrow"><img src="/fileadmin/co_system/global/css/icons/arrow_carrot-left.svg" alt="Left Arrow"></button>',
        nextArrow: '<button type="button" class="slick-next slick-arrow"><img src="/fileadmin/co_system/global/css/icons/arrow_carrot-right.svg" alt="Right Arrow"></button>',
        speed: 500,
        fade: false,
        pauseOnHover: false,
        responsive: [
            {
                breakpoint: 1366,
                settings: {
                    slidesToShow: 4,
                }
            },
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 3,
                }
            },
            {
                breakpoint: 768,
                settings: {
                    slidesToShow: 2,
                }
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 1,
                }
            }
        ]
    });

    $('.co-teaser-boxes__slider-tourism').slick({
        slidesToShow: 3,
        slidesToScroll: 1,
        dots: false,
        arrows: true,
        infinite: true,
        autoplay: false,
        autoplaySpeed: 4000,
        prevArrow: '<button type="button" class="slick-prev slick-arrow"><img src="/fileadmin/co_system/global/css/icons/arrow_carrot-left.svg" alt="Left Arrow"></button>',
        nextArrow: '<button type="button" class="slick-next slick-arrow"><img src="/fileadmin/co_system/global/css/icons/arrow_carrot-right.svg" alt="Right Arrow"></button>',
        speed: 500,
        fade: false,
        pauseOnHover: false,
        responsive: [
            {
                breakpoint: 1366,
                settings: {
                    slidesToShow: 3,
                }
            },
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 2,
                }
            },
            {
                breakpoint: 768,
                settings: {
                    slidesToShow: 2,
                }
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 1,
                }
            }
        ]
    });


    // $('.co-teaser-boxes__slider-news').slick({
    //     slidesToShow: 3,
    //     slidesToScroll: 1,
    //     dots: false,
    //     arrows: true,
    //     infinite: true,
    //     autoplay: false,
    //     autoplaySpeed: 4000,
    //     prevArrow: '<button type="button" class="slick-prev slick-arrow"><img src="/fileadmin/co_system/global/css/icons/arrow_carrot-left.svg" alt="Left Arrow"></button>',
    //     nextArrow: '<button type="button" class="slick-next slick-arrow"><img src="/fileadmin/co_system/global/css/icons/arrow_carrot-right.svg" alt="Right Arrow"></button>',
    //     speed: 500,
    //     fade: false,
    //     pauseOnHover: true,
    //     responsive: [
    //         {
    //             breakpoint: 1366,
    //             settings: {
    //                 slidesToShow: 3,
    //             }
    //         },
    //         {
    //             breakpoint: 1024,
    //             settings: {
    //                 slidesToShow: 2,
    //             }
    //         },
    //         {
    //             breakpoint: 768,
    //             settings: {
    //                 slidesToShow: 1,
    //             }
    //         },
    //         {
    //             breakpoint: 480,
    //             settings: {
    //                 slidesToShow: 1,
    //             }
    //         }
    //     ]
    // });

    $('.offer-slider').slick({
        slidesToShow: 4,
        slidesToScroll: 1,
        dots: false,
        arrows: true,
        // appendArrows: '#slide-control',
        // prevArrow: '<button type="button" class="slick-prev"></button>',
        // nextArrow: '<button type="button" class="slick-next"></button>',
        autoplay: true,
        autoplaySpeed: 5000,
        speed: 1000,
        pauseOnHover: false,
        responsive: [
            {
                breakpoint: 1366,
                settings: {
                    slidesToShow: 4,
                    infinite: true,
                    arrows: false,
                }
            },
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 3,
                }
            },
            {
                breakpoint: 768,
                settings: {
                    slidesToShow: 2,
                }
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 1,
                }
            }
        ]
    });

    /*
    $('.slickSlider').slick({
        slidesToShow: 3,
        slidesToScroll: 3,
        dots: true,
        arrows: false,
        infinite: true,
        autoplay: true,
        autoplaySpeed: 3000,
        speed: 1500,
        fade: false,
        pauseOnHover: true,
        responsive :[
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 2,
                }
            },
            {
                breakpoint: 640,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1,
                }
            }
        ]
    });
    */

    var zebra = {
        days: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
        months: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
    };

    $('input[class="dateFrom"]:not([readonly])').Zebra_DatePicker({
        direction: true,
        pair: $('.dateTo'),
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: true,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months
    });

    $('input[class="dateTo"]:not([readonly])').Zebra_DatePicker({
        direction: 1,
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: true,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months
    });

    $('#header-booking input.dateFrom').Zebra_DatePicker({
        direction: true,
        pair: $('.dateTo'),
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: false,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months,
        onClose: function () {
            var date = moment($(this).val(), 'DD.MM.YYYY').format('YYYY-MM-DD');
            $("#fromDate").attr("value", date);
        }
    });

    $('#header-booking input.dateTo').Zebra_DatePicker({
        direction: 1,
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: false,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months,
        onClose: function () {
            var date = moment($(this).val(), 'DD.MM.YYYY').format('YYYY-MM-DD');
            $("#toDate").attr("value", date);
        }
    });


    $('input#arrival').Zebra_DatePicker({
        direction: true,
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: false,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months,
        onClose: function (el) {
            calcDepature(el);
        }
    });

    $('input#firstArrival').Zebra_DatePicker({
        direction: true,
        pair: $('#firstDeparture'),
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: false,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months,
        onClose: function (el) {
            showDaysFirst(el);
        }
    });

    $('input#firstDeparture').Zebra_DatePicker({
        direction: 1,
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: false,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months,
        onClose: function (el) {
            showDaysFirst(el);
        }
    });

    $('input#secondArrival').Zebra_DatePicker({
        direction: true,
        pair: $('#secondDeparture'),
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: false,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months,
        onClose: function (el) {
            showDaysSecond(el);
        }
    });

    $('input#secondDeparture').Zebra_DatePicker({
        direction: 1,
        format: 'd.m.Y',
        view: 'days',
        show_select_today: false,
        show_icon: false,
        inside: true,
        readonly_element: false,
        lang_clear_date: 'Löschen',
        days: zebra.days,
        months: zebra.months,
        onClose: function (el) {
            showDaysSecond(el);
        }
    });


    if (typeof $('input[class="dateFrom"]').val() != 'undefined') {
        console.log($('input[class="dateFrom"]').val());
        var d = new Date();
        $('input[class="dateFrom"]').data('Zebra_DatePicker').set_date(d.toLocaleDateString('de-DE', {
            day: '2-digit',
            month: '2-digit',
            year: 'numeric'
        }));

        d.setFullYear(d.getFullYear() + 1);
        $('input[class="dateTo"]').data('Zebra_DatePicker').set_date(d.toLocaleDateString('de-DE', {
            day: '2-digit',
            month: '2-digit',
            year: 'numeric'
        }));
    }


    $('body').append('<div id="toTop" style="display: none; position: fixed; bottom: 1rem; right: 1rem; cursor: pointer; color: rgba(127, 127, 127, 0.8); z-index: 9999"><i class="fa fa-chevron-circle-up fa-3x"></i></div>');

    $(window).scroll(function () {
        if ($(this).scrollTop() > 100) {
            $('#toTop, #hubmobile').fadeIn();
        } else {
            $('#toTop, #hubmobile').fadeOut();
        }
    });

    $('#toTop').click(function () {
        $('html, body').animate({scrollTop: 0}, 600);
        return false;
    });

    $(function () {
        $('select#category').on('change', function () {
            var url = $(this).val();
            if (url) {
                window.location = url;
            }
            return false;
        });
    });

    /*
    var headHeight = $('#topRow').height() + 0;

    $(document).on("scroll", function () {
        if ($(document).scrollTop() > headHeight) {
            $('#navRow').addClass("fixed");
            $('#headRow').css("margin-top",headHeight - 53);
        } else {
            $('#navRow').removeClass("fixed");
            $('#headRow').css("margin-top","0");
        }
    });
    */

    Date.prototype.addDays = function (days) {
        var date = new Date(this.valueOf());
        date.setDate(date.getDate() + days);
        return date;
    };

    function calcDepature() {
        var start = $('#arrival').val();
        days = $('#stayDays input:checked').val();

        var startArr = start.split(".");
        var startDate = new Date(startArr[2], startArr[1] - 1, ++startArr[0]);

        var endDate = startDate.addDays(days - 2);
        var endDateFormatted = ('0' + endDate.getDate()).slice(-2) + '.'
            + ('0' + (endDate.getMonth() + 1)).slice(-2) + '.'
            + endDate.getFullYear();

        $('.calcDays #departure').val(endDateFormatted);

        $('#stayDays input').change(function () {
            days = $('#stayDays input:checked').val();
            endDate = startDate.addDays(days - 2);
            var endDateFormatted = ('0' + endDate.getDate()).slice(-2) + '.'
                + ('0' + (endDate.getMonth() + 1)).slice(-2) + '.'
                + endDate.getFullYear();

            $('.calcDays #departure').val(endDateFormatted);
        });
    }

    function showDaysFirst() {
        // get date
        var start = $('#firstArrival').val();
        var end = $('#firstDeparture').val();
        var millisecondsPerDay = 1000 * 60 * 60 * 24;

        if (!start || !end) return;

        // parse date
        var startArr = start.split(".");
        var endArr = end.split(".");
        var startDate = new Date(startArr[2], startArr[1] - 1, startArr[0]);
        var endDate = new Date(endArr[2], endArr[1] - 1, endArr[0]);

        // calculate days
        var days = Math.round((endDate - startDate) / millisecondsPerDay);

        $('#num_nights_1').val(days);
    }

    function showDaysSecond() {
        // get date
        var start = $('#secondArrival').val();
        var end = $('#secondDeparture').val();
        var millisecondsPerDay = 1000 * 60 * 60 * 24;

        if (!start || !end) return;

        // parse date
        var startArr = start.split(".");
        var endArr = end.split(".");
        var startDate = new Date(startArr[2], startArr[1] - 1, startArr[0]);
        var endDate = new Date(endArr[2], endArr[1] - 1, endArr[0]);

        // calculate days
        var days = Math.round((endDate - startDate) / millisecondsPerDay);

        $('#num_nights_2').val(days);
    }

    $('.chooseDaysButton').on('click', function () {
        $('.chooseDaysButton').removeClass('chooseDaysButtonActive');
        $(this).addClass('chooseDaysButtonActive');
        $('.chooseDaysButton').children('input').removeProp('checked');
        $(this).children('input').prop('checked');
    });
    $('.chooseLocaButton').on('click', function () {
        $('.locationDescs').hide();
        showThis = $(this).attr('id').substr(4, 1);
        $("#LocaShow" + showThis).show();
        $('.chooseLocaButton').removeClass('chooseLocaButtonActive');
        $(this).addClass('chooseLocaButtonActive');
        $('.chooseLocaButton').children('input').removeProp('checked');
        $(this).children('input').prop('checked');
    });


    function calcEverything() {
        total = 0;
        days = $('#stayDays input:checked').val() - 1;

        $('.calculatePrice').each(function () {
            times = ($(this).val());
            if (times > 0) {
                if ($(this).hasClass('calcDays')) {
                    if ($('.chooseDaysButton').length) {
                        if ($('.chooseLocaButtonActive').children('.otherpricing').length) { //because why not?
                            thisOften = (parseInt(times) + 1);
                            counterFTimes = 1;
                            totalHere = 0;
                            while (counterFTimes < thisOften) {
                                totalHere = totalHere + (($(".chooseLocaButtonActive").children(".price" + counterFTimes).text()) * days) + 5;
                                counterFTimes = counterFTimes + 1;
                            }
                            $('.priceForStay span').html(totalHere.toFixed(2).toString().replace(".", ","));
                            total = parseFloat(totalHere) + parseFloat(total);
                        } else {
                            priceFT = (($(this).next(".thisPrice").text()) * times) * days + (times * 5);
                            //alert(priceFT);
                            $('.priceForStay span').html(priceFT.toFixed(2).toString().replace(".", ","));
                            total = parseFloat(priceFT) + parseFloat(total);
                        }
                    } else {
                        priceFT = (($(this).next(".thisPrice").text()) * times) * days;
                        //alert(priceFT);
                        total = parseFloat(priceFT) + parseFloat(total);
                    }
                } else {
                    priceFT = ($(this).next(".thisPrice").text()) * times;
                    //alert(priceFT);
                    total = parseFloat(priceFT) + parseFloat(total);
                }
            }
        });
        $('.calcedPrice').html(total.toFixed(2).toString().replace(".", ",") + " &euro;");
        $('#inputPrice').val(total.toFixed(2));
    }

    if ($("#inputPrice").length) {
        calcEverything();
    }
    $('.calculatePrice').on('change', function () {
        calcEverything();
    });

    $('.chooseDaysButton, .chooseLocaButton').on('click', function () {
        calcEverything();
    });

    // Select all links with hashes
    $('a[href*="#"]')
        // Remove links that don't actually link to anything
        .not('[href="#"]')
        .not('[href="#0"]')
        .click(function (event) {
            // On-page links
            if (
                location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '')
                &&
                location.hostname == this.hostname
            ) {
                // Figure out element to scroll to
                var target = $(this.hash);
                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
                // Does a scroll target exist?
                if (target.length) {
                    // Only prevent default if animation is actually gonna happen
                    event.preventDefault();
                    $('html, body').animate({
                        scrollTop: -80 + target.offset().top
                    }, 1000, function () {
                        // Callback after animation
                        // Must change focus!
                        var $target = $(target);
                        $target.focus();
                        if ($target.is(":focus")) { // Checking if the target was focused
                            return false;
                        } else {
                            $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
                            $target.focus(); // Set focus again
                        }
                    });
                }
            }
        });

    $.fn.toggleText = function (t1, t2) {
        if (this.html() == t1) this.html(t2);
        else this.html(t1);
        return this;
    };

    $('#close-booking').click(function (e) {
        e.preventDefault();
        $('#header-booking').slideToggle();
        $(this).toggleText('<i class="fa fa-angle-down"></i>', '<i class="fa fa-angle-up"></i>');
    });

    // $('label.acceptance').html().replace('Datenschutzbestimmungen', '<a href="/datenschutz/" target="_blank" title="Datenschtzerklärung">Datenschutzbestimmungen</a>');

    var pattern_1 = 'Datenschutzbestimmungen';
    var replaceWith_1 = '<a href="/datenschutz/" target="_blank" title="Datenschtzerklärung">Datenschutzbestimmungen</a>';
    $('label.acceptance').each(function () {
        $(this).html($(this).html().replace(pattern_1, replaceWith_1));
    });

    var pattern_2 = 'AGBs';
    var replaceWith_2 = '<a href="/impressum-agb/" target="_blank" title="AGB">AGBs</a>';
    $('label.acceptance').each(function () {
        $(this).html($(this).html().replace(pattern_2, replaceWith_2));
    });

    // $("#header-booking .datepicker").on("change", function() {
    //     $(this).attr("data-value", $(this).val());
    //     console.log("change");
    //     console.log($(this).val());
    //
    //         // , "YYYY-MM-DD"
    // }).trigger("change")

    $('#category').on('change', function () {
        var url = $(this).val(); // get selected value
        if (url) { // require a URL
            window.location = url; // redirect
        }
        return false;
    });


    $(function () {
        $(".frame-anmeldung").bind("load", function () {
            $(this).contents().find('form[name="nh_kiga_anmeldung"]').submit(function (e) {
                $("html, body").animate({scrollTop: 0}, "slow");
            })
        });
    });
});
