1window.lazySizesConfig = window.lazySizesConfig || {}; 2lazySizesConfig.expand = 1000; 3 4jQuery(document).ready(function($) 5{ 6 $('.ig-main-scope-wrapper').each(function(index,el) 7 { 8 var lastVisible = $(el).is(':visible'); 9 if(!lastVisible) 10 { 11 $(el).css('visibility','hidden'); 12 } 13 14 function checkIfVisibleChanged() 15 { 16 var visibleNow = $(el).is(':visible'); 17 18 if(visibleNow != lastVisible) 19 { 20 if(visibleNow) 21 { 22 $(el).resize(); 23 iguiUIkit.update($(el)); 24 setTimeout(function(){$(el).css('visibility','visible');$(el).find('.ig-thumbs-grid').css('visibility','visible');}, 70); 25 } 26 else 27 { 28 $(el).css('visibility','hidden'); 29 $(el).find('.ig-thumbs-grid').css('visibility','hidden'); 30 } 31 32 lastVisible = visibleNow; 33 } 34 } 35 36 setInterval(checkIfVisibleChanged, 50); 37 38 }); 39 40 //menu grid 41 $('.ig-menu-grid').each(function(index,el) 42 { 43 var menuGrid = $(el); 44 menuGrid.data('init',0); 45 var menuGridType = menuGrid.attr('data-ig-menugridtype'); 46 var maxColumnWidth = parseInt(menuGrid.attr('data-ig-maxmenuwidth')); 47 var maxColumnHeight = parseInt(menuGrid.attr('data-ig-maxmenuheight')); 48 var menuGridPadding = parseInt(menuGrid.attr('data-ig-menugridmargin')); 49 50 //masonry grid 51 function masonryGrid() 52 { 53 var containerWidth = parseInt(menuGrid.parent().width()); 54 var columns = Math.ceil(containerWidth/(maxColumnWidth + (menuGridPadding * 2))); 55 56 var gutterTotalSpace = menuGridPadding * (columns -1); 57 var columnsTotalSpace = containerWidth - (gutterTotalSpace); 58 var oneColumnSpace = columnsTotalSpace/columns; 59 60 menuGrid.find('.ig-menu-grid-item').each(function(index,el) 61 { 62 $(el).css('width',oneColumnSpace+'px'); 63 $(el).css('margin-bottom',(menuGridPadding -1)+'px'); 64 65 if($(el).find('img').length) 66 { 67 var imgWidth = $(el).find('img').attr('width'); 68 var imgHeight = $(el).find('img').attr('height'); 69 70 var newHeight = Math.ceil(((oneColumnSpace/imgWidth) * imgHeight)) + 1; 71 if(newHeight > imgHeight) 72 { 73 newHeight = imgHeight; 74 } 75 76 if($(el).find('.ig-menu-grid-text').length && $(el).find('.ig-menu-grid-text').hasClass('igui-overlay') == false) 77 { 78 newHeight = parseInt(newHeight) + parseInt($(el).find('.ig-menu-grid-text').outerHeight()) + 10; 79 } 80 81 $(el).css('height',newHeight+'px'); 82 } 83 }); 84 85 menuGrid.isotopeIG({ 86 layoutMode: 'masonry', 87 itemSelector: '.ig-menu-grid-item', 88 masonry: { 89 columnWidth: oneColumnSpace, 90 gutter: menuGridPadding, 91 resize: false, 92 fitWidth: true, 93 transitionDuration: 0 94 } 95 }); 96 97 98 if(menuGrid.data('init') == 0) 99 { 100 document.addEventListener('lazyloaded', function(e) 101 { 102 menuGrid.isotopeIG('layout'); 103 }); 104 } 105 menuGrid.data('init',1); 106 } 107 108 if(menuGridType == 'by_columns') 109 { 110 masonryGrid(); 111 setTimeout(function(){masonryGrid();}, 200); 112 setTimeout(function(){masonryGrid();}, 500); 113 114 $(window).resize(function() 115 { 116 if(menuGrid.data('resizing') == 0) 117 { 118 masonryGrid(); 119 setTimeout(function(){masonryGrid();}, 100); 120 setTimeout(function(){masonryGrid();}, 200); 121 setTimeout(function(){masonryGrid();}, 500); 122 menuGrid.data('resizing',1); 123 } 124 setTimeout(function(){menuGrid.data('resizing',0);}, 50); 125 }); 126 } 127 128 function metroMenuGrid() 129 { 130 var containerWidth = parseInt(menuGrid.parent().width()); 131 132 var columns = Math.ceil(containerWidth/(maxColumnWidth + (menuGridPadding * 1.5))); 133 var gutterTotalSpace = menuGridPadding * (columns -1); 134 var columnsTotalSpace = containerWidth - (gutterTotalSpace); 135 var oneColumnSpace = columnsTotalSpace/columns; 136 var twoColumnSpace = (oneColumnSpace*2) + menuGridPadding; 137 138 139 var lastContainerWidth = menuGrid.data('last-grid-width'); 140 if(typeof lastContainerWidth === 'undefined'){lastContainerWidth = 0} 141 142 if(containerWidth != lastContainerWidth) 143 { 144 menuGrid.find('.ig-menu-grid-item').each(function(index,el) 145 { 146 if( $(el).attr('data-widthdouble') == 1 ) 147 { 148 $(el).css('width',twoColumnSpace+'px'); 149 } 150 else 151 { 152 $(el).css('width',oneColumnSpace+'px'); 153 } 154 155 if( $(el).attr('data-heightdouble') == 1 ) 156 { 157 $(el).css('height',twoColumnSpace+'px'); 158 } 159 else 160 { 161 $(el).css('height',oneColumnSpace+'px'); 162 } 163 164 }); 165 166 menuGrid.isotopeIG({ 167 layoutMode: 'packery', 168 itemSelector: '.ig-menu-grid-item', 169 packery: { 170 gutter: menuGridPadding, 171 resize: false, 172 rowHeight: oneColumnSpace 173 } 174 }); 175 } 176 177 menuGrid.data('last-grid-width',containerWidth);
178 179 if(menuGrid.data('init') == 0) 180 { 181 document.addEventListener('lazyloaded', function(e) 182 { 183 menuGrid.isotopeIG('layout') 184 }); 185 } 186 menuGrid.data('init',1); 187 } 188 189 if(menuGridType == 'metro') 190 { 191 metroMenuGrid(); 192 setTimeout(function(){metroMenuGrid();}, 200); 193 setTimeout(function(){metroMenuGrid();}, 500); 194 195 $(window).resize(function() 196 { 197 if(menuGrid.data('resizing') == 0) 198 { 199 metroMenuGrid(); 200 setTimeout(function(){metroMenuGrid();}, 100); 201 setTimeout(function(){metroMenuGrid();}, 200); 202 setTimeout(function(){metroMenuGrid();}, 500); 203 menuGrid.data('resizing',1); 204 } 205 206 setTimeout(function(){menuGrid.data('resizing',0);}, 50); 207 }); 208 } 209 210 //rows grid 211 function rowsGrid() 212 { 213 var containerWidth = parseInt(menuGrid.parent().width()); 214 var columns = Math.ceil(containerWidth/(maxColumnWidth + (menuGridPadding * 2))); 215 216 var gutterTotalSpace = menuGridPadding * (columns -1); 217 var columnsTotalSpace = containerWidth - (gutterTotalSpace); 218 var oneColumnSpace = columnsTotalSpace/columns; 219 220 menuGrid.find('.ig-menu-grid-item').each(function(index,el) 221 { 222 $(el).css('width',oneColumnSpace+'px'); 223 $(el).css('margin-bottom',(menuGridPadding -1)+'px'); 224 225 if($(el).find('img').length) 226 { 227 var imgWidth = $(el).find('img').attr('width'); 228 var imgHeight = $(el).find('img').attr('height'); 229 230 var newHeight = Math.ceil(((oneColumnSpace/imgWidth) * imgHeight)) + 1; 231 if(newHeight > imgHeight) 232 { 233 newHeight = imgHeight; 234 } 235 236 if($(el).find('.ig-menu-grid-text').length && $(el).find('.ig-menu-grid-text').hasClass('igui-overlay') == false) 237 { 238 newHeight = parseInt(newHeight) + parseInt($(el).find('.ig-menu-grid-text').outerHeight()) + 10; 239 } 240 241 $(el).css('height',newHeight+'px'); 242 } 243 }); 244 245 menuGrid.isotopeIG({ 246 layoutMode: 'fitRows', 247 itemSelector: '.ig-menu-grid-item', 248 fitRows: { 249 gutter: (menuGridPadding -1), 250 } 251 }); 252 253 254 if(menuGrid.data('init') == 0) 255 { 256 document.addEventListener('lazyloaded', function(e) 257 { 258 menuGrid.isotopeIG('layout'); 259 }); 260 } 261 menuGrid.data('init',1); 262 } 263 264 if(menuGridType == 'by_rows') 265 { 266 rowsGrid(); 267 setTimeout(function(){rowsGrid();}, 200); 268 setTimeout(function(){rowsGrid();}, 500); 269 270 $(window).resize(function() 271 { 272 if(menuGrid.data('resizing') == 0) 273 { 274 rowsGrid(); 275 setTimeout(function(){rowsGrid();}, 100); 276 setTimeout(function(){rowsGrid();}, 200); 277 setTimeout(function(){rowsGrid();}, 500); 278 menuGrid.data('resizing',1); 279 } 280 setTimeout(function(){menuGrid.data('resizing',0);}, 50); 281 }); 282 } 283 284 //justified grid 285 var thumbSizes = []; 286 var largestHeight = 0; 287 var sumHeights = 0; 288 var smallestHeight = 5000; 289 var spacing = parseInt(menuGrid.attr('data-ig-menugridmargin')); 290 menuGrid.find('.ig-menu-grid-item').each(function(index,el) 291 { 292 if($(el).find('.ig-menu-grid-image').length) 293 { 294 var width = $(el).find('.ig-menu-grid-image').attr('width'); 295 var height = $(el).find('.ig-menu-grid-image').attr('height'); 296 if( !$(el).find('.ig-menu-grid-text').hasClass('igui-overlay') ) 297 { 298 height = parseInt(height) + (parseInt($(el).find('.ig-menu-grid-text').height()) * 1.2); 299 } 300 } 301 else 302 { 303 width = maxColumnWidth; 304 height = maxColumnHeight; 305 } 306 307 thumbSizes.push({width: width,height: height}); 308 largestHeight = height > largestHeight ? height : largestHeight; 309 sumHeights = sumHeights + parseInt(height); 310 smallestHeight = height < smallestHeight ? height : smallestHeight; 311 }); 312 313 var averageHeight = Math.round(sumHeights/(menuGrid.find('.ig-menu-grid-item').length)); 314 var targetHeight = $(window).width() > 1000 ? smallestHeight*0.8 : smallestHeight*0.6; 315 316 function menuJustifiedGrid() 317 {
318 if(menuGrid.width() < 300) 319 { 320 menuGrid.css('height','auto'); 321 menuGrid.find('.ig-menu-grid-item').css({'width':'auto', 'height':'auto', 'top':'auto', 'left':'auto','position':'static'}); 322 rowsGrid(); 323 } 324 else 325 { 326 menuGrid.removeClass('igui-child-width-1-1 igui-child-width-1-2 igui-child-width-1-3 igui-child-width-1-4 igui-child-width-1-5 igui-child-width-1-6 igui-child-width-1-7 igui-child-width-1-8 igui-child-width-1-9 igui-child-width-1-10 igui-child-width-1-11 igui-child-width-1-12 igui-child-width-1-13 igui-child-width-1-14 igui-child-width-1-15 igui-grid-small igui-grid-medium igui-grid-collapse'); 327 328 var justifiedData = require('justified-layout')(thumbSizes, 329 { 330 containerWidth:menuGrid.width(), 331 targetRowHeight: targetHeight, 332 boxSpacing:spacing, 333 targetRowHeightTolerance: 0.15 334 }); 335 336 $.each(justifiedData.boxes,function(index,box) 337 { 338 menuGrid.find('.ig-menu-grid-item').eq(index).css({'width':box.width, 'height':box.height, 'top':box.top, 'left':box.left,'position':'absolute'}); 339 }); 340 menuGrid.css('height',justifiedData.containerHeight+'px'); 341 342 if(menuGrid.data('init') == 0) 343 { 344 document.addEventListener('lazyloaded', function(e) 345 { 346 menuJustifiedGrid(); 347 }); 348 } 349 menuGrid.data('init',1); 350 } 351 } 352 353 if(menuGridType == 'justified') 354 { 355 menuJustifiedGrid(); 356 357 $(window).resize(function() 358 { 359 menuJustifiedGrid(); 360 }); 361 } 362 363 364 $('.ig-menu-grid-link').each(function(index,el) 365 { 366 $(el).imagesLoaded( function() 367 { 368 $(el).find('.ig-menu-grid-text').css('display','block'); 369 }); 370 }); 371 372 setTimeout(function(){menuGrid.css('visibility','visible');}, 700); 373 374 if(menuGrid.attr('data-ig-menuclick') == 'lightbox') 375 { 376 $('.ig-menu-grid-link').on('click', function(e) 377 { 378 e.preventDefault(); 379 $('body, html').css('overflow','hidden'); 380 var galleryId = $(this).attr('data-gallery-id'); 381 var htmlId = 'ig-menu-to-lbox-'+galleryId; 382 var link = menuGrid.attr('data-ig-basehref') + '/index.php?option=com_igallery&view=category&tmpl=component&lboxview=1&igid=' + galleryId + '&shareurl=' + encodeURIComponent(window.location.href); 383 var iframe = $('<iframe src=' + link + ' style="display:none; width:100vw; height:100vh; height:100dvh; background-color:#000; position:fixed; top:0px; left:0px; z-index:10000000000;" id="' + htmlId + '" class="ig-menu-to-lbox" frameborder="0" scrolling="no"></iframe>'); 384 385 $(document.body).append(iframe); 386 $('#'+htmlId).css('display','block'); 387 388 if(menuGrid.attr('data-ig-lightbox-fullscreen') == 'open-fullscreen') 389 { 390 $('#'+htmlId).fullScreen(true); 391 } 392 393 394 window.igCloseModal = function() 395 { 396 if($(document).fullScreen()) 397 { 398 $(document).fullScreen(false); 399 } 400 $('.ig-menu-to-lbox').remove(); 401 $('body, html').css('overflow','auto'); 402 }; 403 404 }); 405 } 406 407 }); 408 409 410 411 $('.ig-gallery-wrapper').each(function(index,el) 412 { 413 var panel = null; 414 var panelIds = Array(); 415 var isIOS = (navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false); 416 var isAndroid = (navigator.userAgent.toLowerCase().indexOf("android") > -1); 417 418 var galleryWrapper = $(el); 419 var lboxWrapper = $('#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid') ); 420 galleryWrapper.data('hits-pause',0); 421 galleryWrapper.data('swipe-active',0); 422 galleryWrapper.data('firstShown', false); 423 galleryWrapper.data('lboxPlaying', false); 424 galleryWrapper.data('lboxRecaptchaInit',0); 425 426 var imgsToPreload = []; 427
428 galleryWrapper.find(".ig-description-overlay a").click(function(e) 429 { 430 e.stopPropagation(); 431 }); 432 433 if(window.location.href.search('thumb_limitstart') != -1 && getUrlParamater('i') == 'unset') 434 { 435 //window.location.hash = 'ig-gallery-wrapper-' + galleryWrapper.attr('data-ig-uniqueid'); 436 } 437 438 if(galleryWrapper.attr('data-ig-disable-rightclick') == 1) 439 { 440 galleryWrapper.find('.ig-slideshow-image, .ig-thumbs-grid-image, .ig-thumbs-grid-hover').on('contextmenu',function(){ 441 alert(galleryWrapper.attr('data-ig-rightclick-msg')); 442 return false; 443 }); 444 445 galleryWrapper.find('.ig-thumbs-grid-image').on('dragstart', function(event){ 446 event.preventDefault(); 447 }); 448 } 449 450 //slideshow 451 if(galleryWrapper.attr('data-ig-show-main-image') == 1) 452 { 453 var imgHash = getUrlParamater('i'); 454 455 var slideShowInitIndex = 0; 456 if(imgHash.length > 0) 457 { 458 var elementToFind = galleryWrapper.find(".ig-slideshow-item[data-ig-imagehash='" + imgHash + "']"); 459 if (elementToFind.length) 460 { 461 slideShowInitIndex = elementToFind.index(); 462 loadImageNow(slideShowInitIndex); 463 addToPreload(slideShowInitIndex + 1); 464 addToPreload(slideShowInitIndex + 2); 465 addToPreload(slideShowInitIndex + 3); 466 addToPreload(slideShowInitIndex + 4); 467 addToPreload(slideShowInitIndex + 5); 468 addToPreload(slideShowInitIndex + 6); 469 addToPreload(slideShowInitIndex - 1); 470 addToPreload(slideShowInitIndex - 2); 471 } 472 } 473 474 if (slideShowInitIndex == 0) 475 { 476 for (var i = 0; i < 20; i++) { 477 addToPreload(i); 478 } 479 } 480 481 var velocity = parseFloat( galleryWrapper.find('.ig-slideshow').attr('data-ig-transition-duration') ); 482 velocity = velocity == 0 ? 200 : velocity; 483 484 var autoplay = Boolean(Number(galleryWrapper.find('.ig-slideshow').attr('data-ig-autoplay'))); 485 var finite = galleryWrapper.find('.ig-slideshow').attr('data-ig-infinite') == 1 ? false : true; 486 487 var slideshow = iguiUIkit.slideshow(galleryWrapper.find('.ig-slideshow'), 488 { 489 animation: galleryWrapper.find('.ig-slideshow').attr('data-ig-fade'), 490 index: slideShowInitIndex, 491 finite: finite, 492 velocity: (400/velocity), 493 ratio: galleryWrapper.find('.ig-slideshow').attr('data-ig-ratio'), 494 autoplay: autoplay, 495 autoplayInterval: parseInt(galleryWrapper.find('.ig-slideshow').attr('data-ig-interval')), 496 maxHeight: parseInt(galleryWrapper.find('.ig-slideshow').attr('data-ig-max-height')) 497 }); 498 499 //allow creation of custom links that load a slideshow image 500 $('.ig-slideshow-custom-link').on('click', function(e) 501 { 502 e.preventDefault(); 503 var galleryId = $(this).attr('data-gallery-id'); 504 var imageIndex = $(this).attr('data-image-index') > 0 ? $(this).attr('data-image-index') -1 : 0; 505 if(galleryId == galleryWrapper.attr('data-ig-uniqueid')) 506 { 507 slideshow.show(imageIndex); 508 } 509 }); 510 511 galleryWrapper.find('.ig-slideshow').find('iframe').each(function (index, el) 512 { 513 iguiUIkit.video(el, {automute: false,autoplay:false}); 514 }); 515 516 if(galleryWrapper.find('.ig-slideshow .ig-description-overlay').length && galleryWrapper.find('.ig-slideshow .ig-dotnav').length ) 517 { 518 galleryWrapper.find('.ig-slideshow .ig-dotnav').css('margin-bottom','8px'); 519 galleryWrapper.find('.ig-slideshow .ig-description-overlay').css('padding-bottom','28px'); 520 } 521 522 galleryWrapper.find('.ig-slideshow-notlazy').parent().each(function (index, el) 523 { 524 $(el).imagesLoaded( function() 525 { 526 $(el).find('.ig-description-overlay').css('visibility','visible'); 527 }); 528 }); 529 530 galleryWrapper.find('.ig-slideshow-image').on('load', function() 531 { 532 $(this).parent().find('.ig-description-overlay').css('visibility','visible'); 533 }); 534 535 if(galleryWrapper.find('.ig-play-icon').length) 536 { 537 if(autoplay) 538 { 539 galleryWrapper.find('.ig-pause-icon').css('display','inline-block'); 540 galleryWrapper.find('.ig-play-icon').css('display','none'); 541 } 542 543 galleryWrapper.find('.ig-play-icon').on('click', function(event) 544 { 545 slideshow.autoplay = true; 546 slideshow.startAutoplay(); 547 galleryWrapper.find('.ig-play-icon').css('display','none'); 548 galleryWrapper.find('.ig-pause-icon').css('display','inline-block'); 549 galleryWrapper.data('lboxPlaying', true); 550 }); 551 552 galleryWrapper.find('.ig-pause-icon').on('click', function(event) 553 { 554 slideshow.stopAutoplay(); 555 slideshow.autoplay = false; 556 galleryWrapper.find('.ig-pause-icon').css('display','none'); 557 galleryWrapper.find('.ig-play-icon').css('display','inline-block'); 558 galleryWrapper.data('lboxPlaying', false); 559 }); 560 561 galleryWrapper.find('.ig-slideshow-button, .ig-slideshow-image').on('click', function(event) 562 { 563 galleryWrapper.find('.ig-pause-icon').css('display','none'); 564 galleryWrapper.find('.ig-play-icon').css('display','inline-block'); 565 }); 566 } 567 568 galleryWrapper.find('.ig-slideshow').on('beforeitemshow', function () 569 { 570 loadImageNow(slideshow.index); 571 addToPreload(slideshow.index + 1); 572 addToPreload(slideshow.index + 2); 573 addToPreload(slideshow.index + 3); 574 addToPreload(slideshow.index + 4); 575 addToPreload(slideshow.index - 1); 576 addToPreload(slideshow.index - 2); 577 578 setTimeout(checkImageHeight, 20); 579 setTimeout(checkImageHeight, 50); 580 setTimeout(checkImageHeight, 80); 581 setTimeout(checkImageHeight, 100) 582 setTimeout(checkImageHeight, 150); 583 584 iframeWidth(); 585 setTimeout(iframeWidth, 100); 586 setTimeout(iframeWidth, 400); 587 588 589 }); 590
591 if(galleryWrapper.find('.ig-gdpr-slideshow-submit').length) 592 { 593 var gdprAlready = localStorage.getItem('ig-gdpr') == '1' ? true : false; 594 if(gdprAlready) 595 { 596 galleryWrapper.find('.ig-gdpr-slideshow').css('display','none'); 597 galleryWrapper.find('.ig-gdpr-preview').css('display','none'); 598 } 599 else 600 { 601 galleryWrapper.find('.ig-gdpr-slideshow-submit').each(function(index,el) 602 { 603 $(el).on('click', function(e) 604 { 605 localStorage.setItem('ig-gdpr','1'); 606 var elIndex = $(el).parent().attr('data-index'); 607 loadImageNow(slideshow.index); 608 galleryWrapper.find('.ig-gdpr-slideshow').css('display','none'); 609 galleryWrapper.find('.ig-gdpr-preview').css('display','none'); 610 611 galleryWrapper.find('.ig-slideshow-item').each(function(index,el) 612 { 613 var iframeObj = $(el).find('iframe'); 614 615 if(iframeObj.length) 616 { 617 var dataSrc = iframeObj.attr('data-ig-lazy-src'); 618 if(typeof dataSrc !== 'undefined') 619 { 620 if (dataSrc.indexOf('youtu') !== -1 || dataSrc.indexOf('vimeo') !== -1) 621 { 622 addToPreload(index); 623 } 624 } 625 626 } 627 }); 628 }); 629 630 }); 631 } 632 } 633 634 function iframeWidth() 635 { 636 var iframe = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).find('iframe'); 637 if(iframe.length == 0){return;} 638 639 var ssWidth = galleryWrapper.find('.ig-slideshow').width(); 640 var ssHeight = galleryWrapper.find('.ig-slideshow').height(); 641 var ssRatio = ssWidth/ssHeight; 642 643 var ifrWidth = $(iframe).width(); 644 var ifrHeight = $(iframe).height(); 645 var iframeRatio = ifrWidth/ifrHeight; 646 647 if(ifrWidth < 50 || ifrHeight < 50 || ssWidth < 50 || ssHeight < 50){return;} 648 649 if(iframeRatio >= ssRatio) 650 { 651 var newWidth = ssWidth; 652 var newHeight = Math.round( (newWidth/ifrWidth) * ifrHeight ); 653 } 654 else 655 { 656 var newHeight = ssHeight; 657 var newWidth = Math.round( (newHeight/ifrHeight) * ifrWidth ); 658 } 659 660 $(iframe).css('width',newWidth+'px'); 661 $(iframe).css('height',newHeight+'px'); 662 } 663 664 function checkImageHeight() 665 { 666 var wrapperHeight = galleryWrapper.find('.igui-slideshow-items').height(); 667 668 if(wrapperHeight > 100) 669 { 670 var currentImg = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).find('.ig-slideshow-image'); 671 var imageHeight = currentImg.height(); 672 673 if(imageHeight > wrapperHeight) 674 { 675 galleryWrapper.find('.ig-slideshow-item.igui-active .ig-slideshow-item-inner-lboxon, .ig-slideshow-item.igui-active ig-slideshow-item-inner').css('height',wrapperHeight+'px'); 676 } 677 678 if(wrapperHeight > (imageHeight + 10)) 679 { 680 var naturalImgHeight = parseInt( currentImg.prop('naturalHeight') ); 681 if(naturalImgHeight > (wrapperHeight + 3)) 682 { 683 galleryWrapper.find('.ig-slideshow-item.igui-active .ig-slideshow-item-inner-lboxon').css('height','auto'); 684 } 685 } 686 } 687 } 688 689 setInterval(checkImageHeight, 300); 690 } 691 692 function addToPreload(index) 693 { 694 if(galleryWrapper.attr('data-ig-show-main-image') == 0 || galleryWrapper.find('.ig-slideshow').attr('data-ig-preload-main') == 0) 695 { 696 return; 697 } 698 699 var gdprConsent = parseInt(galleryWrapper.attr('data-ig-gdpr')); 700 var gdprAlready = localStorage.getItem('ig-gdpr') == '1' ? true : false; 701 var isGdprVid = false; 702 var iframeObj = galleryWrapper.find('.ig-slideshow-item').eq(index).find('iframe'); 703 704 if(iframeObj.length) 705 { 706 var dataSrc = iframeObj.attr('data-ig-lazy-src'); 707 if(typeof dataSrc !== 'undefined') 708 { 709 if( dataSrc.indexOf('youtu') !== -1 || dataSrc.indexOf('vimeo') !== -1) 710 { 711 isGdprVid = true; 712 } 713 } 714 } 715 716 if(gdprConsent == 1 && !gdprAlready && isGdprVid) 717 { 718 return; 719 } 720 721 if(index < galleryWrapper.find('.ig-slideshow-item').length && index >= 0) 722 { 723 if( imgsToPreload.indexOf(index) == -1 ) 724 { 725 imgsToPreload.push(index); 726 } 727 } 728 } 729 730 function preloadImage() 731 { 732 if(imgsToPreload.length) 733 { 734 index = imgsToPreload.shift(); 735 imgObj = galleryWrapper.find('.ig-slideshow-item').eq(index).find('img.ig-slideshow-image'); 736 737 if(imgObj.length) 738 { 739 if(imgObj.data('preloaded') != 1) 740 { 741 var lazySrc = imgObj.attr('data-ig-lazy-src'); 742 if(typeof lazySrc === 'undefined'){lazySrc = imgObj.attr('data-ig-lazy-data-src');} 743 if(typeof lazySrc !== 'undefined') 744 { 745 imgObj.attr('src',lazySrc); 746 imgObj.data('preloaded',1); 747 } 748 } 749 } 750 751 iframeObj = galleryWrapper.find('.ig-slideshow-item').eq(index).find('iframe, video'); 752 if(iframeObj.length) 753 { 754 if(iframeObj.data('preloaded') != 1) 755 { 756 iframeObj.attr('src',iframeObj.attr('data-ig-lazy-src')); 757 iframeObj.data('preloaded',1); 758 } 759 } 760 761 } 762 } 763 764 function loadImageNow(index) 765 { 766 var imgObj = galleryWrapper.find('.ig-slideshow-item').eq(index).find('img.ig-slideshow-image'); 767 if(imgObj.length) 768 { 769 770 if(imgObj.data('preloaded') != 1) 771 { 772 var lazySrc = imgObj.attr('data-ig-lazy-src'); 773 if(typeof lazySrc !== 'undefined') 774 { 775 imgObj.attr('src',lazySrc); 776 imgObj.data('preloaded',1); 777 } 778 } 779 } 780 781 iframeObj = galleryWrapper.find('.ig-slideshow-item').eq(index).find('iframe, video'); 782 if(iframeObj.length) 783 { 784 if(iframeObj.data('preloaded') != 1) 785 { 786 var gdprConsent = parseInt(galleryWrapper.attr('data-ig-gdpr')); 787 var gdprAlready = localStorage.getItem('ig-gdpr') == '1' ? true : false; 788 var isGdprVid = false; 789 var dataSrc = iframeObj.attr('data-ig-lazy-src'); 790 if(typeof dataSrc !== 'undefined') 791 { 792 if( dataSrc.indexOf('youtu') !== -1 || dataSrc.indexOf('vimeo') !== -1) 793 { 794 isGdprVid = true; 795 } 796 } 797 798 if(gdprConsent == 1 && !gdprAlready && isGdprVid) 799 { 800 return; 801 } 802 803 var lazySrc = iframeObj.attr('data-ig-lazy-src'); 804 if(typeof lazySrc !== 'undefined') 805 { 806 iframeObj.attr('src',iframeObj.attr('data-ig-lazy-src')); 807 iframeObj.data('preloaded',1); 808 } 809 810 } 811 } 812 } 813 814 if(galleryWrapper.attr('data-ig-show-main-image') == 1) 815 { 816 setInterval(preloadImage ,750); 817 } 818 819 var lastItemshowIndex = -1; 820 821 galleryWrapper.find('.ig-slideshow').on('itemshow', function() 822 { 823 if(lastItemshowIndex == slideshow.index) 824 { 825 return; 826 } 827 828 loadImageNow(slideshow.index); 829 830 //swap descriptions 831 galleryWrapper.find('.ig-image-description').css('display','none'); 832 galleryWrapper.find('.ig-image-description').eq(slideshow.index).css('display','block'); 833 834 //swap active thumb 835 galleryWrapper.find('.ig-scroller-img-wrapper').removeClass('ig-active-thumb'); 836 galleryWrapper.find('.ig-scroller-img-wrapper').eq(slideshow.index).addClass('ig-active-thumb'); 837 838 //swap comments 839 if(galleryWrapper.find('.ig-comments').length) 840 { 841 var commentContent = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).find('.ig-comments-content').html(); 842 galleryWrapper.find('.ig-comments').find('.ig-comments-list').html(commentContent); 843 galleryWrapper.find('.ig-comment-count').html(galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).find('.ig-comments-content .ig-comment').length); 844 845 galleryWrapper.find('.ig-comments-textarea-wrapper').css('display','none'); 846 } 847 848 //swap rating 849 if(galleryWrapper.find('.ig-rating').length) 850 { 851 var rating = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-rating').toString(); 852 var ratingWidth = rating.length < 2 ? 23 : 28; 853 var ratingWidth = rating.length > 2 ? 33 : ratingWidth; 854 galleryWrapper.find('.ig-rating').css('width',ratingWidth+'px'); 855 galleryWrapper.find('.ig-rating-number').html(rating); 856 } 857 858 859 //add hit 860 if(galleryWrapper.attr('data-ig-collecthits') == 1) 861 { 862 if(galleryWrapper.data('hits-pause') == 0) 863 { 864 var imageid = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-imageid'); 865 var hitUrl = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.addHit&format=raw&id=' + imageid; 866 $.ajax({url: hitUrl, success: function(result){}}); 867 868 galleryWrapper.data('hits-pause',1); 869 setTimeout(function(){galleryWrapper.data('hits-pause',0)}, 500); 870 } 871 } 872 873 //swap hit 874 var hitCount = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-hits'); 875 galleryWrapper.find('.ig-hits-number').html(hitCount); 876 877 //swap image number 878 galleryWrapper.find('.ig-image-number').html(slideshow.index + 1); 879 880 //swap hash 881 if(galleryWrapper.attr('data-ig-showhash') == 'hash' && $(this).data('firstShown') == true && !lboxWrapper.hasClass('igui-open') && galleryWrapper.attr('data-ig-show-main-image') == 1) 882 { 883 imageUrl(slideshow.index,true); 884 } 885 886 $(this).data('firstShown', true); 887 lastItemshowIndex = slideshow.index; 888 889 //check thumb position 890 var currentThumb = galleryWrapper.find('.ig-scroller-img-wrapper').eq(slideshow.index); 891 892 if(galleryWrapper.find('.ig-thumb-scroller-horizontal').length) 893 { 894 var thumbPosition = currentThumb.position().left; 895 var containerWidth = galleryWrapper.find('.ig-thumb-scroller').width(); 896 897 if(slideshow.index == 0) 898 { 899 galleryWrapper.find('.ig-thumb-scroller-inner').scrollTo(0,400); 900 } 901 else if(thumbPosition > (containerWidth + galleryWrapper.find('.ig-thumb-scroller-inner').scrollLeft())) 902 { 903 galleryWrapper.find('.ig-thumb-scroller-inner').scrollTo(currentThumb,400); 904 } 905 else if(thumbPosition < galleryWrapper.find('.ig-thumb-scroller-inner').scrollLeft() ) 906 { 907 var position = thumbPosition - (containerWidth - currentThumb.width()); 908 var position = position < 0 ? 0 : position; 909 galleryWrapper.find('.ig-thumb-scroller-inner').scrollTo(position,400); 910 } 911 912 } 913 else if(galleryWrapper.find('.ig-thumb-scroller-vertical').length) 914 { 915 var thumbPosition = currentThumb.position().top; 916 var containerHeight = galleryWrapper.find('.ig-thumb-scroller').height(); 917 918 if(slideshow.index == 0) 919 { 920 galleryWrapper.find('.ig-thumb-scroller-inner').scrollTo(0,400); 921 } 922 else if(thumbPosition > (containerHeight + galleryWrapper.find('.ig-thumb-scroller-inner').scrollTop())) 923 { 924 galleryWrapper.find('.ig-thumb-scroller-inner').scrollTo(currentThumb,400); 925 } 926 else if(thumbPosition < galleryWrapper.find('.ig-thumb-scroller-inner').scrollTop() ) 927 { 928 var position = thumbPosition - (containerHeight - currentThumb.height()); 929 var position = position < 0 ? 0 : position; 930 931 galleryWrapper.find('.ig-thumb-scroller-inner').scrollTo(position,400); 932 } 933 } 934 }); 935 936 galleryWrapper.find('.ig-slideshow-matchheight').matchHeightx({byRow: false,target: galleryWrapper.find('.igui-slideshow-items')}); 937 setTimeout(function(){galleryWrapper.find('.ig-slideshow-matchheight').matchHeightx({byRow: false,target: galleryWrapper.find('.igui-slideshow-items')});}, 300); 938 939 //thumbnail scroller main 940 var thumbScrollerWrapper = galleryWrapper.find('.ig-thumb-scroller-main'); 941 var vertical = thumbScrollerWrapper.hasClass('ig-thumb-scroller-vertical'); 942 var hoverRightThumbArrow = false; 943 var hoverLeftThumbArrow = false; 944 var hoverDownThumbArrow = false; 945 var hoverUpThumbArrow = false; 946 947 galleryWrapper.find('.ig-thumb-scroller-down').on('click', function(e) 948 { 949 e.preventDefault(); 950 e.stopPropagation(); 951 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 952 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() + 350; 953 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 500,{easing:'linear',onAfter: function() 954 { 955 if(hoverDownThumbArrow) 956 { 957 thumbScrollerWrapper.find('.ig-thumb-scroller-down').trigger('mouseenter'); 958 } 959 }}); 960 }); 961 962 galleryWrapper.find('.ig-thumb-scroller-up').on('click', function(e) 963 { 964 e.preventDefault(); 965 e.stopPropagation();�
965 966 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 967 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() - 350; 968 969 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 500,{easing:'linear',onAfter: function() 970 { 971 if(hoverUpThumbArrow) 972 { 973 thumbScrollerWrapper.find('.ig-thumb-scroller-up').trigger('mouseenter'); 974 } 975 }}); 976 }); 977 978 thumbScrollerWrapper.find('.ig-thumb-scroller-left').on('click', function(e) 979 { 980 e.preventDefault(); 981 e.stopPropagation(); 982 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 983 var scrollPx = $(window).width() < 600 ? $(window).width()-50 : 600; 984 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() - scrollPx; 985 986 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 700,{easing:'linear',onAfter: function() 987 { 988 if(hoverLeftThumbArrow) 989 { 990 thumbScrollerWrapper.find('.igui-slidenav-previous').trigger('mouseenter'); 991 } 992 }}); 993 }); 994 995 thumbScrollerWrapper.find('.ig-thumb-scroller-right').on('click', function(e) 996 { 997 e.preventDefault(); 998 e.stopPropagation(); 999 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1000 var scrollPx = $(window).width() < 600 ? $(window).width()-50 : 600; 1001 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() + scrollPx; 1002 1003 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 700,{easing:'linear',onAfter: function() 1004 { 1005 if(hoverRightThumbArrow) 1006 { 1007 thumbScrollerWrapper.find('.igui-slidenav-next').trigger('mouseenter'); 1008 } 1009 }}); 1010 }); 1011 1012 setTimeout(function() 1013 { 1014 if(thumbScrollerWrapper.find('.ig-slider-items').height() < galleryWrapper.height() && vertical) 1015 { 1016 galleryWrapper.find('.ig-thumb-scroller-down').css('visibility','hidden'); 1017 galleryWrapper.find('.ig-thumb-scroller-up').css('visibility','hidden'); 1018 } 1019 1020 if(thumbScrollerWrapper.width() < galleryWrapper.width() && !vertical) 1021 { 1022 thumbScrollerWrapper.find('.igui-slidenav-previous').css('visibility','hidden'); 1023 thumbScrollerWrapper.find('.igui-slidenav-next').css('visibility','hidden'); 1024 } 1025 1026 }, 300); 1027 1028 if( getComputedStyle(document.documentElement).direction != 'rtl' && !isIOS && !isAndroid) 1029 { 1030 1031 //right arrow hover 1032 thumbScrollerWrapper.find('.ig-thumb-scroller-right').on('mouseenter', function() 1033 { 1034 hoverRightThumbArrow = true; 1035 var duration = (thumbScrollerWrapper.find('.ig-slider-items')[0].scrollWidth - (thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() + thumbScrollerWrapper.width())) * 3; 1036 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo('max', duration, {easing: 'linear'}); 1037 }); 1038 1039 thumbScrollerWrapper.find('.ig-thumb-scroller-right').on('mouseleave', function() 1040 { 1041 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1042 hoverRightThumbArrow = false; 1043 }); 1044 1045 //left arrow hover 1046 thumbScrollerWrapper.find('.ig-thumb-scroller-left').on('mouseenter', function() 1047 { 1048 hoverLeftThumbArrow = true; 1049 var duration = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() * 3; 1050 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(0, duration,{easing:'linear'}); 1051 }); 1052 1053 thumbScrollerWrapper.find('.ig-thumb-scroller-left').on('mouseleave', function() 1054 { 1055 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1056 hoverLeftThumbArrow = false; 1057 }); 1058 1059 //down arrow hover 1060 thumbScrollerWrapper.find('.ig-thumb-scroller-down').on('mouseenter', function() 1061 { 1062 hoverDownThumbArrow = true; 1063 var duration = (thumbScrollerWrapper.find('.ig-slider-items')[0].scrollHeight - (thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() + thumbScrollerWrapper.height())) * 3; 1064 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo('max', duration, {easing: 'linear'}); 1065 }); 1066 1067 thumbScrollerWrapper.find('.ig-thumb-scroller-down').on('mouseleave', function() 1068 { 1069 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1070 hoverDownThumbArrow = false; 1071 }); 1072 1073 //up arrow hover 1074 thumbScrollerWrapper.find('.ig-thumb-scroller-up').on('mouseenter', function() 1075 { 1076 hoverUpThumbArrow = true; 1077 var duration = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() * 3; 1078 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(0, duration,{easing:'linear'}); 1079 }); 1080 1081 thumbScrollerWrapper.find('.ig-thumb-scroller-up').on('mouseleave', function() 1082 { 1083 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1084 hoverUpThumbArrow = false; 1085 }); 1086 } 1087 1088 //overlay buttons 1089 galleryWrapper.find('.ig-slideshow-overlay').find('.ig-download-button').on('click', function(event) 1090 { 1091 var imageid = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-imageid'); 1092 window.location.href = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.download&format=raw&type=main&id=' + imageid; 1093 }); 1094 1095 galleryWrapper.find('.ig-slideshow-overlay').find('.ig-facebook-share').on('click', function(event) 1096 { 1097 var urlToShare = 'http://www.facebook.com/sharer.php?u=' + encodeURIComponent( imageUrl(slideshow.index,false) ); 1098 window.open(urlToShare, '_blank', 'height=450, width=550, top=' + ($(window).height() / 2 - 275) + ', left=' + ($(window).width() / 2 - 225) + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0').focus(); 1099 }); 1100 1101 galleryWrapper.find('.ig-slideshow-overlay').find('.ig-twitter-share').on('click', function(event) 1102 { 1103 var urlToShare = 'http://twitter.com/share?url=' + encodeURIComponent( imageUrl(slideshow.index,false) ); 1104 window.open(urlToShare, '_blank', 'height=450, width=550, top=' + ($(window).height() / 2 - 275) + ', left=' + ($(window).width() / 2 - 225) + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0').focus(); 1105 1106 }); 1107 1108 galleryWrapper.find('.ig-slideshow-overlay').find('.ig-pinterest-share').on('click', function(event) 1109 { 1110 var imagePathLong = galleryWrapper.find('.ig-slideshow-image').eq(slideshow.index).attr('src'); 1111 var imgPathShort = imagePathLong.slice(imagePathLong.indexOf('images/igallery')); 1112 var imgUrl = galleryWrapper.attr('data-ig-basehref-long') + imgPathShort; 1113 1114 var description = galleryWrapper.find('.ig-image-description').eq(slideshow.index).text(); 1115 description = description.length > 0 ? description : galleryWrapper.find('.ig-slideshow-image').eq(slideshow.index).attr('alt'); 1116 1117 var href = 'https://pinterest.com/pin/create/button/?url=' + encodeURIComponent( imageUrl(slideshow.index,false) ) + '&media=' + encodeURIComponent(imgUrl) + '&description=' + description; 1118 window.open(href, '_blank', 'height=450, width=550, top=' + ($(window).height() / 2 - 275) + ', left=' + ($(window).width() / 2 - 225) + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0').focus(); 1119 }); 1120 1121 galleryWrapper.find('.ig-slideshow-overlay').find('.ig-rating').on('click', function(event) 1122 { 1123 var imageid = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-imageid'); 1124 var ratingUrl = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.addRating&format=raw&rating=5&imageid=' + imageid; 1125 1126 $.ajax 1127 ({ 1128 url: ratingUrl, 1129 error: function(response){console.log(response);}, 1130 success: function(response) 1131 { 1132 console.log(response); 1133 responseObj = $.parseJSON(response); 1134 1135 if(responseObj.success == 1) 1136 { 1137 var currentRating = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-rating'); 1138 galleryWrapper.find('.ig-rating-number').html(parseInt(currentRating) + 1); 1139 galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-rating',(parseInt(currentRating) + 1)); 1140 } 1141 1142 } 1143 }); 1144 }); 1145 1146 galleryWrapper.find('.ig-add-comment-text').click(function(event) 1147 { 1148 galleryWrapper.find('.ig-comments-textarea-wrapper').css('display','block'); 1149 if(typeof slideshow != 'undefined') 1150 { 1151 slideshow.stopAutoplay(); 1152 slideshow.autoplay = false; 1153 galleryWrapper.data('lboxPlaying', false); 1154 galleryWrapper.find('.ig-pause-icon').css('display','none'); 1155 galleryWrapper.find('.ig-play-icon').css('display','inline-block'); 1156 } 1157 }); 1158 1159 if(typeof slideshow == 'undefined' && galleryWrapper.find('.ig-comments').length) 1160 { 1161 var slideshow = {index:0}; 1162 var commentContent = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).find('.ig-comments-content').html(); 1163 galleryWrapper.find('.ig-comments').find('.ig-comments-list').html(commentContent); 1164 galleryWrapper.find('.ig-comment-count').html(galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).find('.ig-comments-content .ig-comment').length); 1165 } 1166 1167 galleryWrapper.find('.ig-comments-form').submit(function(event) 1168 { 1169 event.preventDefault(); 1170 var imageid = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).attr('data-ig-imageid'); 1171 var commentUrl = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.addComment&format=raw&imageid=' + imageid; 1172 var postData = galleryWrapper.find('.ig-comments-form').serialize(); 1173 var commentText = galleryWrapper.find('.igui-textarea').val(); 1174 1175 if(galleryWrapper.find('.ig-comments-form').find('#dynamic_recaptcha_1').length) 1176 { 1177 //postData = postData +'&g-recaptcha-response='+grecaptcha.getResponse(); 1178 } 1179 1180 $.ajax 1181 ({ 1182 type: "POST", 1183 url: commentUrl, 1184 data: postData, 1185 error: function(response){console.log(response);}, 1186 success: function(response) 1187 { 1188 console.log(response); 1189 responseObj = $.parseJSON(response); 1190 1191 if(responseObj.success == 1) 1192 { 1193 var commentsContentWrapper = galleryWrapper.find('.ig-slideshow-item').eq(slideshow.index).find('.ig-comments-content'); 1194 var usersName = galleryWrapper.find('.ig-comments-text-summary').attr('data-ig-current-user-name'); 1195 commentsContentWrapper.append('<div class="ig-comment-data">'+usersName+'</div><div>'+commentText+'</div>'); 1196 galleryWrapper.find('.ig-comments-list').html(commentsContentWrapper.html()); 1197 galleryWrapper.find('.igui-textarea').val(''); 1198 } 1199 1200 } 1201 }); 1202 }); 1203 1204 //thumbs grid functions 1205 var thumbGridWrapper = galleryWrapper.find('.ig-thumbs-grid'); 1206 var thumbGridType = thumbGridWrapper.attr('data-ig-grid-type'); 1207 thumbGridWrapper.data('resizing',0); 1208 1209 if(thumbGridWrapper.length) 1210 { 1211 thumbGridWrapper.data('init',0); 1212 1213 function justifiedGrid() 1214 { 1215 var thumbSizes = []; 1216 var largestHeight = 0; 1217 var smallestHeight = 5000; 1218 var sumHeights = 0; 1219 var spacing = parseInt(galleryWrapper.find('.ig-thumbs-grid').attr('data-ig-thumb-spacing'));
1220 1221 galleryWrapper.find('.ig-thumbs-grid').find('.ig-thumbs-grid-image:visible').each(function(index,el) 1222 { 1223 thumbSizes.push({width: $(el).attr('width'),height: $(el).attr('height')}); 1224 largestHeight = $(el).attr('height') > largestHeight ? $(el).attr('height') : largestHeight; 1225 smallestHeight = $(el).attr('height') < smallestHeight ? $(el).attr('height') : smallestHeight; 1226 sumHeights = sumHeights + parseInt($(el).attr('height')); 1227 }); 1228 1229 var averageHeight = Math.round(sumHeights/(galleryWrapper.find('.ig-thumbs-grid-image').length)); 1230 var targetHeight = $(window).width() > 1000 ? smallestHeight*0.8 : smallestHeight*0.6; 1231 1232 if(thumbGridWrapper.width() < 300) 1233 { 1234 thumbGridWrapper.css('height','auto'); 1235 thumbGridWrapper.find('.ig-thumbs-grid-block').css({'width':'auto', 'height':'auto', 'top':'auto', 'left':'auto','position':'static'}); 1236 thumbRowsGrid(); 1237 } 1238 else 1239 { 1240 var justifiedData = require('justified-layout')(thumbSizes, 1241 { 1242 containerWidth:galleryWrapper.find('.ig-thumbs-grid').width(), 1243 targetRowHeight:targetHeight, 1244 boxSpacing:spacing, 1245 targetRowHeightTolerance: 0.15 1246 }); 1247 1248 $.each(justifiedData.boxes,function(index,box) 1249 { 1250 galleryWrapper.find('.ig-thumbs-grid-block:visible').eq(index).css({'width':box.width, 'height':box.height, 'top':box.top, 'left':box.left,'position':'absolute'}); 1251 }); 1252 1253 galleryWrapper.find('.ig-thumbs-grid').css('height',justifiedData.containerHeight+'px'); 1254 1255 if(thumbGridWrapper.data('init') == 0) 1256 { 1257 document.addEventListener('lazyloaded', function(e) 1258 { 1259 justifiedGrid(); 1260 }); 1261 } 1262 thumbGridWrapper.data('init',1); 1263 } 1264 } 1265 1266 1267 if(thumbGridType == 'justified') 1268 { 1269 justifiedGrid(); 1270 $(window).resize(function() 1271 { 1272 justifiedGrid(); 1273 }); 1274 } 1275 1276 if(galleryWrapper.find('.ig-tags-button-wrapper').length && thumbGridType == 'justified') 1277 { 1278 $('.ig-tags-button').on('click', function(event) 1279 { 1280 var filterValue = $(this).attr('data-filter'); 1281 thumbGridWrapper.find('.ig-thumbs-grid-block').css({'width':'auto', 'height':'auto', 'top':'auto', 'left':'auto','position':'static'}); 1282 thumbGridWrapper.find('.ig-thumbs-grid-block:not('+filterValue+')').css('display','none'); 1283 thumbGridWrapper.find(filterValue).css('display','block'); 1284 justifiedGrid(); 1285 1286 galleryWrapper.find('.ig-tags-button').removeClass('ig-tags-button-active'); 1287 $(this).addClass('ig-tags-button-active'); 1288 1289 var panelWrapper = $('#ig-lightbox-'+galleryWrapper.attr('data-ig-uniqueid')); 1290 $(document).off('show shown beforeitemshow itemshown beforehide hidden', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 1291 panelWrapper.remove(); 1292 galleryWrapper.data('lightboxInit',0); 1293 1294 panel = createPanel(filterValue); 1295 galleryWrapper.data('tag-filter',filterValue); 1296 1297 var panelWrapper = $('#ig-lightbox-'+galleryWrapper.attr('data-ig-uniqueid')); 1298 }); 1299 1300 if(galleryWrapper.find('.ig-tags-button-wrapper').attr('data-show-all') == 0) 1301 { 1302 setTimeout(function(){galleryWrapper.find('.ig-tags-button').eq(0).click();}, 200); 1303 } 1304 } 1305 1306 function masonryThumbsGrid() 1307 { 1308 var maxColumnWidth = parseInt(thumbGridWrapper.attr('data-ig-max-width')); 1309 var gridPadding = parseInt(thumbGridWrapper.attr('data-ig-thumb-spacing'));
1310 var containerWidth = parseInt(galleryWrapper.width()); 1311 1312 var columns = Math.ceil(containerWidth/(maxColumnWidth + (gridPadding * 1.5))); 1313 var gutterTotalSpace = gridPadding * (columns -1); 1314 var columnsTotalSpace = containerWidth - (gutterTotalSpace); 1315 var oneColumnSpace = columnsTotalSpace/columns; 1316 1317 var lastContainerWidth = thumbGridWrapper.data('last-grid-width'); 1318 if(typeof lastContainerWidth === 'undefined'){lastContainerWidth = 0} 1319 1320 if(containerWidth != lastContainerWidth) 1321 { 1322 thumbGridWrapper.find('.ig-thumbs-grid-block').each(function(index,el) 1323 { 1324 $(el).css('width',oneColumnSpace+'px'); 1325 $(el).css('margin-bottom',gridPadding+'px'); 1326 1327 var imgWidth = $(el).find('img').attr('width'); 1328 var imgHeight = $(el).find('img').attr('height'); 1329 1330 var newHeight = Math.ceil(((oneColumnSpace/imgWidth) * imgHeight)) + 1; 1331 if(newHeight > imgHeight) 1332 { 1333 newHeight = imgHeight; 1334 } 1335 1336 if($(el).find('.ig-thumb-text_below').length > 0) 1337 { 1338 newHeight = parseInt(newHeight) + parseInt($(el).find('.ig-thumb-text_below').outerHeight()); 1339 } 1340 1341 $(el).css('height',newHeight+'px'); 1342 }); 1343 1344 thumbGridWrapper.isotopeIG({ 1345 layoutMode: 'masonry', 1346 itemSelector: '.ig-thumbs-grid-block', 1347 masonry: { 1348 columnWidth: oneColumnSpace, 1349 gutter: gridPadding, 1350 resize: false, 1351 fitWidth: true, 1352 transitionDuration: 0 1353 } 1354 }); 1355 } 1356 1357 thumbGridWrapper.data('last-grid-width',containerWidth); 1358 1359 if(thumbGridWrapper.data('init') == 0) 1360 { 1361 document.addEventListener('lazyloaded', function(e) 1362 { 1363 thumbGridWrapper.isotopeIG('layout'); 1364 }); 1365 } 1366 thumbGridWrapper.data('init',1); 1367 1368 } 1369 1370 1371 if(thumbGridType == 'by_columns') 1372 { 1373 masonryThumbsGrid(); 1374 setTimeout(function(){masonryThumbsGrid();}, 250); 1375 setTimeout(function(){masonryThumbsGrid();}, 500); 1376 setTimeout(function(){masonryThumbsGrid();}, 700); 1377 setTimeout(function(){masonryThumbsGrid();}, 1000); 1378 setTimeout(function(){masonryThumbsGrid();}, 1600); 1379 1380 $(window).resize(function() 1381 { 1382 if(thumbGridWrapper.data('resizing') == 0) 1383 { 1384 masonryThumbsGrid(); 1385 thumbGridWrapper.data('resizing',1); 1386 setTimeout(function(){masonryThumbsGrid();}, 100); 1387 setTimeout(function(){masonryThumbsGrid();}, 250); 1388 setTimeout(function(){masonryThumbsGrid();}, 500); 1389 } 1390 1391 setTimeout(function(){thumbGridWrapper.data('resizing',0);}, 50); 1392 1393 }); 1394 } 1395 1396 function metroThumbsGrid() 1397 { 1398 var maxColumnWidth = parseInt(thumbGridWrapper.attr('data-ig-max-width')); 1399 var gridPadding = parseInt(thumbGridWrapper.attr('data-ig-thumb-spacing')); 1400 var containerWidth = parseInt(galleryWrapper.width()); 1401 1402 var columns = Math.ceil(containerWidth/(maxColumnWidth + (gridPadding * 1.5))); 1403 var gutterTotalSpace = gridPadding * (columns -1); 1404 var columnsTotalSpace = containerWidth - (gutterTotalSpace); 1405 var oneColumnSpace = columnsTotalSpace/columns; 1406 var twoColumnSpace = (oneColumnSpace*2) + gridPadding; 1407 1408 if(columns == 1) 1409 {
1410 thumbRowsGrid(); 1411 return; 1412 } 1413 1414 var lastContainerWidth = thumbGridWrapper.data('last-grid-width'); 1415 if(typeof lastContainerWidth === 'undefined'){lastContainerWidth = 0} 1416 1417 if(containerWidth != lastContainerWidth) 1418 { 1419 thumbGridWrapper.find('.ig-thumbs-grid-block').each(function(index,el) 1420 { 1421 if( $(el).attr('data-widthdouble') == 1 ) 1422 { 1423 $(el).css('width',twoColumnSpace+'px'); 1424 } 1425 else 1426 { 1427 $(el).css('width',oneColumnSpace+'px'); 1428 } 1429 1430 if( $(el).attr('data-heightdouble') == 1 ) 1431 { 1432 $(el).css('height',twoColumnSpace+'px'); 1433 } 1434 else 1435 { 1436 $(el).css('height',oneColumnSpace+'px'); 1437 } 1438 1439 }); 1440 1441 thumbGridWrapper.isotopeIG({ 1442 layoutMode: 'packery', 1443 itemSelector: '.ig-thumbs-grid-block', 1444 packery: { 1445 gutter: gridPadding, 1446 resize: false, 1447 rowHeight: oneColumnSpace 1448 } 1449 }); 1450 } 1451 1452 thumbGridWrapper.data('last-grid-width',containerWidth); 1453 1454 if(thumbGridWrapper.data('init') == 0) 1455 { 1456 document.addEventListener('lazyloaded', function(e) 1457 { 1458 thumbGridWrapper.isotopeIG('layout') 1459 }); 1460 } 1461 thumbGridWrapper.data('init',1); 1462 } 1463 1464 if(thumbGridType == 'metro') 1465 { 1466 metroThumbsGrid(); 1467 setTimeout(function(){metroThumbsGrid();}, 200); 1468 setTimeout(function(){metroThumbsGrid();}, 500); 1469 1470 $(window).resize(function() 1471 { 1472 if(thumbGridWrapper.data('resizing') == 0) 1473 { 1474 metroThumbsGrid(); 1475 setTimeout(function(){metroThumbsGrid();}, 100); 1476 setTimeout(function(){metroThumbsGrid();}, 200); 1477 setTimeout(function(){metroThumbsGrid();}, 500); 1478 thumbGridWrapper.data('resizing',1); 1479 } 1480 1481 setTimeout(function(){thumbGridWrapper.data('resizing',0);}, 50); 1482 }); 1483 } 1484 1485 function thumbRowsGrid() 1486 { 1487 var maxColumnWidth = parseInt(thumbGridWrapper.attr('data-ig-max-width')); 1488 var gridPadding = parseInt(thumbGridWrapper.attr('data-ig-thumb-spacing')); 1489 var containerWidth = parseInt(galleryWrapper.width()); 1490 1491 var columns = Math.ceil(containerWidth/(maxColumnWidth + (gridPadding * 1.5))); 1492 var gutterTotalSpace = gridPadding * (columns -1); 1493 var columnsTotalSpace = containerWidth - (gutterTotalSpace); 1494 var oneColumnSpace = columnsTotalSpace/columns; 1495 1496 var lastContainerWidth = thumbGridWrapper.data('last-grid-width'); 1497 if(typeof lastContainerWidth === 'undefined'){lastContainerWidth = 0} 1498 1499 if(containerWidth != lastContainerWidth) 1500 { 1501 thumbGridWrapper.find('.ig-thumbs-grid-block').each(function(index,el) 1502 { 1503 $(el).css('width',oneColumnSpace+'px'); 1504 $(el).css('margin-bottom',gridPadding+'px'); 1505 1506 var imgWidth = $(el).find('img').attr('width'); 1507 var imgHeight = $(el).find('img').attr('height'); 1508
1509 var newHeight = Math.ceil(((oneColumnSpace/imgWidth) * imgHeight)) + 1; 1510 if(newHeight > imgHeight) 1511 { 1512 newHeight = imgHeight; 1513 } 1514 1515 if($(el).find('.ig-thumb-text_below').length > 0) 1516 { 1517 newHeight = parseInt(newHeight) + parseInt($(el).find('.ig-thumb-text_below').outerHeight()); 1518 } 1519 1520 $(el).css('height',newHeight+'px'); 1521 1522 }); 1523 1524 thumbGridWrapper.isotopeIG({ 1525 layoutMode: 'fitRows', 1526 itemSelector: '.ig-thumbs-grid-block', 1527 fitRows: { 1528 gutter: (gridPadding-1), 1529 } 1530 }); 1531 } 1532 1533 thumbGridWrapper.data('last-grid-width',containerWidth); 1534 1535 if(thumbGridWrapper.data('init') == 0) 1536 { 1537 document.addEventListener('lazyloaded', function(e) 1538 { 1539 thumbGridWrapper.isotopeIG('layout') 1540 }); 1541 } 1542 thumbGridWrapper.data('init',1); 1543 1544 } 1545 1546 if(thumbGridType == 'by_rows') 1547 { 1548 thumbRowsGrid(); 1549 setTimeout(function(){thumbRowsGrid();}, 200); 1550 setTimeout(function(){thumbRowsGrid();}, 500); 1551 1552 $(window).resize(function() 1553 { 1554 if(thumbGridWrapper.data('resizing') == 0) 1555 { 1556 thumbRowsGrid(); 1557 setTimeout(function(){thumbRowsGrid();}, 100); 1558 setTimeout(function(){thumbRowsGrid();}, 200); 1559 setTimeout(function(){thumbRowsGrid();}, 500); 1560 thumbGridWrapper.data('resizing',1); 1561 } 1562 1563 setTimeout(function(){thumbGridWrapper.data('resizing',0);}, 50); 1564 1565 }); 1566 } 1567 1568 $('.ig-grid-img-link').each(function(index,el) 1569 { 1570 $(el).imagesLoaded( function() 1571 { 1572 $(el).find('.ig-thumb-text').css('display','inline'); 1573 }); 1574 }); 1575 1576 if(galleryWrapper.find('.ig-tags-button-wrapper').length && thumbGridType != 'justified') 1577 { 1578 galleryWrapper.find('.ig-tags-button').on('click', function(event) 1579 { 1580 var filterValue = $(this).attr('data-filter'); 1581 thumbGridWrapper.isotopeIG({ filter: filterValue }); 1582 1583 galleryWrapper.find('.ig-tags-button').removeClass('ig-tags-button-active'); 1584 $(this).addClass('ig-tags-button-active'); 1585 1586 var panelWrapper = $('#ig-lightbox-'+galleryWrapper.attr('data-ig-uniqueid')); 1587 $(document).off('show', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 1588 panelWrapper.remove(); 1589 galleryWrapper.data('lightboxInit',0); 1590 1591 panel = createPanel(filterValue); 1592 galleryWrapper.data('tag-filter',filterValue); 1593 1594 var panelWrapper = $('#ig-lightbox-'+galleryWrapper.attr('data-ig-uniqueid')); 1595 1596 }); 1597 1598 if(galleryWrapper.find('.ig-tags-button-wrapper').attr('data-show-all') == 0) 1599 { 1600 setTimeout(function(){galleryWrapper.find('.ig-tags-button').eq(0).click();}, 200); 1601 } 1602 } 1603 1604 setTimeout(function(){thumbGridWrapper.css('visibility','visible');}, 600); 1605 } 1606 1607 //lightbox 1608 if( galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox') == 1 || galleryWrapper.attr('data-ig-lbox-view') == 1) 1609 { 1610 galleryWrapper.data('lightboxInit',0); 1611 var templateHtmlWrapper = galleryWrapper.find('#ig-lightbox-template-' + galleryWrapper.attr('data-ig-uniqueid')); 1612 var templateHtml = templateHtmlWrapper.html(); 1613 galleryWrapper.data('templateHtml',templateHtml); 1614 templateHtmlWrapper.empty(); 1615 1616 function createPanel(filterValue) 1617 { 1618 if(filterValue == '*') 1619 { 1620 var thumbClassSelector = 'ig-scroller-img-wrapper'; 1621 var lboxImgClassSelector = 'ig-lightbox-link'; 1622 } 1623 else 1624 { 1625 var thumbClassSelector = filterValue.substr(1); 1626 var lboxImgClassSelector = filterValue.substr(1); 1627 } 1628 1629 templateHtml = $(galleryWrapper.data('templateHtml'));
1630 1631 1632 if( templateHtml.find('.ig-slider-items').length) 1633 { 1634 templateHtml.find('.ig-scroller-img-wrapper').each(function(index,el) 1635 { 1636 var tagsArray = $(el).attr('class').split(' '); 1637 1638 if(tagsArray.indexOf(thumbClassSelector) != -1) 1639 { 1640 1641 } 1642 else 1643 { 1644 $(el).remove(); 1645 } 1646 }); 1647 } 1648 1649 templateHtml = templateHtml.prop('outerHTML'); 1650 1651 var items = []; 1652 panelIds = Array(); 1653 var slideshowElms = Array(); 1654 var slideshowIndxs = Array(); 1655 var panelIndex = 0; 1656 var gdprIndexes = Array(); 1657 var gdprCount = 0; 1658 galleryWrapper.find('.ig-lightbox-link').each(function(index,el) 1659 { 1660 if($(el).hasClass(lboxImgClassSelector)) 1661 { 1662 var gdprConsent = parseInt(galleryWrapper.attr('data-ig-gdpr')); 1663 var gdprAlready = localStorage.getItem('ig-gdpr') == '1' ? true : false; 1664 var gdprImgSrc = $(el).attr('data-gdpr-image'); 1665 if(gdprConsent == 1 && !gdprAlready && gdprImgSrc.length > 0) 1666 { 1667 var lboxImgSrc = gdprImgSrc; 1668 gdprIndexes.push(gdprCount); 1669 } 1670 else 1671 { 1672 var lboxImgSrc = $(el).attr('href'); 1673 } 1674 1675 var item = 1676 { 1677 source:lboxImgSrc, 1678 caption:$(el).parent().find('.ig-lightbox-description-content').html(), 1679 alt:$(el).parent().find('.ig-slideshow-image').attr('alt') 1680 }; 1681 1682 items.push(item); 1683 panelIds.push($(el).attr('data-ig-imageid')); 1684 1685 slideshowElms[panelIndex] = galleryWrapper.find('.ig-slideshow-item').eq(index); 1686 slideshowIndxs[panelIndex] = index; 1687 panelIndex++; 1688 gdprCount++; 1689 } 1690 1691 }); 1692 1693 galleryWrapper.data('gdpr-indexes',gdprIndexes); 1694 1695 var velocity = parseFloat( galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox-transition-duration') ); 1696 velocity = velocity == 0 ? 200 : velocity; 1697 1698 var finite = galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox-infinite') == 1 ? false : true; 1699 var lboxAutoplay = galleryWrapper.attr('data-ig-lbox-autoplay') == 1 ? true : false; 1700 1701 panel = iguiUIkit.lightboxPanel( 1702 { 1703 items: items, 1704 delayControls: 6000, 1705 template:templateHtml, 1706 videoAutoplay: lboxAutoplay, 1707 velocity: (800/velocity), 1708 autoplayInterval: galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox-interval'), 1709 autoplay: false, 1710 preload: 2, 1711 finite:finite, 1712 animation: galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox-fade') 1713 }); 1714 1715 var lboxWrapper = $('#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid') ); 1716 1717 1718 $(document).off('shown', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 1719 $(document).on('shown', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid'), function() 1720 { 1721 $('.igui-lightbox li').on('click', function(event) 1722 { 1723 event.stopPropagation(); 1724 }); 1725 1726 var reCaptchaId = lboxWrapper.find('.ig-recaptcha').attr('id'); 1727 var reCaptchaSiteKey = lboxWrapper.find('.ig-recaptcha').attr('data-sitekey'); 1728 if(typeof reCaptchaSiteKey !== 'undefined' && galleryWrapper.data('lboxRecaptchaInit') == 0) 1729 { 1730 grecaptcha.render(reCaptchaId, {'sitekey' : reCaptchaSiteKey}); 1731 galleryWrapper.data('lboxRecaptchaInit',1); 1732 } 1733 }); 1734 1735 $(document).off('show', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 1736 $(document).on('show', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid'), function() 1737 { 1738 var openLboxFullscreen = galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox-fullscreen') == 'open-fullscreen' ? 1 : 0; 1739 1740 if(openLboxFullscreen) 1741 { 1742 lboxWrapper.fullScreen(true); 1743 } 1744 1745 var thumbGridWrapper = galleryWrapper.find('.ig-thumbs-grid'); 1746 if(thumbGridWrapper.length) 1747 { 1748 thumbGridWrapper.css('width', thumbGridWrapper.width() + 'px'); 1749 } 1750 1751 if(galleryWrapper.data('lightboxInit') == 0) 1752 { 1753 1754 lboxWrapper.find('.ig-close-modal').on('click', function(event) 1755 { 1756 window.parent.igCloseModal(); 1757 }); 1758 1759 lboxWrapper.find('.ig-fullscreen-on').on('click', function(event) 1760 { 1761 event.preventDefault(); 1762 event.stopPropagation(); 1763 lboxWrapper.fullScreen(true); 1764 lboxWrapper.find('.ig-fullscreen-on').css('display','none'); 1765 lboxWrapper.find('.ig-fullscreen-off').css('display','inline-block'); 1766 }); 1767 1768 lboxWrapper.find('.ig-fullscreen-off').on('click', function(event) 1769 { 1770 event.preventDefault(); 1771 event.stopPropagation(); 1772 lboxWrapper.fullScreen(false); 1773 lboxWrapper.find('.ig-fullscreen-off').css('display','none'); 1774 lboxWrapper.find('.ig-fullscreen-on').css('display','inline-block'); 1775 }); 1776 1777 $(document).bind('fullscreenchange', function() 1778 { 1779 if(!$(document).fullScreen()) 1780 { 1781 lboxWrapper.find('.ig-fullscreen-off').css('display','none'); 1782 lboxWrapper.find('.ig-fullscreen-on').css('display','inline-block'); 1783 } 1784 1785 if(openLboxFullscreen && !$(document).fullScreen() && lboxWrapper.data('add-lbox-comment') !== 1) 1786 { 1787 panel.hide(); 1788 } 1789 1790 if(galleryWrapper.data('lboxPlaying') == true) 1791 { 1792 panel.stopAutoplay(); 1793 panel.startAutoplay(); 1794 } 1795 }); 1796 1797 //init rating 1798 lboxWrapper.find('.ig-rating').on('click', function(event) 1799 { 1800 event.stopPropagation(); 1801 var imageid = panelIds[panel.index]; 1802 var ratingUrl = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.addRating&format=raw&rating=5&imageid=' + imageid; 1803 1804 $.ajax 1805 ({ 1806 url: ratingUrl, 1807 error: function(response){console.log(response);}, 1808 success: function(response) 1809 { 1810 console.log(response); 1811 responseObj = $.parseJSON(response); 1812 1813 if(responseObj.success == 1) 1814 { 1815 var currentRating = galleryWrapper.find('.ig-slideshow-item').eq(panel.index).attr('data-ig-rating'); 1816 lboxWrapper.find('.ig-rating-number').html(parseInt(currentRating) + 1); 1817 galleryWrapper.find('.ig-slideshow-item').eq(panel.index).attr('data-ig-rating',(parseInt(currentRating) + 1)); 1818 1819 } 1820 1821 } 1822 }); 1823 }); 1824 1825 lboxWrapper.find('.ig-add-comment-text').click(function(event) 1826 { 1827 lboxWrapper.find('.ig-comments-textarea-wrapper').css('display','block'); 1828 if($(document).fullScreen() && lboxWrapper.find('.ig-comments-form').find('.ig-recaptcha').length) 1829 { 1830 lboxWrapper.data('add-lbox-comment',1); 1831 $(document).fullScreen(false); 1832 setTimeout(function(){lboxWrapper.data('add-lbox-comment',0);}, 1000); 1833 } 1834 }); 1835 1836 lboxWrapper.find('.ig-comments-form').submit(function(event) 1837 { 1838 event.preventDefault(); 1839 1840 var imageid = panelIds[panel.index] 1841 var commentUrl = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.addComment&format=raw&imageid=' + imageid; 1842 var postData = lboxWrapper.find('.ig-comments-form').serialize(); 1843 var commentText = lboxWrapper.find('.igui-textarea').val(); 1844 1845 if(lboxWrapper.find('.ig-comments-form').find('#dynamic_recaptcha_1').length) 1846 { 1847 //postData = postData +'&g-recaptcha-response='+grecaptcha.getResponse(); 1848 } 1849 1850 $.ajax 1851 ({ 1852 type: "POST", 1853 url: commentUrl, 1854 data: postData, 1855 error: function(response){console.log(response);}, 1856 success: function(response) 1857 { 1858 console.log(response); 1859 responseObj = $.parseJSON(response); 1860 1861 if(responseObj.success == 1) 1862 { 1863 galleryWrapper.find('.ig-comments-content').each(function(index,el) 1864 { 1865 if( $(this).attr('data-img-id') == panelIds[panel.index]) 1866 { 1867 var commentsContentWrapper = $(this); 1868 var usersName = lboxWrapper.find('.ig-comments-text-summary').attr('data-ig-current-user-name'); 1869 commentsContentWrapper.append('<div class="ig-comment-data">'+usersName+'</div><div>'+commentText+'</div>'); 1870 lboxWrapper.find('.ig-comments-list').html(commentsContentWrapper.html()); 1871 lboxWrapper.find('.igui-textarea').val(''); 1872 } 1873 }); 1874 1875 } 1876 1877 } 1878 }); 1879 1880 grecaptcha.reset(); 1881 }); 1882 1883 //init thumbnail scroller 1884 var thumbScrollerWrapper = lboxWrapper.find('.ig-thumb-scroller-lbox'); 1885 var vertical = thumbScrollerWrapper.hasClass('ig-thumb-scroller-vertical'); 1886 1887 thumbScrollerWrapper.find('.ig-scroller-img-wrapper').each(function(index,el) 1888 { 1889 $(el).off('click'); 1890 $(el).on('click', function(e) 1891 { 1892 e.stopPropagation(); 1893 e.preventDefault(); 1894 panel.show(index); 1895 }); 1896 }); 1897 1898 var hoverRightThumbArrow = false; 1899 var hoverLeftThumbArrow = false; 1900 var hoverDownThumbArrow = false; 1901 var hoverUpThumbArrow = false; 1902 1903 thumbScrollerWrapper.find('.ig-thumb-scroller-down').on('click', function(e) 1904 { 1905 e.preventDefault(); 1906 e.stopPropagation(); 1907 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() + 350; 1908 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1909 1910 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 500,{easing:'linear',onAfter: function() 1911 { 1912 if(hoverDownThumbArrow) 1913 { 1914 thumbScrollerWrapper.find('.ig-thumb-scroller-down').trigger('mouseenter'); 1915 } 1916 }}); 1917 }); 1918 1919 thumbScrollerWrapper.find('.ig-thumb-scroller-up').on('click', function(e) 1920 { 1921 e.preventDefault(); 1922 e.stopPropagation(); 1923 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1924 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() - 350; 1925 1926 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 500,{easing:'linear',onAfter: function() 1927 { 1928 if(hoverUpThumbArrow) 1929 { 1930 thumbScrollerWrapper.find('.ig-thumb-scroller-up').trigger('mouseenter'); 1931 } 1932 }}); 1933 }); 1934 1935 thumbScrollerWrapper.find('.ig-thumb-scroller-left').on('click', function(e) 1936 { 1937 e.preventDefault(); 1938 e.stopPropagation(); 1939 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1940 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() - 700; 1941 1942 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 700,{easing:'linear',onAfter: function() 1943 { 1944 if(hoverLeftThumbArrow) 1945 { 1946 thumbScrollerWrapper.find('.ig-thumb-scroller-left').trigger('mouseenter'); 1947
1947 } 1948 }}); 1949 }); 1950 1951 thumbScrollerWrapper.find('.ig-thumb-scroller-right').on('click', function(e) 1952 { 1953 e.preventDefault(); 1954 e.stopPropagation(); 1955 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1956 var pixels = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() + 700; 1957 1958 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(pixels, 700,{easing:'linear',onAfter: function() 1959 { 1960 if(hoverRightThumbArrow) 1961 { 1962 thumbScrollerWrapper.find('.ig-thumb-scroller-right').trigger('mouseenter'); 1963 } 1964 }}); 1965 }); 1966 1967 if( getComputedStyle(document.documentElement).direction != 'rtl' && !isIOS && !isAndroid) 1968 { 1969 1970 //right arrow hover 1971 thumbScrollerWrapper.find('.ig-thumb-scroller-right').on('mouseenter', function() 1972 { 1973 hoverRightThumbArrow = true; 1974 var duration = (thumbScrollerWrapper.find('.ig-slider-items')[0].scrollWidth - (thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() + thumbScrollerWrapper.width())) * 3; 1975 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo('max', duration, {easing: 'linear'}); 1976 }); 1977 1978 thumbScrollerWrapper.find('.ig-thumb-scroller-right').on('mouseleave', function() 1979 { 1980 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1981 hoverRightThumbArrow = false; 1982 }); 1983 1984 //left arrow hover 1985 thumbScrollerWrapper.find('.ig-thumb-scroller-left').on('mouseenter', function() 1986 { 1987 hoverLeftThumbArrow = true; 1988 var duration = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollLeft() * 3; 1989 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(0, duration,{easing:'linear'}); 1990 }); 1991 1992 thumbScrollerWrapper.find('.ig-thumb-scroller-left').on('mouseleave', function() 1993 { 1994 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 1995 hoverLeftThumbArrow = false; 1996 }); 1997 1998 //down arrow hover 1999 thumbScrollerWrapper.find('.ig-thumb-scroller-down').on('mouseenter', function() 2000 { 2001 hoverDownThumbArrow = true; 2002 var duration = (thumbScrollerWrapper.find('.ig-slider-items')[0].scrollHeight - (thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() + thumbScrollerWrapper.height())) * 3; 2003 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo('max', duration, {easing: 'linear'}); 2004 }); 2005 2006 thumbScrollerWrapper.find('.ig-thumb-scroller-down').on('mouseleave', function() 2007 { 2008 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 2009 hoverDownThumbArrow = false; 2010 }); 2011 2012 //up arrow hover 2013 thumbScrollerWrapper.find('.ig-thumb-scroller-up').on('mouseenter', function() 2014 { 2015 hoverUpThumbArrow = true; 2016 var duration = thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTop() * 3; 2017 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').scrollTo(0, duration,{easing:'linear'}); 2018 }); 2019 2020 thumbScrollerWrapper.find('.ig-thumb-scroller-up').on('mouseleave', function() 2021 { 2022 thumbScrollerWrapper.find('.ig-thumb-scroller-inner').stop(); 2023 hoverUpThumbArrow = false; 2024 }); 2025 } 2026 2027 setTimeout(function() 2028 { 2029 var innerWrapper = thumbScrollerWrapper.find('.ig-thumb-scroller-inner'); 2030 2031 if(thumbScrollerWrapper.find('.ig-slider-items').height() < $(window).height() && vertical) 2032 { 2033 thumbScrollerWrapper.find('.ig-thumb-scroller-down').css('visibility','hidden'); 2034 thumbScrollerWrapper.find('.ig-thumb-scroller-up').css('visibility','hidden'); 2035 } 2036 2037 2038 if(innerWrapper.prop('scrollWidth') <= innerWrapper.width() && !vertical) 2039 { 2040 thumbScrollerWrapper.find('.igui-slidenav-previous').css('visibility','hidden'); 2041 thumbScrollerWrapper.find('.igui-slidenav-next').css('visibility','hidden'); 2042 } 2043 2044 }, 200); 2045 2046 //lightbox zoom 2047 lboxWrapper.find('.ig-zoomin-button').on('click', function(event) 2048 { 2049 alignZoomWrapper(lboxWrapper); 2050 lboxWrapper.find('.ig-zoomout-button').css('display','inline-block'); 2051 }); 2052 2053 lboxWrapper.find('.ig-zoomout-button').on('click', function(event) 2054 { 2055 removeZoom(lboxWrapper); 2056 }); 2057 2058 $(window).resize(function() 2059 { 2060 removeZoom(lboxWrapper); 2061 }); 2062 2063 galleryWrapper.data('lightboxInit',1); 2064 } 2065 2066 lboxWrapper.find('.ig-thumb-scroller-inner').scrollTo(lboxWra
2066pper.find('.ig-scroller-img-wrapper').eq(panel.index)); 2067 2068 2069 if(lboxWrapper.find('.ig-lbox-play-icon').length) 2070 { 2071 lboxWrapper.find('.ig-lbox-play-icon').css('display','inline-block'); 2072 lboxWrapper.find('.ig-lbox-pause-icon').css('display','none'); 2073 2074 lboxWrapper.find('.ig-lbox-play-icon').on('click', function(event) 2075 { 2076 panel.autoplay = true; 2077 panel.startAutoplay(); 2078 lboxWrapper.find('.ig-lbox-play-icon').css('display','none'); 2079 lboxWrapper.find('.ig-lbox-pause-icon').css('display','inline-block'); 2080 galleryWrapper.data('lboxPlaying', true); 2081 }); 2082 2083 lboxWrapper.find('.ig-lbox-pause-icon').on('click', function(event) 2084 { 2085 panel.stopAutoplay(); 2086 panel.autoplay = false; 2087 lboxWrapper.find('.ig-lbox-pause-icon').css('display','none'); 2088 lboxWrapper.find('.ig-lbox-play-icon').css('display','inline-block'); 2089 galleryWrapper.data('lboxPlaying', false); 2090 }); 2091 2092 lboxWrapper.find('.ig-lightbox-button, .igui-lightbox-items li').on('click', function(event) 2093 { 2094 lboxWrapper.find('.ig-lbox-pause-icon').css('display','none'); 2095 lboxWrapper.find('.ig-lbox-play-icon').css('display','inline-block'); 2096 }); 2097 } 2098 2099 if(lboxWrapper.find('.ig-image-total').length) 2100 { 2101 lboxWrapper.find('.ig-image-total').html(items.length); 2102 } 2103 2104 //add lbox mousewheel 2105 var thumbVertical = lboxWrapper.find('.ig-thumb-scroller-lbox').hasClass('ig-thumb-scroller-vertical'); 2106 if(galleryWrapper.attr('data-ig-ismac')==0 && thumbVertical==false) 2107 { 2108 lboxWrapper.data('mousewheel',0); 2109 lboxWrapper.on('wheel', function(event) 2110 { 2111 if(event.originalEvent.deltaY !== 0 && lboxWrapper.data('mousewheel') == 0) 2112 { 2113 if(event.originalEvent.deltaY < 0) 2114 { 2115 panel.show(panel.index+1); 2116 } 2117 else 2118 { 2119 panel.show(panel.index-1); 2120 } 2121 lboxWrapper.data('mousewheel',1); 2122 setTimeout(function(){lboxWrapper.data('mousewheel',0);}, 800); 2123 } 2124 }); 2125 } 2126 2127 }); 2128 2129 $(document).off('beforeitemshow', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 2130 $(document).on('beforeitemshow', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid'), function() 2131 { 2132 var lboxWrapper = $('#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid') ); 2133 2134 //swap rating 2135 if(lboxWrapper.find('.ig-rating').length) 2136 { 2137 var rating = slideshowElms[panel.index].attr('data-ig-rating').toString(); 2138 var ratingWidth = rating.length < 2 ? 24 : 29; 2139 var ratingWidth = rating.length > 2 ? 34 : ratingWidth; 2140 lboxWrapper.find('.ig-rating').css('width',ratingWidth+'px'); 2141 lboxWrapper.find('.ig-rating-number').html(rating); 2142 } 2143 2144 if(lboxWrapper.find('.ig-zoomin-button').length) 2145 { 2146 removeZoom(lboxWrapper); 2147 } 2148 2149 //swap hit 2150 var hitCount = slideshowElms[panel.index].attr('data-ig-hits'); 2151 lboxWrapper.find('.ig-hits-number').html(hitCount); 2152 2153 //swap image number 2154 lboxWrapper.find('.ig-image-number').html(panel.index + 1); 2155 2156 //swap hash 2157 if(galleryWrapper.attr('data-ig-showhash') == 'hash') 2158 { 2159 imageUrl(slideshowIndxs[panel.index],true); 2160 } 2161 2162 //position bottom wrapper 2163 var bottomWrapper = lboxWrapper.find('.ig-lightbox-bottom-wrapper'); 2164 var leftWrapper = lboxWrapper.find('.ig-lightbox-left-wrapper'); 2165 var rightWrapper = lboxWrapper.find('.ig-lightbox-right-wrapper'); 2166 var desOverlayWrapper = lboxWrapper.find('.ig-lightbox-descriptions-overlay'); 2167 2168 if(bottomWrapper.length) 2169 { 2170 var bottomHeight = bottomWrapper.height() + 10; 2171 2172 if(leftWrapper.length) 2173 { 2174 if(leftWrapper.find('.ig-thumb-scroller').length > 0) 2175 { 2176 bottomWrapper.css('margin-left',leftWrapper.width()+'px'); 2177 } 2178 } 2179 2180 if(desOverlayWrapper.length > 0) 2181 { 2182 desOverlayWrapper.css('margin-bottom',bottomHeight+'px'); 2183 } 2184 2185 if(rightWrapper.length) 2186 { 2187 if(rightWrapper.find('.ig-thumb-scroller').length > 0) 2188 { 2189 bottomWrapper.css('margin-right',rightWrapper.width()+'px'); 2190 } 2191 } 2192 2193 lboxWrapper.find('.igui-lightbox-items').find('li').css('bottom',bottomHeight+'px'); 2194 2195 var imageHeight = ( ( $(window).height() - bottomHeight ) / $(window).height() ) * 100; 2196 lboxWrapper.find('.igui-lightbox-items').find('li').css('max-height',imageHeight+'vh'); 2197 } 2198 2199 //position left wrapper 2200 if(leftWrapper.length) 2201 { 2202 if(bottomWrapper.find('.ig-thumb-scroller').length) 2203 { 2204 var wrapperHeight = (typeof bottomHeight) !== 'undefined' ? $(window).height() - (bottomHeight + 10) : $(window).height(); 2205 leftWrapper.css('height',wrapperHeight+'px'); 2206 } 2207 else 2208 { 2209 var wrapperHeight = $(window).height(); 2210 leftWrapper.css('height',wrapperHeight+'px'); 2211 } 2212
2213 var leftWidth = leftWrapper.width(); 2214 2215 if(desOverlayWrapper.length > 0) 2216 { 2217 desOverlayWrapper.css('margin-left',leftWidth+'px'); 2218 } 2219 2220 lboxWrapper.find('.igui-lightbox-items').find('li').css('left',leftWidth+'px'); 2221 2222 var imageWidth = ( ( $(window).width() - leftWidth ) / $(window).width() ) * 100; 2223 lboxWrapper.find('.igui-lightbox-items').find('li').css('max-width',imageWidth+'vw'); 2224 2225 lboxWrapper.children('.ig-lightbox-button-left').css('left',leftWidth+'px'); 2226 2227 } 2228 2229 //position right wrapper 2230 if(rightWrapper.length) 2231 { 2232 if(bottomWrapper.find('.ig-thumb-scroller').length) 2233 { 2234 var wrapperHeight = typeof bottomHeight !== 'undefined' ? $(window).height() - (bottomHeight + 10) - 48 : ($(window).height() - 48); 2235 rightWrapper.css('height',wrapperHeight+'px'); 2236 } 2237 else 2238 { 2239 var wrapperHeight = ($(window).height() - 48); 2240 rightWrapper.css('height',wrapperHeight+'px'); 2241 } 2242 2243 2244 if(rightWrapper.find('.ig-thumb-scroller').length) 2245 { 2246 lboxWrapper.find('.ig-thumb-scroller, .ig-thumb-scroller-vert-inner, .ig-thumb-scroller-inner').css('height',wrapperHeight+'px'); 2247 } 2248 2249 var rightWidth = rightWrapper.width(); 2250 2251 if(desOverlayWrapper.length > 0) 2252 { 2253 desOverlayWrapper.css('margin-right',rightWidth+'px'); 2254 } 2255 2256 lboxWrapper.find('.igui-lightbox-items').find('li').css('right',rightWidth+'px'); 2257 2258 var imageWidth = ( ( $(window).width() - rightWidth ) / $(window).width() ) * 100; 2259 lboxWrapper.find('.igui-lightbox-items').find('li').css('max-width',rightWidth+'vw'); 2260 2261 lboxWrapper.find('.ig-lightbox-button-right').css('right',rightWidth+'px'); 2262 } 2263 2264 //swap comments 2265 if(lboxWrapper.find('.ig-comments').length) 2266 { 2267 galleryWrapper.find('.ig-comments-content').each(function(index,el) 2268 { 2269 if( $(this).attr('data-img-id') == panelIds[panel.index]) 2270 { 2271 var commentContent = $(this).html(); 2272 lboxWrapper.find('.ig-comments-list').html(commentContent); 2273 2274 var commentCount = $(this).find('.ig-comment').length; 2275 lboxWrapper.find('.ig-comment-count').html(commentCount); 2276 2277 lboxWrapper.find('.ig-comments-textarea-wrapper').css('display','none'); 2278 } 2279 }); 2280 } 2281 2282 //check thumb position 2283 var currentThumb = lboxWrapper.find('.ig-scroller-img-wrapper').eq(panel.index); 2284 2285 if(lboxWrapper.find('.ig-thumb-scroller-horizontal').length) 2286 { 2287 var thumbPosition = currentThumb.position().left; 2288 var containerWidth = lboxWrapper.find('.ig-thumb-scroller').width(); 2289 2290 if(panel.index == 0) 2291 { 2292 lboxWrapper.find('.ig-thumb-scroller-inner').scrollTo(0,400); 2293 } 2294 else if(thumbPosition > (containerWidth + lboxWrapper.find('.ig-thumb-scroller-inner').scrollLeft())) 2295 { 2296 lboxWrapper.find('.ig-thumb-scroller-inner').scrollTo(currentThumb,400); 2297 } 2298 else if(thumbPosition < lboxWrapper.find('.ig-thumb-scroller-inner').scrollLeft() ) 2299 { 2300 var position = thumbPosition - (containerWidth - currentThumb.width()); 2301 var position = position < 0 ? 0 : position; 2302 lboxWrapper.find('.ig-thumb-scroller-inner').scrollTo(position,400); 2303 } 2304 2305 } 2306 else if(lboxWrapper.find('.ig-thumb-scroller-vertical').length) 2307 { 2308 var thumbPosition = currentThumb.position().top; 2309 var containerHeight = lboxWrapper.find('.ig-thumb-scroller').height(); 2310 2311 if(panel.index == 0) 2312 { 2313 lboxWrapper.find('.ig-thumb-scroller-inner').scrollTo(0,400); 2314 } 2315 else if(thumbPosition > (containerHeight + lboxWrapper.find('.ig-thumb-scroller-inner').scrollTop())) 2316 { 2317 lboxWrapper.find('.ig-thumb-scroller-inner').scrollTo(currentThumb,400); 2318 } 2319 else if(thumbPosition < lboxWrapper.find('.ig-thumb-scroller-inner').scrollTop() ) 2320 { 2321 var position = thumbPosition - (containerHeight - currentThumb.height()); 2322 var position = position < 0 ? 0 : position; 2323 lboxWrapper.find('.ig-thumb-scroller-inner').scrollTo(position,400); 2324 } 2325 } 2326 2327 lboxWrapper.find('.igui-lightbox-items').find('li').css('visibility','visible'); 2328 }); 2329 2330 2331 $(document).off('itemshown', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 2332 $(document).on('itemshown', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid'), function() 2333 { 2334 var lboxWrapper = $('#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid') ); 2335 lboxWrapper.off('click'); 2336 2337 //gdpr 2338 var gdprConsent = parseInt(galleryWrapper.attr('data-ig-gdpr')); 2339 var gdprAlready = localStorage.getItem('ig-gdpr') == '1' ? true : false; 2340 2341 if(gdprConsent == 1 && !gdprAlready) 2342 { 2343 insertGDPRLbox(); 2344 setTimeout(function(){insertGDPRLbox();}, 500); 2345 setTimeout(function(){insertGDPRLbox();}, 1000); 2346 setTimeout(function(){insertGDPRLbox();}, 1500); 2347 setTimeout(function(){insertGDPRLbox();}, 2000); 2348 } 2349 2350 function insertGDPRLbox() 2351 { 2352 var currentLI = lboxWrapper.find('.igui-lightbox-items').find('li').eq(panel.index); 2353 if(currentLI.find('.ig-gdpr-lbox').length == 0 && currentLI.find('img').length > 0) 2354 { 2355 if($.inArray(panel.index, galleryWrapper.data('gdpr-indexes')) !== -1) 2356 { 2357 currentLI.append( 2358 '<div class="ig-gdpr-lbox">' 2359 + '<div class="ig-gdpr-lbox-inner igui-position-center"><div class="ig-gdpr-lbox-message">' + galleryWrapper.find('#ig-gdpr-message').html() + '</div>' 2360 + '<button type="submit" class="ig-gdpr-lbox-submit">'+galleryWrapper.find('#ig-gdpr-button-text').html()+'</button><br />' 2361 + '<div class="ig-preview-play-icon-gdpr" data-igui-icon="icon:play; ratio:2"></div>' 2362 + '</div></div>'); 2363 } 2364 2365 currentLI.find('.ig-gdpr-lbox-submit').off('click'); 2366 currentLI.find('.ig-gdpr-lbox-submit').on('click', function (e) 2367 { 2368 localStorage.setItem('ig-gdpr', '1'); 2369 galleryWrapper.data('ig-keep-fullscreen',1); 2370 var lastPanelIndex = panel.index; 2371 panel.hide(); 2372 2373 var panelWrapper = $('#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 2374 $(document).off('show', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 2375 panelWrapper.remove(); 2376 galleryWrapper.data('lightboxInit', 0); 2377 2378 var panelFilter = typeof galleryWrapper.data('tag-filter') !== 'undefined' ? galleryWrapper.data('tag-filter') : '*'; 2379 panel = createPanel(panelFilter); 2380 setTimeout(function(){panel.show(lastPanelIndex);}, 100); 2381 setTimeout(function(){galleryWrapper.data('ig-keep-fullscreen',0);},1500); 2382 2383 }); 2384 } 2385 } 2386 2387 lboxWrapper.find('.ig-download-button').off('click'); 2388 lboxWrapper.find('.ig-download-button').on('click', function(event) 2389 { 2390 event.stopPropagation(); 2391 var imageid = panelIds[panel.index]; 2392 window.location.href = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.download&format=raw&type=lbox&id='
2392+ imageid; 2393 }); 2394 2395 lboxWrapper.find('.ig-facebook-share').off('click'); 2396 lboxWrapper.find('.ig-facebook-share').on('click', function(event) 2397 { 2398 event.stopPropagation(); 2399 var urlToShare = 'http://www.facebook.com/sharer.php?u=' + encodeURIComponent( imageUrl(slideshowIndxs[panel.index],false) ); 2400 window.open(urlToShare, '_blank', 'height=450, width=550, top=' + ($(window).height() / 2 - 275) + ', left=' + ($(window).width() / 2 - 225) + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0').focus(); 2401 }); 2402 2403 lboxWrapper.find('.ig-twitter-share').off('click'); 2404 lboxWrapper.find('.ig-twitter-share').on('click', function(event) 2405 { 2406 event.stopPropagation(); 2407 var urlToShare = 'http://twitter.com/share?url=' + encodeURIComponent( imageUrl(slideshowIndxs[panel.index],false) ); 2408 window.open(urlToShare, '_blank', 'height=450, width=550, top=' + ($(window).height() / 2 - 275) + ', left=' + ($(window).width() / 2 - 225) + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0').focus(); 2409 2410 }); 2411 2412 lboxWrapper.find('.ig-pinterest-share').off('click'); 2413 lboxWrapper.find('.ig-pinterest-share').on('click', function(event) 2414 { 2415 event.stopPropagation(); 2416 2417 var imagePathLong = lboxWrapper.find('.igui-lightbox-items li').eq(panel.index).find('img').attr('src'); 2418 var imgPathShort = imagePathLong.slice(imagePathLong.indexOf('images/igallery')); 2419 var imgUrl = galleryWrapper.attr('data-ig-basehref-long') + imgPathShort; 2420 var description = galleryWrapper.find('.ig-image-description').eq(slideshowIndxs[panel.index]).text(); 2421 description = description.length > 0 ? description : galleryWrapper.find('.ig-slideshow-image').eq(slideshowIndxs[panel.index]).attr('alt'); 2422 2423 var href = 'https://pinterest.com/pin/create/button/?url=' + encodeURIComponent( imageUrl(slideshowIndxs[panel.index],false) ) + '&media=' + encodeURIComponent(imgUrl) + '&description=' + description; 2424 window.open(href, '_blank', 'height=450, width=550, top=' + ($(window).height() / 2 - 275) + ', left=' + ($(window).width() / 2 - 225) + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0').focus(); 2425 }); 2426 2427 //swap active thumb 2428 lboxWrapper.find('.ig-scroller-img-wrapper').removeClass('ig-active-thumb'); 2429 lboxWrapper.find('.ig-scroller-img-wrapper').eq(panel.index).addClass('ig-active-thumb'); 2430 2431 2432 //add hit 2433 if(galleryWrapper.attr('data-ig-collecthits') == 1) 2434 { 2435 var imageid = panelIds[panel.index]; 2436 var hitUrl = galleryWrapper.attr('data-ig-basehref') + '/index.php?option=com_igallery&task=imagefront.addHit&format=raw&id=' + imageid; 2437 $.ajax({url: hitUrl, success: function(result){}}); 2438 } 2439 2440 //disable right click 2441 if(galleryWrapper.attr('data-ig-disable-rightclick') == 1) 2442 { 2443 lboxWrapper.find('.igui-lightbox-items').find('li').eq(panel.index).off('contextmenu'); 2444 lboxWrapper.find('.igui-lightbox-items').find('li').eq(panel.index).on('contextmenu',function(){ 2445 alert(galleryWrapper.attr('data-ig-rightclick-msg')); 2446 return false; 2447 }); 2448 } 2449 2450 if(lboxWrapper.find('.igui-lightbox-items').find('iframe').length) 2451 { 2452 lboxWrapper.find('.igui-lightbox-button').removeClass('igui-transition-fade'); 2453 } 2454 }); 2455 2456 $(document).off('beforehide', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 2457 $(document).on('beforehide', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid'), function() 2458 { 2459 if(galleryWrapper.attr('data-ig-show-main-image') == 1) 2460 { 2461 slideshow.show(slideshowIndxs[panel.index]); 2462 } 2463 2464 if($(document).fullScreen() && galleryWrapper.data('ig-keep-fullscreen') !== 1) 2465 { 2466 $(document).fullScreen(false); 2467 } 2468 2469 var lboxWrapper = $('#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid') ); 2470 var thumbPosition = lboxWrapper.find('.ig-thumb-scroller').attr('data-ig-lbox-thumbs-position'); 2471 if(thumbPosition == 'below') 2472 { 2473 //galleryWrapper.data('lboxThumbScroller', lboxWrapper.find('.ig-thumb-scroller').detach() ); 2474 } 2475 2476 }); 2477 2478 $(document).off('hidden', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid')); 2479 $(document).on('hidden', '#ig-lightbox-' + galleryWrapper.attr('data-ig-uniqueid'), function() 2480 { 2481 var thumbGridWrapper = galleryWrapper.find('.ig-thumbs-grid'); 2482 if(thumbGridWrapper.length) 2483 { 2484 thumbGridWrapper.css('width', '100%'); 2485 } 2486 2487 panel.stopAutoplay(); 2488 panel.autoplay = false; 2489 2490 if(galleryWrapper.attr('data-ig-show-main-image') == 0) 2491 { 2492 var currentUrlParam = getUrlParamater('i'); 2493 if(currentUrlParam != 'unset') 2494 { 2495 var url = window.location.href; 2496 if(url.indexOf('?i='+currentUrlParam) !== -1) 2497 { 2498 newUrl = url.replace('?i='+currentUrlParam,''); 2499 } 2500 else if(url.indexOf('&i='+currentUrlParam) !== -1) 2501 { 2502 newUrl = url.replace('&i='+currentUrlParam,''); 2503 } 2504 2505 history.replaceState({imgId:0}, document.title, newUrl); 2506 } 2507 } 2508 2509 if( typeof(window.parent.igCloseModal) == 'function') 2510 { 2511 window.parent.igCloseModal(); 2512 } 2513 2514 lboxWrapper.off('wheel'); 2515 }); 2516 2517 galleryWrapper.find('.ig-grid-img-link').each(function(index,el) 2518 { 2519 2520 var linkEl = galleryWrapper.find('.ig-slideshow-item').eq($(this).parent().index()); 2521 var link = linkEl.attr('data-ig-image-link'); 2522 2523 if( link.length < 2 && galleryWrapper.attr('data-ig-show-main-image') == 0) 2524 { 2525 2526 $(this).off('click'); 2527 var gridImgId = $(this).attr('data-img-id'); 2528 2529 var gridIndex = 0; 2530 $.each(panelIds, function(index,value) 2531 { 2532 if(gridImgId == value) 2533 { 2534 gridIndex = index; 2535 } 2536 }); 2537 2538 $(this).on('click', function(e) 2539 { 2540 panel.show(gridIndex); 2541 }); 2542 2543 $(this).find('a').on('click', function(e) 2544 { 2545 e.stopPropagation(); 2546 }); 2547 } 2548 2549 }); 2550 2551 return panel; 2552 } 2553 2554 panel = createPanel('*'); 2555 2556 if(galleryWrapper.attr('data-ig-lbox-view') == 1) 2557 { 2558 panel.show(0); 2559 } 2560 2561 function alignZoomWrapper(lboxWrapperEl) 2562 { 2563 var zoomWrapper = lboxWrapperEl.find('.zoom-image-holder'); 2564 var imgElement = lboxWrapperEl.find('.igui-lightbox-items li').eq(panel.index).find('img'); 2565 var currentImgPosition = imgElement.position(); 2566 var imgParentLeft = parseInt( lboxWrapperEl.find('.igui-lightbox-items li').eq(panel.index).css('left') ); 2567 2568 var isEmpty = zoomWrapper.find('img').length == 1 ? false : true; 2569 2570 if(isEmpty) 2571 { 2572 zoomWrapper.css('visibility','hidden'); 2573 var imgClone = imgElement.clone(); 2574 zoomWrapper.empty(); 2575 zoomWrapper.append(imgClone); 2576 zoomWrapper.find('img').css({height:'auto',position:'relative','max-width':'100%'});
2577 } 2578 2579 zoomWrapper.css( 2580 { 2581 'top':currentImgPosition.top, 2582 left:(currentImgPosition.left + imgParentLeft), 2583 display:'block', 2584 padding:'0px', 2585 width:imgElement.width(), 2586 height:imgElement.height(), 2587 overflow:'hidden', 2588 cursor: 'grab' 2589 }); 2590 2591 setTimeout(alignZoom, 80,true,lboxWrapperEl); 2592 } 2593 2594 function alignZoom(doZoom,lboxWrapperEl) 2595 { 2596 var zoomWrapper = lboxWrapperEl.find('.zoom-image-holder'); 2597 var zoomContainment = lboxWrapperEl.find('.zoom-image-containment'); 2598 2599 if(doZoom) 2600 { 2601 var newWidth = zoomWrapper.find('img').width() * 1.3; 2602 var newHeight = zoomWrapper.find('img').height() * 1.3; 2603 var newLeft = (newWidth - zoomWrapper.width())/2; 2604 var newTop = (newHeight - zoomWrapper.height())/2; 2605 2606 zoomWrapper.find('img').css( 2607 { 2608 width: newWidth+'px', 2609 height: newHeight+'px', 2610 left: -newLeft+'px', 2611 top: -newTop+'px', 2612 'max-width': 'none' 2613 }); 2614 } 2615 2616 var horzExtra = zoomWrapper.find('img').width() - zoomWrapper.width(); 2617 var vertExtra = zoomWrapper.find('img').height() - zoomWrapper.height(); 2618 2619 var newWidth = (horzExtra * 2) + zoomWrapper.width(); 2620 var newHeight = (vertExtra * 2) + zoomWrapper.height(); 2621 2622 var xPos = zoomWrapper.offset().left - horzExtra; 2623 var yPos = zoomWrapper.position().top - vertExtra; 2624 2625 zoomContainment.css( 2626 { 2627 display:'block', 2628 width:newWidth+'px', 2629 height:newHeight+'px', 2630 top: yPos+'px', 2631 left: xPos+'px' 2632 }); 2633 2634 zoomWrapper.css('visibility','visible'); 2635 2636 if(draggable !== undefined) 2637 { 2638 draggable.draggabilly('destroy'); 2639 } 2640 2641 var draggable = zoomWrapper.find('img').draggabilly( 2642 { 2643 containment: '#zoom-image-containment-' + galleryWrapper.attr('data-ig-uniqueid') 2644 }); 2645 } 2646 2647 function removeZoom(lboxWrapperEl) 2648 { 2649 var zoomWrapper = lboxWrapperEl.find('.zoom-image-holder'); 2650 var isEmpty = zoomWrapper.find('img').length == 1 ? false : true; 2651 2652 if(!isEmpty) 2653 { 2654 var zoomContainment = lboxWrapperEl.find('.zoom-image-containment'); 2655 zoomWrapper.empty(); 2656 zoomWrapper.css('display','none'); 2657 zoomContainment.css('display','none'); 2658 lboxWrapperEl.find('.ig-zoomout-button').css('display','none'); 2659 } 2660 } 2661 2662 2663 2664 //allow creation of custom links to open the lightbox 2665 $('.ig-lightbox-custom-link').on('click', function(e) 2666 { 2667 e.preventDefault(); 2668 var galleryId = $(this).attr('data-gallery-id'); 2669 var imageIndex = $(this).attr('data-image-index') > 0 ? $(this).attr('data-image-index') -1 : 0; 2670 if(galleryId == galleryWrapper.attr('data-ig-uniqueid')) 2671 { 2672 panel.show(imageIndex); 2673 } 2674 }); 2675 2676 //if grid and hash then show lbox on page load 2677 var imgHash = getUrlParamater('i'); 2678 imgHash = imgHash.replace(/_/g,'-'); 2679 if(imgHash != 'unset' && galleryWrapper.attr('data-ig-show-main-image') == 0) 2680 {
2681 var elementToFind = galleryWrapper.find(".ig-slideshow-item[data-ig-imagehash='" + imgHash + "']"); 2682 if(elementToFind.length) 2683 { 2684 panel.show(elementToFind.index()); 2685 } 2686 } 2687 2688 } 2689 2690 galleryWrapper.find('.ig-slideshow-item-inner').each(function(index,el) 2691 { 2692 if($(this).parent().attr('data-ig-image-link').length > 0) 2693 { 2694 $(this).css('cursor','pointer'); 2695 } 2696 }); 2697 2698 galleryWrapper.find('.ig-slideshow-item-inner-lboxon, .ig-slideshow-item-inner').on('click', function(e) 2699 { 2700 e.preventDefault(); 2701 2702 var link = $(this).parent().attr('data-ig-image-link'); 2703 if( link.length > 2) 2704 { 2705 if($(this).parent().attr('data-ig-link-new') == 1) 2706 { 2707 window.open(link); 2708 } 2709 else 2710 { 2711 window.location = link; 2712 } 2713 } 2714 else if( galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox') == 1 ) 2715 { 2716 panel.show(slideshow.index); 2717 } 2718 }); 2719 2720 2721 galleryWrapper.find('.ig-grid-img-link').off('click'); 2722 galleryWrapper.find('.ig-grid-img-link').on('click', function(e) 2723 { 2724 e.preventDefault(); 2725 var linkEl = galleryWrapper.find('.ig-slideshow-item').eq($(this).parent().index()); 2726 var link = linkEl.attr('data-ig-image-link'); 2727 2728 if( link.length > 2) 2729 { 2730 if(linkEl.attr('data-ig-link-new') == 1) 2731 { 2732 window.open(link); 2733 } 2734 else 2735 { 2736 window.location = link; 2737 } 2738 } 2739 else 2740 { 2741 if(galleryWrapper.attr('data-ig-show-main-image') == 1) 2742 { 2743 e.preventDefault(); 2744 slideshow.show($(this).parent().index()); 2745 } 2746 else if( galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox') == 1 ) 2747 { 2748 panel.show($(this).parent().index()); 2749 } 2750 2751 } 2752 2753 }); 2754 2755 thumbScrollerWrapper.find('.ig-img-link').each(function(index,el) 2756 { 2757 $(el).on('click', function(e) 2758 { 2759 e.preventDefault(); 2760 var linkEl = galleryWrapper.find('.ig-slideshow-item').eq($(this).parent().index()); 2761 var link = linkEl.attr('data-ig-image-link'); 2762 2763 if(galleryWrapper.find('.ig-slideshow').attr('data-ig-show-main') == 1) 2764 { 2765 slideshow.show(index); 2766 } 2767 else if( link.length > 2) 2768 { 2769 if(linkEl.attr('data-ig-link-new') == 1) 2770 { 2771 window.open(link); 2772 } 2773 else 2774 { 2775 window.location = link; 2776 } 2777 } 2778 else if(galleryWrapper.find('.igui-slideshow-items').attr('data-ig-lightbox') == 1) 2779 { 2780 panel.show($(this).parent().index()); 2781 } 2782 }); 2783 }); 2784 2785 function imageUrl(index,replace) 2786 { 2787 var newUrl = ''; 2788 var shareUrl = getUrlParamater('shareurl'); 2789 if(shareUrl != 'unset') 2790 { 2791 var imageid = galleryWrapper.find('.ig-slideshow-item').eq(index).attr('data-ig-imageid'); 2792 2793 var url = shareUrl.indexOf('?') !== -1 ? decodeURIComponent(shareUrl)+'&img='+imageid : decodeURIComponent(shareUrl)+'?img='+imageid; 2794 return url; 2795 } 2796 2797 var imgName = galleryWrapper.find('.ig-slideshow-item').eq(index).attr('data-ig-imagehash'); 2798 var url = window.location.href; 2799 2800 var currentUrlParam = getUrlParamater('i'); 2801 2802 if(currentUrlParam != 'unset') 2803 { 2804 if(url.indexOf('?i='+currentUrlParam+'&') !== -1) 2805 { 2806 newUrl = url.replace('i='+currentUrlParam+'&',''); 2807 newUrl = newUrl+'&i='+imgName; 2808 } 2809 else if(url.indexOf('?i='+currentUrlParam) !== -1) 2810 { 2811 newUrl = url.replace('?i='+currentUrlParam,''); 2812 newUrl = newUrl+'?i='+imgName; 2813 } 2814 else if(url.indexOf('&i='+currentUrlParam) !== -1) 2815 { 2816 newUrl = url.replace('&i='+currentUrlParam,''); 2817 newUrl = newUrl+'&i='+imgName; 2818 } 2819 } 2820 else if(url.indexOf('?') !== -1) 2821 { 2822 newUrl = url+'&i='+imgName; 2823 } 2824 else 2825 { 2826 newUrl = url+'?i='+imgName; 2827 } 2828 2829 if(replace) 2830 { 2831 if(newUrl != url) 2832 { 2833 history.replaceState({imgId:index}, document.title, newUrl); 2834 } 2835 } 2836 else 2837 { 2838 return newUrl; 2839 } 2840 } 2841 2842 function getUrlParamater(paramName) 2843 { 2844 var urlValue = 'unset'; 2845 var url = window.location.href; 2846 2847 if(url.indexOf("?") > -1) 2848 { 2849 var queryParams = url.substr(url.indexOf("?")); 2850 var queryParamsArray = queryParams.split("&"); 2851 2852 for(var i=0; i< queryParamsArray.length; i++ ) 2853 { 2854 if( queryParamsArray[i].indexOf(paramName + "=") > -1 ) 2855 { 2856 var paramMatch = queryParamsArray[i].split("="); 2857 urlValue = paramMatch[1]; 2858 break; 2859 } 2860 } 2861 } 2862 return unescape(urlValue); 2863 } 2864 2865 });
2866 2867 $('.ig-slideshow-image, .ig-scroller-img, .ig-menu-grid-image, .ig-thumbs-grid-image').hover(function() 2868 { 2869 $(this).data('originalTitle',$(this).attr('title')); 2870 $(this).removeAttr('title'); 2871 }, 2872 function() 2873 { 2874 $(this).attr('title',$(this).data('originalTitle')); 2875 }); 2876 2877 2878 2879});
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.