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') ) { 42 var columnParam = $gallery.length ? $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 if ( info.type == 'youtube' ) { 354 dvg_create_youtube_player(dvg_inline_players[player_id], player_id, info.id, function() { 355 if ( !skipAutoplay ) 356 dvg_playlist_next($gallery) 357 }, skipLoad); 358 } else if ( info.type == 'vimeo' ) { 359 dvg_create_vimeo_player(dvg_inline_players[player_id], player_id, info.id, function() { 360 if ( !skipAutoplay ) 361 dvg_playlist_next($gallery) 362 }, skipLoad, info.private); 363 } else if ( info.type == 'videopress' ) { 364 $gallery.find('.dvg_iframe_scaler').addClass('videopress'); 365 dvg_create_videopress_player(dvg_inline_players[player_id], player_id, info.id, function() { 366 if ( !skipAutoplay ) 367 dvg_playlist_next($gallery) 368 }, skipLoad); 369 } else { 370 $gallery.find('.dvg_iframe_scaler').addClass('mp4'); 371 dvg_create_mp4_player(info.src, '', player_id, function() { 372 if ( !skipAutoplay ) 373 dvg_playlist_next($gallery); 374 }, skipLoad); 375 } 376 }, 300); 377 } 378 379 function dvg_playlist_next($gallery) { 380 var items = $gallery.find('.dvg-playlist-video'), 381 $current = $gallery.find('.dvg-playlist-video.dvg-playing'), 382 index = $current.parent().index(); 383 if ( index < items.length - 1 ) { 384 dvg_load_playlist_item( $gallery, items.eq( index + 1 ) ); 385 } 386 } 387 388 /** 389 * Create the inline players 390 */ 391 function dvg_create_inline_players( $gallery, index, skipAutoplay ) { 392 $gallery.attr('dvg-inline-id', index).on('click', 'a.dvg-gallery-item', function(evt) { 393 evt.preventDefault(); 394 var $item = $(this); 395 if ( $item.hasClass('dvg_with_player')) 396 return; 397 var player_id = 'player-' + $gallery.attr('dvg-inline-id'); 398 dvg_reset_inline( player_id, $gallery ); 399 dvg_show_inline_player( $gallery, $item, player_id, skipAutoplay ); 400 }); 401 } 402 403 function dvg_show_inline_player( $gallery, $item, player_id, skipAutoplay ) { 404 var url = $item.attr('href'), 405 info = dvg_get_iframe_src(url); 406 $item.addClass('dvg_with_player'); 407 $item.append('<div class="dvg_inline_player"><div class="dvg_iframe_scaler"><div id="' + player_id + '"></div></div></div>'); 408 setTimeout( function() { 409 if ( info.type == 'youtube' ) { 410 dvg_create_inline_youtube_player(info, $gallery, player_id, skipAutoplay); 411 } else if ( info.type == 'vimeo' ) { 412 dvg_create_inline_vimeo_player(info, $gallery, player_id, skipAutoplay); 413 } else if ( info.type == 'videopress' ) { 414 dvg_create_inline_videopress_player(info, $gallery, player_id, skipAutoplay); 415 } else { 416 dvg_create_inline_mp4_player(info, $gallery, player_id, skipAutoplay); 417 } 418 }, 300); 419 } 420 421 function dvg_create_inline_vimeo_player(info, $gallery, player_id, skipAutoplay) { 422 dvg_create_vimeo_player( 423 dvg_inline_players[player_id], 424 player_id, 425 info.id, 426 skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); }, 427 false, 428 info.private 429 ); 430 } 431 432 function dvg_create_inline_youtube_player(info, $gallery, player_id, skipAutoplay) { 433 dvg_create_youtube_player( 434 dvg_inline_players[player_id], 435 player_id, 436 info.id, 437 skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); } 438 ); 439 } 440 441 function dvg_create_inline_videopress_player(info, $gallery, player_id, skipAutoplay) { 442 dvg_create_videopress_player( 443 dvg_inline_players[player_id], 444 player_id, 445 info.id, 446 skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); } 447 ); 448 } 449 450 function dvg_create_inline_mp4_player(info, $gallery, player_id, skipAutoplay) { 451 dvg_create_mp4_player( 452 info.src, 453 'dvg-mp4-inline-player', 454 player_id, 455 skipAutoplay ? function() { dvg_reset_inline(player_id, $gallery) } : function() { dvg_inline_next($gallery, player_id); } 456 ); 457 } 458 459 /** 460 * Plays the next video in the inline player 461 * @param {*} $gallery 462 * @param {*} player_id 463 */ 464 function dvg_inline_next($gallery, player_id) { 465 var items = $gallery.find('.dvg-gallery-item'), 466 current = $gallery.find('.dvg_with_player').index(); 467 dvg_reset_inline(player_id, $gallery); 468 if ( current < items.length - 1) { 469 dvg_show_inline_player( $gallery, $(items[current + 1]), player_id); 470 } 471 } 472 473 function dvg_get_iframe_src( url ) { 474 if ( url.includes('youtube.com') ) { 475 var result = url.match(/(?:embed\/|live\/|shorts\/|watch\?v=)(.+)/); 476 if ( result ) { 477 return { 'type' : 'youtube', 'src' : 'https://www.youtube.com/embed/' + result[1] + '?rel=0&autoplay=1', 'id' : result[1], 'original' : url }; 478 } 479 } else if ( url.includes('youtu.be') ) { 480 var result = url.match(/youtu\.be\/(.+)/); 481 if ( result ) { 482 return { 'type' : 'youtube', 'src' : 'https://www.youtube.com/embed/' + result[1] + '?rel=0&autoplay=1', 'id' : result[1]}; 483 } 484 } else if ( url.includes('vimeo.com') ) { 485 //Includes private settings 486 var result = url.match(/(?:vimeo\.com\/|video\/)(\d+)(\/|\?h=)([a-z\d]{4,})/); 487 if ( result ) { 488 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}; 489 } else { 490 result = url.match(/(?:vimeo\.com\/|video\/)(\d+)/); 491 if ( result ) { 492 return { 'type' : 'vimeo', 'src' : 'https://player.vimeo.com/video/' + result[1] + '?autoplay=1', 'id' : result[1], private : false}; 493 } 494 } 495 } else if ( url.includes('videopress')) { 496 var result = url.match(/videopress\.com\/(?:v|embed)\/(.+?)[&?]?$/); 497 if ( result ) { 498 return { 'type' : 'videopress', 'src' : 'https://videopress.com/embed/' + result[1] + '?autoplay=1', 'id' : result[1] }; 499 } 500 } 501 502 return { 'type' : 'default', 'src' : url }; 503 } 504 505 /** 506 * Reset the inline player 507 * @param {*} player_id 508 * @param {*} $gallery 509 */ 510 function dvg_reset_inline( player_id, $gallery ) { 511 var playing = $gallery.find('.dvg_inline_player'); 512 if ( playing.length ) { 513 playing.eq(0).remove(); 514 } 515 516 $gallery.find('.dvg_with_player').removeClass('dvg_with_player'); 517 518 if ( dvg_inline_players[player_id] && typeof dvg_inline_players[player_id].destroy === 'function' ) 519 dvg_inline_players[player_id].destroy(); 520 521 dvg_inline_players[player_id] = {}; 522 } 523 524 /** 525 * Crea un reproductor de youtube 526 * @param {*} player Variable to save the player 527 * @param {*} container Div containing the player 528 * @param {*} id ID of the video 529 * @param {*} endedCallback Function to call when the video is over 530 * @param {*} info Full video info object 531 */ 532 function dvg_create_youtube_player(player, container, id, endedCallback, skipPlay, info) { 533 $('.mfp-content').removeClass('dvg-vertical-player'); 534 id = id.split("&")[0]; 535 player = new YT.Player(container, { 536 height: '360', 537 width: '640', 538 videoId: id, 539 playerVars : { rel : 0 }, 540 events: { 541 'onReady': function(event) { 542 if ( !skipPlay ) 543 event.target.playVideo(); 544 if ( container == 'dvg-lightbox-player' && info && info.original && info.original.includes('/shorts/')) { 545 $('.mfp-content').addClass('dvg-vertical-player'); 546 dvg_check_vertical_player_ratio(); 547 } 548 }, 549 'onStateChange': function (event) { 550 if (event.data == YT.PlayerState.ENDED) { 551 endedCallback.call(); 552 } 553 } 554 } 555 }); 556 557 return player; 558 } 559 560 561 function dvg_filter($gallery) { 562 var $container = $gallery.parent(), 563 filters = $container.find('.dvg-gallery-filter'); 564 if ( filters.length ) { 565 filters.on('click', function() { 566 var $this = $(this), 567 $filter = $this.parents('.dvg-gallery-filter-categories'), 568 $wrapper = $filter.parents('.dvg_divi_video_gallery') 569 columns = $filter.attr('data-columns').split(','), 570 option = $this.attr('data-value'), 571 items = $container.find('.dvg_divi_video_gallery_item'); 572 if ( !$this.hasClass('dvg-filter-active') ) { 573 $filter.attr('data-value', option); 574 $filter.find('.dvg-filter-active').removeClass('dvg-filter-active'); 575 $this.addClass('dvg-filter-active'); 576 if ( $wrapper.find('.dvg-playlist-layout').length ) 577 executePlaylistFilter($wrapper, option); 578 else 579 executeFilter('category', $wrapper); 580 } 581 }); 582 } 583 } 584 585 function executePlaylistFilter($wrapper, value) { 586 var toShow; 587 if ( value ) { 588 $wrapper.find('.dvg-playlist-item').hide(); 589 toShow = $wrapper.find('.dvg-playlist-item[data-category="' + value + '"]'); 590 } else { 591 toShow = $wrapper.find('.dvg-playlist-item'); 592 } 593 toShow.show(); 594 toShow.eq('0').find('a').click(); 595 } 596 597 function executeFilter(type, $wrapper) { 598 var $filter = $wrapper.find('.dvg-gallery-filter-categories'), 599 withFilter = $filter.length > 0, 600 category = null, 601 602 $paginator = $wrapper.find('.dvg-gallery-pagination'), 603 withPagination = $paginator.length > 0, 604 page = 0, 605 pageSize = 0, 606 607 $gallery = $wrapper.find('.dvg-videos'), 608 items = $gallery.find('.dvg_divi_video_gallery_item'); 609 610 $gallery.find('.dvg-out-page').removeClass('dvg-out-page'); 611 $gallery.find('.dvg-out-filter').removeClass('dvg-out-filter'); 612 $gallery.find('.dvg-gallery-item').removeClass (function (index, className) { 613 return (className.match (/(^|\s)dvg-in-filter-\d+/g) || []).join(' '); 614 }); 615 items.addClass('dvg-in-filter'); 616 617 if (withFilter) { 618 category = $filter.attr('data-value'); 619 $.each(items, function(index, item) { 620 var $item = $(item); 621 var categories = $item.attr('data-category') 622 if (category && categories.split(',').indexOf(category) < 0) { 623 $item.removeClass('dvg-in-filter'); 624 $item.addClass('dvg-out-filter'); 625 } 626 }); 627 } 628 629 if (withPagination) { 630 631 pageSize = $paginator.attr('data-page-size'); 632 633 if (type == 'category') { 634 $paginator.attr('data-value', 1); 635 $paginator.attr('data-page-size', $paginator.attr('data-more')); 636 $paginator.find('.dvg-page-disabled').removeClass('dvg-page-disabled'); 637 $paginator.find('.dvg-gallery-page-button-active').removeClass('dvg-gallery-page-button-active'); 638 $paginator.find('.dvg-gallery-page-button') 639 .not('.dvg-gallery-page-button-prev') 640 .not('.dvg-gallery-page-button-next') 641 .not('.dvg-gallery-page-button-more') 642 .eq(0).addClass('dvg-gallery-page-button-active'); 643 644 var categoryTotal = $gallery.find('.dvg-in-filter').length, 645 categoryPages = Math.ceil(categoryTotal/pageSize); 646 $paginator.attr('data-max', categoryPages); 647 $paginator.find('.dvg-gallery-page-button') 648 .not('.dvg-gallery-page-button-prev') 649 .not('.dvg-gallery-page-button-next') 650 .not('.dvg-gallery-page-button-more') 651 .each(function(i, button) { 652 if (i >= categoryPages) 653 $(button).addClass('dvg-page-disabled'); 654 }); 655 656 if ( categoryPages <= 1 ) { 657 $paginator.find('.dvg-gallery-page-button-more').addClass('dvg-page-disabled'); 658 } else { 659 $paginator.find('.dvg-gallery-page-button-next').removeClass('dvg-page-disabled'); 660 } 661 } 662 663 page = $paginator.attr('data-value'); 664 var min = pageSize * (page - 1), 665 max = pageSize * page; 666 filteredItems = []; 667 if (category) { 668 filteredItems = items.filter('.dvg-in-filter'); 669 } else { 670 filteredItems = items; 671 } 672 673 if ( page == 1 ) { 674 $paginator.find('.dvg-gallery-page-button-prev').addClass('dvg-page-disabled'); 675 } else { 676 $paginator.find('.dvg-gallery-page-button-prev').removeClass('dvg-page-disabled'); 677 } 678 679 if ( page == $paginator.attr('data-max') ) { 680 $paginator.find('.dvg-gallery-page-button-next').addClass('dvg-page-disabled'); 681 } else { 682 $paginator.find('.dvg-gallery-page-button-next').removeClass('dvg-page-disabled'); 683 } 684 685 686 687 $.each(filteredItems, function(index, item) { 688 if (index < min || index >= max) 689 $(item).addClass('dvg-out-page'); 690 }); 691 } 692 if ( $wrapper.find('.dvg-player-list').length ) { 693 $gallery.find('.dvg-playlist-item').show(); 694 $gallery.find('.dvg-out-filter').hide(); 695 $gallery.find('.dvg-out-page').hide(); 696 } else { 697 var columnParam = $gallery.length ? $gallery.attr('data-cols').split(',') : [], 698 winWidth = $(window).width(), 699 columns = columnParam[0]; 700 if ( columnParam.length && winWidth < 768) { 701 columns = Number(columnParam[2]); 702 } else if ( columnParam.length && winWidth < 981) { 703 columns = Number(columnParam[1]); 704 } else if ( columnParam.length ) { 705 columns = Number(columnParam[0]); 706 } 707 708 $gallery.find('.dvg-in-filter').each(function(index, item) { 709 $(item).addClass('dvg-in-filter-'+ ( index % columns)); 710 }); 711 712 $gallery.addClass('execute-filter'); 713 714 $gallery.isotope({ 715 layoutMode: 'fitRows', 716 filter: function() { 717 return $(this).hasClass('dvg-in-filter') && !$(this).hasClass('dvg-out-page'); 718 } 719 }); 720 } 721 } 722}); 723 724var dvg_lightbox_player = {}; 725var 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.