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.