var BLTHomepageCarousel = (function (global) {

    var homepageSwiper;
    window.addEventListener('resize', resizeHandler);

    function init() {
        homepageSwiper = new Swiper('.homepage-carousel .swiper-container', {
            init: false,
            autoplay: {
                delay: 3000,
            },
            loop: true,
            pagination: {
                el: '.homepage-carousel .swiper-pagination',
                clickable: true
            },
            navigation: {
                nextEl: '.homepage-carousel .swiper-button-next',
                prevEl: '.homepage-carousel .swiper-button-prev',
            },
            noSwiping: false,
            preventClicks: true,
            preventClicksPropagation: true
        });

        homepageSwiper.on('slideChangeTransitionEnd', slideChangeHandler);
        homepageSwiper.init();
    }

    function slideChangeHandler() {
        var slides = document.getElementsByClassName('swiper-slide');
        for (var i = 0; i < slides.length; i++) {
            slides[i].classList.remove('zoom');
        }

        var slide = document.getElementsByClassName('swiper-slide-active')[0];
        slide.classList.add('zoom');

        if (slide.classList.contains('video')) {
            if (document.documentElement.classList.contains('desktop')) {
                var videoSlide = slide.getElementsByTagName('video')[0];
                videoSlide.muted = true;
                videoSlide.currentTime = 0;
                videoSlide.play();
                videoSlide.muted = true;
            }
        } else {
            var allVideos = document.getElementById('homepageCarousel').getElementsByTagName('video');
            for (var i=0; i<allVideos.length; i++) {
                allVideos[i].muted = true;
                allVideos[i].pause();
                allVideos[i].muted = true;
            }
        }
    }

    function resetSwiper() {
        if (homepageSwiper) {
            homepageSwiper.update();
        }
    }

    var resizeTimer;
    function resizeHandler() {
        clearTimeout(resizeTimer);
        resizeTimer = setTimeout(function () {
            resetSwiper();
        }, 250);
    }

    return {
        init: init
    }

}(window));

document.arrive("#homepageCarousel", BLTHomepageCarousel.init);