LightboxOptions=Object.extend({fileLoadingImage:'/images/pg/loading.gif',lbOverlayOpacity:0.7,animate:true,resizeSpeed:9,borderSize:10,labelImage:"Image",labelOf:"of"},window.LightboxOptions||{});var Lightbox=Class.create();Lightbox.prototype={imageArray:[],activeImage:undefined,initialize:function(){this.keyboardAction=this.keyboardAction.bindAsEventListener(this);if(LightboxOptions.resizeSpeed>10){LightboxOptions.resizeSpeed=10}if(LightboxOptions.resizeSpeed<1){LightboxOptions.resizeSpeed=1}this.resizeDuration=LightboxOptions.animate?((11-LightboxOptions.resizeSpeed)*0.15):0;this.lbOverlayDuration=LightboxOptions.animate?0.2:0;var b=(LightboxOptions.animate?250:1)+'px';var c=$$('body')[0];c.appendChild(Builder.node('div',{id:'lbOverlay'}));c.appendChild(Builder.node('div',{id:'lightbox'},[Builder.node('div',{id:'lbOuter'},Builder.node('div',{id:'lbImage'},[Builder.node('img',{id:'lightboxImage'}),Builder.node('div',{id:'lbLoading'},Builder.node('a',{id:'lbLoadingLink',href:'#'},Builder.node('img',{src:LightboxOptions.fileLoadingImage})))])),Builder.node('div',{id:'lbBottomContainer'},Builder.node('div',{id:'lbBottom'},[Builder.node('div',{id:'lbNav'},[Builder.node('a',{id:'lbCloseLink',href:'#'}),Builder.node('a',{id:'lbNextLink',href:'#'}),Builder.node('a',{id:'lbPrevLink',href:'#'}),Builder.node('span',{id:'lbNumberDisplay'}),Builder.node('a',{id:'lbDownloadLink'})]),Builder.node('div',{id:'lbDetails'},[Builder.node('span',{id:'lbCaption'}),Builder.node('span',{id:'lbDesc'})])]))]));$('lbOverlay').hide().observe('click',(function(){this.end()}).bind(this));$('lightbox').hide().observe('click',(function(a){if(a.element().id=='lightbox'){this.end()}}).bind(this));$('lbOuter').setStyle({width:b,height:b});$('lbPrevLink').observe('click',(function(a){a.stop();this.changeImage(this.activeImage-1)}).bindAsEventListener(this));$('lbNextLink').observe('click',(function(a){a.stop();this.changeImage(this.activeImage+1)}).bindAsEventListener(this));$('lbLoadingLink').observe('click',(function(a){a.stop();this.end()}).bind(this));$('lbCloseLink').observe('click',(function(a){a.stop();this.end()}).bind(this));$('lbDownloadLink').update('<span style="text-decoration:underline">D</span>ownload');var d=this;var e='lbOverlay lightbox lbOuter lbImage lightboxImage lbLoading lbLoadingLink lbBottomContainer lbDetails lbCaption lbDesc lbNumberDisplay lbNav lbPrevLink lbNextLink lbCloseLink lbDownloadLink';$w(e).each(function(a){d[a]=$(a)})},updateImageList:function(){this.updateImageList=Prototype.emptyFunction;document.observe('click',(function(a){var b=a.findElement('a[rel^=lightbox]')||a.findElement('area[rel^=lightbox]');if(b){a.stop();this.start(b)}}).bind(this))},start:function(c){$$('select','object','embed').each(function(a){a.style.visibility='hidden'});var d=this.getPageSize();$('lbOverlay').setStyle({width:'100%',height:d[1]+'px'});new Effect.Appear(this.lbOverlay,{duration:this.lbOverlayDuration,from:0.0,to:LightboxOptions.lbOverlayOpacity});this.imageArray=[];var e=0;if((c.rel=='lightbox')){this.imageArray.push([c.href,c.title])}else{this.imageArray=$$(c.tagName+'[href][rel="'+c.rel+'"]').collect(function(a){var b=a.select("img")[0];return[a.href,b.alt,b.title,a.select("span.pg-longdesc")[0].innerHTML]}).uniq();while(this.imageArray[e][0]!=c.href){e++}}var f=document.viewport.getScrollOffsets();var g=f[1]+(document.viewport.getHeight()/20);var h=f[0];this.lightbox.setStyle({top:g+'px',left:h+'px'}).show();this.changeImage(e)},changeImage:function(a){this.activeImage=(a+this.imageArray.length)%this.imageArray.length;if(LightboxOptions.animate){this.lbLoading.show()}this.lightboxImage.hide();this.lbBottomContainer.setStyle({opacity:0.0001});this.lbNumberDisplay.hide();var b=new Image();var c=this.imageArray[this.activeImage];b.onload=(function(){this.lightboxImage.src=c[0];this.lightboxImage.alt=c[1];this.resizeImageContainer(b.width,b.height)}).bind(this);b.src=c[0]},resizeImageContainer:function(a,b){var c=this.lbOuter.getWidth();var d=this.lbOuter.getHeight();var e=(a+LightboxOptions.borderSize*2);var f=(b+LightboxOptions.borderSize*2);var g=(e/c)*100;var h=(f/d)*100;var j=c-e;var k=d-f;if(k!=0){new Effect.Scale(this.lbOuter,h,{scaleX:false,duration:this.resizeDuration,queue:'front'})}if(j!=0){new Effect.Scale(this.lbOuter,g,{scaleY:false,duration:this.resizeDuration,delay:this.resizeDuration})}var i=0;if((k==0)&&(j==0)){i=100;if(Prototype.Browser.IE){i=250}}(function(){this.lbBottomContainer.setStyle({width:e+'px'});this.showImage()}).bind(this).delay(i/1000)},showImage:function(){this.lbLoading.hide();new Effect.Appear(this.lightboxImage,{duration:this.resizeDuration,queue:'end',afterFinish:(function(){this.updateDetails()}).bind(this)});this.preloadNeighborImages()},updateDetails:function(){this.lbDownloadLink.href=this.imageArray[this.activeImage][0];if(this.lbDownloadLink.href.indexOf("?")>0){this.lbDownloadLink.href+="&dl=1"}else{this.lbDownloadLink.href+="?dl=1"}if(this.imageArray[this.activeImage][2]!=""){this.lbCaption.update(this.imageArray[this.activeImage][2]).show()}else{this.lbCaption.hide()}if(this.imageArray[this.activeImage][3]!=""){this.lbDesc.update(this.imageArray[this.activeImage][3]).show()}else{this.lbDesc.hide()}if(this.imageArray.length>1){this.lbNumberDisplay.update((this.activeImage+1)+' '+LightboxOptions.labelOf+'  '+this.imageArray.length).show()}new Effect.Parallel([new Effect.SlideDown(this.lbBottomContainer,{sync:true,duration:this.resizeDuration,from:0.0,to:1.0}),new Effect.Appear(this.lbBottomContainer,{sync:true,duration:this.resizeDuration})],{duration:this.resizeDuration,afterFinish:(function(){var a=this.getPageSize();this.lbOverlay.setStyle({height:a[1]+'px'});this.updateNav()}).bind(this)})},updateNav:function(){this.enableKeyboardNav()},enableKeyboardNav:function(){document.observe('keydown',this.keyboardAction)},disableKeyboardNav:function(){document.stopObserving('keydown',this.keyboardAction)},keyboardAction:function(a){var b=a.keyCode;var c;if(a.DOM_VK_ESCAPE){c=a.DOM_VK_ESCAPE}else{c=27}var d=String.fromCharCode(b).toLowerCase();if(d.match(/x|o|c/)||(b==c)){this.end()}else if((d=='p')||(b==37)){this.disableKeyboardNav();this.changeImage(this.activeImage-1)}else if((d=='n')||(b==39)){this.disableKeyboardNav();this.changeImage(this.activeImage+1)}else if((d=='d')){document.location=this.imageArray[this.activeImage][0]+"?dl=1"}},preloadNeighborImages:function(){var a,b;if(this.imageArray.length>this.activeImage+1){a=new Image();a.src=this.imageArray[this.activeImage+1][0]}if(this.activeImage>0){b=new Image();b.src=this.imageArray[this.activeImage-1][0]}},end:function(){this.disableKeyboardNav();this.lightbox.hide();new Effect.Fade(this.lbOverlay,{duration:this.lbOverlayDuration});$$('select','object','embed').each(function(a){a.style.visibility='visible'})},getPageSize:function(){var a,b;if(window.innerHeight&&window.scrollMaxY){a=window.innerWidth+window.scrollMaxX;b=window.innerHeight+window.scrollMaxY}else if(document.body.scrollHeight>document.body.offsetHeight){a=document.body.scrollWidth;b=document.body.scrollHeight}else{a=document.body.offsetWidth;b=document.body.offsetHeight}var c,d;if(self.innerHeight){if(document.documentElement.clientWidth){c=document.documentElement.clientWidth}else{c=self.innerWidth}d=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){c=document.documentElement.clientWidth;d=document.documentElement.clientHeight}else if(document.body){c=document.body.clientWidth;d=document.body.clientHeight}if(b<d){pageHeight=d}else{pageHeight=b}if(a<c){pageWidth=a}else{pageWidth=c}return[pageWidth,pageHeight]}};document.observe('dom:loaded',function(){lightbox=new Lightbox()});

