Files
blog/static/photo-swipe/photoswipe.min.js

4 lines
29 KiB
JavaScript

/*! PhotoSwipe - v4.0.1 - 2014-12-16
* http://photoswipe.com
* Copyright (c) 2014 Dmitry Semenov; */
!function(a,b){"function"==typeof define&&define.amd?define(b):"object"==typeof exports?module.exports=b():a.PhotoSwipe=b()}(this,function(){"use strict";var a=function(a,b,c,d){var e={features:null,bind:function(a,b,c,d){var e=(d?"remove":"add")+"EventListener";b=b.split(" ");for(var f=0;f<b.length;f++)b[f]&&a[e](b[f],c,!1)},isArray:function(a){return a instanceof Array},createEl:function(a,b){var c=document.createElement(b||"div");return a&&(c.className=a),c},getScrollY:function(){var a=window.pageYOffset;return void 0!==a?a:document.documentElement.scrollTop},unbind:function(a,b,c){e.bind(a,b,c,!0)},removeClass:function(a,b){var c=new RegExp("(\\s|^)"+b+"(\\s|$)");a.className=a.className.replace(c," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")},addClass:function(a,b){e.hasClass(a,b)||(a.className+=(a.className?" ":"")+b)},hasClass:function(a,b){return a.className&&new RegExp("(^|\\s)"+b+"(\\s|$)").test(a.className)},arraySearch:function(a,b,c){for(var d=a.length;d--;)if(a[d][c]===b)return d;return-1},extend:function(a,b,c){for(var d in b)if(b.hasOwnProperty(d)){if(c&&a.hasOwnProperty(d))continue;a[d]=b[d]}},easing:{sine:{out:function(a){return Math.sin(a*(Math.PI/2))},inOut:function(a){return-(Math.cos(Math.PI*a)-1)/2}},cubic:{out:function(a){return--a*a*a+1}}},detectFeatures:function(){if(e.features)return e.features;var a=e.createEl(),b=a.style,c="",d={};if(d.oldIE=document.all&&!document.addEventListener,d.touch="ontouchstart"in window,window.requestAnimationFrame&&(d.raf=window.requestAnimationFrame,d.caf=window.cancelAnimationFrame),d.pointerEvent=navigator.pointerEnabled||navigator.msPointerEnabled,!d.pointerEvent){var f=navigator.userAgent;if(/iP(hone|od)/.test(navigator.platform)){var g=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);g&&g.length>0&&(g=parseInt(g[1],10),g>=1&&8>g&&(d.isOldIOSPhone=!0))}var h=f.match(/Android\s([0-9\.]*)/),i=h?h[1]:0;i=parseFloat(i),i>=1&&(4.4>i&&(d.isOldAndroid=!0),d.androidVersion=i),d.isMobileOpera=/opera mini|opera mobi/i.test(f)}for(var j,k,l=["transform","perspective","animationName"],m=["","webkit","Moz","ms","O"],n=0;4>n;n++){c=m[n];for(var o=0;3>o;o++)j=l[o],k=c+(c?j.charAt(0).toUpperCase()+j.slice(1):j),!d[j]&&k in b&&(d[j]=k);c&&!d.raf&&(c=c.toLowerCase(),d.raf=window[c+"RequestAnimationFrame"],d.raf&&(d.caf=window[c+"CancelAnimationFrame"]||window[c+"CancelRequestAnimationFrame"]))}if(!d.raf){var p=0;d.raf=function(a){var b=(new Date).getTime(),c=Math.max(0,16-(b-p)),d=window.setTimeout(function(){a(b+c)},c);return p=b+c,d},d.caf=function(a){clearTimeout(a)}}return d.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,e.features=d,d}};e.detectFeatures(),e.features.oldIE&&(e.bind=function(a,b,c,d){b=b.split(" ");for(var e,f=(d?"detach":"attach")+"Event",g=function(){c.handleEvent.call(c)},h=0;h<b.length;h++)if(e=b[h])if("object"==typeof c&&c.handleEvent){if(d){if(!c["oldIE"+e])return!1}else c["oldIE"+e]=g;a[f]("on"+e,c["oldIE"+e])}else a[f]("on"+e,c)});var f=this,g=25,h=3,i={allowPanToNext:!0,spacing:.12,bgOpacity:1,mouseUsed:!1,loop:!0,pinchToClose:!0,closeOnScroll:!0,closeOnVerticalDrag:!0,hideAnimationDuration:333,showAnimationDuration:333,showHideOpacity:!1,focus:!0,escKey:!0,arrowKeys:!0,mainScrollEndFriction:.35,panEndFriction:.35,scaleMode:"fit",modal:!0,alwaysFadeIn:!1};e.extend(i,d);var j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb,mb,nb,ob,pb,qb,rb,sb,tb=function(){return{x:0,y:0}},ub=0,vb=tb(),wb=tb(),xb=tb(),yb=tb(),zb={},Ab=0,Bb=0,Cb=tb(),Db=0,Eb=!0,Fb=[],Gb={},Hb=function(a,b){e.extend(f,b.publicMethods),Fb.push(a)},Ib=function(a){var b=rb();return a>b-1?a-b:0>a?b+a:a},Jb={},Kb=function(a,b){return Jb[a]||(Jb[a]=[]),Jb[a].push(b)},Lb=function(a){var b=Jb[a];if(b){var c=Array.prototype.slice.call(arguments);c.shift();for(var d=0;d<b.length;d++)b[d].apply(f,c)}},Mb=function(){return(new Date).getTime()},Nb=function(a){kb=a,f.bg.style.opacity=a*i.bgOpacity},Ob=function(a,b,c,d){a[E]=u+b+"px, "+c+"px"+v+" scale("+d+")"},Pb=function(){eb&&Ob(eb,xb.x,xb.y,s)},Qb=function(a){Ob(a.container.style,a.initialPosition.x,a.initialPosition.y,a.initialZoomLevel)},Rb=function(a,b){b[E]=u+a+"px, 0px"+v},Sb=function(a,b){if(!i.loop&&b){var c=m+(Cb.x*Ab-a)/Cb.x,d=Math.round(a-vc.x);(0>c&&d>0||c>=rb()-1&&0>d)&&(a=vc.x+d*i.mainScrollEndFriction)}vc.x=a,Rb(a,n)},Tb=function(a){return 1/cb*a*t},Ub=function(a,b){var c=wc[a]-hb[a];return wb[a]+vb[a]+c-c*(b/t)},Vb=function(a,b){return a.x===b.x&&a.y===b.y},Wb=function(a,b){return Math.abs(a.x-b.x)<g&&Math.abs(a.y-b.y)<g},Xb=function(a,b){a.x=b.x,a.y=b.y,b.id&&(a.id=b.id)},Yb=function(){e.bind(document,"keydown",f),i.mouseUsed||e.bind(document,"mousemove",_b),e.bind(window,"resize scroll",f),Lb("bindEvents")},Zb=function(){e.unbind(window,"resize",f),e.unbind(window,"scroll",r.scroll),e.unbind(document,"keydown",f),e.unbind(document,"mousemove",_b),V&&e.unbind(window,p,f),Lb("unbindEvents")},$b=null,_b=function(){$b&&(e.unbind(document,"mousemove",_b),e.addClass(a,"pswp--has_mouse"),i.mouseUsed=!0,Lb("mouseUsed")),$b=setTimeout(function(){$b=null},100)},ac=function(a,b){var c=Zc(f.currItem,zb,a);return b&&(db=c),c},bc=function(a,b,c,d){return d===f.currItem.initialZoomLevel?(c[a]=f.currItem.initialPosition[a],!0):(c[a]=Ub(a,d),c[a]>b.min[a]?(c[a]=b.min[a],!0):c[a]<b.max[a]?(c[a]=b.max[a],!0):!1)},cc={},dc=0,ec=function(a){cc[a]&&(cc[a].raf&&I(cc[a].raf),dc--,delete cc[a])},fc=function(a){cc[a]&&ec(a),cc[a]||(dc++,cc[a]={})},gc=function(){for(var a in cc)cc.hasOwnProperty(a)&&ec(a)},hc=function(a,b,c,d,e,f,g){var h,i=Mb();fc(a);var j=function(){if(cc[a]){if(h=Mb()-i,h>=d)return ec(a),f(c),void(g&&g());f((c-b)*e(h/d)+b),cc[a].raf=H(j)}};j()},ic=function(b,c,d,f){O&&clearTimeout(O),pb=!0,ob=!0;var g;b.initialLayout?(g=b.initialLayout,b.initialLayout=null):g=i.getThumbBoundsFn&&i.getThumbBoundsFn(m);var h=function(){ec("initialZoom"),d||(Nb(1),c&&(c.style.display="block"),e.addClass(a,"pswp--animated-in"),Lb("initialZoom"+(d?"OutEnd":"InEnd"))),f&&f(),pb=!1},j=d?i.hideAnimationDuration:i.showAnimationDuration;return g&&void 0!==g.x&&j?(b.miniImg&&(b.miniImg.style.webkitBackfaceVisibility="hidden"),d||(s=g.w/b.w,xb.x=g.x,xb.y=g.y-K,i.showHideOpacity&&(a.style.opacity=.001,a.style.webkitBackfaceVisibility="hidden"),Pb()),fc("initialZoom"),d&&!l&&e.removeClass(a,"pswp--animated-in"),O=setTimeout(function(){if(Lb("initialZoom"+(d?"Out":"In")),d){var c=g.w/b.w,f={x:xb.x,y:xb.y},k=s,m=K,n=kb,o=function(b){x&&(m=e.getScrollY(),x=!1),1===b?(s=c,xb.x=g.x,xb.y=g.y-m,l&&h()):(s=(c-k)*b+k,xb.x=(g.x-f.x)*b+f.x,xb.y=(g.y-m-f.y)*b+f.y),Pb(),i.showHideOpacity?a.style.opacity=1-b:Nb(n-b*n)};l?hc("initialZoom",0,1,j,e.easing.cubic.out,o):(o(1),O=setTimeout(h,j+20))}else s=b.initialZoomLevel,Xb(xb,b.initialPosition),Pb(),Nb(1),i.showHideOpacity?a.style.opacity=1:Nb(1),O=setTimeout(h,j+20)},d?25:90),!0):(Lb("initialZoom"+(d?"Out":"In")),s=b.initialZoomLevel,Xb(xb,b.initialPosition),Pb(),a.style.opacity=d?0:1,Nb(1),h(),!1)},jc={shout:Lb,listen:Kb,viewportSize:zb,options:i,isMainScrollAnimating:function(){return fb},getZoomLevel:function(){return s},getCurrentIndex:function(){return m},isDragging:function(){return V},isZooming:function(){return ab},applyZoomPan:function(a,b,c){xb.x=b,xb.y=c,s=a,Pb()},init:function(){if(!j&&!k){var c;if(f.framework=e,f.template=a,f.bg=a.children[0],J=a.className,j=!0,N=e.detectFeatures(),H=N.raf,I=N.caf,E=N.transform,L=N.oldIE,f.scrollWrap=a.children[1],f.container=f.scrollWrap.children[0],n=f.container.style,E){var d=N.perspective&&!G;u="translate"+(d?"3d(":"("),v=N.perspective?", 0px)":")"}else E="left",e.addClass(a,"pswp--ie"),Rb=function(a,b){b.left=a+"px"},Qb=function(a){var b=a.container.style,c=a.fitRatio*a.w,d=a.fitRatio*a.h;b.width=c+"px",b.height=d+"px",b.left=a.initialPosition.x+"px",b.top=a.initialPosition.y+"px"},Pb=function(){if(eb){var a=eb,b=f.currItem,c=b.fitRatio*b.w,d=b.fitRatio*b.h;a.width=c+"px",a.height=d+"px",a.left=xb.x+"px",a.top=xb.y+"px"}};var g=function(a,b,c,d,e){A=a+b,B=a+c,C=a+d,D=e?a+e:""};for(f.itemHolders=y=[{el:f.container.children[0],wrap:0,index:-1},{el:f.container.children[1],wrap:0,index:-1},{el:f.container.children[2],wrap:0,index:-1}],y[0].el.style.display=y[2].el.style.display="none",F=N.pointerEvent,F&&N.touch&&(N.touch=!1),F?navigator.pointerEnabled?g("pointer","down","move","up","cancel"):g("MSPointer","Down","Move","Up","Cancel"):N.touch?(g("touch","start","move","end","cancel"),G=!0):g("mouse","down","move","up"),p=B+" "+C+" "+D,q=A,F&&!G&&(G=navigator.maxTouchPoints>1||navigator.msMaxTouchPoints>1),f.likelyTouchDevice=G,(!N.animationName||!N.transform||N.isOldIOSPhone||N.isOldAndroid||N.isMobileOpera)&&(i.showAnimationDuration=i.hideAnimationDuration=0),c=0;c<Fb.length;c++)f["init"+Fb[c]]();if(b){var t=f.ui=new b(f,e);t.init()}G||(i.allowPanToNext=!1);var z;r={resize:f.updateSize,scroll:function(){x=!0,i.closeOnScroll&&j&&(!f.likelyTouchDevice||i.mouseUsed)&&Math.abs(e.getScrollY()-K)>2&&(l=!0,f.close())},keydown:function(a){z="",i.escKey&&27===a.keyCode?z="close":i.arrowKeys&&(37===a.keyCode?z="prev":39===a.keyCode&&(z="next")),z&&(a.ctrlKey||a.altKey||a.shiftKey||a.metaKey||(a.preventDefault?a.preventDefault():a.returnValue=!1,f[z]()))}},r[A]=Nc,r[B]=Oc,r[C]=Qc,D&&(r[D]=r[C]),N.touch&&(q+=" mousedown",p+=" mousemove mouseup",r.mousedown=r[A],r.mousemove=r[B],r.mouseup=r[C]),Lb("firstUpdate"),m=m||i.index||0,(isNaN(m)||0>m||m>=rb())&&(m=0),f.currItem=qb(m),(N.isOldIOSPhone||N.isOldAndroid)&&(Eb=!1),i.modal&&(a.setAttribute("aria-hidden","false"),Eb?a.style.position="fixed":(a.style.position="absolute",a.style.top=e.getScrollY()+"px")),void 0===M&&(Lb("initialLayout"),M=K=e.getScrollY());var O="pswp--open ";for(i.mainClass&&(O+=i.mainClass+" "),i.showHideOpacity&&(O+="pswp--animate_opacity "),O+=G?"pswp--touch":"pswp--notouch",O+=N.animationName?" pswp--css_animation":"",O+=N.svg?" pswp--svg":"",e.addClass(a,O),f.updateSize(),o=-1,Db=null,c=0;h>c;c++)Rb((c+o)*Cb.x,y[c].el.style);L||e.bind(f.scrollWrap,q,f),Kb("initialZoomInEnd",function(){f.setContent(y[0],m-1),f.setContent(y[2],m+1),y[0].el.style.display=y[2].el.style.display="block",i.focus&&a.focus(),Yb()}),f.setContent(y[1],m),f.updateCurrItem(),Lb("afterInit"),Eb||(w=setInterval(function(){dc||V||ab||s!==f.currItem.initialZoomLevel||f.updateSize()},1e3)),e.addClass(a,"pswp--visible")}},close:function(){j&&(j=!1,k=!0,Lb("close"),Zb(),ic(f.currItem,null,!0,f.destroy))},destroy:function(){Lb("destroy"),O&&clearTimeout(O),i.modal&&(a.setAttribute("aria-hidden","true"),a.className=J),w&&clearInterval(w),e.unbind(f.scrollWrap,q,f),e.unbind(window,"scroll",f),zc(),gc(),Jb=null},panTo:function(a,b,c){c||(a>db.min.x?a=db.min.x:a<db.max.x&&(a=db.max.x),b>db.min.y?b=db.min.y:b<db.max.y&&(b=db.max.y)),xb.x=a,xb.y=b,Pb()},handleEvent:function(a){a=a||window.event,r[a.type]&&r[a.type](a)},goTo:function(a){a=Ib(a);var b=a-m;Db=b,m=a,f.currItem=qb(m),Ab-=b,Sb(Cb.x*Ab),gc(),fb=!1,f.updateCurrItem()},next:function(){f.goTo(m+1)},prev:function(){f.goTo(m-1)},updateCurrZoomItem:function(a){if(a&&Lb("beforeChange",0),y[1].el.children.length){var b=y[1].el.children[0];eb=e.hasClass(b,"pswp__zoom-wrap")?b.style:null}else eb=null;db=f.currItem.bounds,t=s=f.currItem.initialZoomLevel,xb.x=db.center.x,xb.y=db.center.y,a&&Lb("afterChange")},invalidateCurrItems:function(){for(var a=0;h>a;a++)y[a].item&&(y[a].item.needsUpdate=!0)},updateCurrItem:function(a){if(0!==Db){var b,c=Math.abs(Db);if(!(a&&2>c)){f.currItem=qb(m),Lb("beforeChange",Db),c>=h&&(o+=Db+(Db>0?-h:h),c=h);for(var d=0;c>d;d++)Db>0?(b=y.shift(),y[h-1]=b,o++,Rb((o+2)*Cb.x,b.el.style),f.setContent(b,m-c+d+1+1)):(b=y.pop(),y.unshift(b),o--,Rb(o*Cb.x,b.el.style),f.setContent(b,m+c-d-1-1));if(eb&&1===Math.abs(Db)){var e=qb(z);e.initialZoomLevel!==s&&(Zc(e,zb),Qb(e))}Db=0,f.updateCurrZoomItem(),z=m,Lb("afterChange")}}},updateSize:function(b){if(!Eb){var c=e.getScrollY();if(M!==c&&(a.style.top=c+"px",M=c),!b&&Gb.x===window.innerWidth&&Gb.y===window.innerHeight)return;Gb.x=window.innerWidth,Gb.y=window.innerHeight,a.style.height=Gb.y+"px"}if(zb.x=f.scrollWrap.clientWidth,zb.y=f.scrollWrap.clientHeight,hb={x:0,y:M},Cb.x=zb.x+Math.round(zb.x*i.spacing),Cb.y=zb.y,Sb(Cb.x*Ab),Lb("beforeResize"),void 0!==o)for(var d,g,j=0;h>j;j++)d=y[j],Rb((j+o)*Cb.x,d.el.style),g=qb(d.index),g.needsUpdate&&(f.cleanSlide(g),f.setContent(d,d.index),1===j&&f.updateCurrZoomItem(!0),g.needsUpdate=!1),g&&g.container&&(Zc(g,zb),Qb(g));t=s=f.currItem.initialZoomLevel,db=f.currItem.bounds,db&&(xb.x=db.center.x,xb.y=db.center.y,Pb()),Lb("resize")},zoomTo:function(a,b,c,d,f){b&&(t=s,wc.x=Math.abs(b.x)-xb.x,wc.y=Math.abs(b.y)-xb.y,Xb(wb,xb));var g=ac(a,!1),h={};bc("x",g,h,a),bc("y",g,h,a);var i=s,j={x:xb.x,y:xb.y},k=function(b){1===b?(s=a,xb.x=h.x,xb.y=h.y):(s=(a-i)*b+i,xb.x=(h.x-j.x)*b+j.x,xb.y=(h.y-j.y)*b+j.y),f&&f(b),Pb()};c?hc("customZoomTo",0,1,c,d||e.easing.sine.inOut,k):k(1)}},kc=30,lc=10,mc={},nc={},oc={},pc={},qc={},rc=[],sc={},tc=[],uc={},vc=tb(),wc=tb(),xc=tb(),yc=function(a,b){return uc.x=Math.abs(a.x-b.x),uc.y=Math.abs(a.y-b.y),Math.sqrt(uc.x*uc.x+uc.y*uc.y)},zc=function(){Z&&(I(Z),Z=null)},Ac=function(){V&&(Z=H(Ac),Pc())},Bc=function(){return!("fit"===i.scaleMode&&s===f.currItem.initialZoomLevel)},Cc={},Dc=function(a,b){return Cc.prevent="A"!==a.target.tagName,Lb("preventDragEvent",a,b,Cc),Cc.prevent},Ec=function(a,b){return b.x=a.pageX,b.y=a.pageY,b.id=a.identifier,b},Fc=function(a,b,c){c.x=.5*(a.x+b.x),c.y=.5*(a.y+b.y)},Gc=function(a,b,c){if(a-Q>50){var d=tc.length>2?tc.shift():{};d.x=b,d.y=c,tc.push(d),Q=a}},Hc=function(){var a=xb.y-f.currItem.initialPosition.y;return 1-Math.abs(a/(zb.y/2))},Ic={},Jc={},Kc=[],Lc=function(a){for(;Kc.length>0;)Kc.pop();return F?(mb=0,rc.forEach(function(a){0===mb?Kc[0]=a:1===mb&&(Kc[1]=a),mb++})):a.type.indexOf("touch")>-1?a.touches&&a.touches.length>0&&(Kc[0]=Ec(a.touches[0],Ic),a.touches.length>1&&(Kc[1]=Ec(a.touches[1],Jc))):(Ic.x=a.pageX,Ic.y=a.pageY,Ic.id="",Kc[0]=Ic),Kc},Mc=function(a,b){var c,d,e=0,g=xb[a]+b[a],h=b[a]>0,j=vc.x+b.x,k=vc.x-sc.x;c=g>db.min[a]||g<db.max[a]?i.panEndFriction:1,g=xb[a]+b[a]*c;var l,m;return!i.allowPanToNext&&s!==f.currItem.initialZoomLevel||(eb?"h"!==gb||"x"!==a||X||(h?(g>db.min[a]&&(c=i.panEndFriction,e=db.min[a]-g,d=db.min[a]-wb[a]),(0>=d||0>k)&&rb()>1?(m=j,0>k&&j>sc.x&&(m=sc.x)):db.min.x!==db.max.x&&(l=g)):(g<db.max[a]&&(c=i.panEndFriction,e=g-db.max[a],d=wb[a]-db.max[a]),(0>=d||k>0)&&rb()>1?(m=j,k>0&&j<sc.x&&(m=sc.x)):db.min.x!==db.max.x&&(l=g))):m=j,"x"!==a)?void(fb||$||s>f.currItem.fitRatio&&(xb[a]+=b[a]*c)):(void 0!==m&&(Sb(m,!0),$=m===sc.x?!1:!0),db.min.x!==db.max.x&&(void 0!==l?xb.x=l:$||(xb.x+=b.x*c)),void 0!==m)},Nc=function(a){if(pb)return void a.preventDefault();if(!U||"mousedown"!==a.type){if(Dc(a,!0)&&a.preventDefault(),Lb("pointerDown"),F){var b=e.arraySearch(rc,a.pointerId,"id");0>b&&(b=rc.length),rc[b]={x:a.pageX,y:a.pageY,id:a.pointerId}}var c=Lc(a),d=c.length;_=null,gc(),V&&1!==d||(V=ib=!0,e.bind(window,p,f),S=lb=jb=T=$=Y=W=X=!1,gb=null,Lb("firstTouchStart",c),Xb(wb,xb),vb.x=vb.y=0,Xb(pc,c[0]),Xb(qc,pc),sc.x=Cb.x*Ab,tc=[{x:pc.x,y:pc.y}],Q=P=Mb(),ac(s,!0),zc(),Ac()),!ab&&d>1&&!fb&&!$&&(t=s,X=!1,ab=W=!0,vb.y=vb.x=0,Xb(wb,xb),Xb(mc,c[0]),Xb(nc,c[1]),Fc(mc,nc,xc),wc.x=Math.abs(xc.x)-xb.x,wc.y=Math.abs(xc.y)-xb.y,bb=cb=yc(mc,nc))}},Oc=function(a){if(a.preventDefault(),F){var b=e.arraySearch(rc,a.pointerId,"id");if(b>-1){var c=rc[b];c.x=a.pageX,c.y=a.pageY}}if(V){var d=Lc(a);if(gb||Y||ab)_=d;else{var f=Math.abs(d[0].x-pc.x)-Math.abs(d[0].y-pc.y);Math.abs(f)>=lc&&(gb=f>0?"h":"v",_=d)}}},Pc=function(){if(_){var a=_.length;if(0!==a)if(Xb(mc,_[0]),oc.x=mc.x-pc.x,oc.y=mc.y-pc.y,ab&&a>1){if(pc.x=mc.x,pc.y=mc.y,!oc.x&&!oc.y&&Vb(_[1],nc))return;Xb(nc,_[1]),X||(X=!0,Lb("zoomGestureStarted"));var b=yc(mc,nc),c=Tb(b);c>f.currItem.initialZoomLevel+f.currItem.initialZoomLevel/15&&(lb=!0);var d=1;if(c<f.currItem.minZoom)if(i.pinchToClose&&!lb&&t<=f.currItem.initialZoomLevel){var e=f.currItem.minZoom-c,g=1-e/(f.currItem.minZoom/1.2);Nb(g),Lb("onPinchClose",g),jb=!0}else d=(f.currItem.minZoom-c)/f.currItem.minZoom,d>1&&(d=1),c=f.currItem.minZoom-d*(f.currItem.minZoom/3);else c>f.currItem.maxZoom&&(d=(c-f.currItem.maxZoom)/(6*f.currItem.minZoom),d>1&&(d=1),c=f.currItem.maxZoom+d*f.currItem.minZoom);1!==d&&0>d&&(d=0),bb=b,Fc(mc,nc,yb),vb.x+=yb.x-xc.x,vb.y+=yb.y-xc.y,Xb(xc,yb),xb.x=Ub("x",c),xb.y=Ub("y",c),S=c>s,s=c,Pb()}else{if(!gb)return;if(ib&&(ib=!1,Math.abs(oc.x)>=lc&&(oc.x-=_[0].x-qc.x),Math.abs(oc.y)>=lc&&(oc.y-=_[0].y-qc.y)),pc.x=mc.x,pc.y=mc.y,0===oc.x&&0===oc.y)return;if("v"===gb&&i.closeOnVerticalDrag&&!Bc()){vb.y+=oc.y,xb.y+=oc.y;var h=Hc();return T=!0,Lb("onVerticalDrag",h),Nb(h),void Pb()}Gc(Mb(),mc.x,mc.y),Y=!0,db=f.currItem.bounds;var j=Mc("x",oc);j||Mc("y",oc),Pb()}}},Qc=function(a){if(N.isOldAndroid){if(U&&"mouseup"===a.type)return;a.type.indexOf("touch")>-1&&(clearTimeout(U),U=setTimeout(function(){U=0},600))}Lb("pointerUp"),Dc(a,!1)&&a.preventDefault();var b;if(F){var c=e.arraySearch(rc,a.pointerId,"id");if(c>-1)if(b=rc.splice(c,1)[0],navigator.pointerEnabled)b.type=a.pointerType||"mouse";else{var d={4:"mouse",2:"touch",3:"pen"};b.type=d[a.pointerType],b.type||(b.type=a.pointerType||"mouse")}}var g,h=Lc(a),i=h.length;if("mouseup"===a.type&&(i=0),2===i)return _=null,!0;1===i&&Xb(qc,h[0]),0!==i||gb||fb||(b||("mouseup"===a.type?b={x:a.pageX,y:a.pageY,type:"mouse"}:a.changedTouches&&a.changedTouches[0]&&(b={x:a.changedTouches[0].pageX,y:a.changedTouches[0].pageY,type:"touch"})),Lb("touchRelease",a,b));var j=-1;if(0===i&&(V=!1,e.unbind(window,p,f),zc(),ab?j=0:-1!==ub&&(j=Mb()-ub)),ub=1===i?Mb():-1,g=-1!==j&&150>j?"zoom":"swipe",ab&&2>i&&(ab=!1,1===i&&(g="zoomPointerUp"),Lb("zoomGestureEnded")),_=null,Y||X||fb||T)if(gc(),R||(R=Rc()),R.calculateSwipeSpeed("x"),T){var k=Hc();if(.6>k)f.close();else{var l=xb.y,m=kb;hc("verticalDrag",0,1,300,e.easing.cubic.out,function(a){xb.y=(f.currItem.initialPosition.y-l)*a+l,Nb((1-m)*a+m),Pb()}),Lb("onVerticalDrag",1)}}else{if(($||fb)&&0===i){var n=Tc(g,R);if(n)return;g="zoomPointerUp"}if(!fb)return"swipe"!==g?void Uc():void(!$&&s>f.currItem.fitRatio&&Sc(R))}},Rc=function(){var a,b,c={lastFlickOffset:{},lastFlickDist:{},lastFlickSpeed:{},slowDownRatio:{},slowDownRatioReverse:{},speedDecelerationRatio:{},speedDecelerationRatioAbs:{},distanceOffset:{},backAnimDestination:{},backAnimStarted:{},calculateSwipeSpeed:function(d){tc.length>1?(a=Mb()-Q+50,b=tc[tc.length-2][d]):(a=Mb()-P,b=qc[d]),c.lastFlickOffset[d]=pc[d]-b,c.lastFlickDist[d]=Math.abs(c.lastFlickOffset[d]),c.lastFlickSpeed[d]=c.lastFlickDist[d]>20?c.lastFlickOffset[d]/a:0,Math.abs(c.lastFlickSpeed[d])<.1&&(c.lastFlickSpeed[d]=0),c.slowDownRatio[d]=.95,c.slowDownRatioReverse[d]=1-c.slowDownRatio[d],c.speedDecelerationRatio[d]=1},calculateOverBoundsAnimOffset:function(a,b){c.backAnimStarted[a]||(xb[a]>db.min[a]?c.backAnimDestination[a]=db.min[a]:xb[a]<db.max[a]&&(c.backAnimDestination[a]=db.max[a]),void 0!==c.backAnimDestination[a]&&(c.slowDownRatio[a]=.7,c.slowDownRatioReverse[a]=1-c.slowDownRatio[a],c.speedDecelerationRatioAbs[a]<.05&&(c.lastFlickSpeed[a]=0,c.backAnimStarted[a]=!0,hc("bounceZoomPan"+a,xb[a],c.backAnimDestination[a],b||300,e.easing.sine.out,function(b){xb[a]=b,Pb()}))))},calculateAnimOffset:function(a){c.backAnimStarted[a]||(c.speedDecelerationRatio[a]=c.speedDecelerationRatio[a]*(c.slowDownRatio[a]+c.slowDownRatioReverse[a]-c.slowDownRatioReverse[a]*c.timeDiff/10),c.speedDecelerationRatioAbs[a]=Math.abs(c.lastFlickSpeed[a]*c.speedDecelerationRatio[a]),c.distanceOffset[a]=c.lastFlickSpeed[a]*c.speedDecelerationRatio[a]*c.timeDiff,xb[a]+=c.distanceOffset[a])},panAnimLoop:function(){return cc.zoomPan&&(cc.zoomPan.raf=H(c.panAnimLoop),c.now=Mb(),c.timeDiff=c.now-c.lastNow,c.lastNow=c.now,c.calculateAnimOffset("x"),c.calculateAnimOffset("y"),Pb(),c.calculateOverBoundsAnimOffset("x"),c.calculateOverBoundsAnimOffset("y"),c.speedDecelerationRatioAbs.x<.05&&c.speedDecelerationRatioAbs.y<.05)?void ec("zoomPan"):void 0}};return c},Sc=function(a){return a.calculateSwipeSpeed("y"),db=f.currItem.bounds,a.backAnimDestination={},a.backAnimStarted={},Math.abs(a.lastFlickSpeed.x)<=.05&&Math.abs(a.lastFlickSpeed.y)<=.05?(a.speedDecelerationRatioAbs.x=a.speedDecelerationRatioAbs.y=0,a.calculateOverBoundsAnimOffset("x"),a.calculateOverBoundsAnimOffset("y"),!0):(fc("zoomPan"),a.lastNow=Mb(),void a.panAnimLoop())},Tc=function(a,b){var c;fb||(Bb=m);var d;if("swipe"===a){var g=pc.x-qc.x;g>kc&&(b.lastFlickDist.x<10||b.lastFlickOffset.x>20)?d=-1:-kc>g&&(b.lastFlickDist.x<10||b.lastFlickOffset.x<-20)&&(d=1)}var h;d&&(m+=d,0>m?(m=i.loop?rb()-1:0,h=!0):m>=rb()&&(m=i.loop?0:rb()-1,h=!0),(!h||i.loop)&&(Db+=d,Ab-=d,c=!0));var j,k=Cb.x*Ab,l=Math.abs(k-vc.x);return c||k>vc.x==b.lastFlickSpeed.x>0?(j=Math.abs(b.lastFlickSpeed.x)>0?l/Math.abs(b.lastFlickSpeed.x):333,j=Math.min(j,400),j=Math.max(j,250)):j=333,Bb===m&&(c=!1),fb=!0,hc("mainScroll",vc.x,k,j,e.easing.cubic.out,Sb,function(){gc(),fb=!1,Bb=-1,(c||Bb!==m)&&f.updateCurrItem(),Lb("mainScrollAnimComplete")}),c&&f.updateCurrItem(!0),c},Uc=function(){var a=s;s<f.currItem.minZoom?a=f.currItem.minZoom:s>f.currItem.maxZoom&&(a=f.currItem.maxZoom);var b,c=1,d=kb;return jb&&!S&&!lb&&s<f.currItem.minZoom?(l=!0,f.close(),!0):(jb&&(b=function(a){Nb((c-d)*a+d)}),f.zoomTo(a,0,300,e.easing.cubic.out,b),!0)},Vc={},Wc={},Xc=[],Yc={index:0,errorMsg:'<div class="pswp__error-msg"><a href="%url%" target="_blank">The image</a> could not be loaded.</div>',forceProgressiveLoading:!1,preload:[1,1],getNumItemsFn:function(){return nb.length}},Zc=function(a,b,c){if(a.src){var d=!c;if(d&&(a.vGap||(a.vGap={top:0,bottom:0}),Lb("parseVerticalMargin",a)),Vc.x=b.x,Vc.y=b.y-a.vGap.top-a.vGap.bottom,d){var e=Vc.x/a.w,f=Vc.y/a.h;a.fitRatio=f>e?e:f,a.fillRatio=e>f?e:f;var g=i.scaleMode;"orig"===g?c=1:"fit"===g?c=a.fitRatio:"fill"===g&&(c=a.fillRatio),c>1&&(c=1),a.initialZoomLevel=c,a.maxZoom=2,a.doubleTapZoom=2*c>1?2*c:1,a.minZoom=c,a.bounds||(a.bounds={center:{},max:{},min:{}})}if(!c)return;Wc.x=a.w*c,Wc.y=a.h*c;var h=a.bounds;return h.center.x=Math.round((Vc.x-Wc.x)/2),h.center.y=Math.round((Vc.y-Wc.y)/2)+a.vGap.top,h.max.x=Wc.x>Vc.x?Math.round(Vc.x-Wc.x):h.center.x,h.max.y=Wc.y>Vc.y?Math.round(Vc.y-Wc.y)+a.vGap.top:h.center.y,h.min.x=Wc.x>Vc.x?0:h.center.x,h.min.y=Wc.y>Vc.y?a.vGap.top:h.center.y,d&&c===a.initialZoomLevel&&(a.initialPosition=h.center),h}return!1},$c=function(a,b,c,d,e,g){var h;!e&&(G||i.alwaysFadeIn)&&(a===m||f.isMainScrollAnimating()||f.isDragging()&&!f.isZooming())&&(h=!0),d&&(h&&(d.style.opacity=0),b.imageAppended=!0,c.appendChild(d),h&&setTimeout(function(){d.style.opacity=1,g&&setTimeout(function(){b&&b.loaded&&b.placeholder&&(b.placeholder.style.display="none",b.placeholder=null)},500)},50))},_c=function(a){a.loading=!0,a.loaded=!1;var b=a.img=e.createEl("pswp__img","img"),c=function(){a.loading=!1,a.loaded=!0,a.loadComplete?a.loadComplete(a):a.img=null,b.onload=b.onerror=null,b=null};return b.onload=c,b.onerror=function(){a.loadError=!0,c()},b.src=a.src,b},ad=function(a,b){return a.loadError?(b.el.innerHTML=i.errorMsg.replace("%url%",a.src),!0):void 0},bd=function(){if(Xc.length){for(var a,b=0;b<Xc.length;b++)a=Xc[b],a.holder.index===a.index&&$c(a.index,a.item,a.baseDiv,a.img);Xc=[]}};Hb("Controller",{publicMethods:{lazyLoadItem:function(a){a=Ib(a);var b=qb(a);!b||b.loaded||b.loading||(Lb("gettingData",a,b),_c(b))},initController:function(){e.extend(i,Yc,!0),f.items=nb=c,qb=f.getItemAt,rb=i.getNumItemsFn,sb=i.loop,rb()<3&&(i.loop=!1),Kb("beforeChange",function(a){var b,c=i.preload,d=null===a?!0:a>0,e=Math.min(c[0],rb()),g=Math.min(c[1],rb());for(b=1;(d?g:e)>=b;b++)f.lazyLoadItem(m+b);for(b=1;(d?e:g)>=b;b++)f.lazyLoadItem(m-b)}),Kb("initialLayout",function(){f.currItem.initialLayout=i.getThumbBoundsFn&&i.getThumbBoundsFn(m)}),Kb("mainScrollAnimComplete",bd),Kb("initialZoomInEnd",bd),Kb("destroy",function(){for(var a,b=0;b<nb.length;b++)a=nb[b],a.container&&(a.container=null),a.placeholder&&(a.placeholder=null),a.img&&(a.img=null),a.preloader&&(a.preloader=null),a.loadError&&(a.loaded=a.loadError=!1);Xc=null})},getItemAt:function(a){return a>=0&&void 0!==nb[a]?nb[a]:!1},allowProgressiveImg:function(){return i.forceProgressiveLoading||!G||i.mouseUsed||screen.width>1200},setContent:function(a,b){i.loop&&(b=Ib(b));var c=f.getItemAt(a.index);c&&(c.container=null);var d,g=f.getItemAt(b);if(g){if(Lb("gettingData",b,g),a.index=b,a.item=g,ad(g,a))return g.initialPosition.x=g.initialPosition.y=0,g.initialZoomLevel=g.maxZoom=g.minZoom=1,eb=null,g.w=50,g.h=50,void Qb(g);var h=g.container=e.createEl("pswp__zoom-wrap");if(g.loaded)d=e.createEl("pswp__img","img"),d.style.webkitBackfaceVisibility="hidden",d.style.opacity=1,d.src=g.src,$c(b,g,h,d,!0);else{if(g.loadComplete=function(c){if(j){if(c.img.style.webkitBackfaceVisibility="hidden",a.index===b){if(ad(c,a))return void(c.img=null);c.imageAppended?!pb&&c.placeholder&&(c.placeholder.style.display="none",c.placeholder=null):N.transform&&(fb||pb)?Xc.push({item:c,baseDiv:h,img:c.img,index:b,holder:a}):$c(b,c,h,c.img,fb||pb)}c.loadComplete=null,c.img=null,Lb("imageLoadComplete",b,c)}},e.features.transform){var k=e.createEl("pswp__img pswp__img--placeholder"+(g.msrc?"":" pswp__img--placeholder--blank"),g.msrc?"img":"");g.msrc&&(k.src=g.msrc),k.style.width=g.w+"px",k.style.height=g.h+"px",h.appendChild(k),g.placeholder=k}g.loading||_c(g),f.allowProgressiveImg()&&(!ob&&N.transform?Xc.push({item:g,baseDiv:h,img:g.img,index:b,holder:a}):$c(b,g,h,g.img,!0,!0))}Zc(g,zb),ob||b!==m?Qb(g):(eb=h.style,ic(g,d||g.img)),a.el.innerHTML="",a.el.appendChild(h)}else a.el.innerHTML=""},cleanSlide:function(a){a.img&&(a.img.onload=a.img.onerror=null),a.loaded=a.loading=a.img=a.imageAppended=!1}}});var cd,dd={},ed=function(a,b,c){var d=document.createEvent("CustomEvent");d.initCustomEvent("pswpTap",!0,!0,{origEvent:a,target:a.target,releasePoint:b,pointerType:c||"touch"}),a.target.dispatchEvent(d)};Hb("Tap",{publicMethods:{initTap:function(){Kb("firstTouchStart",f.onTapStart),Kb("touchRelease",f.onTapRelease),Kb("destroy",function(){dd={},cd=null})},onTapStart:function(a){a.length>1&&(clearTimeout(cd),cd=null)},onTapRelease:function(a,b){if(b&&!Y&&!W&&!dc){var c=b;if(cd&&(clearTimeout(cd),cd=null,Wb(c,dd)))return void Lb("doubleTap",c);var d=a.target.tagName.toLowerCase();if("mouse"===b.type)return void ed(a,b,"mouse");if("button"===d||e.hasClass(a.target,"pswp__single-tap"))return void ed(a,b);Xb(dd,c),cd=setTimeout(function(){ed(a,b),cd=null},300)}}}});var fd;Hb("DesktopZoom",{publicMethods:{handleMouseWheel:function(a){if(s<=f.currItem.fitRatio)return!0;if(a.preventDefault(),a.stopPropagation(),fd.x=0,"deltaX"in a)fd.x=a.deltaX,fd.y=a.deltaY;else if("wheelDelta"in a)a.wheelDeltaX&&(fd.x=-.16*a.wheelDeltaX),fd.y=a.wheelDeltaY?-.16*a.wheelDeltaY:-.16*a.wheelDelta;else{if(!("detail"in a))return;fd.y=a.detail}ac(s,!0),f.panTo(xb.x-fd.x,xb.y-fd.y)},toggleDesktopZoom:function(b){b=b||{x:zb.x/2,y:zb.y/2+K};var c=1===s;f.mouseZoomedIn=!c,f.zoomTo(c?f.currItem.initialZoomLevel:1,b,333),e[(c?"remove":"add")+"Class"](a,"pswp--zoomed-in")},setupDesktopZoom:function(b){fd={};var c="wheel mousewheel DOMMouseScroll";Kb("bindEvents",function(){e.bind(a,c,f.handleMouseWheel)}),Kb("unbindEvents",function(){fd&&e.unbind(a,c,f.handleMouseWheel)}),f.mouseZoomedIn=!1;var d,g=function(){f.mouseZoomedIn&&(e.removeClass(a,"pswp--zoomed-in"),f.mouseZoomedIn=!1),1>s?e.addClass(a,"pswp--zoom-allowed"):e.removeClass(a,"pswp--zoom-allowed"),h()},h=function(){d&&(e.removeClass(a,"pswp--dragging"),d=!1)};Kb("resize",g),Kb("afterChange",g),Kb("pointerDown",function(){f.mouseZoomedIn&&(d=!0,e.addClass(a,"pswp--dragging"))}),Kb("pointerUp",h),b||g()},initDesktopZoom:function(){L||(G?Kb("mouseUsed",function(){f.setupDesktopZoom()}):f.setupDesktopZoom(!0))}}});var gd,hd,id,jd,kd,ld,md,nd,od,pd,qd,rd={history:!0,galleryUID:1},sd=function(){return qd.hash.substring(1)},td=function(){gd&&clearTimeout(gd),id&&clearTimeout(id)},ud=function(){var a=sd(),b={};if(a.length<5)return b;for(var c=a.split("&"),d=0;d<c.length;d++)if(c[d]){var e=c[d].split("=");e.length<2||(b[e[0]]=e[1])}return b.pid=parseInt(b.pid,10)-1,b.pid<0&&(b.pid=0),b},vd=function(){if(id&&clearTimeout(id),dc||V)return void(id=setTimeout(vd,500));jd?clearTimeout(hd):jd=!0;var a=md+"&gid="+i.galleryUID+"&pid="+(m+1);if(nd){var b=qd.href.split("#")[0]+"#"+a;qd.replace(b)}else-1===qd.hash.indexOf(a)&&(pd=!0),qd.hash=a;nd=!0,hd=setTimeout(function(){jd=!1},60)};Hb("History",{publicMethods:{initHistory:function(){if(e.extend(i,rd,!0),i.history){qd=window.location,pd=!1,od=!1,nd=!1,md=sd(),md.indexOf("gid=")>-1&&(md=md.split("&gid=")[0],md=md.split("?gid=")[0]),Kb("afterChange",f.updateURL),Kb("unbindEvents",function(){e.unbind(window,"hashchange",f.onHashChange)});var a=function(){ld=!0,od||(pd?history.back():md?qd.hash=md:"pushState"in history?history.pushState("",document.title,qd.pathname+qd.search):qd.hash=""),td()};Kb("unbindEvents",function(){l&&a()}),Kb("destroy",function(){ld||a()}),Kb("firstUpdate",function(){m=ud().pid});var b=md.indexOf("pid=");b>-1&&(md=md.substring(0,b),"&"===md.slice(-1)&&(md=md.slice(0,-1))),setTimeout(function(){j&&e.bind(window,"hashchange",f.onHashChange)},40)}},onHashChange:function(){return sd()===md?(od=!0,void f.close()):void(jd||(kd=!0,f.goTo(ud().pid),kd=!1))},updateURL:function(){td(),kd||(nd?gd=setTimeout(vd,800):vd())}}}),e.extend(f,jc)};return a});