(function(a){var o="#nextLink",n="#prevLink",m="#hoverNav",k="#lightboxImage",p="#loading",l=true,g="#imageData",h="#outerImageContainer",f="#imageDataContainer",e="#lightbox",d="#overlay",c=false,b;a.fn.lightbox=function(d){b=a.extend({},a.fn.lightbox.defaults,d);a.fn.lightbox.initialize();return this.each(function(){a(this).click(function(){a(this).lightbox.start(this);return c})})};a.fn.lightbox.initialize=function(){var g='<div id="overlay"></div><div id="lightbox">';a(d).remove();a(e).remove();b.inprogress=c;var k='<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>',i='<div id="imageDataContainer" class="clearfix"><div id="imageData"><div id="imageDetails"><span id="caption"></span></div><div id="bottomNav">';if(b.displayHelp)i+='<span id="helpDisplay">'+b.strings.help+"</span>";i+='<a href="javascript://" id="bottomNavClose" title="'+b.strings.closeTitle+'"><img src="'+b.fileBottomNavCloseImage+'"></a></div><span id="numberDisplay"></span></div></div>';var j;if(b.navbarOnTop){j=g+i+k+"</div>";a("body").append(j);a(f).addClass("ontop")}else{j=g+k+i+"</div>";a("body").append(j)}a(d).click(function(){a.fn.lightbox.end()}).hide();a(e).click(function(){a.fn.lightbox.end()}).hide();a("#loadingLink").click(function(){a.fn.lightbox.end();return c});a("#bottomNavClose").click(function(){a.fn.lightbox.end();return c});a(h).width(b.widthCurrent).height(b.heightCurrent);a(f).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 h=a.fn.lightbox.getPageSize();a(d).hide().css({width:"100%",height:h[1]+"px",opacity:b.overlayOpacity}).fadeIn();b.imageArray=[];imageNum=0;var m=document.getElementsByTagName(c.tagName);if(!c.rel||c.rel=="")b.imageArray.push([c.href,b.displayTitle?c.title:""]);else{a("a").each(function(){var a=this;a.href&&a.rel==c.rel&&b.imageArray.push([a.href,b.displayTitle?a.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 f=a.fn.lightbox.getPageScroll(),l=f[1]+h[3]/10,k=f[0];a(e).css({top:l+"px",left:k+"px"}).show();!b.slideNavBar&&a(g).hide();a.fn.lightbox.changeImage(imageNum)};a.fn.lightbox.changeImage=function(d){if(b.inprogress==c){b.inprogress=l;b.activeImage=d;a(p).show();a(k).hide();a(m).hide();a(n).hide();a(o).hide();if(b.slideNavBar){a(f).hide();a(g).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(k).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(e).hide();a(d).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(j,i){var c="linear",d="outerImageContainer";b.widthCurrent=document.getElementById(d).offsetWidth;b.heightCurrent=document.getElementById(d).offsetHeight;var e=j+b.borderSize*2,g=i+b.borderSize*2;b.xScale=e/b.widthCurrent*100;b.yScale=g/b.heightCurrent*100;wDiff=b.widthCurrent-e;hDiff=b.heightCurrent-g;a(f).animate({width:e},b.resizeSpeed,c);a(h).animate({width:e},b.resizeSpeed,c,function(){a(h).animate({height:g},b.resizeSpeed,c,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(n).height(i);a(o).height(i)};a.fn.lightbox.showImage=function(){a(p).hide();a(k).fadeIn("fast");a.fn.lightbox.updateDetails();a.fn.lightbox.preloadNeighborImages();b.inprogress=c};a.fn.lightbox.updateDetails=function(){var f='<a title="',c="&nbsp;";b.imageArray[b.activeImage][1]&&a("#caption").html(b.imageArray[b.activeImage][1]).show();if(b.imageArray.length>1){var e;e=b.strings.image+c+(b.activeImage+1)+c+b.strings.of+c+b.imageArray.length;if(b.activeImage>0)e=f+b.strings.prevLinkTitle+'" href="#" id="prevLinkText">'+b.strings.prevLinkText+"</a>"+e;if(b.activeImage+1<b.imageArray.length)e+=f+b.strings.nextLinkTitle+'" href="#" id="nextLinkText">'+b.strings.nextLinkText+"</a>";a("#numberDisplay").html(e).show()}if(b.slideNavBar)a(g).slideDown(b.navBarSlideSpeed);else a(g).show();var h=a.fn.lightbox.getPageSize();a(d).height(h[1]);a.fn.lightbox.updateNav()};a.fn.lightbox.updateNav=function(){a(m).show();b.activeImage!=0&&a("#prevLink,#prevLinkText").show().click(function(){a.fn.lightbox.changeImage(b.activeImage-1);return c});b.activeImage!=b.imageArray.length-1&&a("#nextLink,#nextLinkText").show().click(function(){a.fn.lightbox.changeImage(b.activeImage+1);return c});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:"typo3conf/ext/jq_lightbox/lightbox/images/loading.gif",fileBottomNavCloseImage:"typo3conf/ext/jq_lightbox/lightbox/images/closelabel.gif",overlayOpacity:.8,borderSize:10,imageArray:[],activeImage:null,inprogress:c,resizeSpeed:350,widthCurrent:250,heightCurrent:250,xScale:1,yScale:1,displayTitle:l,navbarOnTop:l,slideNavBar:c,navBarSlideSpeed:350,displayHelp:c,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 "},fitToScreen:l}})(jQuery)