PageSourceSearch

https://krebs.com.pl/wp-content/plugins/divi-video-gallery/scripts/functions.min.js?ver=3.0.5

js krebs.com.pl collected 2026-10-08 07:33:57 UTC 28,668 bytes, 726 lines download raw bytes

1jQuery(function($) {
2    
3    var $galleries =  $('.dvg-gallery-container');
4    $.each($galleries, function(index, gallery) {
5        var $gallery = $(gallery),
6            skipAutoplay = $gallery.hasClass('dvg-without-autoplay');
7        
8        if ( $gallery.hasClass('dvg-playlist-layout') || $gallery.hasClass('dvg-player-list')) {
9            dvg_init_playlist_player( $gallery, index, skipAutoplay);
10        } else if ( $gallery.hasClass('dvg-plays-inline')) {
11            dvg_create_inline_players( $gallery, index, skipAutoplay );
12        } else {
13            dvg_create_lightbox( $gallery, skipAutoplay );
14        }        
15        dvg_filter( $gallery );
16    });
17
18    $('.dvg-gallery-page-button').on('click', function() {
19		var $this = $(this),
20			page = $this.attr('data-value'),
21			$wrapper = $this.parents('.dvg_divi_video_gallery'),
22			$paginator = $wrapper.find('.dvg-gallery-pagination'),
23			excludeMovement = false,
24			max = Number($paginator.attr('data-max')),
25			current = Number($paginator.attr('data-value'));
26
27		if (page == $paginator.attr('data-value'));
28
29		$paginator.attr('data-value', page);
30		$paginator.find('.dvg-gallery-page-button-active').removeClass('dvg-gallery-page-button-active');
31		$paginator.find('.dvg-gallery-page-button[data-value="' + page + '"]').addClass('dvg-gallery-page-button-active');
32
33		executeFilter('page', $wrapper);
34	});
35
36    $(window).on('resize', function() {
37        dvg_check_vertical_player_ratio();
38        var $galleries =  $('.dvg-gallery-container');
39        $.each($galleries, function(index, gallery) {
40            var $gallery = $(gallery);
41            if ( !$gallery.hasClass('dvg-player-list') && !$gallery.hasClass('dvg-playlist-layout'))  {   
42                var columnParam = $gallery.length && $gallery.attr('data-cols') ? $gallery.attr('data-cols').split(',') : [],
43                    winWidth = $(window).width(),
44                    columns = columnParam[0];
45                if ( columnParam.length && winWidth < 768) {
46                    columns = Number(columnParam[2]);
47                } else if ( columnParam.length && winWidth < 981) {
48                    columns = Number(columnParam[1]);
49                } else if ( columnParam.length ) {
50                    columns = Number(columnParam[0]);
51                }
52                if ( $gallery.hasClass('execute-filter')) {
53                    $gallery.find('.dvg-in-filter').each(function(index, item) {
54                        $(item).addClass('dvg-in-filter-'+ ( index % columns));
55                    });
56
57                    $gallery.isotope({ 
58                        layoutMode: 'fitRows',
59                        filter: function() {
60                            return $(this).hasClass('dvg-in-filter') && !$(this).hasClass('dvg-out-page');
61                        } 
62                    });
63                }
64            }
65        });
66    });
67
68    $('.dvg-lazy').lazyload();
69
70    /**
71     * Check the window size to adjust the vertical player
72     */
73    function dvg_check_vertical_player_ratio() {
74        var width = $(window).width(),
75            height = $(window).height(),
76            verticalRatio = 9 / 16;
77        if ( width / height > verticalRatio ) {
78            $('.mfp-content.dvg-vertical-player').addClass('dvg-vertical-h-adjust');
79            $('.mfp-content.dvg-vertical-player').removeClass('dvg-vertical-v-adjust');
80        } else {
81            $('.mfp-content.dvg-vertical-player').removeClass('dvg-vertical-h-adjust');
82            $('.mfp-content.dvg-vertical-player').addClass('dvg-vertical-v-adjust');
83        }
84    }
85
86
87    /**
88     * Creates the video gallery lightbox
89     */
90    function dvg_create_lightbox( $gallery, skipAutoplay ) {
91        $gallery.magnificPopup({
92            delegate: 'a',
93            gallery: {
94                enabled: true,
95                navigateByImgClick: true,
96                preload: [0,1] // Will preload 0 - before current, and 1 after the current image
97            },
98            type: 'iframe',
99            mainClass: 'mfp-fade',
100            removalDelay: 160,
101            preloader: false,
102            fixedContentPos: false,
103            iframe: {
104                markup: '<div class="mfp-iframe-scaler">'+
105                        '<div class="mfp-close"></div>'+
106                        '<div id="dvg-lightbox-player"></div>'+
107                        '<div class="mfp-title"></div>'+
108                        '</div>'
109            },
110            callbacks : {
111                open: function() {
112                    var $module = $(this.ev[0]).parents('.dvg_divi_video_gallery'),
113                        classes = $module && $module.length ? $module[0].className.split(' ') : [];
114                    classes.forEach(c => {
115                        if ( c.match(/^dvg_divi_video_gallery_\d+$/g) ) {
116                            $(this.bgOverlay).addClass('mfp-dvg-video-gallery ' + c);
117                            $(this.wrap).addClass('mfp-dvg-video-gallery ' + c);
118                        }
119                    });
120                    setTimeout(function() {
121                        $('.mfp-iframe-holder').css('opacity', '1');
122                    }, 1000);
123                    $('.mfp-content').removeClass('dvg-vertical-player');
124                },
125                markupParse : function(template, values, item) {
126                    if ( this.ev.attr('data-lightbox') == 'title_subtitle' ) {
127                        values.title = "<span class='dvg-mfp-title'>" + item.el.attr('data-title') + "</span><span class='dvg-mfp-subtitle'>" + item.el.attr('data-subtitle') + "</span>";
128                    } else if ( this.ev.attr('data-lightbox') == 'title' ) {
129                        values.title = "<span class='dvg-mfp-title'>" + item.el.attr('data-title') + "</span>";
130                    }
131                },
132                change: function() {
133                    $('.mfp-content').removeClass('dvg-vertical-player');
134                    var info = dvg_get_iframe_src(this.currItem.src);
135                    dvg_create_lightbox_player( info, skipAutoplay );
136                },
137                close: function() {
138                }
139            }
140        });
141    }
142
143    /**
144     * Creates de lightbox player
145     */
146    function dvg_create_lightbox_player( info, skipAutoplay ) {
147        //Same method for vimeo + youtube
148        if ( dvg_lightbox_player['lightbox'] && typeof dvg_lightbox_player['lightbox'].destroy === 'function' )
149            dvg_lightbox_player['lightbox'].destroy();
150        else if( dvg_lightbox_player['lightbox'] && typeof dvg_lightbox_player['lightbox'].remove === 'function' ) {
151            dvg_lightbox_player['lightbox'].remove();    
152        }
153        dvg_lightbox_player['lightbox'] = {};
154        setTimeout( function() {
155            if ( info.type == 'youtube' ) {
156                dvg_create_lightbox_youtube_player(info, skipAutoplay);
157            } else if ( info.type == 'vimeo' ) {
158                dvg_create_lightbox_vimeo_player(info, skipAutoplay);
159            } else if ( info.type == 'videopress' ) {
160                dvg_create_lightbox_videopress_player(info, skipAutoplay);
161            } else {
162                dvg_create_lightbox_mp4_player(info, skipAutoplay);
163            }
164        }, 300);
165    }
166
167    function dvg_create_lightbox_videopress_player( info, skipAutoplay ) {
168        dvg_lightbox_player['lightbox'] = dvg_create_videopress_player(
169            dvg_lightbox_player['lightbox'], 
170            'dvg-lightbox-player', 
171            info.id, 
172            skipAutoplay ? $.magnificPopup.instance.close : dvg_lightbox_player_next
173        );
174    }
175
176    function dvg_create_lightbox_mp4_player( info, skipAutoplay ) {
177        dvg_lightbox_player['lightbox'] = dvg_create_mp4_player( 
178            info.src, 
179            'dvg-mp4-lightbox-player', 
180            'dvg-lightbox-player', 
181            skipAutoplay ? $.magnificPopup.instance.close : dvg_lightbox_player_next
182        );
183    }
184
185    function dvg_create_mp4_player( src, className, container, endedCallback, skipPlay ) {
186        var mp4_player = document.createElement("video");
187        mp4_player.className = className;
188        mp4_player.controls = true;
189        mp4_player.addEventListener( 'loadeddata', function() {
190            if ( mp4_player.readyState >= 2 && !skipPlay ) {
191                mp4_player.play();
192            }
193            
194            if ( $('video.dvg-mp4-lightbox-player').length ) {
195                if ( mp4_player.videoHeight > mp4_player.videoWidth ) {
196                    $('.mfp-content').addClass('dvg-vertical-player');       
197                    dvg_check_vertical_player_ratio();             
198                } else {
199                    $('.mfp-content').removeClass('dvg-vertical-player');
200                }
201            }     
202        });
203        mp4_player.addEventListener( 'ended', function() {
204            if ( endedCallback )
205                endedCallback.call();
206        });
207        var sourceMP4 = document.createElement("source"); 
208        if ( src && src.endsWith('webm')) {
209            sourceMP4.type = "video/webm";
210        } else {
211            sourceMP4.type = "video/mp4";
212        }
213        sourceMP4.src = src;
214        mp4_player.appendChild(sourceMP4);
215        $('#' + container).append(mp4_player);
216
217        return mp4_player;
218        
219    }
220
221    function dvg_create_videopress_player( player, container, id, endedCallback, skipPlay ) {
222
223        $('.mfp-content').removeClass('dvg-vertical-player');
224
225	    player = videopress( id, document.getElementById(container), {} );
226        
227        player.api.status.onPlayerStatusChanged(
228            ( oldStatus, newStatus ) => {
229                if ( newStatus == 'ended')
230                    endedCallback.call();
231                else if ( newStatus == 'ready' ) {
232                    if ( !skipPlay )
233                        player.api.controls.play()
234                }
235            }
236        );
237    }
238
239    /**
240     * Vimeo lightbox player
241     */
242    function dvg_create_lightbox_vimeo_player(info, skipAutoplay) {
243        dvg_lightbox_player['lightbox'] = dvg_create_vimeo_player(
244            dvg_lightbox_player['lightbox'], 
245            'dvg-lightbox-player', 
246            info.id, 
247            skipAutoplay ? $.magnificPopup.instance.close : dvg_lightbox_player_next, 
248            false, 
249            info.private
250        );
251    }
252    
253    function dvg_create_vimeo_player(player, container, id, endedCallback, skipPlay, private) {
254
255        $('.mfp-content').removeClass('dvg-vertical-player');
256
257        if ( private ) {
258            player = new Vimeo.Player(container, {
259                url : id
260            });
261        } else {
262            player = new Vimeo.Player(container, {
263                id : id
264            });
265        }
266
267        player.ready().then(function() {
268
269            //Vertical video check
270            if ( container == 'dvg-lightbox-player' ) {
271
272                player.getVideoHeight().then(function(height) {
273
274                    player.getVideoWidth().then(function(width) {
275                        
276                        if ( height && width && height > width ) {
277                            $('.mfp-content').addClass('dvg-vertical-player');
278                            dvg_check_vertical_player_ratio();
279                        }
280
281                    });
282
283                });
284
285            }
286
287            if ( !skipPlay )
288                player.play();
289        });
290
291        player.on('ended', function() {
292            endedCallback.call();
293        });
294
295        return player;
296    }
297
298    /**
299     * Youtube lightbox player
300     */
301    function dvg_create_lightbox_youtube_player(info, skipAutoplay) {
302        dvg_lightbox_player['lightbox'] = dvg_create_youtube_player(
303            dvg_lightbox_player['lightbox'], 
304            'dvg-lightbox-player', 
305            info.id, 
306            skipAutoplay ? $.magnificPopup.instance.close : dvg_lightbox_player_next,
307            skipAutoplay,
308            info
309        );
310    }
311
312    /**
313     * Siguiente vídeo en el popup
314     */
315    function dvg_lightbox_player_next() {
316        $('.mfp-content').removeClass('dvg-vertical-player');
317        $.magnificPopup.instance.next();
318    }
319
320    function dvg_reset_playlist_player($gallery) {
321        $gallery.find('.dvg-playlist-video.dvg-playing').removeClass('dvg-playing');
322        var player_id = 'player-' + $gallery.attr('dvg-playlist-id');
323        if ( dvg_inline_players[player_id] && typeof dvg_inline_players[player_id].destroy === 'function' )
324            dvg_inline_players[player_id].destroy();
325        $gallery.find('.dvg_iframe_scaler').removeClass('mp4').html('<div id="' + player_id + '"></div>');
326    }
327
328    function dvg_init_playlist_player( $gallery, index, skipAutoplay ) {
329        var player_id = 'player-' + index;
330        $gallery.attr('dvg-playlist-id', index);
331        $gallery.find('.dvg-playlist-player-video').attr('id', player_id);
332
333        //Load first video in the iframe
334        var $first = $gallery.find('.dvg-playlist-video').eq(0);
335        dvg_load_playlist_item($gallery, $first, true, skipAutoplay);
336        $gallery.find('.dvg-playlist-video').on('click', function(evt) {
337            evt.preventDefault();
338            dvg_load_playlist_item( $gallery, $(this), false, skipAutoplay);
339        });
340
341        $(window).resize();
342    }
343
344    function dvg_load_playlist_item($gallery, $item, skipLoad, skipAutoplay) {
345        var url =  $item.attr('href'),
346            info = dvg_get_iframe_src(url),
347            player_id = 'player-' + $gallery.attr('dvg-playlist-id');
348
349        dvg_reset_playlist_player($gallery);
350        $item.addClass('dvg-playing');
351
352        setTimeout( function() {
353            $('#' + player_id).html('');
354            if ( info.type == 'youtube' ) {
355                dvg_create_youtube_player(dvg_inline_players[player_id], player_id, info.id, function() {
356                    if ( !skipAutoplay )
357                        dvg_playlist_next($gallery)
358                }, skipLoad);
359            } else if ( info.type == 'vimeo' ) {
360                dvg_create_vimeo_player(dvg_inline_players[player_id], player_id, info.id, function() {
361                    if ( !skipAutoplay )
362                        dvg_playlist_next($gallery)
363                }, skipLoad, info.private);
364            } else if ( info.type == 'videopress' ) {
365                $gallery.find('.dvg_iframe_scaler').addClass('videopress');
366                dvg_create_videopress_player(dvg_inline_players[player_id], player_id, info.id, function() {
367                    if ( !skipAutoplay )
368                        dvg_playlist_next($gallery)
369                }, skipLoad);
370            } else {
371                $gallery.find('.dvg_iframe_scaler').addClass('mp4');
372                dvg_create_mp4_player(info.src, '', player_id, function() {
373                    if ( !skipAutoplay )
374                        dvg_playlist_next($gallery);
375                }, skipLoad);
376            }
377        }, 300);
378    }
379
380    function dvg_playlist_next($gallery) {
381        var items = $gallery.find('.dvg-playlist-video'),
382            $current = $gallery.find('.dvg-playlist-video.dvg-playing'),
383            index = $current.parent().index();
384        if ( index < items.length - 1 ) {
385            dvg_load_playlist_item( $gallery, items.eq( index + 1 ) );
386        }
387    }
388
389    /**
390     * Create the inline players 
391     */
392    function dvg_create_inline_players( $gallery, index, skipAutoplay ) {
393        $gallery.attr('dvg-inline-id', index).on('click', 'a.dvg-gallery-item', function(evt) {
394            evt.preventDefault();
395            var $item = $(this);
396            if ( $item.hasClass('dvg_with_player'))
397                return;
398            var player_id = 'player-' + $gallery.attr('dvg-inline-id');
399            dvg_reset_inline( player_id, $gallery );
400            dvg_show_inline_player( $gallery, $item, player_id, skipAutoplay );
401        });
402    }
403
404    function dvg_show_inline_player( $gallery, $item, player_id, skipAutoplay ) {
405        var url = $item.attr('href'),
406            info = dvg_get_iframe_src(url);
407        $item.addClass('dvg_with_player');
408        $item.append('<div class="dvg_inline_player"><div class="dvg_iframe_scaler"><div id="' + player_id + '"></div></div></div>');
409        setTimeout( function() {
410            if ( info.type == 'youtube' ) {
411                dvg_create_inline_youtube_player(info, $gallery, player_id, skipAutoplay);
412            } else if ( info.type == 'vimeo' ) {
413                dvg_create_inline_vimeo_player(info, $gallery, player_id, skipAutoplay);
414            } else if ( info.type == 'videopress' ) {
415                dvg_create_inline_videopress_player(info, $gallery, player_id, skipAutoplay);
416            } else {
417                dvg_create_inline_mp4_player(info, $gallery, player_id, skipAutoplay);
418            }
419        }, 300);
420    }
421
422    function dvg_create_inline_vimeo_player(info, $gallery, player_id, skipAutoplay) {
423        dvg_create_vimeo_player(
424            dvg_inline_players[player_id], 
425            player_id, 
426            info.id, 
427            skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); }, 
428            false, 
429            info.private
430        );
431    }
432
433    function dvg_create_inline_youtube_player(info, $gallery, player_id, skipAutoplay) {
434        dvg_create_youtube_player(
435            dvg_inline_players[player_id], 
436            player_id, 
437            info.id, 
438            skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); }
439        );
440    }
441
442    function dvg_create_inline_videopress_player(info, $gallery, player_id, skipAutoplay) {
443        dvg_create_videopress_player(
444            dvg_inline_players[player_id], 
445            player_id, 
446            info.id, 
447            skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); }
448        );
449    }
450
451    function dvg_create_inline_mp4_player(info, $gallery, player_id, skipAutoplay) {
452        dvg_create_mp4_player(
453            info.src, 
454            'dvg-mp4-inline-player', 
455            player_id, 
456            skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); }
457        );
458    }
459
460    /**
461     * Plays the next video in the inline player
462     * @param {*} $gallery 
463     * @param {*} player_id 
464     */
465    function dvg_inline_next($gallery, player_id) {
466        var items = $gallery.find('.dvg-gallery-item'),
467            current = $gallery.find('.dvg_with_player').index();
468        dvg_reset_inline(player_id, $gallery);
469        if ( current < items.length - 1) {
470            dvg_show_inline_player( $gallery, $(items[current + 1]), player_id);
471        }
472    }
473
474    function dvg_get_iframe_src( url ) {
475        if ( url.includes('youtube.com') ) {
476            var result = url.match(/(?:embed\/|live\/|shorts\/|watch\?v=)(.+)/);
477            if ( result ) {
478                return { 'type' : 'youtube', 'src' : 'https://www.youtube.com/embed/' + result[1] + '?rel=0&autoplay=1', 'id' : result[1], 'original' : url };
479            }
480        } else if ( url.includes('youtu.be') ) {
481            var result = url.match(/youtu\.be\/(.+)/);
482            if ( result ) {
483                return { 'type' : 'youtube', 'src' : 'https://www.youtube.com/embed/' + result[1] + '?rel=0&autoplay=1', 'id' : result[1]};
484            }
485        } else if ( url.includes('vimeo.com') ) {
486            //Includes private settings
487            var result = url.match(/(?:vimeo\.com\/|video\/)(\d+)(\/|\?h=)([a-z\d]{4,})/);
488            if ( result ) {
489                return { 'type' : 'vimeo', 'src' : 'https://player.vimeo.com/video/' + result[1] + '?h=' + result[3] +  '&autoplay=1', 'id' : 'https://player.vimeo.com/video/' + result[1] + '?h=' + result[3] +  '&autoplay=1', private : true};
490            } else {
491                result = url.match(/(?:vimeo\.com\/|video\/)(\d+)/);
492                if ( result ) {
493                    return { 'type' : 'vimeo', 'src' : 'https://player.vimeo.com/video/' + result[1] + '?autoplay=1', 'id' : result[1], private : false};
494                }
495            }
496        } else if ( url.includes('videopress')) {
497            var result = url.match(/videopress\.com\/(?:v|embed)\/(.+?)[&?]?$/);
498            if ( result ) {
499                return { 'type' : 'videopress', 'src' : 'https://videopress.com/embed/' + result[1] + '?autoplay=1', 'id' : result[1] };
500            }
501        }
502        
503        return { 'type' : 'default', 'src' : url };
504    }
505
506    /**
507     * Reset the inline player
508     * @param {*} player_id 
509     * @param {*} $gallery 
510     */
511    function dvg_reset_inline( player_id, $gallery ) {
512        var playing = $gallery.find('.dvg_inline_player');
513        if ( playing.length ) {
514            playing.eq(0).remove();
515        } 
516
517        $gallery.find('.dvg_with_player').removeClass('dvg_with_player');
518
519        if ( dvg_inline_players[player_id] && typeof dvg_inline_players[player_id].destroy === 'function' )
520            dvg_inline_players[player_id].destroy();
521
522        dvg_inline_players[player_id] = {};
523    }
524
525    /**
526     * Crea un reproductor de youtube
527     * @param {*} player Variable to save the player
528     * @param {*} container Div containing the player
529     * @param {*} id ID of the video
530     * @param {*} endedCallback Function to call when the video is over
531     * @param {*} info Full video info object
532     */
533    function dvg_create_youtube_player(player, container, id, endedCallback, skipPlay, info) {
534        $('.mfp-content').removeClass('dvg-vertical-player');
535        id = id.split("&")[0];
536        player = new YT.Player(container, {
537            height: '360',
538            width: '640',
539            videoId: id,
540            playerVars : { rel : 0 },
541            events: {
542                'onReady': function(event) {
543                    if ( !skipPlay )
544                        event.target.playVideo();
545                    if ( container == 'dvg-lightbox-player' && info && info.original && info.original.includes('/shorts/')) {
546                        $('.mfp-content').addClass('dvg-vertical-player');
547                        dvg_check_vertical_player_ratio();
548                    }
549                },
550                'onStateChange': function (event) {
551                    if (event.data == YT.PlayerState.ENDED) {
552                        endedCallback.call();
553                    }
554                }
555            }
556        });
557
558        return player;
559    } 
560
561
562    function dvg_filter($gallery) {
563        var $container = $gallery.parent(),
564            filters = $container.find('.dvg-gallery-filter');
565        if ( filters.length ) {
566            filters.on('click', function() {
567                var $this = $(this),
568                    $filter = $this.parents('.dvg-gallery-filter-categories'),
569                    $wrapper = $filter.parents('.dvg_divi_video_gallery')
570                    columns = $filter.attr('data-columns').split(','), 
571                    option = $this.attr('data-value'),
572                    items = $container.find('.dvg_divi_video_gallery_item');
573                if ( !$this.hasClass('dvg-filter-active') ) {
574                    $filter.attr('data-value', option);
575                    $filter.find('.dvg-filter-active').removeClass('dvg-filter-active');
576                    $this.addClass('dvg-filter-active');
577                    if ( $wrapper.find('.dvg-playlist-layout').length )
578                        executePlaylistFilter($wrapper, option);
579                    else
580                        executeFilter('category', $wrapper);
581                }
582            });
583        }
584    }
585
586    function executePlaylistFilter($wrapper, value) {
587        var toShow;
588        if ( value ) {
589            $wrapper.find('.dvg-playlist-item').hide();
590            toShow = $wrapper.find('.dvg-playlist-item[data-category="' + value + '"]');
591        } else {
592            toShow = $wrapper.find('.dvg-playlist-item');
593        }
594        toShow.show();
595        toShow.eq('0').find('a').click();
596    }
597
598    function executeFilter(type, $wrapper) {
599		var $filter = $wrapper.find('.dvg-gallery-filter-categories'),
600			withFilter = $filter.length > 0,
601			category = null,
602			
603			$paginator = $wrapper.find('.dvg-gallery-pagination'),
604			withPagination = $paginator.length > 0,
605			page = 0,
606			pageSize = 0,
607			
608			$gallery = $wrapper.find('.dvg-videos'),
609			items = $gallery.find('.dvg_divi_video_gallery_item');
610
611		$gallery.find('.dvg-out-page').removeClass('dvg-out-page');
612		$gallery.find('.dvg-out-filter').removeClass('dvg-out-filter');
613        $gallery.find('.dvg-gallery-item').removeClass (function (index, className) {
614            return (className.match (/(^|\s)dvg-in-filter-\d+/g) || []).join(' ');
615        });
616		items.addClass('dvg-in-filter');
617
618		if (withFilter) {
619			category = $filter.attr('data-value');
620			$.each(items, function(index, item) {
621				var $item = $(item);
622				var categories = $item.attr('data-category')
623				if (category && categories.split(',').indexOf(category) < 0) {
624					$item.removeClass('dvg-in-filter');
625					$item.addClass('dvg-out-filter');
626				}
627			});
628		}
629
630		if (withPagination) {
631
632			pageSize = $paginator.attr('data-page-size');
633
634			if (type == 'category') {
635				$paginator.attr('data-value', 1);
636				$paginator.attr('data-page-size', $paginator.attr('data-more'));
637				$paginator.find('.dvg-page-disabled').removeClass('dvg-page-disabled');
638				$paginator.find('.dvg-gallery-page-button-active').removeClass('dvg-gallery-page-button-active');
639				$paginator.find('.dvg-gallery-page-button')
640						  .not('.dvg-gallery-page-button-prev')
641						  .not('.dvg-gallery-page-button-next')
642						  .not('.dvg-gallery-page-button-more')
643						  .eq(0).addClass('dvg-gallery-page-button-active');
644
645				var categoryTotal = $gallery.find('.dvg-in-filter').length,
646					categoryPages = Math.ceil(categoryTotal/pageSize);
647				$paginator.attr('data-max', categoryPages);
648				$paginator.find('.dvg-gallery-page-button')
649						  .not('.dvg-gallery-page-button-prev')
650						  .not('.dvg-gallery-page-button-next')
651						  .not('.dvg-gallery-page-button-more')
652						  .each(function(i, button) {
653					if (i >= categoryPages)
654						$(button).addClass('dvg-page-disabled');
655				});
656				
657				if ( categoryPages <= 1 ) {	
658					$paginator.find('.dvg-gallery-page-button-more').addClass('dvg-page-disabled');
659				} else {
660					$paginator.find('.dvg-gallery-page-button-next').removeClass('dvg-page-disabled');
661				}
662			}
663
664			page = $paginator.attr('data-value');
665			var min = pageSize * (page - 1),
666				max = pageSize * page;
667				filteredItems = [];
668			if (category) {
669				filteredItems = items.filter('.dvg-in-filter');
670			} else {
671				filteredItems = items;
672			}
673
674			if ( page == 1 ) {
675				$paginator.find('.dvg-gallery-page-button-prev').addClass('dvg-page-disabled');
676			} else {
677				$paginator.find('.dvg-gallery-page-button-prev').removeClass('dvg-page-disabled');
678			}
679
680			if ( page == $paginator.attr('data-max') ) {
681				$paginator.find('.dvg-gallery-page-button-next').addClass('dvg-page-disabled');
682			} else {
683				$paginator.find('.dvg-gallery-page-button-next').removeClass('dvg-page-disabled');
684			}
685
686
687			
688		 	$.each(filteredItems, function(index, item) {
689				if (index < min || index >= max)
690					$(item).addClass('dvg-out-page');
691			});
692		}
693        if ( $wrapper.find('.dvg-player-list').length ) {
694            $gallery.find('.dvg-playlist-item').show();
695		    $gallery.find('.dvg-out-filter').hide();
696            $gallery.find('.dvg-out-page').hide();
697        } else {
698            var columnParam = $gallery.length ? $gallery.attr('data-cols').split(',') : [],
699                winWidth = $(window).width(),
700                columns = columnParam[0];
701            if ( columnParam.length && winWidth < 768) {
702                columns = Number(columnParam[2]);
703            } else if ( columnParam.length && winWidth < 981) {
704                columns = Number(columnParam[1]);
705            } else if ( columnParam.length ) {
706                columns = Number(columnParam[0]);
707            }
708
709            $gallery.find('.dvg-in-filter').each(function(index, item) {
710                $(item).addClass('dvg-in-filter-'+ ( index % columns));
711            });
712
713            $gallery.addClass('execute-filter');	
714
715            $gallery.isotope({ 
716                layoutMode: 'fitRows',
717                filter: function() {
718                    return $(this).hasClass('dvg-in-filter') && !$(this).hasClass('dvg-out-page');
719                } 
720            });
721        }
722	}
723});
724
725var dvg_lightbox_player = {};
726var dvg_inline_players = {};

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.