(function($) { var intervals = {}; var timeouts = {}; var toSlide = {}; var youtubeSlides = []; var youtubeVideosPrepped = []; $(document).bind("mobileinit", function(){$.extend( $.mobile , {autoInitializePage: false})}); $(document).ready(function () { if (!$('.simple-slider').length) return; $('.simple-slider .background iframe').each(function () { if ($(window).width() <= 768) { var slide = $(this).parents('.slide'); var slider = $(this).parents('.simple-slider'); if ($(slide).find('.background').css('backgroundImage') == '') { $(slider).find('.ss-dots li[data-slide="'+ $(slide).data('index') +'"]').detach(); $(slider).data('count', parseInt($(slider).data('count')) - 1); $(slider).attr('data-count', $(slider).data('count')); youtubeSlides.push({ index: $(slide).data('index'), slide: $(slide).detach(), }); } else { $(slide).find('.background iframe').detach(); } } else { getPlayer($(this)); } }); $('.simple-slider').each(function () { if (youtubeSlides.length) { if (!$(this).find('.slide.s-active').length) { var slideIndex = $(this).find('.slide').first().data('index'); $(this).find('.slide').first().addClass('active s-active'); $(this).find('li[data-slide="'+ slideIndex +'"]').addClass('active s-active');; } } if ($(this).data('count') == 1) { $(this).find('> button').detach(); $(this).find('.ss-dots').detach(); toSlide[$(this).data('id')] = false; return; } else { toSlide[$(this).data('id')] = true; } if ($(this).data('delay') != 0) { if ($(this).find('.slide:first-child .background iframe').length) { playBackgroundVideo($(this).data('id')); } else { intervals['ss-'+ $(this).data('id')] = setInterval(simpleTransition, $(this).data('delay'), $(this).data('id')); } } }); simpleSizing(); $('.simple-slider .slide').swiperight(function() { previous($(this).parents('.simple-slider').data('id')); }); $('.simple-slider .slide').swipeleft(function() { next($(this).parents('.simple-slider').data('id')); }); setInterval(function () { $('.simple-slider').each(function () { if (!$(this).find('.slide.s-active').length) { $(this).find('.slide:first-child').addClass('s-active active'); } }); }, 10000); }); $(window).on('resize', function () { clearTimeout(timeouts['sizing']); timeouts['sizing'] = setTimeout(simpleSizing, 500); }); $(document).on('click', '.simple-slider .prev', function (e) { e.preventDefault(); previous($(this).parent().data('id')); }); $(document).on('click', '.simple-slider .next', function (e) { e.preventDefault(); next($(this).parent().data('id')); }); $(document).on('click', '.simple-slider .ss-dots-nav button', function (e) { var pilot = $('.ss-dots .pilot'); if ($(this).hasClass('prev-dot')) { $('.ss-dots-nav:last-child').addClass('nav-active'); $(pilot).addClass('prev-pilot').removeClass('pilot').prevAll('.prev-pilot').first().addClass('pilot'); if (!$('.pilot').prev('li:not(.ss-dots-nav)').length) { $('.ss-dots-nav:first-child').removeClass('nav-active'); } } else { $('.ss-dots-nav:first-child').addClass('nav-active'); $(pilot).removeClass('pilot').addClass('prev-pilot'); if ($(pilot).find('~ .prev-pilot').length) { $(pilot).find('~ .prev-pilot').first().addClass('pilot'); } else { var potential = $(pilot).find('+ li + li + li + li'); if ($(potential).find('+ li + li + li + li').length) { $(potential).addClass('pilot'); } else { $('.ss-dots-nav:last-child').prev().prev().prev().prev().addClass('pilot'); } } if (!$('.pilot + li + li + li + li:not(.ss-dots-nav)').length) { $('.ss-dots-nav:last-child').removeClass('nav-active'); } } }); $(document).on('click', '.simple-slider .ss-dots li:not(.ss-dots-nav)', function (e) { var id = $(this).parents('.simple-slider').data('id'); var index = $(this).data('slide'); var slider = '.simple-slider[data-id="'+ id +'"]'; if ($(slider).find('.s-active .background iframe').length) { var player = getPlayer($(slider).find('.s-active .background iframe')); player.pauseVideo(); } clearTimeout(timeouts['ss-'+ id]); clearInterval(intervals['ss-'+ id]); $(slider).addClass('no-click'); if (index > $(slider +' .slide.s-active').data('index')) { $(slider +' .slide.s-active').addClass($(slider +' .slide.s-active').data('exit')); $(slider +' .slide[data-index="'+ index +'"]').addClass('animating ' + $(slider +' .slide[data-index="'+ index +'"]').data('entrance')); if ($('[data-id="'+ id +'"]').data('delay') != 0) { intervals['ss-'+ id] = setInterval(simpleTransition, $('[data-id="'+ id +'"]').data('delay'), id); } timeouts['ss-'+ id] = setTimeout(setActive, 750, id); } else { $('[data-id="'+ id +'"] .slide').css('animationDirection', 'reverse'); $(slider +' .slide.s-active').addClass($(slider +' .slide.s-active').data('entrance')); $(slider +' .slide[data-index="'+ index +'"]').addClass('animating ' + $(slider +' .slide[data-index="'+ index +'"]').data('exit')); if ($('[data-id="'+ id +'"]').data('delay') != 0) { intervals['ss-'+ id] = setInterval(simpleTransition, $('[data-id="'+ id +'"]').data('delay'), id); } timeouts['ss-'+ id] = setTimeout(setActiveReverse, 750, id); } }); function simpleSizing () { $('.simple-slider').each(function () { var minHeight = 0; $(this).css('minHeight', ''); $(this).find('.slide .ss-content').each(function () { if ($(this).outerHeight() > minHeight) { minHeight = $(this).outerHeight(); } }); $(this).css('minHeight', minHeight +'px'); }); } function next(id) { clearTimeout(timeouts['ss-'+ id]); clearInterval(intervals['ss-'+ id]); if (!toSlide[id]) return; var slider = $('[data-id="'+ id +'"]'); if ($(slider).find('.s-active .background iframe').length) { var player = getPlayer($(slider).find('.s-active .background iframe')); player.pauseVideo(); } simpleTransition(id); if ($(slider).data('delay') != 0) { intervals['ss-'+ id] = setInterval(simpleTransition, $(slider).data('delay'), id); } } function previous (id) { clearTimeout(timeouts['ss-'+ id]); clearInterval(intervals['ss-'+ id]); if (!toSlide[id]) return; var slider = $('[data-id="'+ id +'"]'); if ($(slider).find('.s-active .background iframe').length) { var player = getPlayer($(slider).find('.s-active .background iframe')); player.pauseVideo(); } $(slider).addClass('no-click'); $('[data-id="'+ id +'"] .slide').css('animationDirection', 'reverse'); if ($('[data-id="'+ id +'"] .slide.s-active').prev('.slide').length) { $('[data-id="'+ id +'"] .slide.s-active').prev('.slide').addClass('animating'); } else { $('[data-id="'+ id +'"] .slide.s-active').siblings('.slide:last-of-type').addClass('animating'); } $('[data-id="'+ id +'"] .slide.s-active').addClass($('[data-id="'+ id +'"] .slide.s-active').data('entrance')); $('[data-id="'+ id +'"] .animating').addClass($('[data-id="'+ id +'"] .animating').data('exit')); if ($(slider).data('delay') != 0) { intervals['ss-'+ id] = setInterval(simpleTransition, $(slider).data('delay'), id); } timeouts['ss-'+ id] = setTimeout(setActiveReverse, 750, id); } function simpleTransition (id) { var slider = '.simple-slider[data-id="'+ id +'"]'; if (!toSlide[id]) return; $(slider).addClass('no-click'); $(slider +' .slide.s-active').addClass($(slider +' .slide.s-active').data('exit')); if ($(slider +' .slide.s-active').next('.slide').length) { $(slider +' .slide.s-active').next('.slide').addClass('animating ' + $(slider +' .slide.s-active').next('.slide').data('entrance')); } else { $(slider +' .slide.s-active').siblings('.slide:nth-of-type(1)').addClass('animating ' + $(slider +' .slide.s-active').siblings('.slide:nth-of-type(1)').data('entrance')); } timeouts['ss-'+ id] = setTimeout(setActive, 750, id); } function setActive (id) { var slider = '.simple-slider[data-id="'+ id +'"]'; $(slider +' .animating:not(.s-active)').addClass('waiting'); $(slider +' .slide.s-active').removeClass($(slider +' .slide.s-active').data('exit') +' s-active active'); $(slider +' .waiting').addClass('s-active active'); $(slider +' .waiting').removeClass($(slider +' .slide.s-active').data('entrance') +' waiting'); $(slider +' .slide.animating').removeClass('animating'); $(slider +' .ss-dots .s-active').removeClass('s-active active'); if ($(slider +' .ss-dots').length) { $(slider +' .ss-dots li[data-slide="'+ $(slider +' .slide.s-active').data('index') +'"]').addClass('s-active active'); if ($(slider).data('dotthumbnails') == 1) { var activeDot = $(slider +' .ss-dots .s-active'); if ($(activeDot).css('display') == 'none') { var activeDotIndex = parseInt($(activeDot).data('slide')); var pilotIndex = parseInt($(slider +' .ss-dots .pilot').data('slide')); if (activeDotIndex != 0) { // below if checks that we've naturally switched to the next set of thumbs // otherwise user has been navigating around and we don't want to // jump places if (activeDotIndex == (pilotIndex + 4)) { $(slider +' .ss-dots-nav:last-child button').trigger('click'); } } else { $(slider +' .ss-dots .pilot').removeClass('pilot'); $(activeDot).addClass('pilot'); $(slider +' .ss-dots-nav:last-child').addClass('nav-active'); $(slider +' .ss-dots-nav:first-child').removeClass('nav-active'); } } } } $(slider).removeClass('no-click'); playBackgroundVideo(id); } function setActiveReverse (id) { var slider = '.simple-slider[data-id="'+ id +'"]'; $(slider + ' .slide').css('animationDirection', ''); $(slider +' .animating:not(.s-active)').addClass('waiting'); $(slider +' .slide.s-active').removeClass($(slider +' .slide.s-active').data('entrance') +' s-active active'); $(slider +' .waiting').addClass('s-active active'); $(slider +' .waiting').removeClass($(slider +' .slide.s-active').data('exit') +' waiting'); $(slider +' .slide.animating').removeClass('animating'); $(slider +' .ss-dots .s-active').removeClass('s-active active'); if ($(slider +' .ss-dots').length) { $(slider +' .ss-dots li[data-slide="'+ $(slider +' .slide.s-active').data('index') +'"]').addClass('s-active active'); if ($(slider).data('dotthumbnails') == 1) { var activeDot = $(slider +' .ss-dots .s-active'); if ($(activeDot).css('display') == 'none') { var activeDotIndex = parseInt($(activeDot).data('slide')); var pilotIndex = parseInt($(slider +' .ss-dots .pilot').data('slide')); // below if checks that we're going to naturally switch to the previous set of thumbs // otherwise user has been navigating around and we don't want to jump places if (activeDotIndex == pilotIndex - 1) { $(slider +' .ss-dots-nav:first-child button').trigger('click'); } } } } $(slider).removeClass('no-click'); playBackgroundVideo(id); } function playBackgroundVideo (id) { var slider = '.simple-slider[data-id="'+ id +'"]'; if ($(slider +' .slide.s-active .background iframe').length) { clearTimeout(timeouts['ss-'+ id]); clearInterval(intervals['ss-'+ id]); var iframeTarget = $(slider +' .slide.s-active .background iframe'); intervals['ss-'+ id] = setInterval(function (iframeTarget, id) { var player = getPlayer(iframeTarget); if (player && $.isFunction(player.playVideo)) { player.playVideo(); if (player.getPlayerState() == 1) { clearInterval(intervals['ss-'+ id]); } else if (player.getPlayerState() == -1) { $('body').trigger('click'); } } }, 500, iframeTarget, id); } } function getPlayer (iframe) { if ( (typeof YT === "undefined") || !YT || !YT.Player ) { return false; } var $iframe = $(iframe); var player = YT.get($(iframe).attr('id')); if (player && typeof player !== "undefined") { return player; } else { var player = new YT.Player($iframe.get(0), { events: { 'onReady': function () { }, onStateChange: function (event) { var playerID = event.target.h.id; var currentPlayer = YT.get(playerID); if ($($iframe).parents('.slide.s-active').length) { if(event.data === 0) { next($($iframe).parents('.simple-slider').data('id')); } if(event.data === -1) { if ($.inArray(playerID, youtubeVideosPrepped) !== -1) { player.pauseVideo(); next($($iframe).parents('.simple-slider').data('id')); } else { youtubeVideosPrepped.push(playerID); } } } } } }); return player; } } })(jQuery);