var overlayOpacity=0.8;var animate=true;var resizeSpeed=400;var borderSize=10;var lllImage='Image';var lllOf='of';var presentationMode;var allowSave=false;var slideshowEnabled;var enableSlideshowAutoplay=false;var slideshowInterval=5000;var slideshowAutoclose=false;var imageArray=new Array;var activeImage;var slideshowActive;var slideshowIDArray=new Array();var slideshowIDCount=0;Object.extend(Element,{getWidth:function(element){element=$(element);return element.offsetWidth;},setWidth:function(element,w){element=$(element);element.style.width=w+"px";},setHeight:function(element,h){element=$(element);element.style.height=h+"px";},setTop:function(element,t){element=$(element);element.style.top=t+"px";},setLeft:function(element,l){element=$(element);element.style.left=l+"px";},setSrc:function(element,src){element=$(element);element.src=src;},setHref:function(element,href){element=$(element);element.href=href;},setInnerHTML:function(element,content){element=$(element);element.innerHTML=content;}});var Lightbox=Class.create();Lightbox.prototype={initialize:function(){if(animate==true){overlayDuration=resizeSpeed/1000;resizeDuration=resizeSpeed/1000;}else{overlayDuration=0;resizeDuration=0;}
this.updateImageList();var objBody=document.getElementsByTagName("body").item(0);var objOverlay=document.createElement("div");objOverlay.setAttribute('id','overlay');objOverlay.style.display='none';objOverlay.onclick=function(){myLightbox.end();}
objBody.appendChild(objOverlay);var objLightbox=document.createElement("div");objLightbox.setAttribute('id','lbLightbox');objLightbox.style.display='none';objLightbox.onclick=function(e){if(!e)var e=window.event;var clickObj=Event.element(e).id;if(clickObj=='lbLightbox'){myLightbox.end();}};objBody.appendChild(objLightbox);var objOuterImageContainer=document.createElement("div");objOuterImageContainer.setAttribute('id','lbOuterImageContainer');objLightbox.appendChild(objOuterImageContainer);if(animate){Element.setWidth('lbOuterImageContainer',250);Element.setHeight('lbOuterImageContainer',250);}else{Element.setWidth('lbOuterImageContainer',1);Element.setHeight('lbOuterImageContainer',1);}
var objImageContainer=document.createElement("div");objImageContainer.setAttribute('id','lbImageContainer');objOuterImageContainer.appendChild(objImageContainer);var objLightboxImage=document.createElement("img");objLightboxImage.setAttribute('id','lightboxImage');objImageContainer.appendChild(objLightboxImage);var objHoverNav=document.createElement("div");objHoverNav.setAttribute('id','lbHoverNav');objImageContainer.appendChild(objHoverNav);var objPrevLink=document.createElement("a");objPrevLink.setAttribute('id','prevLink');objPrevLink.setAttribute('href','#');objHoverNav.appendChild(objPrevLink);var objNextLink=document.createElement("a");objNextLink.setAttribute('id','nextLink');objNextLink.setAttribute('href','#');objHoverNav.appendChild(objNextLink);var objLoading=document.createElement("div");objLoading.setAttribute('id','lbLoading');objImageContainer.appendChild(objLoading);var objLoadingLink=document.createElement("a");objLoadingLink.setAttribute('id','loadingLink');objLoadingLink.setAttribute('href','#');objLoadingLink.onclick=function(){myLightbox.end();return false;}
objLoading.appendChild(objLoadingLink);var objImageDataContainer=document.createElement("div");objImageDataContainer.setAttribute('id','lbImageDataContainer');objLightbox.appendChild(objImageDataContainer);var objImageData=document.createElement("div");objImageData.setAttribute('id','lbImageData');objImageDataContainer.appendChild(objImageData);var objImageDetails=document.createElement("div");objImageDetails.setAttribute('id','lbImageDetails');objImageData.appendChild(objImageDetails);var objCaption=document.createElement("span");objCaption.setAttribute('id','lbCaption');objImageDetails.appendChild(objCaption);var objNumberDisplay=document.createElement("span");objNumberDisplay.setAttribute('id','lbNumber');objImageDetails.appendChild(objNumberDisplay);var objPresentMode=document.createElement("span");objPresentMode.setAttribute('id','lbPresent');objImageDetails.appendChild(objPresentMode);var objBottomNav=document.createElement("div");objBottomNav.setAttribute('id','bottomNav');objImageData.appendChild(objBottomNav);var objBottomNavPlayLink=document.createElement("a");objBottomNavPlayLink.setAttribute('id','playLink');objBottomNavPlayLink.setAttribute('href','#');objBottomNavPlayLink.onclick=function(){myLightbox.startSlideshow();return false;}
objBottomNav.appendChild(objBottomNavPlayLink);var objBottomNavPauseLink=document.createElement("a");objBottomNavPauseLink.setAttribute('id','pauseLink');objBottomNavPauseLink.setAttribute('href','#');objBottomNavPauseLink.onclick=function(){myLightbox.stopSlideshow();return false;}
objBottomNav.appendChild(objBottomNavPauseLink);if(allowSave){var objBottomNavSaveLink=document.createElement("a");objBottomNavSaveLink.setAttribute('id','saveLink');objBottomNavSaveLink.setAttribute('target','_blank');objBottomNav.appendChild(objBottomNavSaveLink);}
var objBottomNavCloseLink=document.createElement("a");objBottomNavCloseLink.setAttribute('id','closeLink');objBottomNavCloseLink.setAttribute('href','#');objBottomNavCloseLink.onclick=function(){myLightbox.end();return false;}
objBottomNav.appendChild(objBottomNavCloseLink);},updateImageList:function(){if(!document.getElementsByTagName){return;}
var anchors=document.getElementsByTagName('a');var areas=document.getElementsByTagName('area');for(var i=0;i<anchors.length;i++){var anchor=anchors[i];var relAttribute=String(anchor.getAttribute('rel'));if(anchor.getAttribute('href')&&(relAttribute.toLowerCase().match('lightbox'))){anchor.onclick=function(){myLightbox.start(this);return false;}}}
for(var i=0;i<areas.length;i++){var area=areas[i];var relAttribute=String(area.getAttribute('rel'));if(area.getAttribute('href')&&(relAttribute.toLowerCase().match('lightbox'))){area.onclick=function(){myLightbox.start(this);return false;}}}},start:function(imageLink){hideSelectBoxes();hideFlash();var arrayPageSize=getPageSize();Element.setHeight('overlay',arrayPageSize[1]);new Effect.Appear('overlay',{duration:overlayDuration,from:0.0,to:overlayOpacity});imageArray=[];imageNum=0;if(!document.getElementsByTagName){return;}
var anchors=document.getElementsByTagName(imageLink.tagName);if((imageLink.getAttribute('rel')=='lightbox')){imageArray.push(new Array(imageLink.getAttribute('href'),imageLink.getAttribute('title')));presentationMode=false;slideshowEnabled=false;slideshowActive=false;$('pauseLink').hide();$('playLink').hide();}else{for(var i=0;i<anchors.length;i++){var anchor=anchors[i];if(anchor.getAttribute('href')&&(anchor.getAttribute('rel')==imageLink.getAttribute('rel'))){imageArray.push(new Array(anchor.getAttribute('href'),anchor.getAttribute('title')));}}
while(imageArray[imageNum][0]!=imageLink.getAttribute('href')){imageNum++;}
if(imageLink.getAttribute('rel').toLowerCase().match('present')){presentationMode=true;}else{presentationMode=false;}
if(imageLink.getAttribute('rel').toLowerCase().match('slideshow')){slideshowEnabled=true;slideshowActive=enableSlideshowAutoplay;}else{slideshowEnabled=false;slideshowActive=false;$('pauseLink').hide();$('playLink').hide();}}
var arrayPageScroll=getPageScroll();var lightboxTop=arrayPageScroll[1]+(arrayPageSize[3]/10);var lightboxLeft=arrayPageScroll[0];Element.setTop('lbLightbox',lightboxTop);Element.setLeft('lbLightbox',lightboxLeft);$('lbLightbox').show();this.changeImage(imageNum);},changeImage:function(imageNum){activeImage=imageNum;if(animate){$('lbLoading').show();}
$('lightboxImage').hide();$('lbHoverNav').hide();$('prevLink').hide();$('nextLink').hide();$('lbImageDataContainer').hide();$('lbNumber').hide();imgPreloader=new Image();imgPreloader.onload=function(){Element.setSrc('lightboxImage',imageArray[activeImage][0]);myLightbox.resizeImageContainer(imgPreloader.width,imgPreloader.height);if(allowSave){document.getElementById('saveLink').setAttribute('href',imageArray[activeImage][0]);}
imgPreloader.onload=function(){};}
imgPreloader.src=imageArray[activeImage][0];},resizeImageContainer:function(imgWidth,imgHeight){this.widthCurrent=Element.getWidth('lbOuterImageContainer');this.heightCurrent=Element.getHeight('lbOuterImageContainer');var widthNew=(imgWidth+(borderSize*2));var heightNew=(imgHeight+(borderSize*2));this.xScale=(widthNew/this.widthCurrent)*100;this.yScale=(heightNew/this.heightCurrent)*100;wDiff=this.widthCurrent-widthNew;hDiff=this.heightCurrent-heightNew;if(!(hDiff==0)){new Effect.Scale('lbOuterImageContainer',this.yScale,{scaleX:false,duration:resizeDuration,queue:'front'});}
if(!(wDiff==0)){new Effect.Scale('lbOuterImageContainer',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',imgHeight);Element.setHeight('nextLink',imgHeight);Element.setWidth('lbImageDataContainer',widthNew);this.showImage();},showImage:function(){$('lbLoading').hide();new Effect.Appear('lightboxImage',{duration:resizeDuration,queue:'end',afterFinish:function(){myLightbox.updateDetails();}});if(slideshowActive){if(activeImage==(imageArray.length-1)){if(slideshowAutoclose){slideshowIDArray[slideshowIDCount++]=setTimeout('myLightbox.end()',slideshowInterval+resizeSpeed*2);}else{myLightbox.stopSlideshow();}}else{slideshowIDArray[slideshowIDCount++]=setTimeout('myLightbox.changeImage('+(activeImage+1)+')',slideshowInterval+resizeSpeed*2);}}
this.preloadNeighborImages();},updateDetails:function(){if(imageArray[activeImage][1]){$('lbCaption').show();Element.setInnerHTML('lbCaption',imageArray[activeImage][1]);}else{$('lbCaption').hide();}
if(imageArray.length>1){$('lbNumber').show();Element.setInnerHTML('lbNumber'," "+lllImage+" "+eval(activeImage+1)+" "+lllOf+" "+imageArray.length);}
if(presentationMode){$('lbNumber').hide();myLightbox.updatePresentationNav();}else{$('lbPresent').hide();}
if(slideshowEnabled){if(slideshowActive){$('playLink').hide();$('pauseLink').show();}else{$('pauseLink').hide();$('playLink').show();}}
new Effect.Parallel([new Effect.SlideDown('lbImageDataContainer',{sync:true,duration:resizeDuration,from:0.0,to:1.0}),new Effect.Appear('lbImageDataContainer',{sync:true,duration:resizeDuration})],{duration:resizeDuration,afterFinish:function(){var arrayPageSize=getPageSize();Element.setHeight('overlay',arrayPageSize[1]);myLightbox.updateNav();}});},updateNav:function(){$('lbHoverNav').show();if(activeImage!=0){$('prevLink').show();if(!slideshowActive){document.getElementById('prevLink').onclick=function(){myLightbox.changeImage(activeImage-1);return false;}}else{document.getElementById('prevLink').onclick=function(){myLightbox.stopSlideshow();myLightbox.changeImage(activeImage-1);return false;}}}
if(activeImage!=(imageArray.length-1)){$('nextLink').show();if(!slideshowActive){document.getElementById('nextLink').onclick=function(){myLightbox.changeImage(activeImage+1);return false;}}else{document.getElementById('nextLink').onclick=function(){myLightbox.stopSlideshow();myLightbox.changeImage(activeImage+1);return false;}}}
this.enableKeyboardNav();},updatePresentationNav:function(){var content='';for(var i=1;i<=(imageArray.length);i++){if((i-1)==activeImage){if(!slideshowActive){content+='<a class="act" href="#" id="pmi'+i+'" onClick="myLightbox.changeImage('+(i-1)+'); return false;">'+i+'</a> ';}else{content+='<a class="act" href="#" id="pmi'+i+'" onClick="myLightbox.stopSlideshow(); myLightbox.changeImage('+(i-1)+'); return false;">'+i+'</a> ';}}else{if(!slideshowActive){content+='<a class="no" href="#" id="pmi'+i+'" onClick="myLightbox.changeImage('+(i-1)+'); return false;">'+i+'</a> ';}else{content+='<a class="no" href="#" id="pmi'+i+'" onClick="myLightbox.stopSlideshow(); myLightbox.changeImage('+(i-1)+'); return false;">'+i+'</a> ';}}}
$('lbPresent').show();Element.setInnerHTML('lbPresent',content);},startSlideshow:function(){if(activeImage!=(imageArray.length-1)){slideshowActive=true;myLightbox.changeImage(activeImage+1);}else{if(slideshowAutoclose){myLightbox.end();}else{slideshowActive=true;myLightbox.changeImage(0);}}},stopSlideshow:function(){if(!slideshowActive){return false;}
slideshowActive=false;for(var i=0;i<slideshowIDCount;i++){window.clearTimeout(slideshowIDArray[i]);}
$('pauseLink').hide();$('playLink').show();},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();if(slideshowActive){myLightbox.stopSlideshow();}
myLightbox.changeImage(activeImage-1);}}else if((key=='n')||(keycode==39)){if(activeImage!=(imageArray.length-1)){myLightbox.disableKeyboardNav();if(slideshowActive){myLightbox.stopSlideshow();}
myLightbox.changeImage(activeImage+1);}}else if((key=='s')||(keycode==83)){if(slideshowActive){myLightbox.stopSlideshow();}else{myLightbox.startSlideshow();}}},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();$('lbImageDataContainer').hide();$('lbLightbox').hide();new Effect.Fade('overlay',{duration:overlayDuration});showSelectBoxes();showFlash();if(slideshowActive){for(var i=0;i<slideshowIDCount;i++){window.clearTimeout(slideshowIDArray[i]);}
slideshowActive=false;}}}
function getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
arrayPageScroll=new Array(xScroll,yScroll)
return arrayPageScroll;}
function getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;}
windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight)
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 selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="visible";}}
function hideSelectBoxes(){var selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="hidden";}}
function showFlash(){var flashObjects=document.getElementsByTagName("object");for(i=0;i<flashObjects.length;i++){flashObjects[i].style.visibility="visible";}
var flashEmbeds=document.getElementsByTagName("embed");for(i=0;i<flashEmbeds.length;i++){flashEmbeds[i].style.visibility="visible";}}
function hideFlash(){var flashObjects=document.getElementsByTagName("object");for(i=0;i<flashObjects.length;i++){flashObjects[i].style.visibility="hidden";}
var flashEmbeds=document.getElementsByTagName("embed");for(i=0;i<flashEmbeds.length;i++){flashEmbeds[i].style.visibility="hidden";}}
function pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
while(curDate-date<ms);}
function initLightbox(){myLightbox=new Lightbox();}
addEvent(window,'DOMContentLoaded',initLightbox);