var fileLoadingImage="images/loading.gif"; var fileBottomNavCloseImage="images/closelabel.gif"; var overlayOpacity=0.8; var animate=true; var resizeSpeed=7; var borderSize=10; var imageArray=new Array; var activeImage; if(animate==true){ overlayDuration=0.2; if(resizeSpeed>10){ resizeSpeed=10; } if(resizeSpeed<1){ resizeSpeed=1; } resizeDuration=(11-resizeSpeed)*0.15; }else{ overlayDuration=0; resizeDuration=0; } Object.extend(Element,{getWidth:function(_1){ _1=$(_1); return _1.offsetWidth; },setWidth:function(_2,w){ _2=$(_2); _2.style.width=w+"px"; },setHeight:function(_4,h){ _4=$(_4); _4.style.height=h+"px"; },setTop:function(_6,t){ _6=$(_6); _6.style.top=t+"px"; },setLeft:function(_8,l){ _8=$(_8); _8.style.left=l+"px"; },setSrc:function(_a,_b){ _a=$(_a); _a.src=_b; },setHref:function(_c,_d){ _c=$(_c); _c.href=_d; },setInnerHTML:function(_e,_f){ _e=$(_e); _e.innerHTML=_f; }}); Array.prototype.removeDuplicates=function(){ for(i=0;ii;j--){ if(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 _10=document.getElementsByTagName("body").item(0); var _11=document.createElement("div"); _11.setAttribute("id","overlay"); _11.style.display="none"; _11.onclick=function(){ myLightbox.end(); }; _10.appendChild(_11); var _12=document.createElement("div"); _12.setAttribute("id","lightbox"); _12.style.display="none"; _12.onclick=function(e){ if(!e){ var e=window.event; } var _14=Event.element(e).id; if(_14=="lightbox"){ myLightbox.end(); } }; _10.appendChild(_12); var _15=document.createElement("div"); _15.setAttribute("id","outerImageContainer"); _12.appendChild(_15); if(animate){ Element.setWidth("outerImageContainer",250); Element.setHeight("outerImageContainer",250); }else{ Element.setWidth("outerImageContainer",1); Element.setHeight("outerImageContainer",1); } var _16=document.createElement("div"); _16.setAttribute("id","imageContainer"); _15.appendChild(_16); var _17=document.createElement("img"); _17.setAttribute("id","lightboxImage"); _16.appendChild(_17); var _18=document.createElement("div"); _18.setAttribute("id","hoverNav"); _16.appendChild(_18); var _19=document.createElement("a"); _19.setAttribute("id","prevLink"); _19.setAttribute("href","#"); _18.appendChild(_19); var _1a=document.createElement("a"); _1a.setAttribute("id","nextLink"); _1a.setAttribute("href","#"); _18.appendChild(_1a); var _1b=document.createElement("div"); _1b.setAttribute("id","loading"); _16.appendChild(_1b); var _1c=document.createElement("a"); _1c.setAttribute("id","loadingLink"); _1c.setAttribute("href","#"); _1c.onclick=function(){ myLightbox.end(); return false; }; _1b.appendChild(_1c); var _1d=document.createElement("img"); _1d.setAttribute("src",fileLoadingImage); _1c.appendChild(_1d); var _1e=document.createElement("div"); _1e.setAttribute("id","imageDataContainer"); _12.appendChild(_1e); var _1f=document.createElement("div"); _1f.setAttribute("id","imageData"); _1e.appendChild(_1f); var _20=document.createElement("div"); _20.setAttribute("id","imageDetails"); _1f.appendChild(_20); var _21=document.createElement("span"); _21.setAttribute("id","caption"); _20.appendChild(_21); var _22=document.createElement("span"); _22.setAttribute("id","numberDisplay"); _20.appendChild(_22); var _23=document.createElement("div"); _23.setAttribute("id","bottomNav"); _1f.appendChild(_23); var _24=document.createElement("a"); _24.setAttribute("id","bottomNavClose"); _24.setAttribute("href","#"); _24.onclick=function(){ myLightbox.end(); return false; }; _23.appendChild(_24); var _25=document.createElement("img"); _25.setAttribute("src",fileBottomNavCloseImage); _24.appendChild(_25); },updateImageList:function(){ if(!document.getElementsByTagName){ return; } var _26=document.getElementsByTagName("a"); var _27=document.getElementsByTagName("area"); for(var i=0;i<_26.length;i++){ var _29=_26[i]; var _2a=String(_29.getAttribute("rel")); if(_29.getAttribute("href")&&(_2a.toLowerCase().match("lightbox"))){ _29.onclick=function(){ myLightbox.start(this); return false; }; } } for(var i=0;i<_27.length;i++){ var _2b=_27[i]; var _2a=String(_2b.getAttribute("rel")); if(_2b.getAttribute("href")&&(_2a.toLowerCase().match("lightbox"))){ _2b.onclick=function(){ myLightbox.start(this); return false; }; } } },start:function(_2c){ hideSelectBoxes(); hideFlash(); var _2d=getPageSize(); Element.setWidth("overlay",_2d[0]); Element.setHeight("overlay",_2d[1]); new Effect.Appear("overlay",{duration:overlayDuration,from:0,to:overlayOpacity}); imageArray=[]; imageNum=0; if(!document.getElementsByTagName){ return; } var _2e=document.getElementsByTagName(_2c.tagName); if((_2c.getAttribute("rel")=="lightbox")){ imageArray.push(new Array(_2c.getAttribute("href"),_2c.getAttribute("title"))); }else{ for(var i=0;i<_2e.length;i++){ var _30=_2e[i]; if(_30.getAttribute("href")&&(_30.getAttribute("rel")==_2c.getAttribute("rel"))){ imageArray.push(new Array(_30.getAttribute("href"),_30.getAttribute("title"))); } } imageArray.removeDuplicates(); while(imageArray[imageNum][0]!=_2c.getAttribute("href")){ imageNum++; } } var _31=getPageScroll(); var _32=_31[1]+(_2d[3]/10); var _33=_31[0]; Element.setTop("lightbox",_32); Element.setLeft("lightbox",_33); Element.show("lightbox"); this.changeImage(imageNum); },changeImage:function(_34){ activeImage=_34; if(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(_35,_36){ this.widthCurrent=Element.getWidth("outerImageContainer"); this.heightCurrent=Element.getHeight("outerImageContainer"); var _37=(_35+(borderSize*2)); var _38=(_36+(borderSize*2)); this.xScale=(_37/this.widthCurrent)*100; this.yScale=(_38/this.heightCurrent)*100; wDiff=this.widthCurrent-_37; hDiff=this.heightCurrent-_38; if(!(hDiff==0)){ new Effect.Scale("outerImageContainer",this.yScale,{scaleX:false,duration:resizeDuration,queue:"front"}); } if(!(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",_36); Element.setHeight("nextLink",_36); Element.setWidth("imageDataContainer",_37); 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 _39=getPageSize(); Element.setHeight("overlay",_39[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(e){ if(e==null){ keycode=event.keyCode; escapeKey=27; }else{ keycode=e.keyCode; escapeKey=e.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 _3b,_3c; if(self.pageYOffset){ _3c=self.pageYOffset; _3b=self.pageXOffset; }else{ if(document.documentElement&&document.documentElement.scrollTop){ _3c=document.documentElement.scrollTop; _3b=document.documentElement.scrollLeft; }else{ if(document.body){ _3c=document.body.scrollTop; _3b=document.body.scrollLeft; } } } arrayPageScroll=new Array(_3b,_3c); return arrayPageScroll; }; function getPageSize(){ var _3d,_3e; if(window.innerHeight&&window.scrollMaxY){ _3d=window.innerWidth+window.scrollMaxX; _3e=window.innerHeight+window.scrollMaxY; }else{ if(document.body.scrollHeight>document.body.offsetHeight){ _3d=document.body.scrollWidth; _3e=document.body.scrollHeight; }else{ _3d=document.body.offsetWidth; _3e=document.body.offsetHeight; } } var _3f,_40; if(self.innerHeight){ if(document.documentElement.clientWidth){ _3f=document.documentElement.clientWidth; }else{ _3f=self.innerWidth; } _40=self.innerHeight; }else{ if(document.documentElement&&document.documentElement.clientHeight){ _3f=document.documentElement.clientWidth; _40=document.documentElement.clientHeight; }else{ if(document.body){ _3f=document.body.clientWidth; _40=document.body.clientHeight; } } } if(_3e<_40){ pageHeight=_40; }else{ pageHeight=_3e; } if(_3d<_3f){ pageWidth=_3d; }else{ pageWidth=_3f; } arrayPageSize=new Array(pageWidth,pageHeight,_3f,_40); return arrayPageSize; }; function getKey(e){ if(e==null){ keycode=event.keyCode; }else{ keycode=e.which; } key=String.fromCharCode(keycode).toLowerCase(); if(key=="x"){ } }; function listenKey(){ document.onkeypress=getKey; }; function showSelectBoxes(){ var _42=document.getElementsByTagName("select"); for(i=0;i!=_42.length;i++){ _42[i].style.visibility="visible"; } }; function hideSelectBoxes(){ var _43=document.getElementsByTagName("select"); for(i=0;i!=_43.length;i++){ _43[i].style.visibility="hidden"; } }; function showFlash(){ var _44=document.getElementsByTagName("object"); for(i=0;i<_44.length;i++){ _44[i].style.visibility="visible"; } var _45=document.getElementsByTagName("embed"); for(i=0;i<_45.length;i++){ _45[i].style.visibility="visible"; } }; function hideFlash(){ var _46=document.getElementsByTagName("object"); for(i=0;i<_46.length;i++){ _46[i].style.visibility="hidden"; } var _47=document.getElementsByTagName("embed"); for(i=0;i<_47.length;i++){ _47[i].style.visibility="hidden"; } }; function pause(ms){ var _49=new Date(); _4a=null; do{ var _4a=new Date(); }while(_4a-_49