(function (){
var b, d, c;
b=jQuery;
c=(function (){
function b(){
this.fadeDuration=500;
this.fitImagesInViewport=true;
this.resizeDuration=700;
this.showImageNumberLabel=true;
this.wrapAround=false
}
b.prototype.albumLabel=function (b, c){
return "Image " + b + " of " + c
};
return b
})();
d=(function (){
function c(b){
this.options=b;
this.album=[];
this.currentImageIndex=void 0;
this.init()
}
c.prototype.init=function (){
this.enable();
return this.build()
};
c.prototype.enable=function (){
var c=this;
return b('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function (d){
c.start(b(d.currentTarget));
return false
})
};
c.prototype.build=function (){
var c=this;
b("<div id='lightboxOverlay' class='lightboxOverlay'></div><div id='lightbox' class='lightbox'><div class='lb-outerContainer'><div class='lb-container'><img class='lb-image' src='' /><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(b('body'));
this.$lightbox=b('#lightbox');
this.$overlay=b('#lightboxOverlay');
this.$outerContainer=this.$lightbox.find('.lb-outerContainer');
this.$container=this.$lightbox.find('.lb-container');
this.containerTopPadding=parseInt(this.$container.css('padding-top'), 10);
this.containerRightPadding=parseInt(this.$container.css('padding-right'), 10);
this.containerBottomPadding=parseInt(this.$container.css('padding-bottom'), 10);
this.containerLeftPadding=parseInt(this.$container.css('padding-left'), 10);
this.$overlay.hide().on('click', function (){
c.end();
return false
});
this.$lightbox.hide().on('click', function (d){
if(b(d.target).attr('id')==='lightbox'){
c.end()
}
return false
});
this.$outerContainer.on('click', function (d){
if(b(d.target).attr('id')==='lightbox'){
c.end()
}
return false
});
this.$lightbox.find('.lb-prev').on('click', function (){
if(c.currentImageIndex===0){
c.changeImage(c.album.length - 1)
}else{
c.changeImage(c.currentImageIndex - 1)
}
return false
});
this.$lightbox.find('.lb-next').on('click', function (){
if(c.currentImageIndex===c.album.length - 1){
c.changeImage(0)
}else{
c.changeImage(c.currentImageIndex + 1)
}
return false
});
return this.$lightbox.find('.lb-loader, .lb-close').on('click', function (){
c.end();
return false
})
};
c.prototype.start=function (c){
var f, e, j, d, g, n, o, k, l, m, p, h, i;
b(window).on("resize", this.sizeOverlay);
b('select, object, embed').css({
visibility: "hidden"
});
this.$overlay.width(b(document).width()).height(b(document).height()).fadeIn(this.options.fadeDuration);
this.album=[];
g=0;
j=c.attr('data-lightbox');
if(j){
h=b(c.prop("tagName") + '[data-lightbox="' + j + '"]');
for (d=k = 0, m=h.length; k < m; d=++k){
e=h[d];
this.album.push({
link: b(e).attr('href'),
title: b(e).attr('title')
});
if(b(e).attr('href')===c.attr('href')){
g=d
}}
}else{
if(c.attr('rel')==='lightbox'){
this.album.push({
link: c.attr('href'),
title: c.attr('title')
})
}else{
i=b(c.prop("tagName") + '[rel="' + c.attr('rel') + '"]');
for (d=l = 0, p=i.length; l < p; d=++l){
e=i[d];
this.album.push({
link: b(e).attr('href'),
title: b(e).attr('title')
});
if(b(e).attr('href')===c.attr('href')){
g=d
}}
}}
f=b(window);
o=f.scrollTop() + f.height() / 10;
n=f.scrollLeft();
this.$lightbox.css({
top: o + 'px',
left: n + 'px'
}).fadeIn(this.options.fadeDuration);
this.changeImage(g)
};
c.prototype.changeImage=function (f){
var d, c, e=this;
this.disableKeyboardNav();
d=this.$lightbox.find('.lb-image');
this.sizeOverlay();
this.$overlay.fadeIn(this.options.fadeDuration);
b('.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');
c=new Image();
c.onload=function (){
var m, g, h, i, j, k, l;
d.attr('src', e.album[f].link);
m=b(c);
d.width(c.width);
d.height(c.height);
if(e.options.fitImagesInViewport){
l=b(window).width();
k=b(window).height();
j=l - e.containerLeftPadding - e.containerRightPadding - 20;
i=k - e.containerTopPadding - e.containerBottomPadding - 110;
if((c.width > j)||(c.height > i)){
if((c.width / j) > (c.height / i)){
h=j;
g=parseInt(c.height / (c.width / h), 10);
d.width(h);
d.height(g)
}else{
g=i;
h=parseInt(c.width / (c.height / g), 10);
d.width(h);
d.height(g)
}}
}
return e.sizeContainer(d.width(), d.height())
};
c.src=this.album[f].link;
this.currentImageIndex=f
};
c.prototype.sizeOverlay=function (){
return b('#lightboxOverlay').width(b(document).width()).height(b(document).height())
};
c.prototype.sizeContainer=function (f, g){
var b, d, e, h, c=this;
h=this.$outerContainer.outerWidth();
e=this.$outerContainer.outerHeight();
d=f + this.containerLeftPadding + this.containerRightPadding;
b=g + this.containerTopPadding + this.containerBottomPadding;
this.$outerContainer.animate({
width: d,
height: b
}, this.options.resizeDuration, 'swing');
setTimeout(function (){
c.$lightbox.find('.lb-dataContainer').width(d);
c.$lightbox.find('.lb-prevLink').height(b);
c.$lightbox.find('.lb-nextLink').height(b);
c.showImage()
}, this.options.resizeDuration)
};
c.prototype.showImage=function (){
this.$lightbox.find('.lb-loader').hide();
this.$lightbox.find('.lb-image').fadeIn('slow');
this.updateNav();
this.updateDetails();
this.preloadNeighboringImages();
this.enableKeyboardNav()
};
c.prototype.updateNav=function (){
this.$lightbox.find('.lb-nav').show();
if(this.album.length > 1){
if(this.options.wrapAround){
this.$lightbox.find('.lb-prev, .lb-next').show()
}else{
if(this.currentImageIndex > 0){
this.$lightbox.find('.lb-prev').show()
}
if(this.currentImageIndex < this.album.length - 1){
this.$lightbox.find('.lb-next').show()
}}
}};
c.prototype.updateDetails=function (){
var b=this;
if(typeof this.album[this.currentImageIndex].title!=='undefined'&&this.album[this.currentImageIndex].title!==""){
this.$lightbox.find('.lb-caption').html(this.album[this.currentImageIndex].title).fadeIn('fast')
}
if(this.album.length > 1&&this.options.showImageNumberLabel){
this.$lightbox.find('.lb-number').text(this.options.albumLabel(this.currentImageIndex + 1, this.album.length)).fadeIn('fast')
}else{
this.$lightbox.find('.lb-number').hide()
}
this.$outerContainer.removeClass('animating');
this.$lightbox.find('.lb-dataContainer').fadeIn(this.resizeDuration, function (){
return b.sizeOverlay()
})
};
c.prototype.preloadNeighboringImages=function (){
var c, b;
if(this.album.length > this.currentImageIndex + 1){
c=new Image();
c.src=this.album[this.currentImageIndex + 1].link
}
if(this.currentImageIndex > 0){
b=new Image();
b.src=this.album[this.currentImageIndex - 1].link
}};
c.prototype.enableKeyboardNav=function (){
b(document).on('keyup.keyboard', b.proxy(this.keyboardAction, this))
};
c.prototype.disableKeyboardNav=function (){
b(document).off('.keyboard')
};
c.prototype.keyboardAction=function (g){
var d, e, f, c, b;
d=27;
e=37;
f=39;
b=g.keyCode;
c=String.fromCharCode(b).toLowerCase();
if(b===d||c.match(/x|o|c/)){
this.end()
}else if(c==='p'||b===e){
if(this.currentImageIndex!==0){
this.changeImage(this.currentImageIndex - 1)
}}else if(c==='n'||b===f){
if(this.currentImageIndex!==this.album.length - 1){
this.changeImage(this.currentImageIndex + 1)
}}
};
c.prototype.end=function (){
this.disableKeyboardNav();
b(window).off("resize", this.sizeOverlay);
this.$lightbox.fadeOut(this.options.fadeDuration);
this.$overlay.fadeOut(this.options.fadeDuration);
return b('select, object, embed').css({
visibility: "visible"
})
};
return c
})();
b(function (){
var e, b;
b=new c();
return e=new d(b)
})
}).call(this);