var fileLoadingImage="gallery/loading.gif";
var fileBottomNavCloseImage="gallery/close.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;i<this.length;i++){
for(j=this.length-1;j>i;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("div");
_19.setAttribute("id","loading");
_16.appendChild(_19);
var _1a=document.createElement("a");
_1a.setAttribute("id","loadingLink");
_1a.setAttribute("href","#");
_1a.onclick=function(){
myLightbox.end();
return false;
};
_19.appendChild(_1a);
var _1b=document.createElement("img");
_1b.setAttribute("src",fileLoadingImage);
_1a.appendChild(_1b);
var _1c=document.createElement("div");
_1c.setAttribute("id","imageDataContainer");
_12.appendChild(_1c);
var _1d=document.createElement("div");
_1d.setAttribute("id","imageData");
_1c.appendChild(_1d);
var _1e=document.createElement("div");
_1e.setAttribute("id","imageDetails");
_1d.appendChild(_1e);
var _1f=document.createElement("span");
_1f.setAttribute("id","numberDisplay");
_1e.appendChild(_1f);
var _20=document.createElement("div");
_20.setAttribute("id","bottomNav");
_1d.appendChild(_20);
var _21=document.createElement("a");
_21.setAttribute("id","prevLink1");
_21.setAttribute("href","#");
_21.onclick=function(){
myLightbox.updateNav();
return false;
};
_20.appendChild(_21);
var _22=document.createElement("img");
_22.setAttribute("src","gallery/previous.gif");
_22.setAttribute("width","15");
_22.setAttribute("height","15");
_22.setAttribute("title","Previous");
_21.appendChild(_22);
var _23=document.createElement("a");
_23.setAttribute("id","nextLink1");
_23.setAttribute("href","#");
_23.onclick=function(){
myLightbox.updateNav();
return false;
};
_20.appendChild(_23);
var _24=document.createElement("img");
_24.setAttribute("src","gallery/next.gif");
_24.setAttribute("width","15");
_24.setAttribute("height","15");
_24.setAttribute("title","Previous");
_23.appendChild(_24);
var _25=document.createElement("a");
_25.setAttribute("id","bottomNavClose");
_25.setAttribute("href","#");
_25.onclick=function(){
myLightbox.end();
return false;
};
_20.appendChild(_25);
var _26=document.createElement("img");
_26.setAttribute("src",fileBottomNavCloseImage);
_26.setAttribute("width","15");
_26.setAttribute("height","15");
_26.setAttribute("title","Close");
_25.appendChild(_26);
},updateImageList:function(){
if(!document.getElementsByTagName){
return;
}
var _27=document.getElementsByTagName("a");
var _28=document.getElementsByTagName("area");
for(var i=0;i<_27.length;i++){
var _2a=_27[i];
var _2b=String(_2a.getAttribute("rel"));
if(_2a.getAttribute("href")&&(_2b.toLowerCase().match("lightbox"))){
_2a.onclick=function(){
myLightbox.start(this);
return false;
};
}
}
for(var i=0;i<_28.length;i++){
var _2c=_28[i];
var _2b=String(_2c.getAttribute("rel"));
if(_2c.getAttribute("href")&&(_2b.toLowerCase().match("lightbox"))){
_2c.onclick=function(){
myLightbox.start(this);
return false;
};
}
}
},start:function(_2d){
hideSelectBoxes();
hideFlash();
var _2e=getPageSize();
Element.setWidth("overlay",_2e[0]);
Element.setHeight("overlay",_2e[1]);
new Effect.Appear("overlay",{duration:overlayDuration,from:0,to:overlayOpacity});
imageArray=[];
imageNum=0;
if(!document.getElementsByTagName){
return;
}
var _2f=document.getElementsByTagName(_2d.tagName);
if((_2d.getAttribute("rel")=="lightbox")){
imageArray.push(new Array(_2d.getAttribute("href"),_2d.getAttribute("title")));
}else{
for(var i=0;i<_2f.length;i++){
var _31=_2f[i];
if(_31.getAttribute("href")&&(_31.getAttribute("rel")==_2d.getAttribute("rel"))){
imageArray.push(new Array(_31.getAttribute("href"),_31.getAttribute("title")));
}
}
imageArray.removeDuplicates();
while(imageArray[imageNum][0]!=_2d.getAttribute("href")){
imageNum++;
}
}
var _32=getPageScroll();
var _33=_32[1]+(_2e[3]/10);
var _34=_32[0];
Element.setTop("lightbox",_33);
Element.setLeft("lightbox",_34);
Element.show("lightbox");
this.changeImage(imageNum);
},changeImage:function(_35){
activeImage=_35;
if(animate){
Element.show("loading");
}
Element.hide("lightboxImage");
Element.hide("hoverNav");
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(_36,_37){
this.widthCurrent=Element.getWidth("outerImageContainer");
this.heightCurrent=Element.getHeight("outerImageContainer");
var _38=(_36+(borderSize*2));
if(_38<170){
_38=170;
}
var _39=(_37+(borderSize*2));
this.xScale=(_38/this.widthCurrent)*100;
this.yScale=(_39/this.heightCurrent)*100;
wDiff=this.widthCurrent-_38;
hDiff=this.heightCurrent-_39;
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.setWidth("imageDataContainer",_38);
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 _3a=getPageSize();
Element.setHeight("overlay",_3a[1]);
myLightbox.updateNav();
}});
},updateNav:function(){
Element.show("hoverNav");
if(activeImage!=0){
Element.show("prevLink1");
document.getElementById("prevLink1").innerHTML="<img src='gallery/previous.gif' height='15' width='15' title='Previous'>";
document.getElementById("prevLink1").setAttribute("href","#");
document.getElementById("prevLink1").onclick=function(){
myLightbox.changeImage(activeImage-1);
return false;
};
}else{
document.getElementById("prevLink1").innerHTML="<img src='gallery/previous.gif' height='15' width='15' title='Previous'>";
document.getElementById("prevLink1").removeAttribute("href");
document.getElementById("prevLink1").onclick=function(){
return false;
};
}
if(activeImage!=(imageArray.length-1)){
Element.show("nextLink1");
document.getElementById("nextLink1").innerHTML="<img src='gallery/next.gif' height='15' width='15' title='Next'>";
document.getElementById("nextLink1").setAttribute("href","#");
document.getElementById("nextLink1").onclick=function(){
myLightbox.changeImage(activeImage+1);
return false;
};
}else{
document.getElementById("nextLink1").innerHTML="<img src='gallery/next.gif' height='15' width='15' title='Next'>";
document.getElementById("nextLink1").removeAttribute("href");
document.getElementById("nextLink1").onclick=function(){
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 _3c,_3d;
if(self.pageYOffset){
_3d=self.pageYOffset;
_3c=self.pageXOffset;
}else{
if(document.documentElement&&document.documentElement.scrollTop){
_3d=document.documentElement.scrollTop;
_3c=document.documentElement.scrollLeft;
}else{
if(document.body){
_3d=document.body.scrollTop;
_3c=document.body.scrollLeft;
}
}
}
arrayPageScroll=new Array(_3c,_3d);
return arrayPageScroll;
}
function getPageSize(){
var _3e,_3f;
if(window.innerHeight&&window.scrollMaxY){
_3e=window.innerWidth+window.scrollMaxX;
_3f=window.innerHeight+window.scrollMaxY;
}else{
if(document.body.scrollHeight>document.body.offsetHeight){
_3e=document.body.scrollWidth;
_3f=document.body.scrollHeight;
}else{
_3e=document.body.offsetWidth;
_3f=document.body.offsetHeight;
}
}
var _40,_41;
if(self.innerHeight){
if(document.documentElement.clientWidth){
_40=document.documentElement.clientWidth;
}else{
_40=self.innerWidth;
}
_41=self.innerHeight;
}else{
if(document.documentElement&&document.documentElement.clientHeight){
_40=document.documentElement.clientWidth;
_41=document.documentElement.clientHeight;
}else{
if(document.body){
_40=document.body.clientWidth;
_41=document.body.clientHeight;
}
}
}
if(_3f<_41){
pageHeight=_41;
}else{
pageHeight=_3f;
}
if(_3e<_40){
pageWidth=_3e;
}else{
pageWidth=_40;
}
arrayPageSize=new Array(pageWidth,pageHeight,_40,_41);
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 _43=document.getElementsByTagName("select");
for(i=0;i!=_43.length;i++){
_43[i].style.visibility="visible";
}
}
function hideSelectBoxes(){
var _44=document.getElementsByTagName("select");
for(i=0;i!=_44.length;i++){
_44[i].style.visibility="hidden";
}
}
function showFlash(){
var _45=document.getElementsByTagName("object");
for(i=0;i<_45.length;i++){
_45[i].style.visibility="visible";
}
var _46=document.getElementsByTagName("embed");
for(i=0;i<_46.length;i++){
_46[i].style.visibility="visible";
}
}
function hideFlash(){
var _47=document.getElementsByTagName("object");
for(i=0;i<_47.length;i++){
_47[i].style.visibility="hidden";
}
var _48=document.getElementsByTagName("embed");
for(i=0;i<_48.length;i++){
_48[i].style.visibility="hidden";
}
}
function pause(ms){
var _4a=new Date();
_4b=null;
do{
var _4b=new Date();
}while(_4b-_4a<ms);
}
function initLightbox(){
myLightbox=new Lightbox();
}
Event.observe(window,"load",initLightbox,false);
