(function(a){var b;a.fn.lightbox=function(c){b=a.extend({},a.fn.lightbox.defaults,c);a.fn.lightbox.initialize();return this.each(function(){a(this).click(function(){a(this).lightbox.start(this);return false})})};a.fn.lightbox.initialize=function(){a("#overlay").remove();a("#lightbox").remove();b.inprogress=false;var e='<div id="outerImageContainer"><div id="imageContainer"><img id="lightboxImage"><div id="hoverNav"><a href="javascript://" title="'+b.strings.prevLinkTitle+'" id="prevLink"></a><a href="javascript://" id="nextLink" title="'+b.strings.nextLinkTitle+'"></a></div><div id="loading"><a href="javascript://" id="loadingLink"><img src="'+b.fileLoadingImage+'"></a></div></div></div>',c='<div id="imageDataContainer" class="clearfix"><div id="imageData"><div id="imageDetails"><span id="caption"></span><span id="numberDisplay"></span></div><div id="bottomNav">';if(b.displayHelp)c+='<span id="helpDisplay">'+b.strings.help+"</span>";c+='<a href="javascript://" id="bottomNavClose" title="'+b.strings.closeTitle+'"><img src="'+b.fileBottomNavCloseImage+'"></a></div></div></div>';var d;if(b.navbarOnTop){d='<div id="overlay"></div><div id="lightbox">'+c+e+"</div>";a("body").append(d);a("#imageDataContainer").addClass("ontop")}else{d='<div id="overlay"></div><div id="lightbox">'+e+c+"</div>";a("body").append(d)}a("#overlay").click(function(){a.fn.lightbox.end()}).hide();a("#lightbox").click(function(){a.fn.lightbox.end()}).hide();a("#loadingLink").click(function(){a.fn.lightbox.end();return false});a("#bottomNavClose").click(function(){a.fn.lightbox.end();return false});a("#outerImageContainer").width(b.widthCurrent).height(b.heightCurrent);a("#imageDataContainer").width(b.widthCurrent)};a.fn.lightbox.getPageSize=function(){var c,d;if(window.innerHeight&&window.scrollMaxY){c=window.innerWidth+window.scrollMaxX;d=window.innerHeight+window.scrollMaxY}else if(document.body.scrollHeight>document.body.offsetHeight){c=document.body.scrollWidth;d=document.body.scrollHeight}else{c=document.body.offsetWidth;d=document.body.offsetHeight}var a,b;if(self.innerHeight){if(document.documentElement.clientWidth)a=document.documentElement.clientWidth;else a=self.innerWidth;b=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){a=document.documentElement.clientWidth;b=document.documentElement.clientHeight}else if(document.body){a=document.body.clientWidth;b=document.body.clientHeight}if(d<b)pageHeight=b;else pageHeight=d;if(c<a)pageWidth=c;else pageWidth=a;var e=[pageWidth,pageHeight,a,b];return e};a.fn.lightbox.getPageScroll=function(){var a,b;if(self.pageYOffset){b=self.pageYOffset;a=self.pageXOffset}else if(document.documentElement&&document.documentElement.scrollTop){b=document.documentElement.scrollTop;a=document.documentElement.scrollLeft}else if(document.body){b=document.body.scrollTop;a=document.body.scrollLeft}var c=[a,b];return c};a.fn.lightbox.pause=function(c){var b=new Date,a=null;do a=new Date;while(a-b<c)};a.fn.lightbox.start=function(c){a("select, embed, object").hide();var e=a.fn.lightbox.getPageSize();a("#overlay").hide().css({width:"100%",height:e[1]+"px",opacity:b.overlayOpacity}).fadeIn();b.imageArray=[];imageNum=0;var h=document.getElementsByTagName(c.tagName);if(!c.rel||c.rel=="")b.imageArray.push([c.href,b.displayTitle?c.title:""]);else{a("a").each(function(){this.href&&this.rel==c.rel&&b.imageArray.push([this.href,b.displayTitle?this.title:""])});for(i=0;i<b.imageArray.length;i++)for(j=b.imageArray.length-1;j>i;j--)b.imageArray[i][0]==b.imageArray[j][0]&&b.imageArray.splice(j,1);while(b.imageArray[imageNum][0]!=c.href)imageNum++}var d=a.fn.lightbox.getPageScroll(),g=d[1]+e[3]/10,f=d[0];a("#lightbox").css({top:g+"px",left:f+"px"}).show();!b.slideNavBar&&a("#imageData").hide();a.fn.lightbox.changeImage(imageNum)};a.fn.lightbox.changeImage=function(c){if(b.inprogress==false){b.inprogress=true;b.activeImage=c;a("#loading").show();a("#lightboxImage").hide();a("#hoverNav").hide();a("#prevLink").hide();a("#nextLink").hide();if(b.slideNavBar){a("#imageDataContainer").hide();a("#imageData").hide();a.fn.doChangeImage()}else a.fn.doChangeImage()}};a.fn.doChangeImage=function(){imgPreloader=new Image;imgPreloader.onload=function(){var d=imgPreloader.width,c=imgPreloader.height;if(b.fitToScreen){var g=a.fn.lightbox.getPageSize(),h,f=g[2]-2*b.borderSize,e=g[3]-200;if(imgPreloader.height>e){d=parseInt(e/imgPreloader.height*imgPreloader.width);c=e}else if(imgPreloader.width>f){c=parseInt(f/imgPreloader.width*imgPreloader.height);d=f}}a("#lightboxImage").attr("src",b.imageArray[b.activeImage][0]).width(d).height(c);a.fn.lightbox.resizeImageContainer(d,c)};imgPreloader.src=b.imageArray[b.activeImage][0]};a.fn.lightbox.end=function(){a.fn.lightbox.disableKeyboardNav();a("#lightbox").hide();a("#overlay").fadeOut();a("select, object, embed").show()};a.fn.lightbox.preloadNeighborImages=function(){if(b.imageArray.length-1>b.activeImage){preloadNextImage=new Image;preloadNextImage.src=b.imageArray[b.activeImage+1][0]}if(b.activeImage>0){preloadPrevImage=new Image;preloadPrevImage.src=b.imageArray[b.activeImage-1][0]}};a.fn.lightbox.keyboardAction=function(e){if(e==null)var d=event.keyCode,f=27;else var d=e.keyCode,f=e.DOM_VK_ESCAPE;var c=String.fromCharCode(d).toLowerCase();if(c=="x"||c=="o"||c=="c"||d==f)a.fn.lightbox.end();else if(c=="p"||d==37){if(b.activeImage!=0){a.fn.lightbox.disableKeyboardNav();a.fn.lightbox.changeImage(b.activeImage-1)}}else if(c=="n"||d==39)if(b.activeImage!=b.imageArray.length-1){a.fn.lightbox.disableKeyboardNav();a.fn.lightbox.changeImage(b.activeImage+1)}};a.fn.lightbox.resizeImageContainer=function(f,e){b.widthCurrent=document.getElementById("outerImageContainer").offsetWidth;b.heightCurrent=document.getElementById("outerImageContainer").offsetHeight;var c=f+b.borderSize*2,d=e+b.borderSize*2;b.xScale=c/b.widthCurrent*100;b.yScale=d/b.heightCurrent*100;wDiff=b.widthCurrent-c;hDiff=b.heightCurrent-d;a("#imageDataContainer").animate({width:c},b.resizeSpeed,"linear");a("#outerImageContainer").animate({width:c},b.resizeSpeed,"linear",function(){a("#outerImageContainer").animate({height:d},b.resizeSpeed,"linear",function(){a.fn.lightbox.showImage()})});if(hDiff==0&&wDiff==0)if(jQuery.browser.msie)a.fn.lightbox.pause(250);else a.fn.lightbox.pause(100);a("#prevLink").height(e);a("#nextLink").height(e)};a.fn.lightbox.showImage=function(){a("#loading").hide();a("#lightboxImage").fadeIn("fast");a.fn.lightbox.updateDetails();a.fn.lightbox.preloadNeighborImages();b.inprogress=false};a.fn.lightbox.updateDetails=function(){b.imageArray[b.activeImage][1]&&a("#caption").html(b.imageArray[b.activeImage][1]).show();if(b.imageArray.length>1){var c;c=b.strings.image+(b.activeImage+1)+b.strings.of+b.imageArray.length;if(b.activeImage>0)c='<a title="'+b.strings.prevLinkTitle+'" href="#" id="prevLinkText">'+b.strings.prevLinkText+"</a>"+c;if(b.activeImage+1<b.imageArray.length)c+='<a title="'+b.strings.nextLinkTitle+'" href="#" id="nextLinkText">'+b.strings.nextLinkText+"</a>";a("#numberDisplay").html(c).show()}if(b.slideNavBar)a("#imageData").slideDown(b.navBarSlideSpeed);else a("#imageData").show();var d=a.fn.lightbox.getPageSize();a("#overlay").height(d[1]);a.fn.lightbox.updateNav()};a.fn.lightbox.updateNav=function(){a("#hoverNav").show();b.activeImage!=0&&a("#prevLink,#prevLinkText").show().click(function(){a.fn.lightbox.changeImage(b.activeImage-1);return false});b.activeImage!=b.imageArray.length-1&&a("#nextLink,#nextLinkText").show().click(function(){a.fn.lightbox.changeImage(b.activeImage+1);return false});a.fn.lightbox.enableKeyboardNav()};a.fn.lightbox.enableKeyboardNav=function(){document.onkeydown=a.fn.lightbox.keyboardAction};a.fn.lightbox.disableKeyboardNav=function(){document.onkeydown=""};a.fn.lightbox.defaults={fileLoadingImage:"/images/loading.gif",fileBottomNavCloseImage:"/images/closelabel.gif",overlayOpacity:.8,borderSize:30,imageArray:[],activeImage:null,inprogress:false,resizeSpeed:350,widthCurrent:250,heightCurrent:250,xScale:1,yScale:1,displayTitle:true,navbarOnTop:false,slideNavBar:false,navBarSlideSpeed:350,displayHelp:false,strings:{help:" ← / P - previous image    → / N - next image    ESC / X - close image gallery",prevLinkTitle:"previous image",nextLinkTitle:"next image",prevLinkText:"&laquo; Previous",nextLinkText:"Next &raquo;",closeTitle:"close image gallery",image:"Image ",of:" of "},fitToScreen:false}})(jQuery);
