!function(l,e,n,r){"use strict";function t(){this.storage={},this.get=function(t){return t in this.storage?this.storage[t]:null},this.set=function(t,e){this.storage[t]=e},this.del=function(t){delete this.storage[t]},this.len=function(){return Object.keys(this.storage).length}}function o(){this.isMobile=function(t){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t)},this.transitionEvent=function(){var t=n.createElement("fakeelement"),e={transition:"transitionend",OTransition:"otransitionend",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(var o in e)if(t.style[o]!==r)return e[o];return null},this.animationEvent=function(){var t=n.createElement("fakeelement"),e={animation:"animationend",MSAnimationEnd:"msAnimationEnd",OAnimation:"oAnimationEnd",MozAnimation:"mozAnimationEnd",WebkitAnimation:"webkitAnimationEnd"};for(var o in e)if(t.style[o]!==r)return e[o];return null}}var a="flashy-id",i=0,h=0,s=null;function c(){}function u(){return null==s&&(s=new c)._init(),s}c.prototype={itemDefaults:{type:"image",title:!0,width:null,height:null,gallery:!0,galleryLoop:!0,galleryCounter:!0,galleryPrevNext:!0,galleryCounterMessage:"[index] / [total]",gallerySwipeDesktop:!0,gallerySwipeMobile:!0,gallerySwipeThreshold:100,keyboard:!0,overlayClose:!1,themeClass:null,showClass:null,hideClass:null,nextShowClass:null,nextHideClass:null,prevShowClass:null,prevHideClass:null,videoAutoPlay:!1,loadError:"Sorry, an error occured while loading the content..."},touchMouseEvent:{down:"touchmousedown",up:"touchmouseup",move:"touchmousemove"},$body:null,$document:null,util:null,animationEvent:null,items:null,currItem:null,prevItem:null,nextItem:null,def:null,swipe:{startY:0,startX:0,endY:0,endX:0,diffY:0,diffX:0,startTouch:!1,threshold:100},controls:{$overlay:null,$container:null,$contentOuter:null,$contentInner:null,$content:null,$title:null,$numeration:null,$next:null,$prev:null,$close:null,$preloader:null},_init:function(){this.$body=l("body"),this.$document=l(n),this.util=new o,this.animationEvent=this.util.animationEvent(),this.items=new t},_buildDOM:function(){this.controls.$overlay=l("
").addClass("flashy-overlay"),this.controls.$container=l("
").addClass("flashy-container").attr("tabindex",1),this.controls.$title=l("
").addClass("flashy-title"),this.controls.$numeration=l("
").addClass("flashy-numeration"),this.controls.$next=l("
").addClass("flashy-next"),this.controls.$prev=l("
").addClass("flashy-prev"),this.controls.$close=l("
").addClass("flashy-close"),this.controls.$preloader=l("
").addClass("flashy-preloader"),this.controls.$overlay.append(this.controls.$container,this.controls.$title,this.controls.$numeration,this.controls.$next,this.controls.$prev,this.controls.$close,this.controls.$preloader),this.$body.append(this.controls.$overlay),this.$body.get(0).offsetHeight;var t=this.controls.$container.get(0).offsetWidth-this.controls.$container.get(0).clientWidth;this.controls.$container.css("right",-t+"px"),this.$body.addClass("flashy-active")},_bind:function(t){t.config.overlayClose?this.controls.$overlay.on("click touchend",l.proxy(this._onOverlayClick,this)):this.controls.$close.on("click touchend",l.proxy(this._onCloseClick,this)),this.controls.$prev.on("click touchend",l.proxy(this._onGalleryNavigationClick,this,"prev")),this.controls.$next.on("click touchend",l.proxy(this._onGalleryNavigationClick,this,"next")),this.$body.on("keydown",l.proxy(this._onKeyboard,this)),t.config.gallery&&("ontouchstart"in e?t.config.gallerySwipeMobile&&(this.$document.on("touchstart",l.proxy(this._onTouch,this)),this.$document.on("touchmove",l.proxy(this._onTouch,this)),this.$document.on("touchend",l.proxy(this._onTouch,this))):t.config.gallerySwipeDesktop&&(this.$document.on("mousedown",l.proxy(this._onMouse,this)),this.$document.on("mouseup",l.proxy(this._onMouse,this)),this.$document.on("mouseout",l.proxy(this._onMouse,this)),this.$document.on("mousemove",l.proxy(this._onMouse,this)))),this.$document.on("webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",l.proxy(this._onFullsceenChange,this))},_unbind:function(){this.controls.$overlay.off("click touchend",l.proxy(this._onOverlayClick,this)),this.controls.$close.off("click touchend",l.proxy(this._onCloseClick,this)),this.controls.$prev.off("click touchend",l.proxy(this._onGalleryNavigationClick,this,"prev")),this.controls.$next.off("click touchend",l.proxy(this._onGalleryNavigationClick,this,"next")),this.$body.off("keydown",l.proxy(this._onKeyboard,this)),"ontouchstart"in e?(this.$document.off("touchstart",l.proxy(this._onTouch,this)),this.$document.off("touchmove",l.proxy(this._onTouch,this)),this.$document.off("touchend",l.proxy(this._onTouch,this))):(this.$document.off("mousedown",l.proxy(this._onMouse,this)),this.$document.off("mouseup",l.proxy(this._onMouse,this)),this.$document.off("mouseout",l.proxy(this._onMouse,this)),this.$document.off("mousemove",l.proxy(this._onMouse,this))),this.$document.off("webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",l.proxy(this._onFullsceenChange,this))},_addItem:function(t,e,o){var n=t.data(a),s={id:null,$el:t,config:o,group:e,groupIndex:0,groupTotal:0};n||(n=i++,t.data(a,n),t.on("click touchend",l.proxy(this._onItemClick,this))),s.id=n,this.items.set(n,s)},_removeItem:function(t){var e=t.data(a);e&&(t.removeData(a),t.off("click touchend",l.proxy(this._onItemClick,this)),this.items.del(e))},_onFullsceenChange:function(t){e.screenTop||e.screenY?this.controls.$overlay.addClass("flashy-fullscreen"):this.controls.$overlay.removeClass("flashy-fullscreen")},_onOverlayClick:function(t){l(t.target).closest(".flashy-content").hasClass("flashy-content")||this._close()},_onCloseClick:function(t){this._close()},_onGalleryNavigationClick:function(t,e){e.preventDefault(),e.stopPropagation(),this._galleryNavigate(t)},_onKeyboard:function(t){null!=this.currItem&&this.currItem.config.keyboard&&(27!==t.keyCode?this.currItem.config.gallery&&(37==t.keyCode&&this.prevItem&&this._galleryNavigate("prev"),39==t.keyCode&&this.nextItem&&this._galleryNavigate("next")):this._close())},_onItemClick:function(t){t.preventDefault(),t.stopPropagation(),this._show(l(t.currentTarget))},_onMouse:function(t){var e;switch(t.type){case"mousedown":e=this.touchMouseEvent.down;break;case"mouseup":case"mouseout":e=this.touchMouseEvent.up;break;case"mousemove":e=this.touchMouseEvent.move;break;default:return}var o=this._normalizeEvent(e,t,t.pageX,t.pageY);l(t.target).trigger(o)},_onTouch:function(t){var e;switch(t.type){case"touchstart":e=this.touchMouseEvent.down;break;case"touchend":e=this.touchMouseEvent.up;break;case"touchmove":e=this.touchMouseEvent.move;break;default:return}var o,n=t.originalEvent.touches[0];o=e==this.touchMouseEvent.up?this._normalizeEvent(e,t,null,null):this._normalizeEvent(e,t,n.pageX,n.pageY),l(t.target).trigger(o)},_onSwipeDown:function(t){this.swipe.startY=this.swipe.endY=t.pageY,this.swipe.startX=this.swipe.endX=t.pageX,this.swipe.startouch=!0},_onSwipeMove:function(t){if(this.swipe.startouch){this.swipe.endY=t.pageY,this.swipe.endX=t.pageX,this.swipe.diffY=this.swipe.endY-this.swipe.startY,this.swipe.diffX=this.swipe.endX-this.swipe.startX;var e=Math.abs(this.swipe.diffX),o=Math.abs(this.swipe.diffY);(10<=e||10<=o)&&(t.preventDefault(),this.controls.$content.css("transform","translate("+this.swipe.diffX+"px,"+this.swipe.diffY+"px)"))}},_onSwipeUp:function(t){if(this.swipe.startouch){var e=null,o=this.swipe.startouch=!1;this.swipe.diff=this.swipe.endX-this.swipe.startX,this.swipe.diff<0&&this.nextItem&&(e="next",o=!0),0=this.swipe.threshold?this._galleryNavigate(e):this.controls.$content.css("transform","")}},_normalizeEvent:function(t,e,o,n){return l.Event(t,{pageX:o,pageY:n,originalEvent:e})},_show:function(t,e){var o=t.data(a),n=this.items.get(o),s=t.data("flashy-type")||n.config.type,i=t.data("flashy-href")||t.attr("href"),l=this;null==this.currItem&&(this._buildDOM(),this._initGalleryCounter(n),this._bind(n)),this._hideContent(this.currItem,e),this.currItem=n,this._loadContent(s,n,i).done(function(){l._showContent(n,e)}).fail(function(){l.controls.$content.html(n.config.loadError).addClass("flashy-error"),l._showContent(n,e)}).always(function(){l._updateDOM(n),l._hidePreloader(),l._initSwipe(n)})},_close:function(){this.controls.$overlay.remove(),this.$body.removeClass("flashy-active"),this._unbind(),this.currItem&&this.currItem.$el.focus(),this.currItem=null,this.controls.$contentOuter=null,this.controls.$contentInner=null,this.controls.$content=null,this._hideGalleryNavigation()},_showPreloader:function(){this.controls.$preloader.addClass("flashy-show")},_hidePreloader:function(){this.controls.$preloader.removeClass("flashy-show")},_initSwipe:function(t){this.swipe.threshold=t.config.gallerySwipeThreshold,this.controls.$contentInner.on(this.touchMouseEvent.down,l.proxy(this._onSwipeDown,this)),this.controls.$contentInner.on(this.touchMouseEvent.move,l.proxy(this._onSwipeMove,this)),this.controls.$contentInner.on(this.touchMouseEvent.up,l.proxy(this._onSwipeUp,this))},_hideContent:function(t,e){if(this.controls.$contentOuter){var o=this.controls.$contentOuter;this.controls.$contentOuter=null,this.controls.$contentInner=null,this.controls.$content=null;var n=t.config.hideClass;"next"==e&&t.config.nextHideClass?n=t.config.nextHideClass:"prev"==e&&t.config.prevHideClass&&(n=t.config.prevHideClass),this.animationEvent&&n?(o.attr("class","flashy-content-outer"),o.addClass(n),o.one(this.animationEvent,function(t){l(this).remove()})):o.remove()}},_showContent:function(t,e){var o=t.config.showClass;"next"==e&&t.config.nextShowClass?o=t.config.nextShowClass:"prev"==e&&t.config.prevShowClass&&(o=t.config.prevShowClass),this.animationEvent&&o&&this.controls.$contentOuter.addClass(o),this.controls.$container.focus().stop().animate({scrollTop:0},300),this.controls.$content.addClass("flashy-show"),this.controls.$content.on("dragstart","img",function(t){return!1});var n=t.$el.data("flashy-width")||t.config.width,s=t.$el.data("flashy-height")||t.config.height;n&&this.controls.$content.css("width",n),s&&this.controls.$content.css("height",s)},_loadContent:function(t,e,o){this._showPreloader(),this._updateGalleryNavigation(e),this.controls.$contentOuter=l("
").addClass("flashy-content-outer"),this.controls.$contentInner=l("
").addClass("flashy-content-inner"),this.controls.$content=l("
").addClass("flashy-content"),this.controls.$contentInner.append(this.controls.$content),this.controls.$contentOuter.append(this.controls.$contentInner),this.controls.$container.append(this.controls.$contentOuter),this.def&&(this.def.reject(),this.def=null);var n=this.def=l.Deferred();switch(t){case"image":this._loadImage(n,e,o);break;case"inline":this._loadInline(n,e,o);break;case"ajax":this._loadAjax(n,e,o);break;case"iframe":this._loadIframe(n,e,o);break;case"video":this._loadVideo(n,e,o)}return n.promise()},_loadImage:function(t,e,o){this.controls.$content.addClass("flashy-image"),this.controls.$content.html(''),this.controls.$content.find("img").one("load",function(){t.resolve()}).one("error",function(){t.reject()}).each(function(){this.complete&&l(this).load()})},_loadInline:function(t,e,o){var n=l(o);n.length&&(this.controls.$content.addClass("flashy-inline"),this.controls.$content.html(n.html()),t.resolve()),t.reject()},_loadAjax:function(e,t,o){this.controls.$content.addClass("flashy-inline");var n=this;l.ajax({url:o,cache:!1}).done(function(t){n.controls.$content.html(t),e.resolve()}).fail(function(){e.reject()})},_loadIframe:function(t,e,o){this.controls.$content.addClass("flashy-iframe"),this.controls.$content.html(''),t.resolve()},_loadVideo:function(t,e,o){this.controls.$content.addClass("flashy-video");var n=this._parseVideoUrl(o),s=null,i=(e.config.videoAutoPlay?"?rel=0&autoplay=1":"?rel=0")+this._getUrlParameter(o);"vimeo"==n.type?s="https://player.vimeo.com/video/":"youtube"==n.type&&(s="https://www.youtube.com/embed/"),s?(this.controls.$content.html(''),t.resolve()):t.reject()},_parseVideoUrl:function(t){var e;return t.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),-1