(function($) { 'use strict'; function getVideoId(url) { if ('false' === url) return false; var result = /(?:\?v=|\/embed\/|\.be\/)([-a-z0-9_]+)/i.exec(url) || /^([-a-z0-9_]+)$/i.exec(url); return result ? result[1] : false; } function onPlayerReady(event) { if ($(event.target).closest('.mbr-slider').hasClass('in')) { event.target.playVideo(); } } var isBuilder = $('html').hasClass('is-builder'); /* get youtube id */ if (!isBuilder) { /* google iframe */ 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 players = []; /* google iframe api init function */ window.onYouTubeIframeAPIReady = function() { var ytp = ytp || {}; ytp.YTAPIReady || (ytp.YTAPIReady = !0, jQuery(document).trigger("YTAPIReady")); $('.video-slide').each(function(i) { $('.video-container').eq(i).append('
') .append('
'); $(this).attr('data-video-num', i); if ($(this).attr('data-video-url').indexOf('vimeo.com') !== -1) { var options = { id: $(this).attr('data-video-url'), width: '100%', height: '100%', loop: true }; var player = new Vimeo.Player('mbr-video-' + i, options); player.playVideo = Vimeo.play; } else { var player = new YT.Player('mbr-video-' + i, { height: '100%', width: '100%', videoId: getVideoId($(this).attr('data-video-url')), events: { 'onReady': onPlayerReady }, playerVars: { rel: 0 } }); } players.push(player); }); }; } function updateMasonry(event){ var $section = $(event.target); if (typeof $.fn.masonry !== 'undefined') { $section.outerFind('.mbr-gallery').each(function() { var $msnr = $(this).find('.mbr-gallery-row').masonry({ itemSelector: '.mbr-gallery-item:not(.mbr-gallery-item__hided)', percentPosition: true, horizontalOrder: true }); // reload masonry (need for adding new or re-sort items) $msnr.masonry('reloadItems'); $msnr.on('filter', function() { $msnr.masonry('reloadItems'); $msnr.masonry('layout'); // update parallax backgrounds $(window).trigger('update.parallax'); }.bind(this, $msnr)); // layout Masonry after each image loads $msnr.imagesLoaded().progress(function() { $msnr.masonry('layout'); }); }); } }; /* Masonry Grid */ $(document).on('add.cards', function(event) { var $section = $(event.target), allItem = $section.find('.mbr-gallery-filter-all'); var filterList = []; $section.on('click', '.mbr-gallery-filter li > .btn', function(e) { e.preventDefault(); var $li = $(this).closest('li'); $li.parent().find('a').removeClass('active'); $(this).addClass('active'); var $mas = $li.closest('section').find('.mbr-gallery-row'); var filter = $(this).html().trim(); $section.find('.mbr-gallery-item').each(function(i, el) { var $elem = $(this); var tagsAttr = $elem.attr('data-tags'); var tags = tagsAttr.split(','); var tagsTrimmed = tags.map(function(el) { return el.trim(); }); if ($.inArray(filter, tagsTrimmed) === -1 && !$li.hasClass('mbr-gallery-filter-all')) { $elem.addClass('mbr-gallery-item__hided'); setTimeout(function() { $elem.css('left', '300px'); }, 200); } else { $elem.removeClass('mbr-gallery-item__hided'); } }); setTimeout(function() { $mas.closest('.mbr-gallery-row').trigger('filter'); }, 50); }); }) $(document).on('add.cards changeParameter.cards changeButtonColor.cards', function(event) { var $section = $(event.target), allItem = $section.find('.mbr-gallery-filter-all'); var filterList = []; $section.find('.mbr-gallery-item').each(function(el) { var tagsAttr = ($(this).attr('data-tags') || "").trim(); var tagsList = tagsAttr.split(','); tagsList.map(function(el) { var tag = el.trim(); if ($.inArray(tag, filterList) === -1 && tag.trim()) filterList.push(tag); }); }); if ($section.find('.mbr-gallery-filter').length > 0 && $(event.target).find('.mbr-gallery-filter').hasClass('gallery-filter-active') && !$(event.target).find('.mbr-gallery-filter').hasClass('mbr-shop-filter')) { var filterHtml = ''; var classAttr = allItem.find('a').attr('class') || ''; classAttr = classAttr.replace(/(^|\s)active(\s|$)/, ' ').trim(); $section.find('.mbr-gallery-filter ul li:not(li:eq(0))').remove(); filterList.map(function(el) { filterHtml += '
  • ' + el + '
  • '; }); $section.find('.mbr-gallery-filter ul').append(filterHtml); } else { $section.find('.mbr-gallery-item__hided').removeClass('mbr-gallery-item__hided'); $section.find('.mbr-gallery-row').trigger('filter'); } updateMasonry(event); }); $(document).on('change.cards sortstop', function(event) { updateMasonry(event); }); $('.mbr-gallery-item').on('click', 'a', function(e) { e.stopPropagation(); }); var timeout; var timeout2; function fitLBtimeout() { clearTimeout(timeout); timeout = setTimeout(fitLightbox, 50); } /* Lightbox Fit */ function fitLightbox() { var $lightbox = $('.mbr-gallery .modal'); if (!$lightbox.length) { return; } var windowPadding = 0; var bottomPadding = 10; var wndW = $(window).width() - windowPadding * 2; var wndH = $(window).height() - windowPadding * 2; $lightbox.each(function() { var setWidth, setTop; var $modalDialog = $(this).find('.modal-dialog'); var $currentImg = $modalDialog.find('.carousel-item.active > img'); if ($modalDialog.find('.carousel-item.prev > img, .carousel-item.next > img').length) { $currentImg = $modalDialog.find('.carousel-item.prev > img, .carousel-item.next > img').eq(0); } var lbW = $currentImg[0].naturalWidth; var lbH = $currentImg[0].naturalHeight; // height change if (wndW / wndH > lbW / lbH) { var needH = wndH - bottomPadding * 2; setWidth = needH * lbW / lbH; } else { // width change setWidth = wndW - bottomPadding * 2; } // check for maw width setWidth = setWidth >= lbW ? lbW : setWidth; // set top to vertical center setTop = (wndH - setWidth * lbH / lbW) / 2; $modalDialog.css({ width: parseInt(setWidth), top: setTop + windowPadding }); }); } /* pause/start video on different events and fit lightbox */ var $window = $(document).find('.mbr-gallery'); $window.on('show.bs.modal', function(e) { clearTimeout(timeout2); var timeout2 = setTimeout(function() { var index = $(e.relatedTarget).parent().index(); var slide = $(e.target).find('.carousel-item').eq(index).find('.mbr-background-video'); $(e.target).find('.carousel-item .mbr-background-video'); if (slide.length > 0) { var player = players[+slide.attr('data-video-num')]; player.playVideo ? player.playVideo() : player.play(); } }, 500); fitLBtimeout(); }); $window.on('slide.bs.carousel', function(e) { var ytv = $(e.target).find('.carousel-item.active .mbr-background-video'); if (ytv.length > 0) { var player = players[+ytv.attr('data-video-num')]; player.pauseVideo ? player.pauseVideo() : player.pause(); } }); $(window).on('resize load', fitLBtimeout); $window.on('slid.bs.carousel', function(e) { var ytv = $(e.target).find('.carousel-item.active .mbr-background-video'); if (ytv.length > 0) { var player = players[+ytv.attr('data-video-num')]; player.playVideo ? player.playVideo() : player.play(); } fitLBtimeout(); }); $window.on('hide.bs.modal', function(e) { players.map(function(player, i) { player.pauseVideo ? player.pauseVideo() : player.pause(); }); }); }(jQuery));