(function(a){a.fn.lightbox=function(k){var t=a.extend({},a.fn.lightbox.defaults,k);var g=this;return this.each(function(){a(this).click(function(){e();o(this);return false})});if(t.autoStart){if(a(this).length>0){o(a(this).get(0))}}function e(){a("#overlay").remove();a("#lightbox").remove();t.inprogress=false;if(t.jsonData&&t.jsonData.length>0){var z=t.jsonDataParser?t.jsonDataParser:a.fn.lightbox.parseJsonData;t.imageArray=[];t.imageArray=z(t.jsonData)}var w='<div id="outerImageContainer"><div id="imageContainer"><img id="lightboxImage"><div id="hoverNav"><a href="javascript://" title="'+t.strings.prevLinkTitle+'" id="prevLink"></a><a href="javascript://" id="nextLink" title="'+t.strings.nextLinkTitle+'"></a></div><div id="loading"><a href="javascript://" id="loadingLink"></a></div></div></div>';var y='<div id="imageDataContainer" class="clearfix"><div id="imageData"><div id="imageDetails"><span id="caption"></span><span id="numberDisplay"></span></div><div id="bottomNav">';if(t.displayHelp){y+='<span id="helpDisplay">'+t.strings.help+"</span>"}if(t.displayCloseImage){y+='<a href="javascript://" id="bottomNavClose" title="'+t.strings.closeTitle+'"></a></div></div></div>'}var x;if(t.navbarOnTop){x='<div id="overlay"></div><div id="lightbox">'+y+w+"</div>";a("body").append(x);a("#imageDataContainer").addClass("ontop")}else{x='<div id="overlay"></div><div id="lightbox">'+w+y+"</div>";a("body").append(x)}a("#overlay").click(function(){m()}).hide();a("#lightbox").click(function(){m()}).hide();a("#loadingLink").click(function(){m();return false});a("#bottomNavClose").click(function(){m();return false});a("#outerImageContainer").width(t.widthCurrent).height(t.heightCurrent);a("#imageDataContainer").width(t.widthCurrent);if(!t.imageClickClose){a("#lightboxImage").click(function(){return false});a("#hoverNav").click(function(){return false})}}function v(){var w=new Array(a(document).width(),a(document).height(),a(window).width(),a(window).height());return w}function h(){var y,w;if(self.pageYOffset){w=self.pageYOffset;y=self.pageXOffset}else{if(document.documentElement&&document.documentElement.scrollTop){w=document.documentElement.scrollTop;y=document.documentElement.scrollLeft}else{if(document.body){w=document.body.scrollTop;y=document.body.scrollLeft}}}var x=new Array(y,w);return x}function p(y){var x=new Date();var w=null;do{w=new Date()}while(w-x<y)}function o(A){a("select, embed, object").hide();var x=v();a("#overlay").hide().css({width:"100%",height:x[1]+"px",opacity:t.overlayOpacity}).fadeIn();imageNum=0;if(!t.jsonData){t.imageArray=[];if((!A.rel||(A.rel==""))&&!t.allSet){t.imageArray.push(new Array(A.href,t.displayTitle?A.title:""))}else{a(g).each(function(){if(this.href&&(this.rel==A.rel)){t.imageArray.push(new Array(this.href,t.displayTitle?this.title:""))}})}}if(t.imageArray.length>1){for(i=0;i<t.imageArray.length;i++){for(j=t.imageArray.length-1;j>i;j--){if(t.imageArray[i][0]==t.imageArray[j][0]){t.imageArray.splice(j,1)}}}while(t.imageArray[imageNum][0]!=A.href){imageNum++}}var w=h();var z=w[1]+(x[3]/10);var y=w[0];a("#lightbox").css({top:z+"px",left:y+"px"}).show();if(!t.slideNavBar){a("#imageData").hide()}u(imageNum)}function u(w){if(t.inprogress==false){t.inprogress=true;t.activeImage=w;a("#loading").show();a("#lightboxImage").hide();a("#hoverNav").hide();a("#prevLink").hide();a("#nextLink").hide();if(t.slideNavBar){a("#imageDataContainer").hide();a("#imageData").hide();l()}else{l()}}}function l(){imgPreloader=new Image();imgPreloader.onload=function(){var B=imgPreloader.width;var w=imgPreloader.height;if(t.scaleImages){B=parseInt(t.xScale*B);w=parseInt(t.yScale*w)}if(t.fitToScreen){var y=v();var A;var x=y[2]-2*t.borderSize;var C=y[3]-200;var z=x/C;var D=imgPreloader.width/imgPreloader.height;if((imgPreloader.height>C)||(imgPreloader.width>x)){if(z>D){B=parseInt((C/imgPreloader.height)*imgPreloader.width);w=C}else{w=parseInt((x/imgPreloader.width)*imgPreloader.height);B=x}}}a("#lightboxImage").attr("src",t.imageArray[t.activeImage][0]).width(B).height(w);n(B,w)};imgPreloader.src=t.imageArray[t.activeImage][0]}function m(){q();a("#lightbox").hide();a("#overlay").fadeOut();a("select, object, embed").show()}function f(){if(t.loopImages&&t.imageArray.length>1){preloadNextImage=new Image();preloadNextImage.src=t.imageArray[(t.activeImage==(t.imageArray.length-1))?0:t.activeImage+1][0];preloadPrevImage=new Image();preloadPrevImage.src=t.imageArray[(t.activeImage==0)?(t.imageArray.length-1):t.activeImage-1][0]}else{if((t.imageArray.length-1)>t.activeImage){preloadNextImage=new Image();preloadNextImage.src=t.imageArray[t.activeImage+1][0]}if(t.activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=t.imageArray[t.activeImage-1][0]}}}function n(z,x){t.widthCurrent=a("#outerImageContainer").outerWidth();t.heightCurrent=a("#outerImageContainer").outerHeight();var w=Math.max(t.minWidth,z+(t.borderSize*2));var y=(x+(t.borderSize*2));wDiff=t.widthCurrent-w;hDiff=t.heightCurrent-y;if(t.borderSize>0){a("#imageContainer").css("padding-top",t.borderSize)}a("#imageDataContainer").animate({width:w},t.resizeSpeed,"linear");a("#outerImageContainer").animate({width:w},t.resizeSpeed,"linear",function(){a("#outerImageContainer").animate({height:y},t.resizeSpeed,"linear",function(){d()})});if((hDiff==0)&&(wDiff==0)){if(jQuery.browser.msie){p(250)}else{p(100)}}a("#prevLink").height(x);a("#nextLink").height(x)}function d(){a("#loading").hide();a("#lightboxImage").fadeIn("fast");c();f();t.inprogress=false}function c(){a("#numberDisplay").html("");if(t.imageArray[t.activeImage][1]){a("#caption").html(t.imageArray[t.activeImage][1]).show()}if(t.imageArray.length>1){var x="";if(t.displayDownloadLink){x+="<a id='downloadlink' href='"+t.imageArray[t.activeImage][0]+"' onclick='window.open(this.href); return false;'>"+t.strings.download+"</a>"}if(t.displayImageIndex){x+="<span id='imageIndex'>"+t.strings.image+(t.activeImage+1)+t.strings.of+t.imageArray.length+"</span>"}if(!t.disableNavbarLinks){if((t.activeImage)>0||t.loopImages){x+='<a title="'+t.strings.prevLinkTitle+'" href="#" id="prevLinkText">'+t.strings.prevLinkText+"</a>"}if(((t.activeImage+1)<t.imageArray.length)||t.loopImages){x+='<a title="'+t.strings.nextLinkTitle+'" href="#" id="nextLinkText">'+t.strings.nextLinkText+"</a>"}}a("#numberDisplay").html(x).show()}if(t.slideNavBar){a("#imageData").slideDown(t.navBarSlideSpeed)}else{a("#imageData").show()}var w=v();a("#overlay").height(w[1]);r()}function r(){if(t.imageArray.length>1){a("#hoverNav").show();if(t.loopImages){a("#prevLink,#prevLinkText").show().click(function(){u((t.activeImage==0)?(t.imageArray.length-1):t.activeImage-1);return false});a("#nextLink,#nextLinkText").show().click(function(){u((t.activeImage==(t.imageArray.length-1))?0:t.activeImage+1);return false})}else{if(t.activeImage!=0){a("#prevLink,#prevLinkText").show().click(function(){u(t.activeImage-1);return false})}if(t.activeImage!=(t.imageArray.length-1)){a("#nextLink,#nextLinkText").show().click(function(){u(t.activeImage+1);return false})}}b()}}function s(z){var A=z.data.opts;var w=z.keyCode;var x=27;var y=String.fromCharCode(w).toLowerCase();if((y=="x")||(y=="o")||(y=="c")||(w==x)){m()}else{if((y=="p")||(w==37)){if(A.loopImages){q();u((A.activeImage==0)?(A.imageArray.length-1):A.activeImage-1)}else{if(A.activeImage!=0){q();u(A.activeImage-1)}}}else{if((y=="n")||(w==39)){if(t.loopImages){q();u((A.activeImage==(A.imageArray.length-1))?0:A.activeImage+1)}else{if(A.activeImage!=(A.imageArray.length-1)){q();u(A.activeImage+1)}}}}}}function b(){a(document).bind("keydown",{opts:t},s)}function q(){a(document).unbind("keydown")}};a.fn.lightbox.parseJsonData=function(c){var b=[];a.each(c,function(){b.push(new Array(this.url,this.title))});return b};a.fn.lightbox.defaults={allSet:false,overlayOpacity:0.8,borderSize:10,imageArray:new Array,activeImage:null,inprogress:false,resizeSpeed:350,widthCurrent:250,heightCurrent:250,scaleImages:false,xScale:1,yScale:1,displayTitle:true,navbarOnTop:false,displayDownloadLink:false,slideNavBar:false,navBarSlideSpeed:350,displayHelp:false,strings:{help:" \u2190 / P - previous image\u00a0\u00a0\u00a0\u00a0\u2192 / N - next image\u00a0\u00a0\u00a0\u00a0ESC / X - close image gallery",prevLinkTitle:"previous image",nextLinkTitle:"next image",prevLinkText:"&laquo; Previous",nextLinkText:"Next &raquo;",closeTitle:"close image gallery",image:"Image ",of:" of ",download:"Download"},fitToScreen:false,disableNavbarLinks:false,loopImages:false,imageClickClose:true,jsonData:null,jsonDataParser:null,autoStart:false,minWidth:0,displayImageIndex:false,displayCloseImage:true}})(jQuery);
