(function(){var ah4Box={config:{overlayClass:"ah4Box-overlay",popupClass:"ah4Box-popup",loaderClass:"ah4Box-loader",imageClass:"ah4Box-image",closeClass:"ah4Box-close",nextBtnClass:"ah4Box-btn-next",prevBtnClass:"ah4Box-btn-prev",descClass:"ah4Box-desc",countClass:"ah4Box-count",overlayOpacity:0.8,clickCloseOverlay:true,modal:true,placementSpeed:500,imgFadeSpeed:500,resizeSpeed:450,popupZIndex:1000,popupMargin:40,popupBorder:5,popupInitHeight:250,popupInitWidth:250,keyboardShortcuts:true},currentSet:"",currentIndex:0,images:{},bindedKeyboard:false,popupActive:false,setup:function(){$("a[rel]").each(function(i){var rel=$(this).attr("rel");var regex=new RegExp(/(ah4box|\[|\])/ig);rel=rel.replace(regex,"");if(rel==""){rel="ah4BoxSingle"}if(!ah4Box.images[rel]){ah4Box.images[rel]=[]}ah4Box.images[rel].push($(this).find("img"));var thisSetIndex=ah4Box.images[rel].length-1;$(this).click(function(e){e.preventDefault();ah4Box.currentIndex=thisSetIndex;ah4Box.currentSet=rel;ah4Box.createPopup();return false});$(window).scroll(function(){ah4Box.centerPopup()}).resize(function(){ah4Box.centerPopup()})})},createPopup:function(){var self=ah4Box.images[ah4Box.currentSet][ah4Box.currentIndex];var imagesInSet=ah4Box.images[ah4Box.currentSet].length;var pos=self.offset();var topStart=pos.top;var leftStart=pos.left;var heightStart=self.outerHeight(false);var widthStart=self.outerWidth(false);ah4Box.popupActive=true;var buttons="";if(ah4Box.currentSet!="ah4BoxSingle"&&imagesInSet!=1){buttons="<div class=\""+ah4Box.config.prevBtnClass+"\"></div><div class=\""+ah4Box.config.nextBtnClass+"\"></div><div class=\""+ah4Box.config.descClass+"\"></div><div class=\""+ah4Box.config.countClass+"\"></div>"}$(document.body).append("<div class=\""+ah4Box.config.popupClass+"\"><div class=\""+ah4Box.config.loaderClass+"\"></div><div class=\""+ah4Box.config.closeClass+"\"></div>"+buttons+"<div class=\""+ah4Box.config.descClass+"\"></div></div>");$("."+ah4Box.config.closeClass).css({zIndex:(ah4Box.config.popupZIndex+2),cursor:"pointer"});$("."+ah4Box.config.popupClass).css({top:topStart,left:leftStart,height:heightStart,width:widthStart,zIndex:ah4Box.config.popupZIndex}).fadeIn("fast");var loader=$("."+ah4Box.config.loaderClass);$("."+ah4Box.config.loaderClass).css({top:(heightStart-loader.outerHeight(false))/2,left:(widthStart-loader.outerWidth(false))/2,zIndex:(ah4Box.config.popupZIndex+1)});ah4Box.setPopupSize(ah4Box.config.popupInitHeight,ah4Box.config.popupInitWidth,function(){ah4Box.setCloseActions()});if(ah4Box.config.modal){ah4Box.showOverlay()}ah4Box.setControlActions();ah4Box.displayImage()},displayNextImage:function(){var total=ah4Box.images[ah4Box.currentSet].length;ah4Box.currentIndex++;if(ah4Box.currentIndex>=total){ah4Box.currentIndex=0}ah4Box.prepPopup()},displayPrevImage:function(){var total=ah4Box.images[ah4Box.currentSet].length;ah4Box.currentIndex--;if(ah4Box.currentIndex<0){ah4Box.currentIndex=total-1}ah4Box.prepPopup()},prepPopup:function(){$("."+ah4Box.config.prevBtnClass+", ."+ah4Box.config.nextBtnClass+", ."+ah4Box.config.countClass+", ."+ah4Box.config.descClass).fadeOut(ah4Box.config.imgFadeSpeed);$("."+ah4Box.config.imageClass).fadeOut(ah4Box.config.imgFadeSpeed,function(){$(this).remove();$("."+ah4Box.config.loaderClass).fadeIn(ah4Box.config.imgFadeSpeed,function(){ah4Box.displayImage()})})},displayImage:function(){var bottomExtra=0;if((ah4Box.currentSet!="ah4BoxSingle"&&imagesInSet!=1)||title!=""){bottomExtra=35}var viewHeight=ah4Box.viewPortHeight();var viewWidth=ah4Box.viewPortWidth();var imagesInSet=ah4Box.images[ah4Box.currentSet].length;var currentImg=ah4Box.images[ah4Box.currentSet][ah4Box.currentIndex];var title=currentImg.parent().attr("title");var imageLoaderObject=new Image();imageLoaderObject.className=ah4Box.config.imageClass;imageLoaderObject.alt=title;imageLoaderObject.onload=function(){var img=$(this);var maxHeight=this.height;var maxWidth=this.width;if(maxHeight>=viewHeight){var newHeight=viewHeight-((ah4Box.config.popupMargin*2)+(ah4Box.config.popupBorder*2));multipler=1+((newHeight-maxHeight)/maxHeight);maxHeight=newHeight;maxWidth=maxWidth*multipler}if(maxWidth>=viewWidth){var newWidth=viewWidth-((ah4Box.config.popupMargin*2)+(ah4Box.config.popupBorder*2));multipler=1+((newWidth-maxWidth)/maxWidth);maxWidth=newWidth;maxHeight=maxHeight*multipler}img.css({top:ah4Box.config.popupBorder,left:ah4Box.config.popupBorder,height:maxHeight-ah4Box.config.popupBorder*2,width:maxWidth-ah4Box.config.popupBorder*2});ah4Box.setPopupSize(maxHeight+bottomExtra,maxWidth,function(){$("."+ah4Box.config.loaderClass).fadeOut(300,function(){img.fadeIn(ah4Box.config.imageFadeSpeed);if(ah4Box.currentSet!="ah4BoxSingle"&&imagesInSet!=1){$("."+ah4Box.config.prevBtnClass+", ."+ah4Box.config.nextBtnClass).fadeIn("fast");$("."+ah4Box.config.countClass).text("Image "+(ah4Box.currentIndex+1)+" of "+imagesInSet).fadeIn("fast")}if(img.attr("alt")!=""){$("."+ah4Box.config.descClass).text(img.attr("alt")).fadeIn("fast")}})});$("."+ah4Box.config.popupClass).append(imageLoaderObject)};imageLoaderObject.src=currentImg.parent().attr("href")},setPopupSize:function(popupHeight,popupWidth,callback){var viewHeight=ah4Box.viewPortHeight();var viewWidth=ah4Box.viewPortWidth();var loader=$("."+ah4Box.config.loaderClass);loader.animate({top:(popupHeight-loader.outerHeight(false))/2,left:(popupWidth-loader.outerWidth(false))/2},ah4Box.config.placementSpeed);$("."+ah4Box.config.popupClass).animate({top:$(window).scrollTop()+(viewHeight-popupHeight)/2,left:$(window).scrollLeft()+(viewWidth-popupWidth)/2,height:popupHeight,width:popupWidth},ah4Box.config.placementSpeed,function(){try{callback()}catch(e){}})},centerPopup:function(){if(ah4Box.popupActive){var viewHeight=ah4Box.viewPortHeight();var viewWidth=ah4Box.viewPortWidth();if(ah4Box.config.modal){var overlay=$("."+ah4Box.config.overlayClass);overlay.css({top:$(window).scrollTop(),left:$(window).scrollLeft()})}var popup=$("."+ah4Box.config.popupClass);popup.css({top:$(window).scrollTop()+((viewHeight-popup.outerHeight(false))/2),left:$(window).scrollLeft()+((viewWidth-popup.outerWidth(false))/2)})}},setControlActions:function(){$("."+ah4Box.config.prevBtnClass).click(function(e){ah4Box.displayPrevImage()});$("."+ah4Box.config.nextBtnClass).click(function(e){ah4Box.displayNextImage()});if(ah4Box.config.keyboardShortcuts){if(!ah4Box.bindedKeyboard){$(document).keyup(function(event){var key=event.keyCode;if((ah4Box.images[ah4Box.currentSet].length>1)&&(ah4Box.currentSet!="ah4BoxSingle")){if(key==78||key==39){ah4Box.displayNextImage()}else if(key==80||key==37){ah4Box.displayPrevImage()}}if(key==27){ah4Box.hidePopup()}});ah4Box.bindedKeyboard=true}}},setCloseActions:function(){$("."+ah4Box.config.closeClass).css("display","block").click(function(e){ah4Box.hidePopup()});if(ah4Box.config.clickCloseOverlay){$("."+ah4Box.config.overlayClass).css("cursor","pointer").click(function(e){ah4Box.hidePopup()})}},hidePopup:function(){var img=ah4Box.images[ah4Box.currentSet][ah4Box.currentIndex];var origHeight=img.outerHeight(false);var origWidth=img.outerWidth(false);var origPos=img.offset();$("."+ah4Box.config.prevBtnClass+", ."+ah4Box.config.nextBtnClass+", ."+ah4Box.config.countClass+", ."+ah4Box.config.descClass).fadeOut(ah4Box.config.imgFadeSpeed);ah4Box.hideOverlay();$("."+ah4Box.config.popupClass).animate({top:origPos.top,left:origPos.left,height:origHeight,width:origWidth},ah4Box.config.placementSpeed,function(){$("."+ah4Box.config.popupClass).remove()});ah4Box.popupActive=false},showOverlay:function(callback){$(document.body).append("<div class=\""+ah4Box.config.overlayClass+"\"></div>");var ovrlay=$("."+ah4Box.config.overlayClass);ovrlay.css({top:$(window).scrollTop(),left:$(window).scrollLeft(),zIndex:ah4Box.config.popupZIndex-1});ovrlay.fadeTo(350,ah4Box.config.overlayOpacity,function(){try{callback()}catch(e){}})},hideOverlay:function(callback){var ovrlay=$("."+ah4Box.config.overlayClass);if(ovrlay.length>0){ovrlay.fadeOut(250,function(){ovrlay.remove();try{callback()}catch(e){}})}},viewPortHeight:function(){return window.innerHeight?window.innerHeight:$(window).height()},viewPortWidth:function(){return $(window).width()}};$(document).ready(function(){ah4Box.setup()})})();
