PageSourceSearch

https://mogomedia.com/wp-content/plugins/divi-video-gallery/scripts/functions.min.js?ver=2.3.2

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