
'use strict';



/*** Кнопка скролла ***/
var toTopButton = (function() {

    var topButton = $('#back-to-top');
    var scrollTop = $(window).scrollTop();
    var isActive = false;
    if (scrollTop > 100) {
        isActive = true;
    }

    $(window).scroll(function() {
        scrollTop = $(window).scrollTop();

        if (scrollTop > 100 && !isActive) {
            isActive = true;
            topButton.fadeIn();
        } else if (scrollTop <= 100 && isActive) {
            isActive = false;
            topButton.fadeOut();
        }
    });

})();


var smoothScroll = (function() {

    var link = $('a[href^="#section__"]');
    var duration = 1000;

    function scrollTo(link) {
        var target = $(link.attr('href'));
        var navbar = $('.navbar');
        var navbarHeight = navbar.outerHeight();

        if ( target.length ) {
            $('html, body').animate({
                scrollTop: target.offset().top - navbarHeight + 20
            }, duration);
        }
    }

    link.on('click', function(e) {
        e.preventDefault();
        scrollTo( $(this) );
    });

})();




/* Alerts */

var alert = (function() {
    var alertLifetime = 4000;

    var generate = function(type, message) {
        var newAlert = $(
            '<div class="alert alert-' +
            type +
            ' fade in" id="page-alert">' +
            message +
            "</div>"
        );

        $("body").append(newAlert);

        setTimeout(function() {
            newAlert.alert("close");
        }, alertLifetime);
    };

    $(document).on("sunset.alert.show", function(e, type, message) {
        generate(type, message);
    });
})();




$(function() {

    /* Липкое меню */
    var sectionInfo = $('.section__info'),
        navbarDefault = $('.navbar-default');

    var stickyNavbar = new Waypoint({
        element: sectionInfo,
        handler: function(direction) {
            navbarDefault.toggleClass('navbar-sticky');
        },
        offset: function() {
            return -sectionInfo.height();
        }
    });



    /*** dropdown в Форме бронирования  ***/
    $('.reservation-dropdown').on('click', '.dropdown-menu > li > a', function (e) {

        e.preventDefault();

        var $this = $(this);

        var value = $this.text();

        var dropdownToggle = $this.parents('.dropdown').find('.dropdown-toggle');

        var reservationInput = $this.parents('.form-group').find('input');

        dropdownToggle.find('span').text(value);

        reservationInput.attr('value', parseInt(value), 10);

        $('#form_reservation input[name="'+ $this.attr('data-input') +'"]').value(parseInt(value));

        dropdownToggle.dropdown('toggle');



        return false;
    });

    /*** Best-rooms hover effect for iOS ***/

    var mobileHover = function () {
        $('.best-rooms__item').on({
            'touchstart': function () {
                $(this).trigger('hover');
            },
            'touchend': function () {
                $(this).trigger('hover');
            }
        });
    };
    mobileHover();


    /*** Own Carousel ***/
    var $carouselGallery = $("#gallery__carousel");
    if ($carouselGallery.length) {
        $carouselGallery.owlCarousel({
            margin:10,
            //nav:true,
            loop:true,
            lazyLoad:true,
            //autoheight:true,
            autoplay:true,
            autoplayTimeout:10000,
            slideSpeed:3000,
            animateOut:'fadeOut',
            responsiveClass:true,
            responsive:{
                0:{
                    items:1
                },
                600:{
                    items:3
                },
                1000:{
                    items:4
                }
            }
        });
    };


    // Отзывы на главной
    var $carouselTestimonials = $("#testimonials__carousel");
    if ($carouselTestimonials.length) {
        $carouselTestimonials.owlCarousel({
            margin:10,
            loop:true,
            slideSpeed:150,
            animateOut:'fadeOut',
            responsiveClass:true,
            responsive:{
                0:{
                    items:1
                },
                1000:{
                    items:2
                }
            }
        });
    };

    var $carouselRoomDetail = $("#room-detail__carousel");
    if ($carouselRoomDetail.length) {
        $carouselRoomDetail.owlCarousel({
            items:1,
            /*loop:true,*/
            margin:10,
            lazyLoad:true,
            animateOut:'fadeOut',
            responsiveClass:true,
            slideSpeed:150
        });
    };
    var $carouselServices = $("#services-detail__carousel");
    if ($carouselServices.length) {
        $carouselServices.owlCarousel({
            items:1,
            /*loop:true,*/
            margin:10,
            lazyLoad:true,
            animateOut:'fadeOut',
            responsiveClass:true,
            slideSpeed:150
        });
    };

    var $carouselServices = $("#rooms-other-detail__carousel");
    if ($carouselServices.length) {
        $carouselServices.owlCarousel({
            items:3,
            /*loop:true,*/
            margin:10,
            lazyLoad:true,
            animateOut:'fadeOut',
            responsiveClass:true,
            slideSpeed:150
        });
    };



    /*** Календарик ***/
    var $Calendar = $('#form_reservation .form-control.date');

    if ($Calendar.length) {

        var minDate = moment().millisecond(0).second(0).minute(0).hour(0);
        $Calendar.datetimepicker({
            icons: {
                time: 'fa fa-clock',
                date: 'fa fa-calendar',
                up: ' fa fa-angle-up',
                down: 'fa fa-angle-down',
                previous: 'fa fa-angle-left',
                next: 'fa fa-angle-right',
                today: 'ion-android-locate',
                clear: 'fa fa-trash',
                close: 'fa fa-times'
            },
            locale: 'ru',
            allowInputToggle: true,
            minDate: minDate,
            //format: 'YYYY-MM-DD'
            format: 'DD MMMM YYYY'
        });
    };


    $('input[name="phone"]').mask('(999) 999-99-99?9');

    $(document).on('click', '.form_post',  function(e){

        e.preventDefault();

        var $this = $(this);
        var $form = $('#'+$this.attr('data-form'));
        var $ajax_url = '/form/handler';
        var $this = $form.find('button');
        var result = $form.find('.form_result');

        var queryString = new FormData($form[0]);

        $this.hide();
        result.html('<div class="alert alert-primary" role="alert"><strong>Загрузка ...</strong></div>');


        jQuery.ajax({
            type:'POST',
            url: $ajax_url,
            data : queryString,
            cache: false,
            contentType: false,
            processData: false,
            dataType: 'json',
            success:function(data)
            {

                if(data.r == 1) {
                    $form.find('input[name="name"]').val('');
                    $form.find('input[name="phone"]').val('');
                    $form.find('input[name="email"]').val('');
                    $form.find('input[name="comment"]').val('');
                    $form.find('input[name="files[]"]').val('');
                    $form.find('textarea').val('');


                    result.html('<div class="alert alert-success" role="alert"><strong>'+data.message+'</strong></div>');
                    //$(document).trigger("sunset.alert.show", ["success", data.message]);
                    $this.show();

                    if(yaGOAL1) { yaGOAL1.reachGoal('all_goals');}


                } else {
                    $this.show();
                    result.html('<div class="alert alert-danger" role="alert"><strong>'+data.message+'</strong></div>');
                    //$(document).trigger("sunset.alert.show", ["danger", data.message]);
                }
            },
            error:function(data){
                $this.show();
                result.html('<div class="alert alert-danger" role="alert"><strong>Ошибка отправки формы!</strong></div>');
                //$(document).trigger("sunset.alert.show", ["danger", 'Ошибка отправки формы!']);
            }

        });

        return false;
    });


    $(document).on('click', '.form_post_method',  function(e){

        e.preventDefault();

        var $this = $(this);
        var $form = $('#'+$this.attr('data-this_form'));
        var $ajax_url = '/form/h/' + $this.attr('data-form');
        var $this = $form.find('button');
        var result = $form.find('.form_result');
        var queryString = new FormData($form[0]);

        $this.hide();
        result.html('<div class="alert alert-primary" role="alert"><strong>Загрузка ...</strong></div>');


        jQuery.ajax({
            type:'POST',
            url: $ajax_url,
            data : queryString,
            cache: false,
            contentType: false,
            processData: false,
            dataType: 'json',
            success:function(data)
            {

                if(data.r == 1) {
                    $form.find('input[name="name"]').val('');
                    $form.find('input[name="phone"]').val('');
                    $form.find('input[name="email"]').val('');
                    $form.find('input[name="comment"]').val('');
                    $form.find('input[name="files[]"]').val('');
                    $form.find('textarea').val('');


                    result.html('<div class="alert alert-success" role="alert"><strong>'+data.message+'</strong></div>');
                    //$(document).trigger("sunset.alert.show", ["success", data.message]);
                    $this.show();

                    if(yaGOAL1) { yaGOAL1.reachGoal('all_goals');}


                } else {
                    $this.show();
                    result.html('<div class="alert alert-danger" role="alert"><strong>'+data.message+'</strong></div>');
                    //$(document).trigger("sunset.alert.show", ["danger", data.message]);
                }
            },
            error:function(data){
                $this.show();
                result.html('<div class="alert alert-danger" role="alert"><strong>Ошибка отправки формы!</strong></div>');
                //$(document).trigger("sunset.alert.show", ["danger", 'Ошибка отправки формы!']);
            }

        });

        return false;
    });



    $('[data-toggle="modal"]').on('click', function(){

        var title     = $(this).attr('data-title');
        var sub_title = $(this).attr('data-sub_title');
        var btn       = $(this).attr('data-btn');

        $('.modal-t').html(title);
        $('.modal-sub_title').html(sub_title);
        $('.btn-name').html(btn);

        $('#form_universal input[name="title"]').val(title);

        $('.form_title').val(title);
    });

    $(document).on('click', '.form_reserv',  function(e){

        e.preventDefault();

        var $this = $(this);
        var $form = $('#'+$this.attr('data-form'));

        $('#form_reservation_send input[name="date1"]').val($form.find('input[name="date1"]').val());
        $('#form_reservation_send input[name="date2"]').val($form.find('input[name="date2"]').val());
        $('#form_reservation_send input[name="adults"]').val($form.find('input[name="adults"]').val());
        $('#form_reservation_send input[name="childs"]').val($form.find('input[name="childs"]').val());

    });


    $(document).on('change', 'input[name="files[]"]',  function(e){

        var $this  = $(this);
        var html   = '';

        html += '<p>Прикрепленные файлы:</p>';
        html += '<ol>';
        $.each($this[0].files, function(i, file) {
            html += '<li><strong>' + file.name + '</strong></li>';
        });
        html += '</ol>';

        console.log(html);
        $('.form_universal .upload_files').html(html);

    });

    // скролим при наличии анкора, учитывая высоту меню
    function scroll_to_anchor (){
        var anch = document.location.hash.replace(/#/,'');
        if(anch !=''){
            $('html,body').animate({
                scrollTop: $('#'+anch).offset().top  - 200}, 800);
        }
    }
    scroll_to_anchor();






    /*** Фотогалерея ***/
    var $gallery = $("#gallery__items");
    if ($gallery.length) {

        $gallery.isotope({
            itemSelector: ".gallery__item",
            layoutMode: "masonry"
        });

        $gallery.imagesLoaded().progress( function() {
            $gallery.isotope('layout');
        });

        $gallery.isotope({ filter: ".all" });

        $(".gallery-nav__link > a").on('click', function(e) {

            var filterValue = $(this).attr('data-filter');

            $gallery.isotope({ filter: filterValue });

            $(this).parents("li").addClass("active").siblings("li").removeClass("active");

            e.preventDefault();
        });
    };






    var placemark, gps;
    var el = $('#map');
    if (el.length) {
        ymaps.ready(function ()
        {
            var gps_e = el.data('e');
            var gps_n = el.data('n');
            var gps_h = el.data('h');
            var map2 = new ymaps.Map('map', {center: [gps_n, gps_e], zoom: 12});
            map2.controls.add('mapTools');
            map2.controls.add('zoomControl');
            //map.behaviors.enable('scrollZoom');
            var mc = new ymaps.GeoObjectCollection();
            placemark = new ymaps.Placemark([gps_n, gps_e],
                {hintContent: gps_h},
                {preset: 'twirl#blueDotIcon'});
            mc.add(placemark);
            map2.geoObjects.add(mc);

        });
    }







    $("img.lazyload").lazyload();






    if($('.booking-form-online-load').length > 0) {

        function booking_module() {
            var id = $('.booking-form-online-load').attr('rel');
            var tmp = $('.booking-form-online-load').attr('data-tmp');
            $.ajax({
                url: 'https://mir-h.ru/api/widget/booking/'+tmp+'/'+id + location.search,
                //cache: false,
                dataType: "html",
                success: function(data) {
                    $(".booking-form-online-load").html(data);


                    $(function () {
                        $('.booking-form-online-load .dropdown-toggle').dropdown();
                        $('.booking-form-online-load .dropdown').click(function (e) {
                            e.stopPropagation();
                        });
                    });


                    if (jQuery.fn.mask)  {
                        $('.booking-phone').mask('(999) 999-99-99?9');
                    }
                }
            });

        }
        booking_module();




        setTimeout(function() {

            $('input[name="this_url"]').val(window.location.href);
            $('input[name="this_title"]').val($('title').text());
        }, 1000);
    }





});
