!function(n,t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?module.exports=t(require("jquery")):n.lightbox=t(n.jQuery)}(this,function(n){function t(t){this.album=[];this.currentImageIndex=void 0;this.init();this.options=n.extend({},this.constructor.defaults);this.option(t)}return t.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,sanitizeTitle:!1},t.prototype.option=function(t){n.extend(this.options,t)},t.prototype.imageCountLabel=function(n,t){return this.options.albumLabel.replace(/%1/g,n).replace(/%2/g,t)},t.prototype.init=function(){var t=this;n(document).ready(function(){t.enable();t.build()})},t.prototype.enable=function(){var t=this;n("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(i){return t.start(n(i.currentTarget)),!1})},t.prototype.build=function(){var t=this;n('<div id="lightboxOverlay" class="lightboxOverlay"><\/div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ><\/a><a class="lb-next" href="" ><\/a><\/div><div class="lb-loader"><a class="lb-cancel"><\/a><\/div><\/div><\/div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"><\/span><span class="lb-number"><\/span><\/div><div class="lb-closeContainer"><a class="lb-close"><\/a><\/div><\/div><\/div><\/div>').appendTo(n("body"));this.$lightbox=n("#lightbox");this.$overlay=n("#lightboxOverlay");this.$outerContainer=this.$lightbox.find(".lb-outerContainer");this.$container=this.$lightbox.find(".lb-container");this.$image=this.$lightbox.find(".lb-image");this.$nav=this.$lightbox.find(".lb-nav");this.containerPadding={top:parseInt(this.$container.css("padding-top"),10),right:parseInt(this.$container.css("padding-right"),10),bottom:parseInt(this.$container.css("padding-bottom"),10),left:parseInt(this.$container.css("padding-left"),10)};this.imageBorderWidth={top:parseInt(this.$image.css("border-top-width"),10),right:parseInt(this.$image.css("border-right-width"),10),bottom:parseInt(this.$image.css("border-bottom-width"),10),left:parseInt(this.$image.css("border-left-width"),10)};this.$overlay.hide().on("click",function(){return t.end(),!1});this.$lightbox.hide().on("click",function(i){return"lightbox"===n(i.target).attr("id")&&t.end(),!1});this.$outerContainer.on("click",function(i){return"lightbox"===n(i.target).attr("id")&&t.end(),!1});this.$lightbox.find(".lb-prev").on("click",function(){return 0===t.currentImageIndex?t.changeImage(t.album.length-1):t.changeImage(t.currentImageIndex-1),!1});this.$lightbox.find(".lb-next").on("click",function(){return t.currentImageIndex===t.album.length-1?t.changeImage(0):t.changeImage(t.currentImageIndex+1),!1});this.$nav.on("mousedown",function(n){3===n.which&&(t.$nav.css("pointer-events","none"),t.$lightbox.one("contextmenu",function(){setTimeout(function(){this.$nav.css("pointer-events","auto")}.bind(t),0)}))});this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return t.end(),!1})},t.prototype.start=function(t){function e(n){l.album.push({link:n.attr("href"),title:n.attr("data-title")||n.attr("title")})}var l=this,o=n(window),i,f,s,r,u,h,c;if(o.on("resize",n.proxy(this.sizeOverlay,this)),n("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[],f=0,s=t.attr("data-lightbox"),s)for(i=n(t.prop("tagName")+'[data-lightbox="'+s+'"]'),r=0;r<i.length;r=++r)e(n(i[r])),i[r]===t[0]&&(f=r);else if("lightbox"===t.attr("rel"))e(t);else for(i=n(t.prop("tagName")+'[rel="'+t.attr("rel")+'"]'),u=0;u<i.length;u=++u)e(n(i[u])),i[u]===t[0]&&(f=u);h=o.scrollTop()+this.options.positionFromTop;c=o.scrollLeft();this.$lightbox.css({top:h+"px",left:c+"px"}).fadeIn(this.options.fadeDuration);this.options.disableScrolling&&n("body").addClass("lb-disable-scrolling");this.changeImage(f)},t.prototype.changeImage=function(t){var i=this,u,r;this.disableKeyboardNav();u=this.$lightbox.find(".lb-image");this.$overlay.fadeIn(this.options.fadeDuration);n(".lb-loader").fadeIn("slow");this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide();this.$outerContainer.addClass("animating");r=new Image;r.onload=function(){var l,e,o,s,f,h,c;u.attr("src",i.album[t].link);l=n(r);u.width(r.width);u.height(r.height);i.options.fitImagesInViewport&&(c=n(window).width(),h=n(window).height(),f=c-i.containerPadding.left-i.containerPadding.right-i.imageBorderWidth.left-i.imageBorderWidth.right-20,s=h-i.containerPadding.top-i.containerPadding.bottom-i.imageBorderWidth.top-i.imageBorderWidth.bottom-120,i.options.maxWidth&&i.options.maxWidth<f&&(f=i.options.maxWidth),i.options.maxHeight&&i.options.maxHeight<f&&(s=i.options.maxHeight),(r.width>f||r.height>s)&&(r.width/f>r.height/s?(o=f,e=parseInt(r.height/(r.width/o),10),u.width(o),u.height(e)):(e=s,o=parseInt(r.width/(r.height/e),10),u.width(o),u.height(e))));i.sizeContainer(u.width(),u.height())};r.src=this.album[t].link;this.currentImageIndex=t},t.prototype.sizeOverlay=function(){this.$overlay.width(n(document).width()).height(n(document).height())},t.prototype.sizeContainer=function(n,t){function f(){i.$lightbox.find(".lb-dataContainer").width(u);i.$lightbox.find(".lb-prevLink").height(r);i.$lightbox.find(".lb-nextLink").height(r);i.showImage()}var i=this,e=this.$outerContainer.outerWidth(),o=this.$outerContainer.outerHeight(),u=n+this.containerPadding.left+this.containerPadding.right+this.imageBorderWidth.left+this.imageBorderWidth.right,r=t+this.containerPadding.top+this.containerPadding.bottom+this.imageBorderWidth.top+this.imageBorderWidth.bottom;e!==u||o!==r?this.$outerContainer.animate({width:u,height:r},this.options.resizeDuration,"swing",function(){f()}):f()},t.prototype.showImage=function(){this.$lightbox.find(".lb-loader").stop(!0).hide();this.$lightbox.find(".lb-image").fadeIn(this.options.imageFadeDuration);this.updateNav();this.updateDetails();this.preloadNeighboringImages();this.enableKeyboardNav()},t.prototype.updateNav=function(){var n=!1;try{document.createEvent("TouchEvent");n=this.options.alwaysShowNavOnTouchDevices?!0:!1}catch(t){}this.$lightbox.find(".lb-nav").show();this.album.length>1&&(this.options.wrapAround?(n&&this.$lightbox.find(".lb-prev, .lb-next").css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".lb-prev").show(),n&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".lb-next").show(),n&&this.$lightbox.find(".lb-next").css("opacity","1"))))},t.prototype.updateDetails=function(){var r=this,t,i;"undefined"!=typeof this.album[this.currentImageIndex].title&&""!==this.album[this.currentImageIndex].title&&(t=this.$lightbox.find(".lb-caption"),this.options.sanitizeTitle?t.text(this.album[this.currentImageIndex].title):t.html(this.album[this.currentImageIndex].title),t.fadeIn("fast").find("a").on("click",function(){void 0!==n(this).attr("target")?window.open(n(this).attr("href"),n(this).attr("target")):location.href=n(this).attr("href")}));this.album.length>1&&this.options.showImageNumberLabel?(i=this.imageCountLabel(this.currentImageIndex+1,this.album.length),this.$lightbox.find(".lb-number").text(i).fadeIn("fast")):this.$lightbox.find(".lb-number").hide();this.$outerContainer.removeClass("animating");this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return r.sizeOverlay()})},t.prototype.preloadNeighboringImages=function(){var n,t;this.album.length>this.currentImageIndex+1&&(n=new Image,n.src=this.album[this.currentImageIndex+1].link);this.currentImageIndex>0&&(t=new Image,t.src=this.album[this.currentImageIndex-1].link)},t.prototype.enableKeyboardNav=function(){n(document).on("keyup.keyboard",n.proxy(this.keyboardAction,this))},t.prototype.disableKeyboardNav=function(){n(document).off(".keyboard")},t.prototype.keyboardAction=function(n){var t=n.keyCode,i=String.fromCharCode(t).toLowerCase();t===27||i.match(/x|o|c/)?this.end():"p"===i||t===37?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):("n"===i||t===39)&&(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))},t.prototype.end=function(){this.disableKeyboardNav();n(window).off("resize",this.sizeOverlay);this.$lightbox.fadeOut(this.options.fadeDuration);this.$overlay.fadeOut(this.options.fadeDuration);n("select, object, embed").css({visibility:"visible"});this.options.disableScrolling&&n("body").removeClass("lb-disable-scrolling")},new t})