1(function ($) { 2 3 var isBuilder = $('html').hasClass('is-builder'); 4 if (!isBuilder) { 5 6 /*google iframe*/ 7 var tag = document.createElement('script'); 8 tag.src = "https://www.youtube.com/iframe_api"; 9 var firstScriptTag = document.getElementsByTagName('script')[0]; 10 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 11 var players = []; 12 13 /* get youtube id */ 14 function getVideoId(url) { 15 if ('false' == url) return false; 16 var result = /(?:\?v=|\/embed\/|\.be\/)([-a-z0-9_]+)/i.exec(url) || /^([-a-z0-9_]+)$/i.exec(url); 17 return result ? result[1] : false; 18 } 19 /* google iframe api init function */ 20 window.onYouTubeIframeAPIReady = function () { 21 var ytp = ytp || {}; 22 ytp.YTAPIReady || (ytp.YTAPIReady = !0, 23 jQuery(document).trigger("YTAPIReady")); 24 $('.video-slide').each(function (i) { 25 var index = $(this).index(); 26 var section = $(this).closest('section'); 27 $('.video-container').eq(i).append('<div id ="mbr-video-' + i + '" class="mbr-background-video" data-video-num="' + i + '"></div>') 28 .append('<div class="item-overlay"></div>'); 29 $(this).attr('data-video-num', i); 30 if ($(this).attr('data-video-url').indexOf('vimeo.com') != -1) { 31 var options = { 32 id: $(this).attr('data-video-url'), 33 width: '100%', 34 height: '100%', 35 loop: true 36 }; 37 38 var player = new Vimeo.Player('mbr-video-' + i, options); 39 player.playVideo = Vimeo.play; 40 } else { 41 42 var player = new YT.Player('mbr-video-' + i, { 43 height: '100%', 44 width: '100%', 45 videoId: getVideoId($(this).attr('data-video-url')), 46 events: { 47 'onReady': onPlayerReady 48 }, 49 playerVars: { 50 rel: 0 51 } 52 })} 53 players.push(player); 54 }); 55 } 56 57 function onPlayerReady(event) { 58 if ($(event.target).closest('.mbr-slider').hasClass('in')) { 59 event.target.playVideo(); 60 } 61 } 62 /* youtube default preview */ 63 function getPreviewUrl(videoId, quality) { 64 return 'https://img.youtube.com/vi/' + videoId + '/' + 65 (quality || '') + 'default.jpg'; 66 } 67 } 68 /* Masonry Grid */ 69 $(document).on('add.cards change.cards', function (event) { 70 var $section = $(event.target), 71 allItem = $section.find('.mbr-gallery-filter-all'); 72 if (!$section.hasClass('mbr-slider-carousel')) return; 73 var filterList = []; 74 75 $section.find('.mbr-gallery-item').each(function (el) { 76 var tagsAttr = ($(this).attr('data-tags') || "").trim(); 77 var tagsList = tagsAttr.split(','); 78 tagsList.map(function (el) { 79 var tag = el.trim(); 80 81 if ($.inArray(tag, filterList) == -1) 82 filterList.push(tag); 83 }) 84 }) 85 if ($section.find('.mbr-gallery-filter').length > 0 && $(event.target).find('.mbr-gallery-filter').hasClass('gallery-filter-active')) { 86 var filterHtml = ''; 87 $section.find('.mbr-gallery-filter ul li:not(li:eq(0))').remove(); 88 filterList.map(function (el) { 89 filterHtml += '<li>' + el + '</li>' 90 }); 91 $section.find('.mbr-gallery-filter ul').append(allItem).append(filterHtml); 92 $section.on('click', '.mbr-gallery-filter li', function (e) { 93 $li = $(this); 94 $li.parent().find('li').removeClass('active') 95 $li.addClass('active'); 96 97 var $mas = $li.closest('section').find('.mbr-gallery-row'); 98 var filter = $li.html().trim(); 99 100 $section.find('.mbr-gallery-item').each(function (i, el) { 101 var $elem = $(this); 102 var tagsAttr = $elem.attr('data-tags'); 103 var tags = tagsAttr.split(','); 104 tagsTrimmed = tags.map(function (el) { 105 return el.trim(); 106 }) 107 if ($.inArray(filter, tagsTrimmed) == -1 && !$li.hasClass('mbr-gallery-filter-all')) { 108 $elem.addClass('mbr-gallery-item__hided'); 109 setTimeout(function () { 110 $elem.css('left', '300px'); 111 }, 200); 112 } else { 113 $elem.removeClass('mbr-gallery-item__hided') 114 }; 115 116 }) 117 setTimeout(function () { 118 $mas.closest('.mbr-gallery-row').trigger('filter'); 119 }, 50); 120 }) 121 } else { 122 $section.find('.mbr-gallery-item__hided').removeClass('mbr-gallery-item__hided'); 123 $section.find('.mbr-gallery-row').trigger('filter'); 124 } 125 if (!isBuilder) { 126 127 $section.find('.video-slide').each(function (i) { 128 var index = $(this).closest('.mbr-gallery-item').index(); 129 130 // setImgSrc($(this)); 131 }); 132 } 133 134 if (typeof $.fn.masonry !== 'undefined') { 135 $section.outerFind('.mbr-gallery').each(function () { 136 var $msnr = $(this).find('.mbr-gallery-row').masonry({ 137 itemSelector: '.mbr-gallery-item:not(.mbr-gallery-item__hided)', 138 percentPosition: true 139 }); 140 // reload masonry (need for adding new or resort items) 141 $msnr.masonry('reloadItems'); 142 $msnr.on('filter', function () { 143 $msnr.masonry('reloadItems'); 144 $msnr.masonry('layout'); 145 // update parallax backgrounds 146 $(window).trigger('update.parallax') 147 }.bind(this, $msnr)) 148 // layout Masonry after each image loads 149 $msnr.imagesLoaded().progress(function () { 150 $msnr.masonry('layout'); 151 }); 152 }); 153 } 154 }); 155 $('.mbr-gallery-item').on('click', 'a', function (e) { 156 e.stopPropagation(); 157 }) 158 var timeout; 159 var timeout2; 160 161 function fitLBtimeout() { 162 clearTimeout(timeout); 163 timeout = setTimeout(fitLightbox, 50); 164 } 165 166 /* Lightbox Fit */ 167 function fitLightbox() { 168 var $lightbox = $('.mbr-gallery .modal'); 169 if (!$lightbox.length) { 170 return; 171 } 172 173 var windowPadding = 0; 174 var bottomPadding = 10; 175 var wndW = $(window).width() - windowPadding * 2; 176 var wndH = $(window).height() - windowPadding * 2; 177 $lightbox.each(function () {
178 var setWidth, setTop; 179 var isShown = $(this).hasClass('in'); 180 var $modalDialog = $(this).find('.modal-dialog'); 181 var $currentImg = $modalDialog.find('.carousel-item.active > img'); 182 183 if ($modalDialog.find('.carousel-item.prev > img, .carousel-item.next > img').length) { 184 $currentImg = $modalDialog.find('.carousel-item.prev > img, .carousel-item.next > img').eq(0); 185 } 186 187 var lbW = $currentImg[0].naturalWidth; 188 var lbH = $currentImg[0].naturalHeight; 189 190 // height change 191 if (wndW / wndH > lbW / lbH) { 192 var needH = wndH - bottomPadding * 2; 193 setWidth = needH * lbW / lbH; 194 } 195 196 // width change 197 else { 198 setWidth = wndW - bottomPadding * 2; 199 } 200 // check for maw width 201 setWidth = setWidth >= lbW ? lbW : setWidth; 202 203 // set top to vertical center 204 setTop = (wndH - setWidth * lbH / lbW) / 2; 205 206 $modalDialog.css({ 207 width: parseInt(setWidth), 208 top: setTop + windowPadding 209 }); 210 }); 211 } 212 213 214 /* pause/start video on different events and fit lightbox */ 215 var $window = $(document).find('.mbr-gallery'); 216 $window.on('show.bs.modal', function (e) { 217 218 clearTimeout(timeout2); 219 var timeout2 = setTimeout(function () { 220 var index = $(e.relatedTarget).parent().index(); 221 var slide = $(e.target).find('.carousel-item').eq(index).find('.mbr-background-video'); 222 $(e.target).find('.carousel-item .mbr-background-video') 223 if (slide.length > 0) { 224 var player = players[+slide.attr('data-video-num')]; 225 player.playVideo?player.playVideo():player.play(); 226 } 227 }, 500); 228 fitLBtimeout(); 229 }) 230 $window.on('slide.bs.carousel', function (e) { 231 var ytv = $(e.target).find('.carousel-item.active .mbr-background-video'); 232 if (ytv.length > 0) { 233 var player = players[+ytv.attr('data-video-num')]; 234 player.pauseVideo?player.pauseVideo():player.pause(); 235 } 236 }); 237 $(window).on('resize load', fitLBtimeout); 238 $window.on('slid.bs.carousel', function (e) { 239 var ytv = $(e.target).find('.carousel-item.active .mbr-background-video'); 240 if (ytv.length > 0) { 241 var player = players[+ytv.attr('data-video-num')]; 242 player.playVideo?player.playVideo():player.play(); 243 } 244 fitLBtimeout(); 245 }); 246 $window.on('hide.bs.modal', function (e) { 247 players.map(function (player, i) { 248 player.pauseVideo?player.pauseVideo():player.pause(); 249 }); 250 }); 251} (jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.