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