// PhotoSwipe - http://www.photoswipe.com/
// Copyright (c) 2011 by Code Computerlove (http://www.codecomputerlove.com)
// Licensed under the MIT license
// version: 2.0.3
(function(e){if(!Function.prototype.bind)Function.prototype.bind=function(d){var a=[].slice,c=a.call(arguments,1),b=this,f=function(){},h=function(){return b.apply(this instanceof f?this:d||{},c.concat(a.call(arguments)))};f.prototype=b.prototype;h.prototype=new f;return h};if(typeof e.Code==="undefined")e.Code={};e.Code.Util={registerNamespace:function(){var d=arguments,a=null,c,b,f;for(c=0;c<d.length;c++){f=d[c];f=f.split(".");a=f[0];typeof e[a]==="undefined"&&(e[a]={});a=e[a];for(b=1;b<f.length;++b)a[f[b]]=
a[f[b]]||{},a=a[f[b]]}},coalesce:function(){var d;for(d=0;d<arguments.length;d++)if(!this.isNothing(arguments[d]))return arguments[d];return null},extend:function(d,a,c){var b;this.isNothing(c)&&(c=!0);if(d&&a&&this.isObject(a))for(b in a)this.objectHasProperty(a,b)&&(c?d[b]=a[b]:typeof d[b]==="undefined"&&(d[b]=a[b]))},clone:function(d){var a={};this.extend(a,d);return a},isObject:function(d){return d instanceof Object},isFunction:function(d){return{}.toString.call(d)==="[object Function]"},isArray:function(d){return d instanceof
Array},isLikeArray:function(d){return typeof d.length==="number"},isNumber:function(d){return typeof d==="number"},isString:function(d){return typeof d==="string"},isNothing:function(d){if(typeof d==="undefined"||d===null)return!0;return!1},swapArrayElements:function(d,a,c){var b=d[a];d[a]=d[c];d[c]=b},trim:function(d){return d.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},toCamelCase:function(d){return d.replace(/(\-[a-z])/g,function(a){return a.toUpperCase().replace("-","")})},toDashedCase:function(d){return d.replace(/([A-Z])/g,
function(a){return"-"+a.toLowerCase()})},objectHasProperty:function(d,a){return d.hasOwnProperty?d.hasOwnProperty(a):"undefined"!==typeof d[a]}}})(window);
(function(e,d){d.Browser={ua:null,version:null,safari:null,webkit:null,opera:null,msie:null,chrome:null,mozilla:null,android:null,blackberry:null,iPad:null,iPhone:null,iPod:null,iOS:null,is3dSupported:null,isCSSTransformSupported:null,isTouchSupported:null,isGestureSupported:null,_detect:function(){this.ua=e.navigator.userAgent;this.version=this.ua.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[];this.safari=/Safari/gi.test(e.navigator.appVersion);this.webkit=/webkit/i.test(this.ua);this.opera=/opera/i.test(this.ua);
this.msie=/msie/i.test(this.ua)&&!this.opera;this.chrome=/Chrome/i.test(this.ua);this.mozilla=/mozilla/i.test(this.ua)&&!/(compatible|webkit)/.test(this.ua);this.android=/android/i.test(this.ua);this.blackberry=/blackberry/i.test(this.ua);this.iOS=/iphone|ipod|ipad/gi.test(e.navigator.platform);this.iPad=/ipad/gi.test(e.navigator.platform);this.iPhone=/iphone/gi.test(e.navigator.platform);this.iPod=/ipod/gi.test(e.navigator.platform);var a=document.createElement("div");this.is3dSupported=!d.isNothing(a.style.WebkitPerspective);
this.isCSSTransformSupported=!d.isNothing(a.style.WebkitTransform)||!d.isNothing(a.style.MozTransform)||!d.isNothing(a.style.transformProperty);this.isTouchSupported=this.isEventSupported("touchstart");this.isGestureSupported=this.isEventSupported("gesturestart")},_eventTagNames:{select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"},isEventSupported:function(a){var c=document.createElement(this._eventTagNames[a]||"div"),b,a="on"+a;b=d.objectHasProperty(c,a);
b||(c.setAttribute(a,"return;"),b=typeof c[a]==="function");return b}};d.Browser._detect()})(window,window.Code.Util);
(function(e,d,a){a.extend(a,{Events:{add:function(a,b,f){d(a).bind(b,f)},remove:function(a,b,f){d(a).unbind(b,f)},fire:function(a,b){var f,h=Array.prototype.slice.call(arguments).splice(2);f=typeof b==="string"?{type:b}:b;d(a).trigger(d.Event(f.type,f),h)},getMousePosition:function(a){return{x:a.pageX,y:a.pageY}},getTouchEvent:function(a){return a.originalEvent},getWheelDelta:function(c){var b=0;a.isNothing(c.wheelDelta)?a.isNothing(c.detail)||(b=-c.detail/3):b=c.wheelDelta/120;return b},domReady:function(a){d(document).ready(a)}}})})(window,
window.jQuery,window.Code.Util);
(function(e,d,a){a.extend(a,{DOM:{setData:function(c,b,f){a.DOM.setAttribute(c,"data-"+b,f)},getData:function(c,b,f){return a.DOM.getAttribute(c,"data-"+b,f)},removeData:function(c,b){a.DOM.removeAttribute(c,"data-"+b)},isChildOf:function(a,b){if(b===a)return!1;for(;a&&a!==b;)a=a.parentNode;return a===b},find:function(c,b){if(a.isNothing(b))b=e.document;var f=d(c,b),h=[],j;for(j=0;j<f.length;j++)h.push(f[j]);return h},createElement:function(a,b,f){a=d("<"+a+"></"+a+">");a.attr(b);a.append(f);return a[0]},
appendChild:function(a,b){d(b).append(a)},insertBefore:function(a,b){d(a).insertBefore(b)},appendText:function(a,b){d(b).text(a)},appendToBody:function(a){d("body").append(a)},removeChild:function(a){d(a).empty().remove()},removeChildren:function(a){d(a).empty()},hasAttribute:function(c,b){return!a.isNothing(d(c).attr(b))},getAttribute:function(c,b,f){c=d(c).attr(b);a.isNothing(c)&&!a.isNothing(f)&&(c=f);return c},setAttribute:function(a,b,f){d(a).attr(b,f)},removeAttribute:function(a,b){d(a).removeAttr(b)},
addClass:function(a,b){d(a).addClass(b)},removeClass:function(a,b){d(a).removeClass(b)},hasClass:function(a,b){d(a).hasClass(b)},setStyle:function(c,b,f){var h;if(a.isObject(b))for(h in b)a.objectHasProperty(b,h)&&(h==="width"?a.DOM.width(c,b[h]):h==="height"?a.DOM.height(c,b[h]):(d(c).css(h,b[h]),c.style[h]=b[h]));else d(c).css(b,f)},getStyle:function(a,b){return d(a).css(b)},hide:function(a){d(a).hide()},show:function(a){d(a).show()},width:function(c,b){a.isNothing(b)||d(c).width(b);return d(c).width()},
outerWidth:function(a){return d(a).outerWidth()},height:function(c,b){a.isNothing(b)||d(c).height(b);return d(c).height()},outerHeight:function(a){return d(a).outerHeight()},documentWidth:function(){return d(document.documentElement).width()},documentHeight:function(){return d(document.documentElement).height()},documentOuterWidth:function(){return a.DOM.width(document.documentElement)},documentOuterHeight:function(){return a.DOM.outerHeight(document.documentElement)},bodyWidth:function(){return d(document.body).width()},
bodyHeight:function(){return d(document.body).height()},bodyOuterWidth:function(){return a.DOM.outerWidth(document.body)},bodyOuterHeight:function(){return a.DOM.outerHeight(document.body)},windowWidth:function(){if(!e.innerWidth)return d(e).width();return e.innerWidth},windowHeight:function(){if(!e.innerHeight)return d(e).height();return e.innerHeight},windowScrollLeft:function(){if(!e.pageXOffset)return d(e).scrollLeft();return e.pageXOffset},windowScrollTop:function(){if(!e.pageYOffset)return d(e).scrollTop();
return e.pageYOffset}}})})(window,window.jQuery,window.Code.Util);
(function(e,d){d.extend(d,{Animation:{_applyTransitionDelay:50,_transitionEndLabel:e.document.documentElement.style.webkitTransition!==void 0?"webkitTransitionEnd":"transitionend",_transitionEndHandler:null,_transitionPrefix:e.document.documentElement.style.webkitTransition!==void 0?"webkitTransition":e.document.documentElement.style.MozTransition!==void 0?"MozTransition":"transition",_transformLabel:e.document.documentElement.style.webkitTransform!==void 0?"webkitTransform":e.document.documentElement.style.MozTransition!==
void 0?"MozTransform":"transform",_getTransitionEndHandler:function(){if(d.isNothing(this._transitionEndHandler))this._transitionEndHandler=this._onTransitionEnd.bind(this);return this._transitionEndHandler},stop:function(a){if(d.Browser.isCSSTransformSupported){var c={};d.Events.remove(a,this._transitionEndLabel,this._getTransitionEndHandler());d.isNothing(a.callbackLabel)&&delete a.callbackLabel;c[this._transitionPrefix+"Property"]="";c[this._transitionPrefix+"Duration"]="";c[this._transitionPrefix+
"TimingFunction"]="";c[this._transitionPrefix+"Delay"]="";c[this._transformLabel]="";d.DOM.setStyle(a,c)}else d.isNothing(e.jQuery)||e.jQuery(a).stop(!0,!0)},fadeIn:function(a,c,b,f){if(c<=0&&(d.DOM.setStyle(a,"opacity",1),!d.isNothing(b))){b(a);return}d.DOM.getStyle(a,"opacity")>=1&&d.DOM.setStyle(a,"opacity",0);d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",1,c,b,f):d.isNothing(e.jQuery)||e.jQuery(a).fadeTo(c,1,b)},fadeOut:function(a,c,b,f){if(c<=0&&(d.DOM.setStyle(a,"opacity",
0),!d.isNothing(b))){b(a);return}d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",0,c,b,f):e.jQuery(a).fadeTo(c,0,b)},slideBy:function(a,c,b,f,h,j){var i={},c=d.coalesce(c,0),b=d.coalesce(b,0),j=d.coalesce(j,"ease-out");i[this._transitionPrefix+"Property"]="all";i[this._transitionPrefix+"Delay"]="0";f===0?(i[this._transitionPrefix+"Duration"]="",i[this._transitionPrefix+"TimingFunction"]=""):(i[this._transitionPrefix+"Duration"]=f+"ms",i[this._transitionPrefix+"TimingFunction"]=
d.coalesce(j,"ease-out"),d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler()));i[this._transformLabel]=d.Browser.is3dSupported?"translate3d("+c+"px, "+b+"px, 0px)":"translate("+c+"px, "+b+"px)";if(!d.isNothing(h))a.cclallcallback=h;d.DOM.setStyle(a,i);f===0&&e.setTimeout(function(){this._leaveTransforms(a)}.bind(this),this._applyTransitionDelay)},resetTranslate:function(a){var c={};c[this._transformLabel]=c[this._transformLabel]=d.Browser.is3dSupported?"translate3d(0px, 0px, 0px)":
"translate(0px, 0px)";d.DOM.setStyle(a,c)},_applyTransition:function(a,c,b,f,h,j){var i={},j=d.coalesce(j,"ease-in");i[this._transitionPrefix+"Property"]=c;i[this._transitionPrefix+"Duration"]=f+"ms";i[this._transitionPrefix+"TimingFunction"]=j;i[this._transitionPrefix+"Delay"]="0";d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler());d.DOM.setStyle(a,i);d.isNothing(h)||(a["ccl"+c+"callback"]=h);e.setTimeout(function(){d.DOM.setStyle(a,c,b)},this._applyTransitionDelay)},_onTransitionEnd:function(a){d.Events.remove(a.currentTarget,
this._transitionEndLabel,this._getTransitionEndHandler());this._leaveTransforms(a.currentTarget)},_leaveTransforms:function(a){var c=a.style[this._transitionPrefix+"Property"],b=c!==""?"ccl"+c+"callback":"cclallcallback",f,c=d.coalesce(a.style.webkitTransform,a.style.MozTransform,a.style.transform),h,j=e.parseInt(d.DOM.getStyle(a,"left"),0),i=e.parseInt(d.DOM.getStyle(a,"top"),0),g,l,k={};c!==""&&(c=d.Browser.is3dSupported?c.match(/translate3d\((.*?)\)/):c.match(/translate\((.*?)\)/),d.isNothing(c)||
(h=c[1].split(", "),g=e.parseInt(h[0],0),l=e.parseInt(h[1],0)));k[this._transitionPrefix+"Property"]="";k[this._transitionPrefix+"Duration"]="";k[this._transitionPrefix+"TimingFunction"]="";k[this._transitionPrefix+"Delay"]="";d.DOM.setStyle(a,k);e.setTimeout(function(){if(!d.isNothing(h))k={},k[this._transformLabel]="",k.left=j+g+"px",k.top=i+l+"px",d.DOM.setStyle(a,k);d.isNothing(a[b])||(f=a[b],delete a[b],f(a))}.bind(this),this._applyTransitionDelay)}}})})(window,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.TouchElement");e=e.Code.PhotoSwipe;e.TouchElement.EventTypes={onTouch:"CodePhotoSwipeTouchElementOnTouch"};e.TouchElement.ActionTypes={touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",tap:"tap",doubleTap:"doubleTap",swipeLeft:"swipeLeft",swipeRight:"swipeRight",swipeUp:"swipeUp",swipeDown:"swipeDown",gestureStart:"gestureStart",gestureChange:"gestureChange",gestureEnd:"gestureEnd"}})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.TouchElement");var c=e.Code.PhotoSwipe;c.TouchElement.TouchElementClass=d({el:null,touchSettings:null,touchStartPoint:null,touchEndPoint:null,touchStartTime:null,doubleTapTimeout:null,touchStartHandler:null,touchMoveHandler:null,touchEndHandler:null,mouseDownHandler:null,mouseMoveHandler:null,mouseUpHandler:null,mouseOutHandler:null,gestureStartHandler:null,gestureChangeHandler:null,gestureEndHandler:null,initialize:function(b){this.touchSettings=
{swipeThreshold:50,swipeTimeThreshold:250,doubleTapSpeed:250};a.extend(this.touchSettings,b);this.touchStartPoint={x:0,y:0};this.touchEndPoint={x:0,y:0}},addEventHandlers:function(){if(a.isNothing(this.touchStartHandler))this.touchStartHandler=this.onTouchStart.bind(this),this.touchMoveHandler=this.onTouchMove.bind(this),this.touchEndHandler=this.onTouchEnd.bind(this),this.mouseDownHandler=this.onMouseDown.bind(this),this.mouseMoveHandler=this.onMouseMove.bind(this),this.mouseUpHandler=this.onMouseUp.bind(this),
this.mouseOutHandler=this.onMouseOut.bind(this),this.gestureStartHandler=this.onGestureStart.bind(this),this.gestureChangeHandler=this.onGestureChange.bind(this),this.gestureEndHandler=this.onGestureEnd.bind(this);a.Events.add(this.el,"touchstart",this.touchStartHandler);a.Events.add(this.el,"touchmove",this.touchMoveHandler);a.Events.add(this.el,"touchend",this.touchEndHandler);a.Events.add(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&(a.Events.add(this.el,"gesturestart",
this.gestureStartHandler),a.Events.add(this.el,"gesturechange",this.gestureChangeHandler),a.Events.add(this.el,"gestureend",this.gestureEndHandler))},removeEventHandlers:function(){a.Events.remove(this.el,"touchstart",this.touchStartHandler);a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);a.Events.remove(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&(a.Events.remove(this.el,"gesturestart",this.gestureStartHandler),
a.Events.remove(this.el,"gesturechange",this.gestureChangeHandler),a.Events.remove(this.el,"gestureend",this.gestureEndHandler))},getTouchPoint:function(a){return{x:a[0].pageX,y:a[0].pageY}},fireTouchEvent:function(){var b=0,f=0,d=0,j,b=this.touchEndPoint.x-this.touchStartPoint.x,f=this.touchEndPoint.y-this.touchStartPoint.y,d=Math.sqrt(b*b+f*f);if(new Date-this.touchStartTime<=this.touchSettings.swipeTimeThreshold){if(e.Math.abs(b)>=this.touchSettings.swipeThreshold){a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,
target:this,point:this.touchEndPoint,action:b<0?c.TouchElement.ActionTypes.swipeLeft:c.TouchElement.ActionTypes.swipeRight});return}if(e.Math.abs(f)>=this.touchSettings.swipeThreshold){a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:f<0?c.TouchElement.ActionTypes.swipeUp:c.TouchElement.ActionTypes.swipeDown});return}}d>1?a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,target:this,action:c.TouchElement.ActionTypes.touchEnd,point:this.touchEndPoint}):
a.isNothing(this.doubleTapTimeout)?(j=this,this.doubleTapTimeout=e.setTimeout(function(){j.doubleTapTimeout=null;a.Events.fire(j,{type:c.TouchElement.EventTypes.onTouch,target:j,point:this.touchEndPoint,action:c.TouchElement.ActionTypes.tap})},this.touchSettings.doubleTapSpeed)):(e.clearTimeout(this.doubleTapTimeout),this.doubleTapTimeout=null,a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:c.TouchElement.ActionTypes.doubleTap}))},onTouchStart:function(b){b.preventDefault();
a.Events.remove(this.el,"mousedown",this.mouseDownHandler);b=a.Events.getTouchEvent(b).touches;b.length>1?this.isGesture=!0:(this.touchStartTime=new Date,this.isGesture=!1,this.touchStartPoint=this.getTouchPoint(b),a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,target:this,action:c.TouchElement.ActionTypes.touchStart,point:this.touchStartPoint}))},onTouchMove:function(b){b.preventDefault();if(!this.isGesture)b=a.Events.getTouchEvent(b).touches,a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,
target:this,action:c.TouchElement.ActionTypes.touchMove,point:this.getTouchPoint(b)})},onTouchEnd:function(b){if(!this.isGesture)b.preventDefault(),b=a.Events.getTouchEvent(b),this.touchEndPoint=this.getTouchPoint(!a.isNothing(b.changedTouches)?b.changedTouches:b.touches),this.fireTouchEvent()},onMouseDown:function(b){b.preventDefault();a.Events.remove(this.el,"touchstart",this.mouseDownHandler);a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);
a.Events.add(this.el,"mousemove",this.mouseMoveHandler);a.Events.add(this.el,"mouseup",this.mouseUpHandler);a.Events.add(this.el,"mouseout",this.mouseOutHandler);this.touchStartTime=new Date;this.isGesture=!1;this.touchStartPoint=a.Events.getMousePosition(b);a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,target:this,action:c.TouchElement.ActionTypes.touchStart,point:this.touchStartPoint})},onMouseMove:function(b){b.preventDefault();a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,
target:this,action:c.TouchElement.ActionTypes.touchMove,point:a.Events.getMousePosition(b)})},onMouseUp:function(b){b.preventDefault();a.Events.remove(this.el,"mousemove",this.mouseMoveHandler);a.Events.remove(this.el,"mouseup",this.mouseUpHandler);a.Events.remove(this.el,"mouseout",this.mouseOutHandler);this.touchEndPoint=a.Events.getMousePosition(b);this.fireTouchEvent()},onMouseOut:function(b){b.preventDefault();a.Events.remove(this.el,"mousemove",this.mouseMoveHandler);a.Events.remove(this.el,
"mouseup",this.mouseUpHandler);a.Events.remove(this.el,"mouseout",this.mouseOutHandler);this.touchEndPoint=a.Events.getMousePosition(b);this.fireTouchEvent()},onGestureStart:function(b){b.preventDefault();b=a.Events.getTouchEvent(b);a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,target:this,action:c.TouchElement.ActionTypes.gestureStart,scale:b.scale,rotation:b.rotation})},onGestureChange:function(b){b.preventDefault();b=a.Events.getTouchEvent(b);a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,
target:this,action:c.TouchElement.ActionTypes.gestureChange,scale:b.scale,rotation:b.rotation})},onGestureEnd:function(b){b.preventDefault();b=a.Events.getTouchEvent(b);a.Events.fire(this,{type:c.TouchElement.EventTypes.onTouch,target:this,action:c.TouchElement.ActionTypes.gestureEnd,scale:b.scale,rotation:b.rotation})}})})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Image");e.Code.PhotoSwipe.Image.EventTypes={onLoad:"onLoad"}})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Image");var c=e.Code.PhotoSwipe;c.Image.ImageClass=d({refObj:null,imageEl:null,src:null,caption:null,metaData:null,naturalWidth:null,naturalHeight:null,isLandscape:null,isLoading:null,imageLoadHandler:null,dispose:function(){var b;this.shrinkImage();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(a,c,d,j){this.refObj=a;this.src=c;this.caption=d;this.metaData=j;this.naturalHeight=this.naturalWidth=0;this.isLoading=
this.isLandscape=!1;this.imageEl=new e.Image;this.imageLoadHandler=this.onImageLoad.bind(this)},load:function(){this.imageEl.src.indexOf(this.src)>-1?a.Events.fire(this,{type:c.Image.EventTypes.onLoad,target:this}):(this.imageEl.isLoading=!0,this.imageEl.onload=this.imageLoadHandler,this.imageEl.src=this.src)},shrinkImage:function(){if(!a.isNothing(this.imageEl)&&this.imageEl.src.indexOf(this.src)>-1)this.imageEl.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",a.isNothing(this.imageEl.parentNode)||
a.DOM.removeChild(this.imageEl,this.imageEl.parentNode)},onImageLoad:function(){this.imageEl.onload=null;this.imageEl.naturalWidth=a.coalesce(this.imageEl.naturalWidth,this.imageEl.width);this.imageEl.naturalHeight=a.coalesce(this.imageEl.naturalHeight,this.imageEl.height);this.imageEl.isLandscape=this.imageEl.naturalWidth>this.imageEl.naturalHeight;this.imageEl.isLoading=!1;a.Events.fire(this,{type:c.Image.EventTypes.onLoad,target:this})}})})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Cache");e=e.Code.PhotoSwipe;e.Cache.Mode={normal:"normal",aggressive:"aggressive"};e.Cache.Functions={getImageSource:function(a){return a.href},getImageCaption:function(c){if(c.nodeName==="IMG")return a.DOM.getAttribute(c,"alt");var b,f;for(b=0;b<c.childNodes.length;b++)if(f=c.childNodes[b],c.childNodes[b].nodeName==="IMG")return a.DOM.getAttribute(f,"alt")},getImageMetaData:function(){return{}}}})(window,window.klass,window.Code.Util);
(function(e,d,a,c){a.registerNamespace("Code.PhotoSwipe.Cache");var b=e.Code.PhotoSwipe;b.Cache.CacheClass=d({images:null,settings:null,dispose:function(){var b,c;if(!a.isNothing(this.images)){for(c=0;c<this.images.length;c++)this.images[c].dispose();this.images.length=0}for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(a,b){var d,e,g,l,k;this.settings=b;this.images=[];for(d=0;d<a.length;d++)e=a[d],g=this.settings.getImageSource(e),l=this.settings.getImageCaption(e),k=
this.settings.getImageMetaData(e),this.images.push(new c.ImageClass(e,g,l,k))},getImages:function(c){var d,e=[],i;for(d=0;d<c.length;d++){i=this.images[c[d]];if(this.settings.cacheMode===b.Cache.Mode.aggressive)i.cacheDoNotShrink=!0;e.push(i)}if(this.settings.cacheMode===b.Cache.Mode.aggressive)for(d=0;d<this.images.length;d++)i=this.images[d],a.objectHasProperty(i,"cacheDoNotShrink")?delete i.cacheDoNotShrink:i.shrinkImage();return e}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.Image);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.DocumentOverlay");e.Code.PhotoSwipe.DocumentOverlay.CssClasses={documentOverlay:"ps-document-overlay"}})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.DocumentOverlay");var c=e.Code.PhotoSwipe;c.DocumentOverlay.DocumentOverlayClass=d({el:null,settings:null,initialBodyHeight:null,dispose:function(){var b;a.Animation.stop(this.el);a.DOM.removeChild(this.el,this.el.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b){this.settings=b;this.el=a.DOM.createElement("div",{"class":c.DocumentOverlay.CssClasses.documentOverlay},"");a.DOM.setStyle(this.el,{display:"block",
position:"absolute",left:0,top:0,zIndex:this.settings.zIndex});a.DOM.hide(this.el);a.DOM.appendToBody(this.el);a.Animation.resetTranslate(this.el);this.initialBodyHeight=a.DOM.bodyOuterHeight()},resetPosition:function(){var b=a.DOM.windowWidth(),c=a.DOM.bodyOuterHeight()*2;if(c<1)c=this.initialBodyHeight;a.DOM.windowHeight()>c&&(c=a.DOM.windowHeight());a.DOM.setStyle(this.el,{width:b,height:c,top:this.settings.jQueryMobile?a.DOM.windowScrollTop()+"px":"0px"})},fadeIn:function(b,c){this.resetPosition();
a.DOM.setStyle(this.el,"opacity",0);a.DOM.show(this.el);a.Animation.fadeIn(this.el,b,c)}})})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");e=e.Code.PhotoSwipe;e.Carousel.EventTypes={onSlideByEnd:"PhotoSwipeCarouselOnSlideByEnd",onSlideshowStart:"PhotoSwipeCarouselOnSlideshowStart",onSlideshowStop:"PhotoSwipeCarouselOnSlideshowStop"};e.Carousel.CssClasses={carousel:"ps-carousel",content:"ps-carousel-content",item:"ps-carousel-item",itemLoading:"ps-carousel-item-loading"};e.Carousel.SlideByAction={previous:"previous",current:"current",next:"next"}})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");var c=e.Code.PhotoSwipe;c.Carousel.CarouselClass=d({el:null,contentEl:null,settings:null,cache:null,slideByEndHandler:null,currentCacheIndex:null,isSliding:null,isSlideshowActive:null,lastSlideByAction:null,touchStartPoint:null,touchStartPosition:null,imageLoadHandler:null,slideshowTimeout:null,dispose:function(){var b;this.stopSlideshow();a.Animation.stop(this.el);a.DOM.removeChild(this.el,this.el.parentNode);for(b in this)a.objectHasProperty(this,
b)&&(this[b]=null)},initialize:function(b,d){var e,j,i;this.cache=b;this.settings=d;this.slideByEndHandler=this.onSlideByEnd.bind(this);this.imageLoadHandler=this.onImageLoad.bind(this);this.currentCacheIndex=0;this.isSlideshowActive=this.isSliding=!1;if(this.cache.images.length<3)this.settings.loop=!1;this.el=a.DOM.createElement("div",{"class":c.Carousel.CssClasses.carousel},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex});
a.DOM.hide(this.el);this.contentEl=a.DOM.createElement("div",{"class":c.Carousel.CssClasses.content},"");a.DOM.setStyle(this.contentEl,{display:"block",position:"absolute",left:0,top:0});a.DOM.appendChild(this.contentEl,this.el);j=b.images.length<3?b.images.length:3;for(e=0;e<j;e++)i=a.DOM.createElement("div",{"class":c.Carousel.CssClasses.item+" "+c.Carousel.CssClasses.item+"-"+e},""),a.DOM.setAttribute(i,"style","float: left;"),a.DOM.setStyle(i,{display:"block",position:"relative",left:0,top:0,
overflow:"hidden"}),this.settings.margin>0&&a.DOM.setStyle(i,{marginRight:this.settings.margin+"px"}),a.DOM.appendChild(i,this.contentEl);a.DOM.appendToBody(this.el)},resetPosition:function(){var b=a.DOM.windowWidth(),d=a.DOM.windowHeight(),e=this.settings.margin>0?b+this.settings.margin:b,j=a.DOM.find("."+c.Carousel.CssClasses.item,this.contentEl);e*=j.length;var i;a.DOM.setStyle(this.el,{top:a.DOM.windowScrollTop()+"px",width:b,height:d});a.DOM.setStyle(this.contentEl,{width:e,height:d});for(e=
0;e<j.length;e++)i=j[e],a.DOM.setStyle(i,{width:b,height:d}),i=a.DOM.find("img",i)[0],a.isNothing(i)||this.resetImagePosition(i);this.setContentLeftPosition()},resetImagePosition:function(b){if(!a.isNothing(b)){a.DOM.getAttribute(b,"src");var c,d,e,i=a.DOM.width(this.el),g=a.DOM.height(this.el);this.settings.imageScaleMethod==="fitNoUpscale"?(d=b.naturalWidth,e=b.naturalHeight,d>i&&(c=i/d,d=Math.round(d*c),e=Math.round(e*c)),e>g&&(c=g/e,e=Math.round(e*c),d=Math.round(d*c))):(c=b.isLandscape?i/b.naturalWidth:
g/b.naturalHeight,d=Math.round(b.naturalWidth*c),e=Math.round(b.naturalHeight*c),this.settings.imageScaleMethod==="zoom"?(c=1,e<g?c=g/e:d<i&&(c=i/d),c!==1&&(d=Math.round(d*c),e=Math.round(e*c))):this.settings.imageScaleMethod==="fit"&&(c=1,d>i?c=i/d:e>g&&(c=g/e),c!==1&&(d=Math.round(d*c),e=Math.round(e*c))));a.DOM.setStyle(b,{position:"absolute",width:d,height:e,top:Math.round((g-e)/2)+"px",left:Math.round((i-d)/2)+"px",display:"block"})}},setContentLeftPosition:function(){var b=a.DOM.windowWidth(),
c=this.getItemEls(),d=0;this.settings.loop?d=(b+this.settings.margin)*-1:this.currentCacheIndex===this.cache.images.length-1?d=(c.length-1)*(b+this.settings.margin)*-1:this.currentCacheIndex>0&&(d=(b+this.settings.margin)*-1);a.DOM.setStyle(this.contentEl,{left:d+"px"})},show:function(b){this.currentCacheIndex=b;this.resetPosition();this.setImages(!1);a.DOM.show(this.el);a.Animation.resetTranslate(this.contentEl);var b=this.getItemEls(),d;for(d=0;d<b.length;d++)a.Animation.resetTranslate(b[d]);a.Events.fire(this,
{type:c.Carousel.EventTypes.onSlideByEnd,target:this,action:c.Carousel.SlideByAction.current,cacheIndex:this.currentCacheIndex})},setImages:function(a){var c,d=this.getItemEls();c=this.currentCacheIndex+1;var e=this.currentCacheIndex-1;this.settings.loop?(c>this.cache.images.length-1&&(c=0),e<0&&(e=this.cache.images.length-1),c=this.cache.getImages([e,this.currentCacheIndex,c]),a||this.addCacheImageToItemEl(c[1],d[1]),this.addCacheImageToItemEl(c[2],d[2]),this.addCacheImageToItemEl(c[0],d[0])):d.length===
1?a||(c=this.cache.getImages([this.currentCacheIndex]),this.addCacheImageToItemEl(c[0],d[0])):d.length===2?this.currentCacheIndex===0?(c=this.cache.getImages([this.currentCacheIndex,this.currentCacheIndex+1]),a||this.addCacheImageToItemEl(c[0],d[0]),this.addCacheImageToItemEl(c[1],d[1])):(c=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(c[1],d[1]),this.addCacheImageToItemEl(c[0],d[0])):this.currentCacheIndex===0?(c=this.cache.getImages([this.currentCacheIndex,
this.currentCacheIndex+1,this.currentCacheIndex+2]),a||this.addCacheImageToItemEl(c[0],d[0]),this.addCacheImageToItemEl(c[1],d[1]),this.addCacheImageToItemEl(c[2],d[2])):(this.currentCacheIndex===this.cache.images.length-1?(c=this.cache.getImages([this.currentCacheIndex-2,this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(c[2],d[2]),this.addCacheImageToItemEl(c[1],d[1])):(c=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex,this.currentCacheIndex+1]),
a||this.addCacheImageToItemEl(c[1],d[1]),this.addCacheImageToItemEl(c[2],d[2])),this.addCacheImageToItemEl(c[0],d[0]))},addCacheImageToItemEl:function(b,d){a.DOM.addClass(d,c.Carousel.CssClasses.itemLoading);a.DOM.removeChildren(d);a.DOM.setStyle(b.imageEl,{display:"none"});a.DOM.appendChild(b.imageEl,d);a.Animation.resetTranslate(b.imageEl);a.Events.add(b,c.Image.EventTypes.onLoad,this.imageLoadHandler);b.load()},slideCarousel:function(b,d,h){if(!this.isSliding){var j=a.DOM.windowWidth()+this.settings.margin,
i,h=a.coalesce(h,this.settings.slideSpeed);if(!(e.Math.abs(i)<1)){switch(d){case c.TouchElement.ActionTypes.swipeLeft:b=j*-1;break;case c.TouchElement.ActionTypes.swipeRight:b=j;break;default:i=b.x-this.touchStartPoint.x,b=e.Math.abs(i)>j/2?i>0?j:j*-1:0}this.lastSlideByAction=b<0?c.Carousel.SlideByAction.next:b>0?c.Carousel.SlideByAction.previous:c.Carousel.SlideByAction.current;if(!this.settings.loop&&(this.lastSlideByAction===c.Carousel.SlideByAction.previous&&this.currentCacheIndex===0||this.lastSlideByAction===
c.Carousel.SlideByAction.next&&this.currentCacheIndex===this.cache.images.length-1))b=0,this.lastSlideByAction=c.Carousel.SlideByAction.current;this.isSliding=!0;this.doSlideCarousel(b,h)}}},moveCarousel:function(a){this.isSliding||this.settings.enableDrag&&this.doMoveCarousel(a.x-this.touchStartPoint.x)},getItemEls:function(){return a.DOM.find("."+c.Carousel.CssClasses.item,this.contentEl)},previous:function(){this.stopSlideshow();this.slideCarousel({x:0,y:0},c.TouchElement.ActionTypes.swipeRight,
this.settings.nextPreviousSlideSpeed)},next:function(){this.stopSlideshow();this.slideCarousel({x:0,y:0},c.TouchElement.ActionTypes.swipeLeft,this.settings.nextPreviousSlideSpeed)},slideshowNext:function(){this.slideCarousel({x:0,y:0},c.TouchElement.ActionTypes.swipeLeft)},startSlideshow:function(){this.stopSlideshow();this.isSlideshowActive=!0;this.slideshowTimeout=e.setTimeout(this.slideshowNext.bind(this),this.settings.slideshowDelay);a.Events.fire(this,{type:c.Carousel.EventTypes.onSlideshowStart,
target:this})},stopSlideshow:function(){if(!a.isNothing(this.slideshowTimeout))e.clearTimeout(this.slideshowTimeout),this.slideshowTimeout=null,this.isSlideshowActive=!1,a.Events.fire(this,{type:c.Carousel.EventTypes.onSlideshowStop,target:this})},onSlideByEnd:function(){if(!a.isNothing(this.isSliding)){var b=this.getItemEls();this.isSliding=!1;this.lastSlideByAction===c.Carousel.SlideByAction.next?this.currentCacheIndex+=1:this.lastSlideByAction===c.Carousel.SlideByAction.previous&&(this.currentCacheIndex-=
1);if(this.settings.loop)if(this.lastSlideByAction===c.Carousel.SlideByAction.next?a.DOM.appendChild(b[0],this.contentEl):this.lastSlideByAction===c.Carousel.SlideByAction.previous&&a.DOM.insertBefore(b[b.length-1],b[0],this.contentEl),this.currentCacheIndex<0)this.currentCacheIndex=this.cache.images.length-1;else{if(this.currentCacheIndex===this.cache.images.length)this.currentCacheIndex=0}else this.cache.images.length>3&&(this.currentCacheIndex>1&&this.currentCacheIndex<this.cache.images.length-
2?this.lastSlideByAction===c.Carousel.SlideByAction.next?a.DOM.appendChild(b[0],this.contentEl):this.lastSlideByAction===c.Carousel.SlideByAction.previous&&a.DOM.insertBefore(b[b.length-1],b[0],this.contentEl):this.currentCacheIndex===1?this.lastSlideByAction===c.Carousel.SlideByAction.previous&&a.DOM.insertBefore(b[b.length-1],b[0],this.contentEl):this.currentCacheIndex===this.cache.images.length-2&&this.lastSlideByAction===c.Carousel.SlideByAction.next&&a.DOM.appendChild(b[0],this.contentEl));this.lastSlideByAction!==
c.Carousel.SlideByAction.current&&(this.setContentLeftPosition(),this.setImages(!0));a.Events.fire(this,{type:c.Carousel.EventTypes.onSlideByEnd,target:this,action:this.lastSlideByAction,cacheIndex:this.currentCacheIndex});this.isSlideshowActive&&(this.lastSlideByAction!==c.Carousel.SlideByAction.current?this.startSlideshow():this.stopSlideshow())}},onTouch:function(b,d){this.stopSlideshow();switch(b){case c.TouchElement.ActionTypes.touchStart:this.touchStartPoint=d;this.touchStartPosition={x:e.parseInt(a.DOM.getStyle(this.contentEl,
"left"),0),y:e.parseInt(a.DOM.getStyle(this.contentEl,"top"),0)};break;case c.TouchElement.ActionTypes.touchMove:this.moveCarousel(d);break;case c.TouchElement.ActionTypes.touchEnd:case c.TouchElement.ActionTypes.swipeLeft:case c.TouchElement.ActionTypes.swipeRight:this.slideCarousel(d,b)}},onImageLoad:function(b){b=b.target;a.isNothing(b.imageEl.parentNode)||(a.DOM.removeClass(b.imageEl.parentNode,c.Carousel.CssClasses.itemLoading),a.Events.remove(b,c.Image.EventTypes.onLoad,this.imageLoadHandler),
this.resetImagePosition(b.imageEl))}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");d=e.Code.PhotoSwipe;d.Carousel.CarouselClass=d.Carousel.CarouselClass.extend({getStartingPos:function(){var c=this.touchStartPosition;a.isNothing(c)&&(c={x:e.parseInt(a.DOM.getStyle(this.contentEl,"left"),0),y:e.parseInt(a.DOM.getStyle(this.contentEl,"top"),0)});return c},doMoveCarousel:function(c){var b;a.Browser.isCSSTransformSupported?(b={},b[a.Animation._transitionPrefix+"Property"]="all",b[a.Animation._transitionPrefix+"Duration"]=
"",b[a.Animation._transitionPrefix+"TimingFunction"]="",b[a.Animation._transitionPrefix+"Delay"]="0",b[a.Animation._transformLabel]=a.Browser.is3dSupported?"translate3d("+c+"px, 0px, 0px)":"translate("+c+"px, 0px)",a.DOM.setStyle(this.contentEl,b)):a.isNothing(e.jQuery)||e.jQuery(this.contentEl).stop().css("left",this.getStartingPos().x+c+"px")},doSlideCarousel:function(c,b){var d;if(b<=0)this.slideByEndHandler();else if(a.Browser.isCSSTransformSupported)a.Animation.slideBy(this.contentEl,c,0,b,this.slideByEndHandler,
this.settings.slideTimingFunction);else if(!a.isNothing(e.jQuery)){d={left:this.getStartingPos().x+c+"px"};if(this.settings.animationTimingFunction==="ease-out")this.settings.animationTimingFunction="easeOutQuad";if(a.isNothing(e.jQuery.easing[this.settings.animationTimingFunction]))this.settings.animationTimingFunction="linear";e.jQuery(this.contentEl).animate(d,this.settings.slideSpeed,this.settings.animationTimingFunction,this.slideByEndHandler)}}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var c=e.Code.PhotoSwipe;c.Toolbar.CssClasses={toolbar:"ps-toolbar",toolbarContent:"ps-toolbar-content",toolbarTop:"ps-toolbar-top",caption:"ps-caption",captionBottom:"ps-caption-bottom",captionContent:"ps-caption-content",close:"ps-toolbar-close",play:"ps-toolbar-play",previous:"ps-toolbar-previous",previousDisabled:"ps-toolbar-previous-disabled",next:"ps-toolbar-next",nextDisabled:"ps-toolbar-next-disabled"};c.Toolbar.ToolbarAction=
{close:"close",play:"play",next:"next",previous:"previous",none:"none"};c.Toolbar.EventTypes={onTap:"PhotoSwipeToolbarOnClick",onBeforeShow:"PhotoSwipeToolbarOnBeforeShow",onShow:"PhotoSwipeToolbarOnShow",onBeforeHide:"PhotoSwipeToolbarOnBeforeHide",onHide:"PhotoSwipeToolbarOnHide"};c.Toolbar.getToolbar=function(){return'<div class="'+c.Toolbar.CssClasses.close+'"><div class="'+c.Toolbar.CssClasses.toolbarContent+'"></div></div><div class="'+c.Toolbar.CssClasses.play+'"><div class="'+c.Toolbar.CssClasses.toolbarContent+
'"></div></div><div class="'+c.Toolbar.CssClasses.previous+'"><div class="'+c.Toolbar.CssClasses.toolbarContent+'"></div></div><div class="'+c.Toolbar.CssClasses.next+'"><div class="'+c.Toolbar.CssClasses.toolbarContent+'"></div></div>'}})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var c=e.Code.PhotoSwipe;c.Toolbar.ToolbarClass=d({toolbarEl:null,closeEl:null,playEl:null,previousEl:null,nextEl:null,captionEl:null,captionContentEl:null,currentCaption:null,settings:null,cache:null,timeout:null,isVisible:null,fadeOutHandler:null,touchStartHandler:null,touchMoveHandler:null,clickHandler:null,dispose:function(){var b;this.clearTimeout();this.removeEventHandlers();a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);
a.DOM.removeChild(this.toolbarEl,this.toolbarEl.parentNode);a.DOM.removeChild(this.captionEl,this.captionEl.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,d){var e;this.settings=d;this.cache=b;this.isVisible=!1;this.fadeOutHandler=this.onFadeOut.bind(this);this.touchStartHandler=this.onTouchStart.bind(this);this.touchMoveHandler=this.onTouchMove.bind(this);this.clickHandler=this.onClick.bind(this);e=c.Toolbar.CssClasses.toolbar;this.settings.captionAndToolbarFlipPosition&&
(e=e+" "+c.Toolbar.CssClasses.toolbarTop);this.toolbarEl=a.DOM.createElement("div",{"class":e},this.settings.getToolbar());a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});a.DOM.appendToBody(this.toolbarEl);a.DOM.hide(this.toolbarEl);this.closeEl=a.DOM.find("."+c.Toolbar.CssClasses.close,this.toolbarEl)[0];this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl);this.playEl=a.DOM.find("."+c.Toolbar.CssClasses.play,this.toolbarEl)[0];
this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);this.nextEl=a.DOM.find("."+c.Toolbar.CssClasses.next,this.toolbarEl)[0];this.previousEl=a.DOM.find("."+c.Toolbar.CssClasses.previous,this.toolbarEl)[0];e=c.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(e=e+" "+c.Toolbar.CssClasses.captionBottom);this.captionEl=a.DOM.createElement("div",{"class":e},"");a.DOM.setStyle(this.captionEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});
a.DOM.appendToBody(this.captionEl);a.DOM.hide(this.captionEl);this.captionContentEl=a.DOM.createElement("div",{"class":c.Toolbar.CssClasses.captionContent},"");a.DOM.appendChild(this.captionContentEl,this.captionEl);this.addEventHandlers()},resetPosition:function(){var b,c;this.settings.captionAndToolbarFlipPosition?(b=a.DOM.windowScrollTop(),c=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.captionEl)):(b=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.toolbarEl),c=
a.DOM.windowScrollTop());a.DOM.setStyle(this.toolbarEl,{top:b+"px",width:a.DOM.windowWidth()});a.DOM.setStyle(this.captionEl,{top:c+"px",width:a.DOM.windowWidth()})},toggleVisibility:function(a){this.isVisible?this.fadeOut():this.show(a)},show:function(b){a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);this.resetPosition();this.setToolbarStatus(b);a.Events.fire(this,{type:c.Toolbar.EventTypes.onBeforeShow,target:this});this.showToolbar();this.setCaption(b);this.showCaption();this.isVisible=
!0;this.setTimeout();a.Events.fire(this,{type:c.Toolbar.EventTypes.onShow,target:this})},setTimeout:function(){if(this.settings.captionAndToolbarAutoHideDelay>0)this.clearTimeout(),this.timeout=e.setTimeout(this.fadeOut.bind(this),this.settings.captionAndToolbarAutoHideDelay)},clearTimeout:function(){if(!a.isNothing(this.timeout))e.clearTimeout(this.timeout),this.timeout=null},fadeOut:function(){this.clearTimeout();a.Events.fire(this,{type:c.Toolbar.EventTypes.onBeforeHide,target:this});a.Animation.fadeOut(this.toolbarEl,
this.settings.fadeOutSpeed);a.Animation.fadeOut(this.captionEl,this.settings.fadeOutSpeed,this.fadeOutHandler);this.isVisible=!1},addEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.add(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.add(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.add(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.add(this.toolbarEl,"click",this.clickHandler)},removeEventHandlers:function(){a.Browser.isTouchSupported&&
(a.Browser.blackberry||a.Events.remove(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.remove(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.remove(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.remove(this.toolbarEl,"click",this.clickHandler)},handleTap:function(b){this.clearTimeout();var d;if(b.target===this.nextEl||a.DOM.isChildOf(b.target,this.nextEl))d=c.Toolbar.ToolbarAction.next;else if(b.target===this.previousEl||a.DOM.isChildOf(b.target,this.previousEl))d=
c.Toolbar.ToolbarAction.previous;else if(b.target===this.closeEl||a.DOM.isChildOf(b.target,this.closeEl))d=c.Toolbar.ToolbarAction.close;else if(b.target===this.playEl||a.DOM.isChildOf(b.target,this.playEl))d=c.Toolbar.ToolbarAction.play;this.setTimeout();if(a.isNothing(d))d=c.Toolbar.ToolbarAction.none;a.Events.fire(this,{type:c.Toolbar.EventTypes.onTap,target:this,action:d,tapTarget:b.target})},setCaption:function(b){a.DOM.removeChildren(this.captionContentEl);this.currentCaption=a.coalesce(this.cache.images[b].caption,
"\u00a0");if(a.isObject(this.currentCaption))a.DOM.appendChild(this.currentCaption,this.captionContentEl);else{if(this.currentCaption==="")this.currentCaption="\u00a0";a.DOM.appendText(this.currentCaption,this.captionContentEl)}this.currentCaption=this.currentCaption==="\u00a0"?"":this.currentCaption},showToolbar:function(){a.DOM.setStyle(this.toolbarEl,{opacity:this.settings.captionAndToolbarOpacity});a.DOM.show(this.toolbarEl)},showCaption:function(){(this.currentCaption===""||this.captionContentEl.childNodes.length<
1)&&!this.settings.captionAndToolbarShowEmptyCaptions?a.DOM.hide(this.captionEl):(a.DOM.setStyle(this.captionEl,{opacity:this.settings.captionAndToolbarOpacity}),a.DOM.show(this.captionEl))},setToolbarStatus:function(b){this.settings.loop||(b>0&&b<this.cache.images.length-1?(a.DOM.removeClass(this.previousEl,c.Toolbar.CssClasses.previousDisabled),a.DOM.removeClass(this.nextEl,c.Toolbar.CssClasses.nextDisabled)):(b===0&&(a.isNothing(this.previousEl)||a.DOM.addClass(this.previousEl,c.Toolbar.CssClasses.previousDisabled)),
b===this.cache.images.length-1&&(a.isNothing(this.nextEl)||a.DOM.addClass(this.nextEl,c.Toolbar.CssClasses.nextDisabled))))},onFadeOut:function(){a.DOM.hide(this.toolbarEl);a.DOM.hide(this.captionEl);a.Events.fire(this,{type:c.Toolbar.EventTypes.onHide,target:this})},onTouchStart:function(b){b.preventDefault();a.Events.remove(this.toolbarEl,"click",this.clickHandler);this.handleTap(b)},onTouchMove:function(a){a.preventDefault()},onClick:function(a){a.preventDefault();this.handleTap(a)}})})(window,
window.klass,window.Code.Util);(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.UILayer");e.Code.PhotoSwipe.UILayer.CssClasses={uiLayer:"ps-uilayer"}})(window,window.klass,window.Code.Util);
(function(e,d,a,c){a.registerNamespace("Code.PhotoSwipe.UILayer");var b=e.Code.PhotoSwipe;b.UILayer.UILayerClass=c.TouchElementClass.extend({el:null,settings:null,dispose:function(){var b;this.removeEventHandlers();a.DOM.removeChild(this.el,this.el.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(c){this.settings=c;this.supr({swipeThreshold:this.settings.swipeThreshold,swipeTimeThreshold:this.settings.swipeTimeThreshold,doubleTapSpeed:this.settings.doubleTapSpeed});
this.el=a.DOM.createElement("div",{"class":b.UILayer.CssClasses.uiLayer},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex,opacity:0});a.DOM.hide(this.el);a.DOM.appendToBody(this.el)},resetPosition:function(){a.DOM.setStyle(this.el,{top:a.DOM.windowScrollTop()+"px",width:a.DOM.windowWidth(),height:a.DOM.windowHeight()})},show:function(){this.resetPosition();a.DOM.show(this.el);this.addEventHandlers()},addEventHandlers:function(){this.supr()},
removeEventHandlers:function(){this.supr()}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement);(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.ZoomPanRotate");e.Code.PhotoSwipe.ZoomPanRotate.CssClasses={zoomPanRotate:"ps-zoom-pan-rotate"}})(window,window.klass,window.Code.Util);
(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.ZoomPanRotate");var c=e.Code.PhotoSwipe;c.ZoomPanRotate.ZoomPanRotateClass=d({el:null,settings:null,containerEl:null,imageEl:null,transformSettings:null,panStartingPoint:null,transformEl:null,dispose:function(){var b;a.DOM.removeChild(this.el,this.el.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,d,e){this.settings=b;this.imageEl=d.imageEl.cloneNode(!1);a.DOM.setStyle(this.imageEl,{zIndex:1});this.transformSettings=
{startingScale:1,scale:1,startingRotation:0,rotation:0,startingTranslateX:0,startingTranslateY:0,translateX:0,translateY:0};this.el=a.DOM.createElement("div",{"class":c.ZoomPanRotate.CssClasses.zoomPanRotate},"");a.DOM.setStyle(this.el,{left:0,top:a.DOM.windowScrollTop()+"px",position:"absolute",width:a.DOM.windowWidth(),height:a.DOM.windowHeight(),zIndex:this.settings.zIndex,display:"block"});a.DOM.insertBefore(this.el,e.el,document.body);a.Browser.iOS?(this.containerEl=a.DOM.createElement("div"),
a.DOM.setStyle(this.containerEl,{left:0,top:0,width:a.DOM.windowWidth(),height:a.DOM.windowHeight(),position:"absolute",zIndex:1}),a.DOM.appendChild(this.imageEl,this.containerEl),a.DOM.appendChild(this.containerEl,this.el),a.Animation.resetTranslate(this.containerEl),a.Animation.resetTranslate(this.imageEl),this.transformEl=this.containerEl):(a.DOM.appendChild(this.imageEl,this.el),this.transformEl=this.imageEl)},setStartingTranslateFromCurrentTransform:function(){var b=a.coalesce(this.transformEl.style.webkitTransform,
this.transformEl.style.MozTransform,this.transformEl.style.transform);if(!a.isNothing(b)&&(b=b.match(/translate\((.*?)\)/),!a.isNothing(b)))b=b[1].split(", "),this.transformSettings.startingTranslateX=e.parseInt(b[0],10),this.transformSettings.startingTranslateY=e.parseInt(b[1],10)},getScale:function(a){a*=this.transformSettings.startingScale;if(this.settings.minUserZoom!==0&&a<this.settings.minUserZoom)a=this.settings.minUserZoom;else if(this.settings.maxUserZoom!==0&&a>this.settings.maxUserZoom)a=
this.settings.maxUserZoom;return a},setStartingScaleAndRotation:function(a,c){this.transformSettings.startingScale=this.getScale(a);this.transformSettings.startingRotation=(this.transformSettings.startingRotation+c)%360},zoomRotate:function(a,c){this.transformSettings.scale=this.getScale(a);this.transformSettings.rotation=this.transformSettings.startingRotation+c;this.applyTransform()},panStart:function(a){this.setStartingTranslateFromCurrentTransform();this.panStartingPoint={x:a.x,y:a.y}},pan:function(a){var c=
(a.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=this.transformSettings.startingTranslateX+(a.x-this.panStartingPoint.x)/this.transformSettings.scale;this.transformSettings.translateY=this.transformSettings.startingTranslateY+c;this.applyTransform()},zoomAndPanToPoint:function(b,c){this.panStart({x:a.DOM.bodyWidth()/2,y:a.DOM.windowHeight()/2});var d=(c.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=(this.transformSettings.startingTranslateX+
(c.x-this.panStartingPoint.x)/this.transformSettings.scale)*-1;this.transformSettings.translateY=(this.transformSettings.startingTranslateY+d)*-1;this.setStartingScaleAndRotation(b,0);this.transformSettings.scale=this.transformSettings.startingScale;this.transformSettings.rotation=0;this.applyTransform()},applyTransform:function(){var b="scale("+this.transformSettings.scale+") rotate("+this.transformSettings.rotation%360+"deg) translate("+e.parseInt(this.transformSettings.translateX,10)+"px, "+e.parseInt(this.transformSettings.translateY,
10)+"px)";a.DOM.setStyle(this.transformEl,{webkitTransform:b,MozTransform:b,msTransform:b,transform:b})}})})(window,window.klass,window.Code.Util);
(function(e,d){d.registerNamespace("Code.PhotoSwipe");var a=e.Code.PhotoSwipe;a.CssClasses={buildingBody:"ps-building",activeBody:"ps-active"};a.EventTypes={onBeforeShow:"PhotoSwipeOnBeforeShow",onShow:"PhotoSwipeOnShow",onBeforeHide:"PhotoSwipeOnBeforeHide",onHide:"PhotoSwipeOnHide",onDisplayImage:"PhotoSwipeOnDisplayImage",onResetPosition:"PhotoSwipeOnResetPosition",onSlideshowStart:"PhotoSwipeOnSlideshowStart",onSlideshowStop:"PhotoSwipeOnSlideshowStop",onTouch:"PhotoSwipeOnTouch",onBeforeCaptionAndToolbarShow:"PhotoSwipeOnBeforeCaptionAndToolbarShow",
onCaptionAndToolbarShow:"PhotoSwipeOnCaptionAndToolbarShow",onBeforeCaptionAndToolbarHide:"PhotoSwipeOnBeforeCaptionAndToolbarHide",onCaptionAndToolbarHide:"PhotoSwipeOnCaptionAndToolbarHide",onToolbarTap:"PhotoSwipeOnToolbarTap"};a.instances=[];a.activeInstance=null;a.setActivateInstance=function(c){if(!d.isNothing(a.activeInstance))throw"Code.PhotoSwipe.activateInstance: Unable to active instance as another instance is already active";a.activeInstance=c};a.unsetActivateInstance=function(){a.activeInstance=
null};a.attach=function(c,b,e){for(var h,e=a.createInstance(c,b,e),b=0;b<c.length;b++)if(h=c[b],!d.isNothing(h.nodeType)&&h.nodeType===1)h.__photoSwipeClickHandler=a.onTriggerElementClick.bind(e),d.Events.remove(h,"click",h.__photoSwipeClickHandler),d.Events.add(h,"click",h.__photoSwipeClickHandler);return e};if(e.jQuery)e.jQuery.fn.photoSwipe=function(c,b){return a.attach(this,c,b)};a.detatch=function(c){var b,e;for(b=0;b<c.originalImages.length;b++)e=c.originalImages[b],!d.isNothing(e.nodeType)&&
e.nodeType===1&&(d.Events.remove(e,"click",e.__photoSwipeClickHandler),delete e.__photoSwipeClickHandler);a.disposeInstance(c)};a.createInstance=function(c,b,e){var h;if(d.isNothing(c))throw"Code.PhotoSwipe.attach: No images passed.";if(!d.isLikeArray(c))throw"Code.PhotoSwipe.createInstance: Images must be an array of elements or image urls.";if(c.length<1)throw"Code.PhotoSwipe.createInstance: No images to passed.";b=d.coalesce(b,{});h=a.getInstance(e);if(d.isNothing(h))h=new a.PhotoSwipeClass(c,
b,e),a.instances.push(h);else throw'Code.PhotoSwipe.createInstance: Instance with id "'+e+' already exists."';return h};a.disposeInstance=function(c){var b=a.getInstanceIndex(c);if(b<0)throw"Code.PhotoSwipe.disposeInstance: Unable to find instance to dispose.";c.dispose();a.instances.splice(b,1)};a.onTriggerElementClick=function(a){a.preventDefault();this.show(a.currentTarget)};a.getInstance=function(c){var b,d;for(b=0;b<a.instances.length;b++)if(d=a.instances[b],d.id===c)return d;return null};a.getInstanceIndex=
function(c){var b,d=-1;for(b=0;b<a.instances.length;b++)if(a.instances[b]===c){d=b;break}return d}})(window,window.Code.Util);
(function(e,d,a,c,b,f,h,j,i){a.registerNamespace("Code.PhotoSwipe");var g=e.Code.PhotoSwipe;g.PhotoSwipeClass=d({id:null,settings:null,isBackEventSupported:null,backButtonClicked:null,currentIndex:null,originalImages:null,mouseWheelStartTime:null,cache:null,documentOverlay:null,carousel:null,uiLayer:null,toolbar:null,zoomPanRotate:null,windowOrientationChangeHandler:null,windowScrollHandler:null,windowHashChangeHandler:null,keyDownHandler:null,windowOrientationEventName:null,uiLayerTouchHandler:null,
carouselSlideByEndHandler:null,carouselSlideshowStartHandler:null,carouselSlideshowStopHandler:null,toolbarTapHandler:null,toolbarBeforeShowHandler:null,toolbarShowHandler:null,toolbarBeforeHideHandler:null,toolbarHideHandler:null,mouseWheelHandler:null,dispose:function(){var b;a.Events.remove(this,g.EventTypes.onBeforeShow);a.Events.remove(this,g.EventTypes.onShow);a.Events.remove(this,g.EventTypes.onBeforeHide);a.Events.remove(this,g.EventTypes.onHide);a.Events.remove(this,g.EventTypes.onDisplayImage);
a.Events.remove(this,g.EventTypes.onResetPosition);a.Events.remove(this,g.EventTypes.onSlideshowStart);a.Events.remove(this,g.EventTypes.onSlideshowStop);a.Events.remove(this,g.EventTypes.onTouch);a.Events.remove(this,g.EventTypes.onBeforeCaptionAndToolbarShow);a.Events.remove(this,g.EventTypes.onCaptionAndToolbarShow);a.Events.remove(this,g.EventTypes.onBeforeCaptionAndToolbarHide);a.Events.remove(this,g.EventTypes.onCaptionAndToolbarHide);this.removeEventHandlers();a.isNothing(this.documentOverlay)||
this.documentOverlay.dispose();a.isNothing(this.carousel)||this.carousel.dispose();a.isNothing(this.uiLayer)||this.uiLayer.dispose();a.isNothing(this.toolbar)||this.toolbar.dispose();this.destroyZoomPanRotate();a.isNothing(this.cache)||this.cache.dispose();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,d,f){this.id=a.isNothing(f)?"PhotoSwipe"+(new Date).getTime().toString():f;this.originalImages=b;if(a.Browser.isAndroid&&e.navigator.userAgent.indexOf("2.1")>-1)this.isBackEventSupported=
!0;if(!this.isBackEventSupported)this.isBackEventSupported=a.objectHasProperty(e,"onhashchange");this.settings={fadeInSpeed:250,fadeOutSpeed:250,preventHide:!1,preventSlideshow:!1,zIndex:1E3,backButtonHideEnabled:!0,enableKeyboard:!0,enableMouseWheel:!0,mouseWheelSpeed:350,autoStartSlideshow:!1,jQueryMobile:!a.isNothing(e.jQuery)&&!a.isNothing(e.jQuery.mobile),jQueryMobileDialogHash:"&ui-state=dialog",loop:!0,slideSpeed:250,nextPreviousSlideSpeed:0,enableDrag:!0,swipeThreshold:50,swipeTimeThreshold:250,
slideTimingFunction:"ease-out",slideshowDelay:3E3,doubleTapSpeed:250,margin:20,imageScaleMethod:"fit",captionAndToolbarHide:!1,captionAndToolbarFlipPosition:!1,captionAndToolbarAutoHideDelay:5E3,captionAndToolbarOpacity:0.8,captionAndToolbarShowEmptyCaptions:!0,getToolbar:g.Toolbar.getToolbar,allowUserZoom:!0,allowRotationOnUserZoom:!1,maxUserZoom:5,minUserZoom:0.5,doubleTapZoomLevel:2.5,getImageSource:g.Cache.Functions.getImageSource,getImageCaption:g.Cache.Functions.getImageCaption,getImageMetaData:g.Cache.Functions.getImageMetaData,
cacheMode:g.Cache.Mode.normal};a.extend(this.settings,d);if(this.settings.preventHide)this.settings.backButtonHideEnabled=!1;this.cache=new c.CacheClass(b,this.settings)},show:function(b){var c;if(a.isNumber(b))this.currentIndex=b;else{this.currentIndex=-1;for(c=0;c<this.originalImages.length;c++)if(this.originalImages[c]===b){this.currentIndex=c;break}}if(this.currentIndex<0||this.currentIndex>this.originalImages.length-1)throw"Code.PhotoSwipe.PhotoSwipeClass.show: Starting index out of range";g.setActivateInstance(this);
a.DOM.addClass(e.document.body,g.CssClasses.buildingBody);this.createComponents();a.Events.fire(this,{type:g.EventTypes.onBeforeShow,target:this});this.documentOverlay.fadeIn(this.settings.fadeInSpeed,this.onDocumentOverlayFadeIn.bind(this))},createComponents:function(){this.documentOverlay=new b.DocumentOverlayClass(this.settings);this.carousel=new f.CarouselClass(this.cache,this.settings);this.uiLayer=new j.UILayerClass(this.settings);if(!this.settings.captionAndToolbarHide)this.toolbar=new h.ToolbarClass(this.cache,
this.settings)},resetPosition:function(){this.destroyZoomPanRotate();this.documentOverlay.resetPosition();this.carousel.resetPosition();a.isNothing(this.toolbar)||this.toolbar.resetPosition();this.uiLayer.resetPosition();a.Events.fire(this,{type:g.EventTypes.onResetPosition,target:this})},addEventHandler:function(b,c){a.Events.add(this,b,c)},addEventHandlers:function(){if(a.isNothing(this.windowOrientationChangeHandler))this.windowOrientationChangeHandler=this.onWindowOrientationChange.bind(this),
this.windowScrollHandler=this.onWindowScroll.bind(this),this.keyDownHandler=this.onKeyDown.bind(this),this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.uiLayerTouchHandler=this.onUILayerTouch.bind(this),this.carouselSlideByEndHandler=this.onCarouselSlideByEnd.bind(this),this.carouselSlideshowStartHandler=this.onCarouselSlideshowStart.bind(this),this.carouselSlideshowStopHandler=this.onCarouselSlideshowStop.bind(this),this.toolbarTapHandler=this.onToolbarTap.bind(this),this.toolbarBeforeShowHandler=
this.onToolbarBeforeShow.bind(this),this.toolbarShowHandler=this.onToolbarShow.bind(this),this.toolbarBeforeHideHandler=this.onToolbarBeforeHide.bind(this),this.toolbarHideHandler=this.onToolbarHide.bind(this),this.mouseWheelHandler=this.onMouseWheel.bind(this);a.Browser.android?this.orientationEventName="resize":a.Browser.iOS&&!a.Browser.safari?a.Events.add(e.document.body,"orientationchange",this.windowOrientationChangeHandler):this.orientationEventName=!a.isNothing(e.onorientationchange)?"orientationchange":
"resize";a.isNothing(this.orientationEventName)||a.Events.add(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.add(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.add(e.document,"keydown",this.keyDownHandler);if(this.isBackEventSupported&&this.settings.backButtonHideEnabled)this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.settings.jQueryMobile?e.location.hash=this.settings.jQueryMobileDialogHash:(this.currentHistoryHashValue=
"PhotoSwipe"+(new Date).getTime().toString(),e.location.hash=this.currentHistoryHashValue),a.Events.add(e,"hashchange",this.windowHashChangeHandler);this.settings.enableMouseWheel&&a.Events.add(e,"mousewheel",this.mouseWheelHandler);a.Events.add(this.uiLayer,g.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.add(this.carousel,f.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler);a.Events.add(this.carousel,f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.add(this.carousel,
f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);a.isNothing(this.toolbar)||(a.Events.add(this.toolbar,h.EventTypes.onTap,this.toolbarTapHandler),a.Events.add(this.toolbar,h.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.add(this.toolbar,h.EventTypes.onShow,this.toolbarShowHandler),a.Events.add(this.toolbar,h.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler),a.Events.add(this.toolbar,h.EventTypes.onHide,this.toolbarHideHandler))},removeEventHandlers:function(){a.Browser.iOS&&
!a.Browser.safari&&a.Events.remove(e.document.body,"orientationchange",this.windowOrientationChangeHandler);a.isNothing(this.orientationEventName)||a.Events.remove(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.remove(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.remove(e.document,"keydown",this.keyDownHandler);this.isBackEventSupported&&this.settings.backButtonHideEnabled&&a.Events.remove(e,"hashchange",this.windowHashChangeHandler);a.Events.remove(this.uiLayer,
g.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.remove(this.carousel,f.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler);a.Events.remove(this.carousel,f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.remove(this.carousel,f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);this.settings.enableMouseWheel&&a.Events.remove(e,"mousewheel",this.mouseWheelHandler);a.isNothing(this.toolbar)||(a.Events.remove(this.toolbar,h.EventTypes.onTap,
this.toolbarTapHandler),a.Events.remove(this.toolbar,h.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.remove(this.toolbar,h.EventTypes.onShow,this.toolbarShowHandler),a.Events.remove(this.toolbar,h.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler),a.Events.remove(this.toolbar,h.EventTypes.onHide,this.toolbarHideHandler))},hide:function(){if(!this.settings.preventHide){this.removeEventHandlers();a.Events.fire(this,{type:g.EventTypes.onBeforeHide,target:this});this.uiLayer.dispose();
this.uiLayer=null;if(!a.isNothing(this.toolbar))this.toolbar.dispose(),this.toolbar=null;this.carousel.dispose();this.carousel=null;a.DOM.removeClass(e.document.body,g.CssClasses.activeBody);this.documentOverlay.dispose();this.documentOverlay=null;g.unsetActivateInstance();a.Events.fire(this,{type:g.EventTypes.onHide,target:this});this.goBackInHistory()}},goBackInHistory:function(){this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.backButtonClicked||e.history.back())},play:function(){!this.settings.preventSlideshow&&
!a.isNothing(this.carousel)&&(this.fadeOutToolbarIfVisible(),this.carousel.startSlideshow())},stop:function(){a.isNothing(this.carousel)||this.carousel.stopSlideshow()},previous:function(){a.isNothing(this.carousel)||this.carousel.previous()},next:function(){a.isNothing(this.carousel)||this.carousel.next()},toggleToolbar:function(){a.isNothing(this.toolbar)||this.toolbar.toggleVisibility(this.currentIndex)},fadeOutToolbarIfVisible:function(){!a.isNothing(this.toolbar)&&this.toolbar.isVisible&&this.settings.captionAndToolbarAutoHideDelay>
0&&this.toolbar.fadeOut()},createZoomPanRotate:function(){this.stop();if(this.canUserZoom()&&!this.isZoomActive())this.zoomPanRotate=new i.ZoomPanRotateClass(this.settings,this.cache.images[this.currentIndex],this.uiLayer),this.fadeOutToolbarIfVisible()},destroyZoomPanRotate:function(){if(!a.isNothing(this.zoomPanRotate))this.zoomPanRotate.dispose(),this.zoomPanRotate=null},canUserZoom:function(){var b;if(a.Browser.msie){if(b=document.createElement("div"),a.isNothing(b.style.msTransform))return!1}else if(!a.Browser.isCSSTransformSupported)return!1;
if(!this.settings.allowUserZoom)return!1;if(this.carousel.isSliding)return!1;b=this.cache.images[this.currentIndex];if(a.isNothing(b))return!1;if(b.isLoading)return!1;return!0},isZoomActive:function(){return!a.isNothing(this.zoomPanRotate)},getCurrentImage:function(){return this.cache.images[this.currentIndex]},onDocumentOverlayFadeIn:function(){e.setTimeout(function(){a.DOM.removeClass(e.document.body,g.CssClasses.buildingBody);a.DOM.addClass(e.document.body,g.CssClasses.activeBody);this.addEventHandlers();
this.carousel.show(this.currentIndex);this.uiLayer.show();this.settings.autoStartSlideshow?this.play():a.isNothing(this.toolbar)||this.toolbar.show(this.currentIndex);a.Events.fire(this,{type:g.EventTypes.onShow,target:this})}.bind(this),250)},onWindowScroll:function(){this.resetPosition()},onWindowOrientationChange:function(){this.resetPosition()},onWindowHashChange:function(){if(e.location.hash!=="#"+(this.settings.jQueryMobile?this.settings.jQueryMobileDialogHash:this.currentHistoryHashValue))this.backButtonClicked=
!0,this.hide()},onKeyDown:function(a){a.keyCode===37?(a.preventDefault(),this.previous()):a.keyCode===39?(a.preventDefault(),this.next()):a.keyCode===38||a.keyCode===40?a.preventDefault():a.keyCode===27?(a.preventDefault(),this.hide()):a.keyCode===32?(this.settings.hideToolbar?this.hide():this.toggleToolbar(),a.preventDefault()):a.keyCode===13&&(a.preventDefault(),this.play())},onUILayerTouch:function(b){if(this.isZoomActive())switch(b.action){case g.TouchElement.ActionTypes.gestureChange:this.zoomPanRotate.zoomRotate(b.scale,
this.settings.allowRotationOnUserZoom?b.rotation:0);break;case g.TouchElement.ActionTypes.gestureEnd:this.zoomPanRotate.setStartingScaleAndRotation(b.scale,this.settings.allowRotationOnUserZoom?b.rotation:0);break;case g.TouchElement.ActionTypes.touchStart:this.zoomPanRotate.panStart(b.point);break;case g.TouchElement.ActionTypes.touchMove:this.zoomPanRotate.pan(b.point);break;case g.TouchElement.ActionTypes.doubleTap:this.destroyZoomPanRotate();this.toggleToolbar();break;case g.TouchElement.ActionTypes.swipeLeft:this.destroyZoomPanRotate();
this.next();this.toggleToolbar();break;case g.TouchElement.ActionTypes.swipeRight:this.destroyZoomPanRotate(),this.previous(),this.toggleToolbar()}else switch(b.action){case g.TouchElement.ActionTypes.touchMove:case g.TouchElement.ActionTypes.swipeLeft:case g.TouchElement.ActionTypes.swipeRight:this.fadeOutToolbarIfVisible();this.carousel.onTouch(b.action,b.point);break;case g.TouchElement.ActionTypes.touchStart:case g.TouchElement.ActionTypes.touchEnd:this.carousel.onTouch(b.action,b.point);break;
case g.TouchElement.ActionTypes.tap:this.toggleToolbar();break;case g.TouchElement.ActionTypes.doubleTap:b.point.x-=a.DOM.windowScrollLeft();b.point.y-=a.DOM.windowScrollTop();var c=this.cache.images[this.currentIndex].imageEl,d=e.parseInt(a.DOM.getStyle(c,"top"),10),f=e.parseInt(a.DOM.getStyle(c,"left"),10),h=f+a.DOM.width(c),c=d+a.DOM.height(c);if(b.point.x<f)b.point.x=f;else if(b.point.x>h)b.point.x=h;if(b.point.y<d)b.point.y=d;else if(b.point.y>c)b.point.y=c;this.createZoomPanRotate();this.isZoomActive()&&
this.zoomPanRotate.zoomAndPanToPoint(this.settings.doubleTapZoomLevel,b.point);break;case g.TouchElement.ActionTypes.gestureStart:this.createZoomPanRotate()}a.Events.fire(this,{type:g.EventTypes.onTouch,target:this,point:b.point,action:b.action})},onCarouselSlideByEnd:function(b){this.currentIndex=b.cacheIndex;a.isNothing(this.toolbar)||(this.toolbar.setCaption(this.currentIndex),this.toolbar.setToolbarStatus(this.currentIndex));a.Events.fire(this,{type:g.EventTypes.onDisplayImage,target:this,action:b.action,
index:b.cacheIndex})},onToolbarTap:function(b){switch(b.action){case h.ToolbarAction.next:this.next();break;case h.ToolbarAction.previous:this.previous();break;case h.ToolbarAction.close:this.hide();break;case h.ToolbarAction.play:this.play()}a.Events.fire(this,{type:g.EventTypes.onToolbarTap,target:this,toolbarAction:b.action,tapTarget:b.tapTarget})},onMouseWheel:function(b){var c=a.Events.getWheelDelta(b);if(!(b.timeStamp-(this.mouseWheelStartTime||0)<this.settings.mouseWheelSpeed))this.mouseWheelStartTime=
b.timeStamp,this.settings.invertMouseWheel&&(c*=-1),c<0?this.next():c>0&&this.previous()},onCarouselSlideshowStart:function(){a.Events.fire(this,{type:g.EventTypes.onSlideshowStart,target:this})},onCarouselSlideshowStop:function(){a.Events.fire(this,{type:g.EventTypes.onSlideshowStop,target:this})},onToolbarBeforeShow:function(){a.Events.fire(this,{type:g.EventTypes.onBeforeCaptionAndToolbarShow,target:this})},onToolbarShow:function(){a.Events.fire(this,{type:g.EventTypes.onCaptionAndToolbarShow,
target:this})},onToolbarBeforeHide:function(){a.Events.fire(this,{type:g.EventTypes.onBeforeCaptionAndToolbarHide,target:this})},onToolbarHide:function(){a.Events.fire(this,{type:g.EventTypes.onCaptionAndToolbarHide,target:this})}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.Cache,window.Code.PhotoSwipe.DocumentOverlay,window.Code.PhotoSwipe.Carousel,window.Code.PhotoSwipe.Toolbar,window.Code.PhotoSwipe.UILayer,window.Code.PhotoSwipe.ZoomPanRotate);
