// source --> https://lf-medicalgroup.com/wp-content/themes/lohuis-filipovic/assets/js/default.js?ver=1.0.0 
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var player;

function onPlayerReady(event) {
    v = event.target.getVideoData();
    vid = v.video_id;
}

function onPlayerStateChange(event) {
    v = event.target.getVideoData();
    vid = v.video_id;
    if(event.data === 0) {
        player.playVideo();
    }
}

window.onYouTubePlayerAPIReady = function() {
    player = new YT.Player('player', {
        height: $('#player').height(),
        width: $('#player').width(),
        videoId: 'rFeX-9b_oP0',
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
}

$( document ).ready(function() {

    /* --------------------------------- Scroll event navigation--------------------------------- */
    var prevScrollpos = window.pageYOffset;
    $(window).on( "scroll", function() {
        var currentScrollPos = window.pageYOffset;
        
        if(currentScrollPos > 100){
            $('body').addClass('style-button-fixed');
            if (prevScrollpos > currentScrollPos) {
                $('body').addClass('scroll-top');
                $('body').removeClass('scroll-bottom');
            } else {
                $('body').removeClass('scroll-top');
                $('body').addClass('scroll-bottom');
            }
            prevScrollpos = currentScrollPos;
        }
        if(currentScrollPos <= 0) {
            $('body').removeClass('scroll-top').removeClass('scroll-bottom');
            $('body').removeClass('style-button-fixed');
        }
    });

    /* --------------------------------- Toggle Dropdown --------------------------------- */
    $('.has-submenu .font-icons').on('click', function(e) {
        e.preventDefault();
        var isopen = $(this).parent().hasClass('active');
        $('.has-submenu').removeClass('active');
        if(isopen){
            $('body').removeClass('submenu-active');
        } else {
            $(this).parent().addClass('active');
            $('.submenu-wrapper').hide();
            var which = $(this).data('submenu');
            $('.submenu-' + which).show();
            $('body').addClass('submenu-active');
        }
    });

    /* --------------------------------- Inview lines --------------------------------- */
    inView('.inview').on('enter', function(e){
        e.classList.add('inview-end');
    }).on('exit', function(e){
        e.classList.remove('inview-end');
    });

    /* --------------------------------- Inview copy --------------------------------- */
    inView('.copy').on('enter', function(e){
        $('body').addClass('buttons-fixed-hidden');
    }).on('exit', function(e){
        $('body').removeClass('buttons-fixed-hidden');
    });

    /* --------------------------------- Search toggle --------------------------------- */
    $('.search-toggle').on('click', function(e) {
        e.stopPropagation();
        $('.mobile-search').toggleClass('active');
    });

    $('.mobile-search').on('click', function (e) {
        e.stopPropagation();
    });
    
    $(document).on('click', function () {
        $('.mobile-search').removeClass('active');
    });

    /* --------------------------------- Custom cursor --------------------------------- */
    $(window).on('mousemove', function(e){
        $('#custom-cursor').css({ 'top': e.clientY, 'left': e.clientX });
    });

    /* --------------------------------- Filters toggle --------------------------------- */
    $('.filters-toggle').on('click', function() {
        $(this).toggleClass('active');
    });

    /* --------------------------------- Macy --------------------------------- */
    if($('.masonry-wrapper').length > 0){
        var macy = Macy({
            container: '.masonry-wrapper',
            margin: 40,
            columns: 4,
            breakAt: {
                1599: {
                    columns: 3
                },
                991: {
                    columns: 2
                },
                767: {
                    columns: 1,
                    margin: 20
                }
            }
        });
        setTimeout(function(){ macy.recalculate(true); }, 100);
    }

    /* ----------------------- Accordion Toggle ----------------------- */
    $('.accordion-header').on('click', function() {
        $(this).toggleClass('active');
    });

    /* --------------------------------- Swiper --------------------------------- */

    var swiperServices = new Swiper(".swiper-services", {
        slidesPerView: 1.5,
        spaceBetween: 20,
        navigation: {
            prevEl: ".swiper-services-controls .swiper-button-prev",
            nextEl: ".swiper-services-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 4,
            },
        },
    });

    
    var swiperReviews = new Swiper(".swiper-reviews", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        navigation: {
            prevEl: ".swiper-reviews-controls .swiper-button-prev",
            nextEl: ".swiper-reviews-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 2.3,
                spaceBetween: 30,
            },
            1200: {
                slidesPerView: 3.3,
                spaceBetween: 30,
            },
            1400: {
                slidesPerView: 4.3,
                spaceBetween: 30,
            },
        },
    });

    /*
    var swiperReviews = new Swiper(".swiper-reviews", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        navigation: {
            prevEl: ".swiper-reviews-controls .swiper-button-prev",
            nextEl: ".swiper-reviews-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 1.8,
                spaceBetween: 30,
            },
        },
    });*/

    var swiperVideos = new Swiper(".swiper-videos", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        navigation: {
            prevEl: ".swiper-videos-controls .swiper-button-prev",
            nextEl: ".swiper-videos-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 1.8,
                spaceBetween: 30,
            },
        },
    });

    var swiperExperts = new Swiper(".swiper-experts", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        grabCursor: true,
        navigation: {
            prevEl: ".swiper-experts-controls .swiper-button-prev",
            nextEl: ".swiper-experts-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 3.2,
                centeredSlides: false,
                loop: false
            },
            1200: {
                slidesPerView: 4.2,
                centeredSlides: false,
                loop: false
            }
        },
    });

    var swiperExperts2 = new Swiper(".swiper-experts2", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        grabCursor: true,
        navigation: {
            prevEl: ".swiper-experts2-controls .swiper-button-prev",
            nextEl: ".swiper-experts2-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 3.2,
                centeredSlides: false,
                loop: false
            },
            1200: {
                slidesPerView: 4.2,
                centeredSlides: false,
                loop: false
            }
        },
    });

    var swiperMedia= new Swiper(".swiper-media", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        grabCursor: true,
        navigation: {
            prevEl: ".swiper-media-controls .swiper-button-prev",
            nextEl: ".swiper-media-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 3.2,
                centeredSlides: false,
                loop: false
            },
            1200: {
                slidesPerView: 4.2,
                centeredSlides: false,
                loop: false
            }
        },
    });

    var swiperGallery = new Swiper(".swiper-gallery", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        loop: true,
        centeredSlides: true,
        breakpoints: {
            992: {
                slidesPerView: 1,
                centeredSlides: false
            },
        },
        on: {
            touchMove: function(e){
                var _top = e.touches.currentY - $(window).scrollTop();
                $('#custom-cursor').css({ 'top': _top, 'left': e.touches.currentX });
            }
        }
    });

    var swiperAcademy= new Swiper(".swiper-academy", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        navigation: {
            prevEl: ".swiper-academy-controls .swiper-button-prev",
            nextEl: ".swiper-academy-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 1.5,
                spaceBetween: 30,
            },
        },
    });

    var swiperAcademy= new Swiper(".swiper-meeting", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        navigation: {
            prevEl: ".swiper-meeting-controls .swiper-button-prev",
            nextEl: ".swiper-meeting-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 2.8,
                spaceBetween: 30,
            },
        },
    });

    var swiperSocials = new Swiper(".swiper-socials", {
        slidesPerView: 1.5,
        spaceBetween: 20,
        navigation: {
            prevEl: ".swiper-socials-controls .swiper-button-prev",
            nextEl: ".swiper-socials-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 4,
            },
        },
    });

    var swiperAcademy= new Swiper(".swiper-portal", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        navigation: {
            prevEl: ".swiper-portal-controls .swiper-button-prev",
            nextEl: ".swiper-portal-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 1.5,
                spaceBetween: 30,
            },
        },
    });

    var swiperInlineGallery = new Swiper(".swiper-inline-gallery", {
        slidesPerView: "auto",
        spaceBetween: 20,
        loop: true
    });
    
    var swiperPortal = new Swiper(".swiper-tags-portal", {
        slidesPerView: "auto",
        spaceBetween: 10,
        grabCursor: true,
        breakpoints: {
            992: {
                spaceBetween: 15,
            }
        },
    });

    var swiperBeforeAfters = new Swiper(".swiper-beforeafter", {
        slidesPerView: 1.3,
        spaceBetween: 20,
        centeredSlides: true,
        loop: true,
        grabCursor: true,
        navigation: {
            prevEl: ".swiper-beforeafter-controls .swiper-button-prev",
            nextEl: ".swiper-beforeafter-controls .swiper-button-next",
        },
        breakpoints: {
            992: {
                slidesPerView: 3.2,
                centeredSlides: false,
                loop: false
            },
            1200: {
                slidesPerView: 5.2,
                centeredSlides: false,
                loop: false
            }
        },
    });
 
    /* --------------------------- Toggle Mobile Navigation ------------------------ */
    $('.navigation-toggle').on('click', function(){
        $('body').toggleClass('navigation-active');
    });

    $('.has-dropdown').on('click', function(e) {
        e.preventDefault();
        $(this).toggleClass('active');
    });

    /* --------------------------- Service Tree ------------------------ */
    // $('.cat-toplevel > li > a').on('click', function(e){
    //     var _children = $(this).parent().children('.children');

    //     if(_children.length > 0){
    //         e.preventDefault();
    //         _children.children('li').toggleClass('cat-open');
    //     }
    // });

    /* --------------------------- Youtube inline player ------------------------ */
    $('.yt-inline-player a').on('click', function(e){
        e.preventDefault();
        var _id = $(this).data('videoid');
        $('.yt-player-wrapper').addClass('yt-player-open');
        player.loadVideoById({ 'videoId': _id, 'startSeconds': 0 });
    });
    $('.yt-player-wrapper .yt-close').on('click', function(e){
        e.preventDefault();
        player.stopVideo();
        $('.yt-player-wrapper').removeClass('yt-player-open');
    });

    /* --------------------------- Newsletter ------------------------ */
    $('#subscription-form').on('submit', function(e){
        e.preventDefault();
        var postData = {};
        var thisForm = $(this);
        postData.fields = thisForm.serializeArray();
        postData.action = 'mailchimp_subscribe';
        $.post({ url: '/wp-admin/admin-ajax.php', data: postData,
            success:function(r) {
                console.log(r);
                if(r == 1){
                    $('#error_message').addClass('d-none');
                    $('#confirm_message').removeClass('d-none');
                    $('input, textarea', thisForm).val('');
                } else {
                    $('#error_message').removeClass('d-none');
                    $('#confirm_message').addClass('d-none');
                } 
            }
        });
    });

    /* --------------------------- Contact form ------------------------ */
    $('#contact-form').on('submit', function(e){
        e.preventDefault();
        grecaptcha.ready(function() {
            grecaptcha.execute('6Le4mYQqAAAAAGutPJBrAidnbCTaVeWACwHe0lIW', {action: 'validate_captcha'}).then(function(token){
                var postData = {};
                postData.fields = $('#contact-form').serializeArray();
                postData.action = 'contactform';
                postData.captcharesponse = token;
                $.post({ url: '/wp-admin/admin-ajax.php', data: postData,
                    success:function(r) {
                        if(r == 1){
                            $('#error_message').addClass('d-none');
                            $('#confirm_message').removeClass('d-none');
                            $('input, textarea', $('#contact-form')).val('');
                        } else {
                            console.log(r);
                            $('#error_message').removeClass('d-none');
                            $('#confirm_message').addClass('d-none');
                        } 
                    }
                });
            });
        });
    });

    /* --------------------------- Before-after galleries ------------------------ */
    $(".before-after").on('mousemove', function(e){
        var w = $(this).width();       
        var relX = e.pageX - $(this).offset().left;
        relX /= w;
        if(relX < 0.05) relX = 0;
        if(relX > 0.95) relX = 1;
        $('> div:nth-child(2)', this).css('width', relX*w);
        $('~ div p:first-child', this).css('opacity', 1-relX);
        $('~ div p:last-child', this).css('opacity', relX);
    });

    function doToAll(elems, fn){
        var len = elems.length
        while(--len > -1){
            fn(elems[len])
        }
    }

    doToAll(document.getElementsByClassName('before-after'), function(element){
        var beforeafter = new Hammer(element);
        beforeafter.on('panleft panright tap', function(ev){
            var rect = element.getBoundingClientRect();
            var w = ev.center.x - rect.left;
            var relX = w / rect.width;
            // if(relX < 0.03) w = 0;
            if(relX > 0.97) w = rect.width;
            element.querySelector('div:nth-child(2)').style.width = w + 'px';
            element.nextElementSibling.querySelector('p:first-child').style.opacity = 1-relX;
            element.nextElementSibling.querySelector('p:last-child').style.opacity = relX;
        });
    });

    $('.js-fbq-contact a, .js-fbq-contact button').on('click', function(){
        if (typeof fbq === 'function') {
            fbq('track', 'Contact');
        }
    });

    $('.review-single').on('click', function(){
        $(this).toggleClass('active');
    });

    $('.service-labels a.show-all').on('click', function(e){
        e.preventDefault();
        $('.service-labels').toggleClass('all-shown');
    });
});