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