var fileLoadingImage="images/lightbox/loading.gif",fileBottomNavCloseImage="images/lightbox/closelabel.gif",overlayOpacity=.8,animate=true,resizeSpeed=7,borderSize=10,imageArray=[],activeImage;if(animate==true){overlayDuration=.2;if(resizeSpeed>10)resizeSpeed=10;if(resizeSpeed<1)resizeSpeed=1;resizeDuration=(11-resizeSpeed)*.15}else{overlayDuration=0;resizeDuration=0}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"},setLeft:function(a,b){a=$(a);a.style.left=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=0;i<this.length;i++)for(j=this.length-1;j>i;j--)this[i][0]==this[j][0]&&this.splice(j,1)};Array.prototype.empty=function(){for(i=0;i<=this.length;i++)this.shift()};var Lightbox=Class.create();Lightbox.prototype={initialize:function(){this.updateImageList();var t=document.getElementsByTagName("body").item(0),h=document.createElement("div");h.setAttribute("id","overlay");h.style.display="none";h.onclick=function(){myLightbox.end()};t.appendChild(h);var a=document.createElement("div");a.setAttribute("id","lightbox");a.style.display="none";a.onclick=function(a){if(!a)var a=window.event;var b=Event.element(a).id;b=="lightbox"&&myLightbox.end()};t.appendChild(a);var i=document.createElement("div");i.setAttribute("id","outerImageContainer");a.appendChild(i);if(animate){Element.setWidth("outerImageContainer",250);Element.setHeight("outerImageContainer",250)}else{Element.setWidth("outerImageContainer",1);Element.setHeight("outerImageContainer",1)}var c=document.createElement("div");c.setAttribute("id","imageContainer");i.appendChild(c);var p=document.createElement("img");p.setAttribute("id","lightboxImage");c.appendChild(p);var g=document.createElement("div");g.setAttribute("id","hoverNav");c.appendChild(g);var m=document.createElement("a");m.setAttribute("id","prevLink");m.setAttribute("href","#");g.appendChild(m);var l=document.createElement("a");l.setAttribute("id","nextLink");l.setAttribute("href","#");g.appendChild(l);var n=document.createElement("div");n.setAttribute("id","loading");c.appendChild(n);var d=document.createElement("a");d.setAttribute("id","loadingLink");d.setAttribute("href","#");d.onclick=function(){myLightbox.end();return false};n.appendChild(d);var r=document.createElement("img");r.setAttribute("src",fileLoadingImage);d.appendChild(r);var j=document.createElement("div");j.setAttribute("id","imageDataContainer");a.appendChild(j);var f=document.createElement("div");f.setAttribute("id","imageData");j.appendChild(f);var e=document.createElement("div");e.setAttribute("id","imageDetails");f.appendChild(e);var s=document.createElement("span");s.setAttribute("id","caption");e.appendChild(s);var q=document.createElement("span");q.setAttribute("id","numberDisplay");e.appendChild(q);var k=document.createElement("div");k.setAttribute("id","bottomNav");f.appendChild(k);var b=document.createElement("a");b.setAttribute("id","bottomNavClose");b.setAttribute("href","#");b.onclick=function(){myLightbox.end();return false};k.appendChild(b);var o=document.createElement("img");o.setAttribute("src",fileBottomNavCloseImage);b.appendChild(o)},updateImageList:function(){if(!document.getElementsByTagName)return;for(var e=document.getElementsByTagName("a"),f=document.getElementsByTagName("area"),a=0;a<e.length;a++){var b=e[a],d=String(b.getAttribute("rel"));if(b.getAttribute("href")&&d.toLowerCase().match("lightbox"))b.onclick=function(){myLightbox.start(this);return false}}for(var a=0;a<f.length;a++){var c=f[a],d=String(c.getAttribute("rel"));if(c.getAttribute("href")&&d.toLowerCase().match("lightbox"))c.onclick=function(){myLightbox.start(this);return false}}},start:function(a){hideSelectBoxes();hideFlash();var c=getPageSize();Element.setWidth("overlay",c[0]);Element.setHeight("overlay",c[1]);new Effect.Appear("overlay",{duration:overlayDuration,from:0,to:overlayOpacity});imageArray=[];imageNum=0;if(!document.getElementsByTagName)return;var f=document.getElementsByTagName(a.tagName);if(a.getAttribute("rel")=="lightbox")imageArray.push([a.getAttribute("href"),a.getAttribute("title")]);else{for(var d=0;d<f.length;d++){var b=f[d];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 e=getPageScroll(),h=e[1]+c[3]/10,g=e[0];Element.setTop("lightbox",h);Element.setLeft("lightbox",g);Element.show("lightbox");this.changeImage(imageNum)},changeImage:function(a){activeImage=a;animate&&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.onload=function(){}};imgPreloader.src=imageArray[activeImage][0]},resizeImageContainer:function(d,a){this.widthCurrent=Element.getWidth("outerImageContainer");this.heightCurrent=Element.getHeight("outerImageContainer");var b=d+borderSize*2,c=a+borderSize*2;this.xScale=b/this.widthCurrent*100;this.yScale=c/this.heightCurrent*100;wDiff=this.widthCurrent-b;hDiff=this.heightCurrent-c;!(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);this.showImage()},showImage:function(){Element.hide("loading");new Effect.Appear("lightboxImage",{duration:resizeDuration,queue:"end",afterFinish:function(){myLightbox.updateDetails()}});this.preloadNeighborImages()},updateDetails:function(){if(imageArray[activeImage][1]){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,from:0,to:1}),new Effect.Appear("imageDataContainer",{sync:true,duration:resizeDuration})],{duration:resizeDuration,afterFinish:function(){var a=getPageSize();Element.setHeight("overlay",a[1]);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;escapeKey=27}else{keycode=a.keyCode;escapeKey=a.DOM_VK_ESCAPE}key=String.fromCharCode(keycode).toLowerCase();if(key=="x"||key=="o"||key=="c"||keycode==escapeKey)myLightbox.end();else if(key=="p"||keycode==37){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1)}}else if(key=="n"||keycode==39)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:overlayDuration});showSelectBoxes();showFlash()}};function getPageScroll(){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}arrayPageScroll=[a,b];return arrayPageScroll}function getPageSize(){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;arrayPageSize=[pageWidth,pageHeight,a,b];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(){var a=document.getElementsByTagName("select");for(i=0;i!=a.length;i++)a[i].style.visibility="visible"}function hideSelectBoxes(){var a=document.getElementsByTagName("select");for(i=0;i!=a.length;i++)a[i].style.visibility="hidden"}function showFlash(){var a=document.getElementsByTagName("object");for(i=0;i<a.length;i++)a[i].style.visibility="visible";var b=document.getElementsByTagName("embed");for(i=0;i<b.length;i++)b[i].style.visibility="visible"}function hideFlash(){var a=document.getElementsByTagName("object");for(i=0;i<a.length;i++)a[i].style.visibility="hidden";var b=document.getElementsByTagName("embed");for(i=0;i<b.length;i++)b[i].style.visibility="hidden"}function pause(c){var b=new Date;a=null;do var a=new Date;while(a-b<c)}function initLightbox(){myLightbox=new Lightbox}Event.observe(window,"load",initLightbox,false);
