hardc0der

FlowGallery

Nov 20th, 2016
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*! Flow Gallery - Multimedia jQuery gallery plugin - 2.0.1
  2.  * Copyright 2016, Nilok Bose
  3.  * http://codecanyon.net/user/cosmocoder
  4. */
  5. Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),i=this,o=function(){},a=function(){return i.apply(this instanceof o&&e?this:e,t.concat(Array.prototype.slice.call(arguments)))};return o.prototype=this.prototype,a.prototype=new o,a}),"function"!=typeof Object.create&&(Object.create=function(e){function t(){}return t.prototype=e,new t}),function(e,t,i){"use strict";var o={init:function(t,o){if(this.options=t,this.isChrome=null!==navigator.userAgent.match(/chrome/gi),this.isSafari=null!==navigator.userAgent.match(/webkit/gi)&&!this.isChrome,this.isOpera=null!==navigator.userAgent.match(/opera/gi),this.isiOS=null!==navigator.userAgent.match(/(iPad|iPhone|iPod)/gi),this.isAndroid=null!==navigator.userAgent.match(/android/i),this.hasTouch="ontouchstart"in i,this.msie=-1!=navigator.appName.toLowerCase().indexOf("microsoft"),this.isIE9=this.msie&&9==parseFloat(navigator.appVersion.split("MSIE")[1],10),this.isIE8=this.msie&&parseFloat(navigator.appVersion.split("MSIE")[1],10)<=8,this.ie9js=!!(this.msie&&i.IE7&&IE7.recalc),this.cssTransform=this.getSupportedTransform(),this.svgSupported="undefined"!=typeof SVGRect,this.clickType=this.hasTouch?"tap":"click",this.$window=e(i),this.hasTouch&&(this.options.alwaysShowThumbTitle=!0),this.$galleryContainer=e(o).addClass("flow-gallery"),this.$menu=e('<div class="flow-menu"></div>').appendTo(this.$galleryContainer),this.$helperGrid=e('<div class="helper-grid '+this.options.gridType+'" />').appendTo(this.$galleryContainer),"columns"===this.options.gridType&&this.$helperGrid.attr("data-columns",""),this.$albums=e('<div class="albums"/>').appendTo(this.$galleryContainer),this.$mainGrid=e('<div class="main-grid"/>').appendTo(this.$galleryContainer),this.options.loadItemChunks&&!this.options.loadChunksOnScroll&&(this.$addButton=e('<a class="btn-floating btn-large ripple-effect add-items"><i class="mdi-content-add"></i></a>').appendTo(this.$galleryContainer)),this.$mask=e('<div class="flow-mask"/>').appendTo(this.$galleryContainer),this.$overlayLoader=e('<div class="flow-overlayLoader"/>').appendTo(this.$galleryContainer),this.$overlay=e('<div class="flow-overlay"/>').appendTo(this.$galleryContainer),this.$overlayContent=e('<div class="overlay-content"/>').appendTo(this.$overlay),this.$overlayClose=e('<a class="close"><i class="mdi-navigation-close"></i></a>').appendTo(this.$overlay),this.$prevItem=e('<a class="prev-item"><i class="mdi-image-navigate-before"></i></a>').appendTo(this.$overlay),this.$nextItem=e('<a class="next-item"><i class="mdi-image-navigate-next"></i></a>').appendTo(this.$overlay),this.$overlaySource=e('<div class="overlay-source"/>').appendTo(this.$overlayContent),this.$otitle=e('<h2 class="item-title"/>').appendTo(this.$overlayContent),this.options.enableSocialShare){this.$shareTooltip=e('<div class="share-item"/>').appendTo(this.$galleryContainer);var a="";e.each(this.options.sharers,function(e,t){a+="google"===t?'<a class="google">Google+</a>':'<a class="'+t+'">'+t+"</a>"}),this.$shareTooltip.html(a)}if(this.galleryIndex=0,this.albumIndex=null,this.gid=e(".flow-gallery").index(this.$galleryContainer),this.svgSupported){var n='<div class="loader"><svg class="circular"><circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="4" stroke-miterlimit="10"/></svg></div>';this.$galleryContainer.prepend(n),this.$overlayLoader.append(n)}else this.$galleryContainer.addClass("no-svg");this.$galleryContainer.addClass("loading"),this.options.showGalleryMenuBar?this.buildMenu():this.$menu.hide(),this.insertStyles(),this.getGalleryData(),e.expr[":"].contains=function(e,t,i){return jQuery(e).text().toUpperCase().indexOf(i[3].toUpperCase())>=0}},insertStyles:function(){this.$galleryContainer[0].id||(this.$galleryContainer[0].id="flowGallery-"+e(".flow-gallery").index(this.$galleryContainer));var t=this.$galleryContainer[0].id,i=e('<style id="'+t+'-grid" type="text/css"/>').appendTo("head"),o="#"+t+" .helper-grid .item {margin: 0 0 "+this.options.verticalGutter+"px 0;}#"+t+" .column .item:last-child {margin-bottom: 0;}#"+t+" .column {padding: 0 "+this.options.horizontalGutter/2+"px;}#"+t+" .card-content.caption {max-height: "+this.options.card.captionMaxHeight+"px;}";"rows"===this.options.gridType&&(o+="#"+t+" .helper-grid .item {margin-right: "+this.options.horizontalGutter+"px;}"),"columns"===this.options.gridType&&(o+="#"+t+" .helper-grid {margin: 0 -"+this.options.horizontalGutter/2+"px;}",e.isPlainObject(this.options.columns)?e.each(this.options.columns,function(e,i){o+="@media screen and (min-width: "+e+"px) {",o+="#"+t+' .helper-grid[data-columns]::before {content: "'+i+" .column.col-1-"+i+'";}',o+="}",o+="#"+t+" .col-1-"+i+" {width: "+100/i+"%;}"}):(o+="#"+t+' .helper-grid[data-columns]::before {content: "'+this.options.columns+" .column.col-1-"+this.options.columns+'";}',o+="#"+t+" .col-1-"+this.options.columns+" {width: "+100/this.options.columns+"%;}")),i.html(o)},buildMenu:function(){var i=this,o=i.options.menuComponentNames,a="<ul>";a+='<li class="back"><a class="ripple-effect"><i class="mdi-navigation-arrow-back"></i></a></li>',a+='<li class="home"><i class="mdi-image-collections left"></i><span>'+o.albums+"</span></li>",a+='<li class="album-name"><span></span></li>',i.options.showFullscreenButton&&(t.documentElement.requestFullscreen||t.documentElement.mozRequestFullScreen||t.documentElement.webkitRequestFullscreen||t.documentElement.msRequestFullscreen)&&(a+='<li class="fullscreen"><a class="ripple-effect"><i class="mdi-navigation-fullscreen"></i><i class="mdi-navigation-fullscreen-exit"></i></a></li>'),i.options.showFilterMenu&&(a+='<li class="filter-menu dropdown-button"><a class="ripple-effect"><span>'+o.filter.menu+'</span><i class="mdi-navigation-arrow-drop-down right"></i><i class="mdi-content-filter-list"></i></a>',a+='<ul class="dropdown">',a+='<li class="active filter default"><a class="ripple-effect" data-type="all">'+o.filter.all+"</a></li>",i.options.showFileTypeFilters&&(a+='<li class="filter"><a class="ripple-effect" data-type="photo">'+o.filter.photo+"</a></li>",a+='<li class="filter"><a class="ripple-effect" data-type="audio">'+o.filter.audio+"</a></li>",a+='<li class="filter"><a class="ripple-effect" data-type="video">'+o.filter.video+"</a></li>"),e.isArray(i.options.categoryFilters)&&i.options.categoryFilters.length>0&&e.each(i.options.categoryFilters,function(e,t){a+='<li class="filter"><a class="ripple-effect" data-category="'+t+'">'+t+"</a></li>"}),a+="</ul>",a+="</li>"),i.options.sortBy.length>0&&(a+='<li class="sort-menu dropdown-button"><a class="ripple-effect"><span>'+o.sort.menu+'</span><i class="mdi-navigation-arrow-drop-down right"></i><i class="mdi-content-sort"></i></a>',a+='<ul class="dropdown">',a+='<li class="sort active default"><a class="ripple-effect" data-sort="original">'+o.sort.original+"</a></li>",e.each(i.options.sortBy,function(e,t){var i="title"===t?o.sort.title:"type"===t?o.sort.type:t;a+='<li class="sort"><a class="ripple-effect" data-sort="'+t+'">'+i+"</a></li>"}),a+="</ul>",a+="</li>"),i.options.showSearchFilter&&(a+='<li class="search"><a class="ripple-effect"><i class="mdi-action-search"></i></a><input type="text" placeholder="'+o.search+' &hellip;" /></li>'),a+="</ul>",i.$galleryContainer[0].offsetWidth<=480&&i.$menu.addClass("small"),i.$menu.html(a)},detectMobile:function(){return e.ajax({url:this.options.phpFolder+"/mobile.php",dataType:"text"})},getConfig:function(){var i="",o="";if(this.options.scanPhotoFolder||this.options.scanVideoFolder){if(this.options.scanPhotoFolder?(o=this.options.photoFolder,i=this.options.phpFolder+"/get-photos.php"):(o=this.options.videoFolder,i=this.options.phpFolder+"/get-videos.php"),-1===o.indexOf("http")){var a=t.createElement("a");a.href=o,o=a.href}return e.getJSON(i,{folder:o})}return e.getJSON(this.options.configUrl)},getCache:function(){var t=e.ajax({type:"post",data:{interval:this.options.cacheInterval,cacheFile:this.options.cacheFileName},url:this.options.cacheFolder+"/get-cache.php",dataType:"json",global:!1});return t},updateCache:function(t){e.ajax({type:"post",data:{config:JSON.stringify(t),cacheFile:this.options.cacheFileName},url:this.options.cacheFolder+"/update-cache.php",dataType:"json",global:!1})},getGalleryData:function(){var t,i,o=this;o.options.detectMobile?i=o.detectMobile():(i=e.Deferred(),i.resolve("false"),o.isMobile=!1),i.done(function(i){"true"===i&&(o.isMobile=!0),o.options.enableCache?t=o.getCache():(t=e.Deferred(),t.resolve({expired:!0})),t.done(function(e){if(e.expired)if(o.options.configUrl){var t=o.getConfig();t.done(o.configLoaded.bind(o))}else o.configLoaded(o.options.configData);else o.config=e,o.processConfig()})})},configLoaded:function(i){var o=this,a=[],n=i.albums?i.albums:[1];n.length;o.config=i,a=[],i.albums?o.$menu.addClass("all-albums"):o.$menu.removeClass("all-albums"),e.each(n,function(n){var s=i.albums?i.albums[n].items:i;e.each(s,function(i){var n,l=this;if("youtube"!==l.type||!o.options.useYoutubeThumbs&&l.title&&l.description)if("vimeo"!==l.type||!o.options.useVimeoThumbs&&l.title&&l.description)if("dailymotion"!==l.type||!o.options.useDailymotionThumbs&&l.title&&l.description){if("photo"===l.type&&o.options.getExifData){var r=l.source;if(-1===r.indexOf("http")){var d=t.createElement("a");d.href=r,r=d.href}n=e.ajax({url:o.options.phpFolder+"/get-exif.php",data:{photo:r},success:function(e){!!e&&(s[i].description=e)}})}}else{var c=s[i].source.split("/").pop(),h="https://api.dailymotion.com/video/"+c+"?ssl_assets=true&fields=thumbnail_120_url,title,description&callback=?";n=e.getJSON(h,function(e){o.options.useDailymotionThumbs&&(s[i].thumbnail=e.thumbnail_120_url),l.title||(s[i].title=e.title),l.description||(s[i].description=e.description)})}else{var c=s[i].source.split("/").pop(),h="https://vimeo.com/api/v2/video/"+c+".json?callback=?";n=e.getJSON(h,function(e){o.options.useVimeoThumbs&&(s[i].thumbnail=e[0].thumbnail_medium),l.title||(s[i].title=e[0].title),l.description||(s[i].description=e[0].description)})}else var c=s[i].source.split("v=")[1],h="https://www.googleapis.com/youtube/v3/videos/?key="+o.options.youtubeAPIKey+"&id="+c+"&part=snippet,contentDetails&callback=?",n=e.getJSON(h,function(e){o.options.useYoutubeThumbs&&(s[i].thumbnail=e.items[0].snippet.thumbnails.medium.url),l.title||(s[i].title=e.items[0].snippet.title),l.description||(s[i].description=e.items[0].snippet.description)});a.push(n)})}),e.when.apply(e,a).done(function(){o.options.enableCache&&o.updateCache(o.config),o.processConfig()})},processConfig:function(){var e=this;e.config.albums?e.setupAlbums():(e.$menu.find("li.filter").show(),e.setupGalleryItems(e.config));var t=e.$galleryContainer.parent();e.$galleryContainer.height()>t.height()?e.$scrollElem=t:e.$scrollElem=e.$window,e.options.fixMenuOnScroll&&e.setupMenuLock(),e.bindEvents()},setupAlbums:function(){for(var e,t=this,i=t.config.albums,o=i.length,a="",n="tiled"===t.options.albums.style?'<i class="mdi-image-collections"></i> &nbsp;':"",s=0;o>s;s++)e=i[s].thumbnail,!e&&(e=i[s].items[0].thumbnail),a+="<li>",a+="<figure>",a+='<img src="'+e+'">',a+="<figcaption>",a+='<span class="title">'+i[s].title+"</span>",a+='<span class="number">'+n+i[s].items.length+"</span>",a+="</figcaption>",a+="</figure>",a+="</li>";t.$albums.addClass(t.options.albums.style).html("<ul>"+a+"</ul>"),t.$albums.imagesLoaded(t.showAlbums.bind(t))},showAlbums:function(){var e=this,t=e.$albums.find("li"),i=e.options.albums.enterInSequence?e.options.albums.sequenceDelay:0,o=e.options.albums.enterSpeed,a="transition."+e.options.albums.enterAnimation+"In",n=-1!==e.options.albums.enterAnimation.indexOf("slide")?"easeOutCirc":null;e.$galleryContainer.removeClass("loading"),e.$albums.css("display","block");var s=e.getHashParams();s&&s.hasOwnProperty("album")&&(o=0,i=0,e.$albums.find("li").eq(s.album).trigger(e.clickType)),e.$galleryContainer.data("albumsHeight",e.$galleryContainer.height()),t.velocity(a,{duration:o,stagger:i,easing:n,display:"inline-block"}),e.onSetup()},getAlbum:function(t){var i=this,o=e(t.currentTarget),a=i.$albums.find("li"),n=a.index(o),s=i.config.albums[n].items,l="transition."+i.options.albums.pageTransition+"Out";i.albumIndex=n,i.$galleryContainer.css({height:i.$galleryContainer.data("albumsHeight"),overflow:"hidden"}),a.eq(n).addClass("current").velocity(l,600,function(){i.$albums.css("display","none"),i.$galleryContainer.addClass("loading"),i.$menu.removeClass("all-albums").addClass("album-menu").find("li.album-name").children("span").text(i.config.albums[n].title),i.$mainGrid.show(),i.setupGalleryItems(s),i.$galleryContainer.css({height:"",overflow:""})}).siblings().removeClass("current").velocity("transition.fadeOut",600)},backToAlbums:function(){var e=this,t="transition."+e.options.albums.pageTransition+"In",i=e.$galleryContainer.data("albumsHeight"),o=e.$galleryContainer.height(),a=i>o?i:o;e.$menu.addClass("all-albums").removeClass("album-menu").find("li.filter, li.sort").removeClass("active").filter(".default").addClass("active"),e.options.loadItemChunks&&!e.options.loadChunksOnScroll&&e.$addButton.css("display","none"),e.$galleryContainer.css({height:a,overflow:"hidden"}),e.$mainGrid.velocity("fadeOut",600,function(){e.$albums.css("display","block").find("li.current").velocity(t,{duration:600,display:"inline-block",complete:function(){e.$galleryContainer.css({height:"",overflow:""})}}).siblings().velocity("transition.fadeIn",{duration:600,display:"inline-block"})})},setupGalleryItems:function(t){var i,o,a=this,n=t.length,s=a.options.initialChunkSize?a.options.initialChunkSize:a.options.chunkSize,l="",r=n;for(a.options.loadItemChunks&&n>s&&(a.$galleryContainer.addClass("chunked"),!a.options.loadChunksOnScroll&&a.$addButton.css("display","inline-block")),a.albumData=[];r--;)a.albumData[r]=t[r],a.albumData[r].id=r;for(a.options.shuffleItems&&(t=a.shuffle(t)),r=0;n>r;r++){i=t[r].category?t[r].category.split(","):[],o='{"category": false}',0!==i.length&&(o="{",e.each(i,function(t,i){o+='"'+e.trim(i)+'": true,'}),o=o.substr(0,o.length-1),o+="}");var d=t[r],c=d.type,h=d.thumbnail,p=d.title,u="";a.options.alwaysShowThumbTitle||("fade"===a.options.thumbTitleAnimation&&(u=" fade"),"slide"===a.options.thumbTitleAnimation&&(u=" slide"));var m="card"===a.options.items.style&&a.options.card.alwaysShowCaption&&!a.options.card.descriptionInCaption?" activator":"",f="card"===a.options.items.style&&a.options.card.alwaysShowCaption?" hide":"",g="rows"===a.options.gridType?" getSize":"",y="tile"===a.options.items.style?" tile":"",v="tile"===a.options.items.style&&(a.isiOS||a.isAndroid)?" no-blur":"",b=a.options.loadItemChunks&&r>=s?" hidden":"",w=a.options.loadItemChunks&&r>=s?' data-src="'+h+'" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"':' src="'+h+'"',$="";d.sort&&e.each(d.sort,function(e,t){$+=" data-sort-"+e+'="'+t+'"'});var C="&fgid="+a.gid;null!==a.albumIndex&&(C+="&album="+a.albumIndex),C+="&item="+d.id;var k="",T="";"photo"===d.type?(k="mdi-image-photo-camera",T="mdi-action-pageview"):"video"===d.type||"youtube"===d.type||"vimeo"===d.type||"dailymotion"===d.type?(k="mdi-maps-local-movies",T="mdi-av-play-circle-fill"):"audio"===d.type&&(k="mdi-image-audiotrack",T="mdi-av-play-circle-fill"),l+='<div class="item filtered card'+y+b+v+'" data-id="'+d.id+'" data-type="'+c+"\" data-categories='"+o+"' data-title=\""+p.replace(/[^\w\s]/gi,"")+'"'+$+">",l+='<div class="card-image">',l+='<img class="item-thumb'+g+'"'+w+' alt="'+p+'" />',l+='<span class="card-title'+u+f+'">'+p,l+="tile"===a.options.items.style&&a.options.showFileTypeIcons?'<i class="'+k+' right"></i>':"",l+="</span>","tile"===a.options.items.style&&(l+=d.link?"":'<a class="show-source"><i class="'+T+'"></i></a>',l+=a.options.enableSocialShare?'<a class="share" data-link="'+C+'"><i class="mdi-social-share"></i></a>':"",l+='<a class="show-info"><i class="mdi-action-info"></i></a>',l+='<span class="tile-overlay"></span>'),d.link&&(l+='<a class="link" href="'+d.link+'"',l+=a.options.newWindowLinks?' target="_blank"':"",l+='><i class="mdi-content-link"></i></a>'),l+="</div>","card"===a.options.items.style&&a.options.card.alwaysShowCaption&&(l+='<div class="caption card-content">',l+='<span class="card-title'+u+m+'">'+p,l+=!a.options.card.descriptionInCaption&&d.description?' <i class="mdi-navigation-more-vert show-info"></i>':"",l+="</span>",l+=a.options.card.descriptionInCaption&&d.description?"<p>"+d.description+"</p>":"",l+="</div>"),"tile"!==a.options.items.style&&a.options.card.alwaysShowCaption&&a.options.card.descriptionInCaption||(l+='<div class="card-reveal caption">',l+='<span class="card-title">'+p+' <i class="mdi-navigation-close close"></i></span>',l+=d.description?"<p>"+d.description+"</p>":"",l+="</div>"),"card"===a.options.items.style&&(l+='<div class="card-action">',l+='<a class="show-source"><i class="'+T+'"></i></a>',l+=a.options.enableSocialShare?'<a class="share" data-link="'+C+'"><i class="mdi-social-share"></i></a>':"",l+=!a.options.card.alwaysShowCaption&&d.description?'<a class="show-info"><i class="mdi-navigation-more-vert"></i></a>':"",l+=a.options.showFileTypeIcons?'<i class="'+k+' right"></i>':"",l+="</div>"),l+="</div>"}a.$mainGrid.html(l).imagesLoaded(function(){"rows"===a.options.gridType&&a.$mainGrid.find("img.item-thumb").each(function(){this.setAttribute("data-width",this.width),this.setAttribute("data-height",this.height)}).removeClass("getSize"),a.config.albums?a.onAlbumLoad():a.onSetup(),a.showGallery()})},showGallery:function(){var e=this,t=e.$mainGrid.children("div.item:not(.hidden)"),i=e.options.items.enterSpeed,o=e.options.items.enterInSequence?e.options.items.sequenceDelay:0,a="transition."+e.options.items.enterAnimation+"In";e.layoutItems(t,null,!0),e.$galleryContainer.removeClass("loading"),e.$mainGrid.css("opacity",1),e.options.hideEmptyCategories&&e.hideEmptyCategories();var n=e.getHashParams();n&&(i=0,o=0,e.$mainGrid.children("div.item").filter('[data-id="'+n.item+'"]').find("a.show-source").trigger(e.clickType)),t.velocity(a,{duration:i,stagger:o,complete:function(){e.options.loadItemChunks&&e.options.loadChunksOnScroll&&e.$galleryContainer.hasClass("chunked")&&e.setupAutoChunkLoading()}})},hideEmptyCategories:function(){var t=this,i=t.$mainGrid.children("div.item.filtered"),o=t.options.categoryFilters,a=["photo","audio","video"];i.each(function(e){for(var t=0,n=o.length;n>t;t++)o[t]in i.eq(e).data("categories")&&(o.splice(t,1),t--);var s=i.eq(e).data("type");"youtube"!==s&&"vimeo"!==s&&"dailymotion"!==s||(s="video");for(var l=0,r=a.length;r>l;l++)s===a[l]&&(a.splice(l,1),l--);return 0===o.length&&0===a.length?!1:void 0}),t.$menu.find("li.filter").show(),e.each(o,function(e,i){t.$menu.find('li.filter-menu a[data-category="'+i+'"]').parent().hide()}),e.each(a,function(e,i){t.$menu.find('li.filter-menu a[data-type="'+i+'"]').parent().hide()})},setupAutoChunkLoading:function(e){var t,i,o=this;i=e?o.$galleryContainer:o.$scrollElem,i.off("scroll.chunk").on("scroll.chunk",function(){t&&clearTimeout(t),t=setTimeout(function(){o.$scrollElem.scrollTop()+o.$scrollElem.height()>=o.$galleryContainer.offset().top+o.$galleryContainer.height()&&o.appendItems()},250)}).trigger("scroll.chunk")},appendItems:function(){var e=this,t=e.$mainGrid.children("div.item.hidden").slice(0,e.options.chunkSize),i=t.find("img.item-thumb"),o=e.options.items.enterInSequence?e.options.items.sequenceDelay:0,a="transition."+e.options.items.enterAnimation+"In";e.$galleryContainer.addClass("appending"),!e.options.loadChunksOnScroll&&e.$addButton.css("display",""),i.each(function(){this.src="",this.src=this.getAttribute("data-src")}),t.imagesLoaded(function(){t.removeClass("hidden"),"rows"===e.options.gridType&&i.addClass("getSize").each(function(){this.setAttribute("data-width",this.width),this.setAttribute("data-height",this.height)}).removeClass("getSize"),e.$menu.find("li.filter.active:not(.default)").trigger(e.clickType),e.$menu.find("li.sort.active:not(.default)").trigger(e.clickType),e.layoutItems(e.$mainGrid.children("div.filtered:not(.hidden)"),null,!0),e.$galleryContainer.removeClass("appending"),!e.options.loadChunksOnScroll&&e.$addButton.css("display","inline-block"),t.filter(".filtered").velocity(a,{duration:e.options.items.enterSpeed,stagger:o}),0===e.$mainGrid.children("div.item.hidden").length&&(e.$galleryContainer.removeClass("chunked"),!e.options.loadChunksOnScroll&&e.$addButton.css("display",""),e.options.loadChunksOnScroll?e.$scrollElem.off("scroll.chunk"):!e.config.albums&&!e.options.loadChunksOnScroll&&e.$addButton.off(e.clickType))})},layoutItems:function(t,i,o){t=t.not(".hidden");var a,n,s,l,r,d,c=this,h=t.length,p=h,u=[],m=[],f=[];for("rows"===c.options.gridType&&t.removeClass("last-row");p--;)u[p]=t[p].outerHTML;for(c.$helperGrid[0].style.cssText="display: block;",c.$helperGrid[0].innerHTML=u.join(""),a=c.$helperGrid.children().each(function(){this.removeAttribute("style")}),"columns"===c.options.gridType?salvattore.register_grid(c.$helperGrid[0]):c.createRows(),p=h;p--;){var g=a[p].offsetLeft;if("rows"===c.options.gridType){var y=a.eq(p).find("img.item-thumb");f[p]={width:y[0].width,height:y[0].height}}"columns"===c.options.gridType&&(g-=c.options.horizontalGutter/2),m[p]={top:a[p].offsetTop,left:g,width:a[p].offsetWidth,height:a[p].offsetHeight},e.data(t[p],"props",{left:t[p].offsetLeft,top:t[p].offsetTop,height:m[p].height})}if(i)for(p=i.length;p--;)e.data(i[p],"props",{left:i[p].offsetLeft,top:i[p].offsetTop,height:i[p].offsetHeight});for(n=c.$helperGrid[0].offsetWidth-c.options.horizontalGutter,s=c.$helperGrid[0].offsetHeight,r=c.$window.scrollTop(),l=c.$window.height(),d=c.$mainGrid.offset().top,p=h;p--;){var v={top:m[p].top,left:m[p].left},b=m[p].width,w=m[p].height,$=t[p];if(o?$.style.cssText+="width: "+b+"px; height: "+w+"px; left: "+v.left+"px; top: "+v.top+"px;":$.style.cssText+="width: "+b+"px; height: "+w+"px;","rows"===c.options.gridType){var C=t.eq(p).find("img.item-thumb");C[0].style.cssText+="width: "+f[p].width+"px; height: "+f[p].height+"px;",c.options.card.alwaysShowCaption&&t.eq(p).find("div.card-content").css("height",a.eq(p).find("div.card-content").css("height")),a.eq(p).hasClass("last-row")&&t.eq(p).addClass("last-row")}e.data($,"position",v)}c.$mainGrid[0].style.cssText+="height: "+s+"px; width: "+n+"px;",c.$helperGrid[0].style.cssText="display: none;",c.$helperGrid[0].innerHTML="",o||(t.add(i).velocity("finish"),!!i&&c.hideUnfilteredItem(i,l,r,d),c.showFilteredItems(t,l,r,d))},createRows:function(){var e=this,t=0,i=0,o=e.$helperGrid[0].clientWidth+e.options.horizontalGutter,a=e.$helperGrid.find("img.item-thumb"),n=a.length,s=[],l=0,r=[],d=0,c=!1,h=0,p=0;for(e.$helperGrid.css("width",o);n>h;){if(r.push({width:parseInt(a[h].getAttribute("data-width"),10),height:parseInt(a[h].getAttribute("data-height"),10)}),t=o-(h+1)*e.options.horizontalGutter,d+=r[h].width+e.options.horizontalGutter,l+=r[h].width/r[h].height,i=t/l,p=h,1.1*d>o)c=!0;else for(;p--;)if(i*r[p].width/r[p].height<e.options.rowItemMinWidth){c=!0;break}c?(s=a.slice(0,h),e.setItemHeights(s,o,r,!1),a=a.slice(h),n=a.length,s.length=0,r.length=0,t=0,d=0,l=0,h=0,c=!1):h++}e.setItemHeights(a,o,r,!0),a.closest("div.item").addClass("last-row"),e.options.card.alwaysShowCaption&&e.setEqualCaptionHeights()},setItemHeights:function(e,t,i,o){var a,n=this,s=0,l=0,r=e.length,d=0,c=[],h=!1,p=0,u=0;for(s=t-r*n.options.horizontalGutter,u=0;r>u;u++)l+=i[u].width,d+=i[u].width/i[u].height,c.push(i[u].height);if(a=s/d|0,o&&(h=l>.75*s?!0:n.options.justifyLastRow,!h)){var m=Math.max.apply(Math,c);a>m&&(a=m)}for(l=0,u=0;r>u;u++)p=a*i[u].width/i[u].height|0,l+=p,u===r-1&&s>l&&(!o||o&&h)&&(p+=s-l),e.eq(u).css({width:p,height:a}).closest("div.item").css("width",p)},setEqualCaptionHeights:function(){var t,i=this,o=0,a=0,n=[],s=0;i.$helperGrid.find("div.card-content").each(function(){if(t=e(this).css("height","auto"),s=t[0].offsetTop,a!==s){for(var i=0;i<n.length;i++)n[i][0].style.height=o+"px";n.length=0,a=s,o=t[0].offsetHeight,n.push(t)}else n.push(t),o=o<t[0].offsetHeight?t[0].offsetHeight:o;for(var i=0;i<n.length;i++)n[i][0].style.height=o+"px"})},hideUnfilteredItem:function(t,i,o,a){for(var n,s,l,r,d=t.length;d--;)n=e.data(t[d],"props"),s=n.top,l=n.left,r=n.height,e.data(t[d],"hidePos",{left:l,top:s}),o>s+r+a||s+a>o+i?t[d].style.cssText+="display: none":t.eq(d).addClass("animating").velocity("transition.expandOut",{duration:this.options.layoutSpeed,display:"none",mobileHA:!0,complete:function(){e(this).removeClass("animating")}})},showFilteredItems:function(t,i,o,a){for(var n=this,s=t.length,l=s;l--;){var r=t[l],d=e.data(r,"position"),c=e.data(r,"props"),h=c.height,p={};if("none"!==r.style.display)p={translateZ:[0,0],left:[d.left,c.left],top:[d.top,c.top]};else{var u=e.data(r,"hidePos");p={scaleX:[1,0],scaleY:[1,0],opacity:[1,0],translateZ:[0,0],left:[d.left,u.left],top:[d.top,u.top]}}(p.top[1]+h+a<o||p.top[1]+a>o+i)&&(p.top[0]+h+a<o||p.top[0]+a>o+i)?r.style.cssText+="left: "+d.left+"px; top: "+d.top+"px; display: block; opacity: 1; -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1);":t.eq(l).addClass("animating").velocity(p,{duration:n.options.layoutSpeed,display:"block",easing:"ease-out",queue:!1,mobileHA:!0,complete:function(){e(this).removeClass("animating")}})}},recreateGrid:function(){var e=this,t=e.debounce(function(){e.$menu.find("li.sort.active:not(.default)").trigger(e.clickType),e.layoutItems(e.$mainGrid.children("div.filtered:not(.hidden)"),null,!1)},250);t()},shuffle:function(e){for(var t,i,o=e.length;o;t=parseInt(Math.random()*o,10),i=e[--o],e[o]=e[t],e[t]=i);return e},showItemInfo:function(t){var i=e(t.target),o=i.closest("div.item"),a=o.find("div.card-reveal"),n=this.options.captionAnimationSpeed,s=this.options.captionShowAnimation;switch(o.addClass("info-shown"),s){case"fade":a.css("top",0).velocity({opacity:[1,0]},n,"easeOutQuad");break;case"slideUp":a.velocity({top:[0,"100%"]},n,"easeOutQuad");break;case"slideDown":a.css({top:"auto",bottom:"100%"}).velocity({bottom:[0,"100%"]},n,"easeOutQuad");break;case"pushUp":a.velocity({top:[0,"100%"]},n,"easeOutQuad"),o.find("div.card-image").velocity({marginTop:["-100%",0]},n,"easeOutQuad");break;case"pushDown":a.css({top:"auto",bottom:"100%"}).velocity({bottom:[0,"100%"]},n,"easeOutQuad"),o.find("div.card-image").velocity({marginTop:["100%",0]},n,"easeOutQuad");break;case"expand":a.css({top:0,overflow:"hidden"}).velocity("transition.expandIn",n,function(){a.css("overflow","")});break;case"shrink":a.css({top:0,overflow:"hidden"}).velocity("transition.shrinkIn",n,function(){a.css("overflow","")});break;case"flipY":a.css({top:0,overflow:"hidden"}).velocity("transition.flipYIn",n,function(){a.css("overflow","")});break;case"flipX":a.css({top:0,overflow:"hidden"}).velocity("transition.flipXIn",n,function(){a.css("overflow","")})}},hideItemInfo:function(t){var i=e(t.target),o=i.closest("div.item"),a=o.find("div.card-reveal"),n=this.options.captionAnimationSpeed,s=this.options.captionShowAnimation;switch(o.removeClass("info-shown"),s){case"fade":a.velocity({opacity:[0,1]},n,"easeOutQuad",function(){a.css("top","100%")});break;case"slideUp":a.velocity({top:["100%",0]},n,"easeOutQuad");break;case"slideDown":a.velocity({bottom:["100%",0]},n,"easeOutQuad",function(){a.css({top:"100%",bottom:"auto"})});break;case"pushUp":a.velocity({top:["100%",0]},n,"easeOutQuad"),o.find("div.card-image").velocity({marginTop:[0,"-100%"]},n,"easeOutQuad");break;case"pushDown":a.velocity({bottom:["100%",0]},n,"easeOutQuad",function(){a.css({top:"100%",bottom:"auto"})}),o.find("div.card-image").velocity({marginTop:[0,"100%"]},n,"easeOutQuad");break;case"expand":a.css("overflow","hidden").velocity("transition.expandOut",n,function(){a.css({top:"100%",opacity:1,overflow:""})});break;case"shrink":a.css("overflow","hidden").velocity("transition.shrinkOut",n,function(){a.css({top:"100%",opacity:1,overflow:""})});break;case"flipY":a.css("overflow","hidden").velocity("transition.flipYOut",n,function(){a.css({top:"100%",opacity:1,overflow:""})});break;case"flipX":a.css("overflow","hidden").velocity("transition.flipXOut",n,function(){a.css({top:"100%",opacity:1,overflow:""})})}},filterItems:function(t){var i,o=this,a=e(t.currentTarget),n=a.children("a"),s=n[0].getAttribute("data-type"),l=n[0].getAttribute("data-category"),r=o.$mainGrid.children("div.item");if(!a.hasClass("active")||!(o.hasTouch&&t.x||t.originalEvent)){a.addClass("active").siblings("li.filter").removeClass("active"),s?i="all"===s?r:"video"===s?r.filter('[data-type="video"], [data-type="youtube"], [data-type="vimeo"], [data-type="dailymotion"]'):r.filter("[data-type="+s+"]"):l&&(i=r.filter(function(){return l in e(this).data("categories")}));var d=r.not(i);d.removeClass("filtered"),i.addClass("filtered"),(o.hasTouch&&t.x||t.originalEvent)&&o.layoutItems(i,d,!1)}},sortItems:function(t){var i=this,o=e(t.currentTarget),a=o.children("a"),n=a[0].getAttribute("data-sort"),s=i.$mainGrid.children("div.item");if(!o.hasClass("active")||!(i.hasTouch&&t.x||t.originalEvent)){o.addClass("active").siblings("li.sort").removeClass("active"),s.sort(function(e,t){var i,o;return"title"===n?(i=e.getAttribute("data-title"),o=t.getAttribute("data-title")):"type"===n?(i=e.getAttribute("data-type"),o=t.getAttribute("data-type")):"original"===n?(i=parseInt(e.getAttribute("data-id"),10),o=parseInt(t.getAttribute("data-id"),10)):(i=e.getAttribute("data-sort-"+n),o=t.getAttribute("data-sort-"+n),isNaN(parseFloat(i,10))||(i=parseFloat(i,10),o=parseFloat(o,10))),i>o?1:o>i?-1:0}),"descending"===i.options.sortOrder&&(s=e(s.get().reverse()));var l=s.filter("div.filtered"),r=s.not(l);i.hasTouch&&t.x||t.originalEvent?i.layoutItems(l,r,!1):s.detach().appendTo(i.$mainGrid)}},overlayCreate:function(t){var i=this,o=e(t.target).closest("div.item"),a=i.$mainGrid.children("div.filtered"),n=a.filter(".filtered:not(.hidden)"),s=n.index(o)+1,l=o[0].getAttribute("data-type"),r=parseInt(o[0].getAttribute("data-id"),10),d=a.index(o),c=i.albumData[r],h=i.$window.width(),p=i.$window.height(),u=0,m=0,f=p/2,g=!i.$overlaySource.is(":empty"),y=[];i.galleryIndex=d,i.$overlayContent.data("itemId",r);for(var v=1;3>=v;v++)a[d+v]&&"photo"===a[d+v].getAttribute("data-type")&&y.push(i.albumData[a[d+v].getAttribute("data-id")].source);if(i.preloadImgs(y),i.$otitle.html(c.title+'<span class="counter">'+s+" of "+n.length+"</span>"),"youtube"!==l&&"vimeo"!==l&&"dailymotion"!==l&&"video"!==l||(u=h-80,u>i.options.overlay.videoMaxWidth&&(u=i.options.overlay.videoMaxWidth),m=parseInt(9*u/16,10),418>=p&&(m=p-80,u=parseInt(m*(16/9),10))),"photo"===l){var b;if(g)b=i.$overlaySource.find("img"),i.resizeImage(b[0]),i.$overlayLoader.hide(),i.overlayShow(b[0].width,b[0].height,f,g);else{var w=setTimeout(function(){i.$overlayLoader.css("top",f).show()},150);i.msie&&(i.$overlay.css({visibility:"hidden",display:"block"}),i.$overlayContent.css({visibility:"hidden",display:"block"})),b=e('<img src="'+c.source+'" alt="" />').appendTo(i.$overlaySource),b[0].onload=function(){b[0].setAttribute("data-naturalwidth",b[0].width),b[0].setAttribute("data-naturalheight",b[0].height),i.resizeImage(b[0]);var e=b[0].width,t=b[0].height;i.msie&&(i.$overlay.css({visibility:"visible",display:"none"}),i.$overlayContent.css({visibility:"visible",display:"none"})),w&&clearTimeout(w),i.$overlayLoader.hide(),i.overlayShow(e,t,f)}}}else if("audio"===l){var $,C="<audio controls>",k="<audio controls",T=o.find("img.item-thumb");"rows"===i.options.gridType?$=parseInt(T[0].getAttribute("data-height"),10):(T.addClass("getSize"),$=T[0].height,T.removeClass("getSize")),c.mp3?(C+='<source type="audio/mpeg" src="'+c.mp3+'" />',k+='type="audio/mpeg" src="'+c.mp3+'"></audio>'):c.ogg&&(C+='<source type="audio/ogg" src="'+c.ogg+'" />'),C+="</audio>",g||(i.$overlaySource.append('<img class="audio-cover" src="'+c.thumbnail+'"/>'),
  6. i.isSafari?i.$overlaySource.append(k):i.$overlaySource.append(C)),480>=h?(g&&(i.player.setPlayerSize(h-80,30),i.player.setControlsSize()),i.overlayShow(h-80,$+50,f,g)):(g&&(i.player.setPlayerSize(400,30),i.player.setControlsSize()),i.overlayShow(400,$+50,f,g))}else if("youtube"===l){var S=c.source.split("v=")[1],I=i.options.overlay.autoplay?"&autoplay=1":"",x='<iframe width="'+u+'" height="'+m+'" src="https://www.youtube.com/embed/'+S+"?hd=1&rel=0&enablejsapi=1"+I+'" frameborder="0" allowfullscreen></iframe>';if(g)i.$overlaySource.find("iframe").attr("width",u).attr("height",m);else{var A=i.$overlaySource.append(x).find("iframe");i.meElem={pluginType:"youtube",pause:function(){A[0].contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}}}i.overlayShow(u,m,f,g)}else if("vimeo"===l){var S=c.source.split("/").pop(),O=i.options.overlay.autoplay?"&autoplay=1":"",F="https://player.vimeo.com/video/"+S,x='<iframe src="'+F+"?api=1"+O+'" width="'+u+'" height="'+m+'" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>';if(g)i.$overlaySource.find("iframe").attr("width",u).attr("height",m);else{var A=i.$overlaySource.append(x).find("iframe");i.meElem={pluginType:"vimeo",pause:function(){A[0].contentWindow.postMessage('{"method":"pause"}',F)}}}i.overlayShow(u,m,f,g)}else if("dailymotion"===l){var S=c.source.split("/").pop(),O=i.options.overlay.autoplay?"&autoplay=1":"",F="https://www.dailymotion.com/embed/video/"+S,x='<iframe src="'+F+"?api=postMessage"+O+'" width="'+u+'" height="'+m+'" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>';if(g)i.$overlaySource.find("iframe").attr("width",u).attr("height",m);else{var A=i.$overlaySource.append(x).find("iframe");i.meElem={pluginType:"dailymotion",pause:function(){A[0].contentWindow.postMessage("pause","*")}}}i.overlayShow(u,m,f,g)}else if("video"===l){var x='<video controls width="'+u+'" height="'+m+'">',G='<video controls width="'+u+'" height="'+m+'"';if(c.mp4){var E=i.isMobile&&c.mobileMp4?c.mobileMp4:c.mp4;x+='<source type="video/mp4" src="'+E+'" />',G+='type="video/mp4" src="'+E+'"></video>'}c.webm&&(x+='<source type="video/webm" src="'+c.webm+'" />'),c.ogv&&(x+='<source type="video/ogg" src="'+c.ogv+'" />'),x+="</video>",g?(i.player.setPlayerSize(u,m),i.player.setControlsSize(),!i.isiOS&&!i.isAndroid&&i.player.media.setVideoSize(u,m)):i.isSafari?i.$overlaySource.append(G):i.$overlaySource.append(x),i.overlayShow(u,m,f,g)}},overlayShow:function(i,o,a,n){var s=this,l=s.$mainGrid.children("div.filtered:not(.hidden)").length,r=s.$window.width(),d=(s.$window.height(),i),c=(s.$overlay.find("div.details"),s.options.overlay.itemTransition),h=s.$mask[0].offsetHeight?0:400;!n&&s.$overlay.css({display:"block",visibility:"hidden"}),s.$overlayContent.css({width:d}).show();var p=s.$otitle.outerHeight(!0),u=o+p,m=-u/2,f=480>=r?-s.$overlayContent.outerWidth()/2:-i/2;!n&&s.$overlayContent.hide(),0===s.galleryIndex?(s.$prevItem.hide(),s.$nextItem.show()):s.galleryIndex===l-1?(s.$prevItem.show(),s.$nextItem.hide()):(s.$prevItem.show(),s.$nextItem.show()),"slideLeft"===c&&(c="slideRightBig"),"bounceLeft"===c&&(c="bounceRight"),!n&&s.$overlay.css({display:"block",visibility:"visible"}),s.$mask.css({height:e(t).height(),width:e(t).width(),display:"block"}).velocity({opacity:[1,0],translateY:[0,"-100%"],translateZ:0},h,function(){s.$overlayContent.css({width:d,height:u,top:a,marginTop:m,marginLeft:f}),n||s.$overlayContent.addClass("animating").velocity("finish",!0).velocity("transition."+c+"In",function(){s.$overlayContent.removeClass("animating"),s.options.enableDeepLinking&&s.updateItemLink(),s.onOverlayOpen()}).find("audio,video").mediaelementplayer({audioWidth:i,videoWidth:i,videoHeight:o,hideVolumeOnTouchDevices:s.isAndroid,pauseOtherPlayers:!1,success:function(e,t,i){s.meElem=e,s.player=i,s.ie9js&&IE7.recalc(),s.options.overlay.autoplay&&e.play(),s.isiOS&&e.addEventListener("loadedmetadata",function(){i.container.find("div.mejs-fullscreen-button").css("visibility","visible")},!1)}})})},overlayPrev:function(){var e=this,t=e.options.overlay.itemTransition;"slideLeft"===t&&(t="slideLeftBig"),e.galleryIndex-1<0||e.$overlayContent.velocity("transition."+t+"Out",function(){e.clearOverlaySource(),e.$mainGrid.children("div.filtered").eq(e.galleryIndex-1).find("a.show-source").trigger(e.clickType)})},overlayNext:function(){var e=this,t=e.options.overlay.itemTransition;"slideLeft"===t&&(t="slideLeftBig"),e.galleryIndex+1!==e.$mainGrid.children("div.filtered:not(.hidden)").length&&e.$overlayContent.velocity("transition."+t+"Out",function(){e.clearOverlaySource(),e.$mainGrid.children("div.filtered").eq(e.galleryIndex+1).find("a.show-source").trigger(e.clickType)})},overlayClose:function(){var e=this;e.$overlay.hide().removeData("iframeVideoPlaying"),e.$overlayContent.add(e.$mask).velocity("fadeOut",500,function(){if(e.onOverlayClose(),e.clearOverlaySource(),e.options.enableDeepLinking){var t=i.location.hash;if(-1!==t.indexOf("fgid")){var o=t.split("&").shift();if("#"!==o)i.location.hash=o;else{var a=e.$window.scrollTop();i.location.hash="",e.$window.scrollTop(a)}}}})},clearOverlaySource:function(){var t=this;t.player&&("native"!==t.player.media.pluginType&&t.player.media.pluginElement&&e("#"+t.player.media.pluginElement.id).parent().remove(),delete mejs.players[t.player.id],t.player.globalUnbind(),t.player=null),t.$overlaySource.empty()},handleOverlayTouch:function(t){var i=this;if("touchstart"===t.type)e.data(i.$overlay[0],"touchStartPos",t.originalEvent.touches[0].pageX);else if("touchmove"===t.type)t.preventDefault(),e.data(i.$overlay[0],"touchEndPos",t.originalEvent.touches[0].pageX);else if("touchend"===t.type){if(!e.data(i.$overlay[0],"touchEndPos"))return;e.data(i.$overlay[0],"touchEndPos")-e.data(i.$overlay[0],"touchStartPos")>=100?i.overlayPrev():e.data(i.$overlay[0],"touchEndPos")-e.data(i.$overlay[0],"touchStartPos")<=-100&&i.overlayNext(),e.data(i.$overlay[0],"touchEndPos",null)}},preloadImgs:function(e){var t=e.length;if(0!==t)for(var i=0;t>i;i++){var o=new Image;o.src=e[i]}},resizeImage:function(e){if(e){var t=this,i=t.$window.width(),o=t.$window.height(),a=i-120,n=o-40-50,s=a/n,l=e.getAttribute("data-naturalwidth")||e.width,r=e.getAttribute("data-naturalheight")||e.height,d=l/r,a=0>a?i-40:a;50>n&&(t.$overlay.css({display:"block",visibility:"hidden"}),t.$overlayContent.show(),n=o-t.$otitle.outerHeight(!0),t.$overlayContent.hide(),t.$overlay.css({display:"none",visibility:"visible"})),(l>a||r>n)&&(d===s?(l=a,r=n):(l=n*d,r=n,l>a&&(l=a,r=a/d))),e.width=l,e.height=r}},handleResize:function(){var e=this;if(!(e.player&&e.player.isFullScreen||(e.$galleryContainer[0].offsetWidth<=480?e.$menu.addClass("small"):e.$menu.removeClass("small"),e.recreateGrid(),"block"!==e.$overlay[0].style.display))){var t=e.requestAnimFrame();t(function(){e.$mainGrid.find("div.item").eq(e.galleryIndex).find("a.show-source").trigger(e.clickType)})}},handleKeys:function(e){var t=e.keyCode||e.charCode,i=this;i.$overlay.is(":visible")&&(39===t?i.overlayNext():37===t?i.overlayPrev():27===t&&i.overlayClose())},handleFullscreen:function(){var e=this,i=e.$menu.find("li.fullscreen");i.hasClass("active")||t.fullscreenElement||t.mozFullScreenElement||t.webkitFullscreenElement||t.msFullscreenElement?(t.exitFullscreen?t.exitFullscreen():t.msExitFullscreen?t.msExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.webkitExitFullscreen&&t.webkitExitFullscreen(),i.removeClass("active"),e.options.loadItemChunks&&e.options.loadChunksOnScroll&&e.$galleryContainer.hasClass("chunked")&&e.setupAutoChunkLoading(!1)):(e.$galleryContainer[0].requestFullscreen?e.$galleryContainer[0].requestFullscreen():e.$galleryContainer[0].mozRequestFullScreen?e.$galleryContainer[0].mozRequestFullScreen():e.$galleryContainer[0].webkitRequestFullscreen?e.$galleryContainer[0].webkitRequestFullscreen():e.$galleryContainer[0].msRequestFullscreen&&e.$galleryContainer[0].msRequestFullscreen(),i.addClass("active"),e.options.loadItemChunks&&e.options.loadChunksOnScroll&&e.$galleryContainer.hasClass("chunked")&&e.setupAutoChunkLoading(!0))},setupMenuLock:function(){var e=this,t=e.requestAnimFrame();e.lockset=!1,e.$scrollElem.on("scroll.menu",function(){t(e.fixMenu.bind(e))})},fixMenu:function(){var e=this,t=e.$menu[0].offsetHeight,i=e.$galleryContainer[0].offsetHeight,o=e.$galleryContainer.offset().top,a=o-e.options.menuFixOffset,n=a+(i-t),s=e.$scrollElem.scrollTop();!e.lockset&&s>a&&n>s?(e.$galleryContainer.css("padding-top",e.$menu.outerHeight(!0)),e.$menu.css({left:e.$menu.offset().left,top:e.options.menuFixOffset,width:e.$menu[0].offsetWidth}).addClass("fixed").removeClass("scroll-end"),e.lockset=!0):(e.lockset&&(a>=s||s>=n)||s>=n)&&(e.$menu.removeClass("fixed").css({left:"",top:"",width:""}),s>n?e.$menu.addClass("scroll-end"):e.$galleryContainer.css("padding-top",""),e.lockset=!1)},showSearchBox:function(t){var i=this,o=e(t.target).closest("li"),a=o.find("input"),n=e.trim(a.val());o.hasClass("active")?(a.velocity({opacity:[0,1]},{display:"none",duration:400,complete:function(){o.removeClass("active")}}),n.length>0&&(a.val(""),i.layoutItems(i.$mainGrid.children("div.item"),null,!1))):(o.addClass("active"),a.velocity({opacity:[1,0]},{display:"block",duration:400,complete:function(){a.focus()}}))},searchFilter:function(){var t,i=this,o=e.trim(i.$menu.find("input").val().toLowerCase()),a=i.$mainGrid.children("div.item");if(!(o.length>0&&o.length<2)){i.$menu.find("li.filter").removeClass("active"),0===o.length?t=a:"title"===i.options.searchBy?t=a.find("div.card-image span.card-title").filter(":contains("+o+")").closest("div.item"):"categories"===i.options.searchBy&&(t=a.filter(function(){var e=this.getAttribute("data-categories").toLowerCase();return-1!==e.indexOf(o)?!0:void 0}));var n=a.not(t);n.removeClass("filtered"),t.addClass("filtered"),i.layoutItems(t,n,!1)}},updateItemLink:function(){var e=this,t=i.location.hash.substring(1),o="&fgid="+e.gid;if(null!==e.albumIndex&&(o+="&album="+e.albumIndex),o+="&item="+e.$overlayContent.data("itemId"),""===t)i.location.hash="#"+o;else if(-1!==t.indexOf("fgid")){var a=t.split("&");i.location.hash=a[0]+o}else i.location.hash=t+o},getHashParams:function(){var t=i.location.hash,o=[],a={};return-1!==t.indexOf("fgid")?(o=t.split("&"),o.shift(),e.each(o,function(e,t){t=t.split("="),a[t[0]]=parseInt(t[1],10)}),a):null},showItemFromHash:function(){var e=this,t=e.getHashParams();if(t&&t.fgid===e.gid)if(t.hasOwnProperty("album")&&t.album!==e.albumIndex)e.$overlayContent.hide(),e.clearOverlaySource(),e.$albums.find("li").eq(t.album).trigger(e.clickType);else{if(e.$overlay[0].offsetHeight>0){if(t.item===e.$overlayContent.data("itemId"))return;e.$overlayContent.hide(),e.clearOverlaySource()}e.$mainGrid.children("div.item").filter('[data-id="'+t.item+'"]').find("a.show-source").trigger(e.clickType)}else e.$overlay[0].offsetHeight>0&&e.overlayClose()},shareItem:function(o){o.stopPropagation();var a=this,n=e(o.target),s=a.$mainGrid.children("div.sharing-active"),l=s.find("a.share")[0].getAttribute("data-link"),r=a.albumData[s[0].getAttribute("data-id")],d="",c=s[0].getAttribute("data-title"),h="",p=i.screen.width/2-250,u=i.screen.height/2-150,m=t.createElement("a");m.href="#"+i.location.hash.substring(1)+l,l=m.href,l=encodeURIComponent(l),c=encodeURIComponent(c),n.hasClass("facebook")?h="https://www.facebook.com/sharer/sharer.php?u="+l:n.hasClass("twitter")?h="https://twitter.com/intent/tweet/?text="+c+"&url="+l:n.hasClass("google")?h="https://plus.google.com/share?url="+l:n.hasClass("pinterest")&&(-1===r.source.indexOf("http")&&(m.href="photo"===r.type?r.source:r.thumbnail,d=encodeURIComponent(m.href)),h="https://www.pinterest.com/pin/create/button/?url="+l+"&media="+d+"&description="+r.title),i.open(h,"","menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=500,height=300,top="+u+",left="+p)},handleRippleEffect:function(t){var i,o,a,n,s=e(t.target),l=s.offset();0===s.find("span.ripple").length&&s.prepend('<span class="ripple"></span>'),i=s.find("span.ripple").removeClass("animate"),i[0].offsetHeight||(o=Math.max(s[0].offsetWidth,s[0].offsetHeight),i.css({height:o,width:o})),a=t.pageX-l.left-i.width()/2,n=t.pageY-l.top-i.height()/2,i.css({top:n,left:a}).addClass("animate")},bindEvents:function(){var i=this;if(i.$window.on("resize orientationchange fullscreenchange mozfullscreenchange webkitfullscreenchange MSFullscreenChange",i.handleResize.bind(i)),i.$albums.on(i.clickType,"li",i.getAlbum.bind(i)),i.$menu.find("li.back").on(i.clickType,i.backToAlbums.bind(i)),i.$menu.on(i.clickType,"li.dropdown-button > a",function(){e(this).next("ul.dropdown").velocity("transition.expandIn",{duration:300,display:"block"}).end().parent().siblings("li.dropdown-button").find("ul.dropdown").velocity("transition.expandOut",100)}),e(t).on(i.clickType,function(t){var o=e(t.target);0!==o.closest("div.flow-menu").length&&0!==o.closest("li.dropdown-button").length||i.$menu.find("ul.dropdown").filter(":visible").velocity("transition.expandOut",100)}),i.$menu.find("li.fullscreen").on(i.clickType,i.handleFullscreen.bind(i)),i.$window.on("fullscreenchange mozfullscreenchange webkitfullscreenchange MSFullscreenChange",function(){null!==t.fullscreenElement&&null!==t.mozFullScreenElement&&null!==t.webkitFullscreenElement&&null!==t.msFullscreenElement||i.$menu.find("li.fullscreen").removeClass("active")}),i.options.loadItemChunks&&!i.options.loadChunksOnScroll&&i.$addButton.on(i.clickType,i.appendItems.bind(i)),i.$menu.on(i.clickType,"li.filter",i.filterItems.bind(i)),i.options.sortBy.length>0&&i.$menu.on(i.clickType,"li.sort",i.sortItems.bind(i)),i.$mainGrid.on(i.clickType,".show-info",i.showItemInfo.bind(i)),i.$mainGrid.on(i.clickType,"i.close",i.hideItemInfo.bind(i)),i.options.enableSocialShare&&(i.$mainGrid.on(i.clickType,"a.share",function(t){t.stopPropagation();var o=e(this),a=o.closest("div.item"),n=a[0].offsetLeft+this.offsetLeft,s=i.$mainGrid[0].offsetTop+a[0].offsetTop+this.offsetTop+30;a.addClass("sharing-active").siblings().removeClass("sharing-active"),i.$shareTooltip.css({left:n,top:s}).velocity("transition.expandIn",400)}),e(t).on(i.clickType,function(){i.$shareTooltip.is(":visible")&&i.$shareTooltip.velocity("transition.expandOut",100)}),i.$shareTooltip.on(i.clickType,i.shareItem.bind(i))),i.$mainGrid.on(i.clickType,"a.show-source",i.overlayCreate.bind(i)),i.$overlayClose.on(i.clickType,i.overlayClose.bind(i)),i.$overlay.on(i.clickType,function(t){e.contains(i.$overlay[0],t.target)||i.overlayClose()}),i.$prevItem.on(i.clickType,i.overlayPrev.bind(i)),i.$nextItem.on(i.clickType,i.overlayNext.bind(i)),i.$overlay.on("touchstart touchmove touchend",i.handleOverlayTouch.bind(i)),e(t).on("keydown",i.handleKeys.bind(i)),i.options.showSearchFilter){i.$menu.find(".search a").on(i.clickType,i.showSearchBox.bind(i));var o;i.$menu.find("input").on("keyup",function(){o&&clearTimeout(o),o=setTimeout(i.searchFilter.bind(i),250)})}i.$window.on("hashchange",i.showItemFromHash.bind(i)),i.$galleryContainer.on(i.clickType,".ripple-effect",i.handleRippleEffect.bind(i))},debounce:function(e,t,i){var o=this;return function(){var a=o,n=arguments,s=function(){o.debounceTimeout=null,i||e.apply(a,n)},l=i&&!o.debounceTimeout;clearTimeout(o.debounceTimeout),o.debounceTimeout=setTimeout(s,t),l&&e.apply(a,n)}},requestAnimFrame:function(){return i.requestAnimationFrame||i.webkitRequestAnimationFrame||i.mozRequestAnimationFrame||i.msRequestAnimationFrame||i.oRequestAnimationFrame||function(e){i.setTimeout(e,1e3/60)}},galleryAPI:function(){var e=this;return{openAlbum:function(t){e.$overlayContent.hide(),e.clearOverlaySource(),e.$albums.find("li").eq(t).trigger(e.clickType)},openItem:function(t){e.$mainGrid.find("div.item").eq(t).find("a.show-source").trigger(e.clickType)},showNext:function(){e.overlayNext()},showPrev:function(){e.overlayPrev()},closeItem:function(){e.overlayClose()},getItemLink:function(o){var a=e.$mainGrid.find("div.item").eq(o).find("a.share")[0].getAttribute("data-link"),n=t.createElement("a");return n.href="#"+i.location.hash.substring(1)+a,a=n.href},getItemInfo:function(t){var i=e.$mainGrid.find("div.item").eq(t).data("id");return e.albumData[i]},getCurrentFilter:function(){return e.$menu.find("li.filter.active a").text()},getCurrentSort:function(){return e.$menu.find("li.sort.active a").text()},getNumItems:function(){return e.$mainGrid.find("div.item").length},getNumVisibleItems:function(){return e.$mainGrid.find("div.item:not(.hidden)").length},getNumAlbums:function(){return e.config.albums?e.config.albums.length:0}}},onSetup:function(){this.options.onSetup.call(this.$galleryContainer[0]),this.$galleryContainer.trigger("onSetup")},onAlbumLoad:function(){var e=this.$albums.find("li.current").index();this.options.onAlbumLoad.call(this.$galleryContainer[0],e),this.$galleryContainer.trigger("onAlbumLoad",[e])},onOverlayOpen:function(){this.options.onOverlayOpen.call(this.$galleryContainer[0],this.galleryIndex),this.$galleryContainer.trigger("onOverlayOpen",[this.galleryIndex])},onOverlayClose:function(){this.options.onOverlayClose.call(this.$galleryContainer[0],this.galleryIndex),this.$galleryContainer.trigger("onOverlayClose",[this.galleryIndex])},getSupportedTransform:function(){for(var e="transform WebkitTransform MozTransform OTransform msTransform".split(" "),i=t.createElement("div"),o=0;o<e.length;o++)if(i&&void 0!==i.style[e[o]])return e[o];return!1}};e.fn.flowGallery=function(t){var i=e.extend(!0,{},e.fn.flowGallery.defaults,t);return e.isArray(t.sharers)&&(i.sharers=t.sharers),e.isArray(t.sortBy)&&(i.sortBy=t.sortBy),this.each(function(){if(!e.data(this,"flowGallery")){var t=Object.create(o);t.init(i,this),e.data(this,"flowGallery",t.galleryAPI())}})},e.fn.flowGallery.defaults={gridType:"columns",rowItemMinWidth:170,justifyLastRow:!1,columns:4,horizontalGutter:20,verticalGutter:20,shuffleItems:!1,albums:{enterSpeed:600,enterAnimation:"slideLeft",enterInSequence:!0,sequenceDelay:200,style:"tiled",pageTransition:"shrink"},items:{enterSpeed:600,enterAnimation:"fade",enterInSequence:!0,sequenceDelay:200,style:"card"},card:{captionMaxHeight:200,alwaysShowCaption:!0,descriptionInCaption:!0},alwaysShowThumbTitle:!0,thumbTitleAnimation:"slide",captionShowAnimation:"slideUp",captionAnimationSpeed:400,youtubeAPIKey:"",useYoutubeThumbs:!0,useVimeoThumbs:!0,useDailymotionThumbs:!0,newWindowLinks:!0,loadItemChunks:!0,loadChunksOnScroll:!1,initialChunkSize:null,chunkSize:10,enableDeepLinking:!1,enableSocialShare:!0,sharers:["facebook","twitter","google","pinterest"],showFileTypeIcons:!0,showGalleryMenuBar:!0,showFilterMenu:!0,showFileTypeFilters:!0,categoryFilters:[],hideEmptyCategories:!0,sortBy:["title","type"],sortOrder:"ascending",showSearchFilter:!0,searchBy:"title",menuComponentNames:{filter:{menu:"Filter",all:"All",photo:"Photo",audio:"Audio",video:"Video"},sort:{menu:"Sort",original:"Original",title:"Title",type:"Type"},albums:"Albums",search:"Type to filter"},layoutSpeed:600,showFullscreenButton:!0,fixMenuOnScroll:!0,menuFixOffset:0,overlay:{autoplay:!1,videoMaxWidth:800,itemTransition:"shrink"},getExifData:!1,scanPhotoFolder:!1,photoFolder:"",scanVideoFolder:!1,videoFolder:"",detectMobile:!1,configUrl:"config.json",configData:{},enableCache:!0,cacheFolder:"cache",cacheFileName:"config-cache.json",cacheInterval:10,phpFolder:"php",onSetup:function(){},onAlbumLoad:function(){},onOverlayOpen:function(){},onOverlayClose:function(){}}}(jQuery,document,window);
Add Comment
Please, Sign In to add comment