PageSourceSearch

https://vfw7564.org/di/vfw/v2/assets/mobirise-gallery/script.js

js vfw7564.org collected 2026-09-29 01:17:49 UTC 9,896 bytes, 251 lines download raw bytes

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.