var fileLoadingImage="/images/lightbox/loading.gif",fileBottomNavCloseImage="/images/lightbox/closelabel.gif",resizeSpeed=7,borderSize=10,imageArray=[],activeImage;if(resizeSpeed>10)resizeSpeed=10;if(resizeSpeed<1)resizeSpeed=1;resizeDuration=(11-resizeSpeed)*.15;Object.extend(Element,{getWidth:function(a){a=$(a);return a.offsetWidth},setWidth:function(a,b){a=$(a);a.style.width=b+"px"},setHeight:function(a,b){a=$(a);a.style.height=b+"px"},setTop:function(a,b){a=$(a);a.style.top=b+"px"},setSrc:function(a,b){a=$(a);a.src=b},setHref:function(a,b){a=$(a);a.href=b},setInnerHTML:function(a,b){a=$(a);a.innerHTML=b}});Array.prototype.removeDuplicates=function(){for(i=1;i<this.length;i++)this[i][0]==this[i-1][0]&&this.splice(i,1)};Array.prototype.empty=function(){for(i=0;i<=this.length;i++)this.shift()};var Lightbox=Class.create();Lightbox.prototype={initialize:function(){if(!document.getElementsByTagName)return;for(var v=document.getElementsByTagName("a"),q=0;q<v.length;q++){var p=v[q],x=String(p.getAttribute("rel"));if(p.getAttribute("href")&&x.toLowerCase().match("lightbox"))p.onclick=function(){myLightbox.start(this);return false}}var w=document.getElementsByTagName("body").item(0),i=document.createElement("div");i.setAttribute("id","overlay");i.style.display="none";i.onclick=function(){myLightbox.end();return false};w.appendChild(i);var d=document.createElement("div");d.setAttribute("id","lightbox");d.style.display="none";w.appendChild(d);var j=document.createElement("div");j.setAttribute("id","outerImageContainer");d.appendChild(j);var b=document.createElement("div");b.setAttribute("id","imageContainer");j.appendChild(b);var k=document.createElement("img");k.setAttribute("id","lightboxImage");k.setAttribute("galleryimg","no");b.appendChild(k);var h=document.createElement("div");h.setAttribute("id","hoverNav");b.appendChild(h);var n=document.createElement("a");n.setAttribute("id","prevLink");n.setAttribute("href","#");h.appendChild(n);var m=document.createElement("a");m.setAttribute("id","nextLink");m.setAttribute("href","#");h.appendChild(m);var o=document.createElement("div");o.setAttribute("id","loading");b.appendChild(o);var c=document.createElement("a");c.setAttribute("id","loadingLink");c.setAttribute("href","#");c.onclick=function(){myLightbox.end();return false};o.appendChild(c);var t=document.createElement("img");t.setAttribute("src",fileLoadingImage);c.appendChild(t);var e=document.createElement("div");e.setAttribute("id","imageDataContainer");e.className="clearfix";d.appendChild(e);var g=document.createElement("div");g.setAttribute("id","imageData");e.appendChild(g);var f=document.createElement("div");f.setAttribute("id","imageDetails");g.appendChild(f);var u=document.createElement("span");u.setAttribute("id","caption");f.appendChild(u);var s=document.createElement("span");s.setAttribute("id","numberDisplay");f.appendChild(s);var l=document.createElement("div");l.setAttribute("id","bottomNav");g.appendChild(l);var a=document.createElement("a");a.setAttribute("id","bottomNavClose");a.setAttribute("href","#");a.onclick=function(){myLightbox.end();return false};l.appendChild(a);var r=document.createElement("img");r.setAttribute("src",fileBottomNavCloseImage);a.appendChild(r)},start:function(a){hideSelectBoxes();var d=getPageSize();Element.setHeight("overlay",d[1]);new Effect.Appear("overlay",{duration:.2,from:0,to:.8});imageArray=[];imageNum=0;if(!document.getElementsByTagName)return;var e=document.getElementsByTagName("a");if(a.getAttribute("rel")=="lightbox")imageArray.push([a.getAttribute("href"),a.getAttribute("title")]);else{for(var c=0;c<e.length;c++){var b=e[c];b.getAttribute("href")&&b.getAttribute("rel")==a.getAttribute("rel")&&imageArray.push([b.getAttribute("href"),b.getAttribute("title")])}imageArray.removeDuplicates();while(imageArray[imageNum][0]!=a.getAttribute("href"))imageNum++}var d=getPageSize(),f=getPageScroll(),g=f[1]+d[3]/15;Element.setTop("lightbox",g);Element.show("lightbox");this.changeImage(imageNum)},changeImage:function(a){activeImage=a;Element.show("loading");Element.hide("lightboxImage");Element.hide("hoverNav");Element.hide("prevLink");Element.hide("nextLink");Element.hide("imageDataContainer");Element.hide("numberDisplay");imgPreloader=new Image;imgPreloader.onload=function(){Element.setSrc("lightboxImage",imageArray[activeImage][0]);myLightbox.resizeImageContainer(imgPreloader.width,imgPreloader.height)};imgPreloader.src=imageArray[activeImage][0]},resizeImageContainer:function(b,a){this.wCur=Element.getWidth("outerImageContainer");this.hCur=Element.getHeight("outerImageContainer");this.xScale=(b+borderSize*2)/this.wCur*100;this.yScale=(a+borderSize*2)/this.hCur*100;wDiff=this.wCur-borderSize*2-b;hDiff=this.hCur-borderSize*2-a;!(hDiff==0)&&new Effect.Scale("outerImageContainer",this.yScale,{scaleX:false,duration:resizeDuration,queue:"front"});!(wDiff==0)&&new Effect.Scale("outerImageContainer",this.xScale,{scaleY:false,delay:resizeDuration,duration:resizeDuration});if(hDiff==0&&wDiff==0)if(navigator.appVersion.indexOf("MSIE")!=-1)pause(250);else pause(100);Element.setHeight("prevLink",a);Element.setHeight("nextLink",a);Element.setWidth("imageDataContainer",b+borderSize*2);this.showImage()},showImage:function(){Element.hide("loading");new Effect.Appear("lightboxImage",{duration:.5,queue:"end",afterFinish:function(){myLightbox.updateDetails()}});this.preloadNeighborImages()},updateDetails:function(){Element.show("caption");Element.setInnerHTML("caption",imageArray[activeImage][1]);if(imageArray.length>1){Element.show("numberDisplay");Element.setInnerHTML("numberDisplay","Image "+eval(activeImage+1)+" of "+imageArray.length)}new Effect.Parallel([new Effect.SlideDown("imageDataContainer",{sync:true,duration:resizeDuration+.25,from:0,to:1}),new Effect.Appear("imageDataContainer",{sync:true,duration:1})],{duration:.65,afterFinish:function(){myLightbox.updateNav()}})},updateNav:function(){Element.show("hoverNav");if(activeImage!=0){Element.show("prevLink");document.getElementById("prevLink").onclick=function(){myLightbox.changeImage(activeImage-1);return false}}if(activeImage!=imageArray.length-1){Element.show("nextLink");document.getElementById("nextLink").onclick=function(){myLightbox.changeImage(activeImage+1);return false}}this.enableKeyboardNav()},enableKeyboardNav:function(){document.onkeydown=this.keyboardAction},disableKeyboardNav:function(){document.onkeydown=""},keyboardAction:function(a){if(a==null)keycode=event.keyCode;else keycode=a.which;key=String.fromCharCode(keycode).toLowerCase();if(key=="x"||key=="o"||key=="c")myLightbox.end();else if(key=="p"){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1)}}else if(key=="n")if(activeImage!=imageArray.length-1){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage+1)}},preloadNeighborImages:function(){if(imageArray.length-1>activeImage){preloadNextImage=new Image;preloadNextImage.src=imageArray[activeImage+1][0]}if(activeImage>0){preloadPrevImage=new Image;preloadPrevImage.src=imageArray[activeImage-1][0]}},end:function(){this.disableKeyboardNav();Element.hide("lightbox");new Effect.Fade("overlay",{duration:.2});showSelectBoxes()}};function getPageScroll(){var a;if(self.pageYOffset)a=self.pageYOffset;else if(document.documentElement&&document.documentElement.scrollTop)a=document.documentElement.scrollTop;else if(document.body)a=document.body.scrollTop;arrayPageScroll=["",a];return arrayPageScroll}function getPageSize(){var c,d;if(window.innerHeight&&window.scrollMaxY){c=document.body.scrollWidth;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 b,a;if(self.innerHeight){b=self.innerWidth;a=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){b=document.documentElement.clientWidth;a=document.documentElement.clientHeight}else if(document.body){b=document.body.clientWidth;a=document.body.clientHeight}if(d<a)pageHeight=a;else pageHeight=d;if(c<b)pageWidth=b;else pageWidth=c;arrayPageSize=[pageWidth,pageHeight,b,a];return arrayPageSize}function getKey(a){if(a==null)keycode=event.keyCode;else keycode=a.which;key=String.fromCharCode(keycode).toLowerCase();key=="x"}function listenKey(){document.onkeypress=getKey}function showSelectBoxes(){selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++)selects[i].style.visibility="visible"}function hideSelectBoxes(){selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++)selects[i].style.visibility="hidden"}function pause(b){var a=new Date,c=a.getTime()+b;while(true){a=new Date;if(a.getTime()>c)return}}function initLightbox(){myLightbox=new Lightbox}Event.observe(window,"load",initLightbox,false);
