var Lightbox={activeImage:null,badObjects:["select","object","embed"],container:null,enableSlideshow:null,groupName:null,imageArray:[],options:null,overlayDuration:null,overlayOpacity:null,playSlides:null,refTags:["a","area"],relAttribute:null,resizeDuration:null,slideShowTimer:null,startImage:null,initialize:function(e){if(!document.getElementsByTagName){return}this.options=$H({animate:true,autoPlay:true,borderSize:10,containerID:document,enableSlideshow:true,googleAnalytics:false,imageDataLocation:"south",initImage:"",loop:true,overlayDuration:0.2,overlayOpacity:0.8,prefix:"",relAttribute:"lightbox",resizeSpeed:7,showGroupName:false,slideTime:4,strings:{closeLink:"close",loadingMsg:"loading",nextLink:"next &raquo;",prevLink:"&laquo; prev",startSlideshow:"start slideshow",stopSlideshow:"stop slideshow",numDisplayPrefix:"Image",numDisplaySeparator:"of"}}).merge(e);if(this.options.get("animate")){this.overlayDuration=Math.max(this.options.get("overlayDuration"),0);this.options.set("resizeSpeed",Math.max(Math.min(this.options.get("resizeSpeed"),10),1));this.resizeDuration=(11-this.options.get("resizeSpeed"))*0.15}else{this.overlayDuration=0;this.resizeDuration=0}this.enableSlideshow=this.options.get("enableSlideshow");this.overlayOpacity=Math.max(Math.min(this.options.get("overlayOpacity"),1),0);this.playSlides=this.options.get("autoPlay");this.container=$(this.options.get("containerID"));this.relAttribute=this.options.get("relAttribute");this.updateImageList();var v=this.container!=document?this.container:document.getElementsByTagName("body").item(0);var j=document.createElement("div");j.setAttribute("id",this.getID("overlay"));j.style.display="none";v.appendChild(j);Event.observe(j,"click",this.end.bindAsEventListener(this));var n=document.createElement("div");n.setAttribute("id",this.getID("lightbox"));n.style.display="none";v.appendChild(n);var h=document.createElement("div");h.setAttribute("id",this.getID("imageDataContainer"));h.className=this.getID("clearfix");var g=document.createElement("div");g.setAttribute("id",this.getID("imageData"));h.appendChild(g);var q=document.createElement("div");q.setAttribute("id",this.getID("imageDetails"));g.appendChild(q);var k=document.createElement("span");k.setAttribute("id",this.getID("caption"));q.appendChild(k);var d=document.createElement("span");d.setAttribute("id",this.getID("numberDisplay"));q.appendChild(d);var t=document.createElement("span");t.setAttribute("id",this.getID("detailsNav"));q.appendChild(t);var r=document.createElement("a");r.setAttribute("id",this.getID("prevLinkDetails"));r.setAttribute("href","javascript:void(0);");r.innerHTML=this.options.get("strings").prevLink;t.appendChild(r);Event.observe(r,"click",this.showPrev.bindAsEventListener(this));var f=document.createElement("a");f.setAttribute("id",this.getID("nextLinkDetails"));f.setAttribute("href","javascript:void(0);");f.innerHTML=this.options.get("strings").nextLink;t.appendChild(f);Event.observe(f,"click",this.showNext.bindAsEventListener(this));var b=document.createElement("a");b.setAttribute("id",this.getID("slideShowControl"));b.setAttribute("href","javascript:void(0);");t.appendChild(b);Event.observe(b,"click",this.toggleSlideShow.bindAsEventListener(this));var w=document.createElement("div");w.setAttribute("id",this.getID("close"));g.appendChild(w);var i=document.createElement("a");i.setAttribute("id",this.getID("closeLink"));i.setAttribute("href","javascript:void(0);");i.innerHTML=this.options.get("strings").closeLink;w.appendChild(i);Event.observe(i,"click",this.end.bindAsEventListener(this));if(this.options.get("imageDataLocation")=="north"){n.appendChild(h)}var u=document.createElement("div");u.setAttribute("id",this.getID("outerImageContainer"));n.appendChild(u);var m=document.createElement("div");m.setAttribute("id",this.getID("imageContainer"));u.appendChild(m);var l=document.createElement("img");l.setAttribute("id",this.getID("lightboxImage"));m.appendChild(l);var p=document.createElement("div");p.setAttribute("id",this.getID("hoverNav"));m.appendChild(p);var c=document.createElement("a");c.setAttribute("id",this.getID("prevLinkImg"));c.setAttribute("href","javascript:void(0);");p.appendChild(c);Event.observe(c,"click",this.showPrev.bindAsEventListener(this));var o=document.createElement("a");o.setAttribute("id",this.getID("nextLinkImg"));o.setAttribute("href","javascript:void(0);");p.appendChild(o);Event.observe(o,"click",this.showNext.bindAsEventListener(this));var s=document.createElement("div");s.setAttribute("id",this.getID("loading"));m.appendChild(s);var a=document.createElement("a");a.setAttribute("id",this.getID("loadingLink"));a.setAttribute("href","javascript:void(0);");a.innerHTML=this.options.get("strings").loadingMsg;s.appendChild(a);Event.observe(a,"click",this.end.bindAsEventListener(this));if(this.options.get("imageDataLocation")!="north"){n.appendChild(h)}if(this.options.get("initImage")!=""){this.start($(this.options.get("initImage")))}},updateImageList:function(){var e,d,a;for(var c=0;c<this.refTags.length;c++){d=this.container.getElementsByTagName(this.refTags[c]);for(var b=0;b<d.length;b++){e=d[b];a=String(e.getAttribute("rel"));if(e.getAttribute("href")&&(a.toLowerCase().match(this.relAttribute))){e.onclick=function(){Lightbox.start(this);return false}}}}},start:function(c){this.hideBadObjects();var h=this.getPageSize();$(this.getID("overlay")).setStyle({height:h.pageHeight+"px"});new Effect.Appear(this.getID("overlay"),{duration:this.overlayDuration,from:0,to:this.overlayOpacity});this.imageArray=[];this.groupName=null;var j=c.getAttribute("rel");var d="";if(j==this.relAttribute){d=c.getAttribute("title")?c.getAttribute("title"):"";this.imageArray.push({link:c.getAttribute("href"),title:d});this.startImage=0}else{var e=this.container.getElementsByTagName(c.tagName);for(var f=0;f<e.length;f++){var a=e[f];if(a.getAttribute("href")&&(a.getAttribute("rel")==j)){d=a.getAttribute("title")?a.getAttribute("title"):"";this.imageArray.push({link:a.getAttribute("href"),title:d});if(a==c){this.startImage=this.imageArray.length-1}}}this.groupName=j.substring(this.relAttribute.length+1,j.length-1)}var b=this.getPageScroll();var g=b.y+(h.winHeight/15);$(this.getID("lightbox")).setStyle({top:g+"px"}).show();this.changeImage(this.startImage)},changeImage:function(b){this.activeImage=b;this.disableKeyboardNav();this.pauseSlideShow();$(this.getID("loading")).show();$(this.getID("lightboxImage")).hide();$(this.getID("hoverNav")).hide();$(this.getID("imageDataContainer")).hide();$(this.getID("numberDisplay")).hide();$(this.getID("detailsNav")).hide();var a=new Image();a.onload=function(){$(Lightbox.getID("lightboxImage")).src=a.src;Lightbox.resizeImageContainer(a.width,a.height)};a.src=this.imageArray[this.activeImage].link;if(this.options.get("googleAnalytics")){urchinTracker(this.imageArray[this.activeImage].link)}},resizeImageContainer:function(c,a){var f=$(this.getID("outerImageContainer")).getDimensions();var g=((c+(this.options.get("borderSize")*2))/f.width)*100;var e=((a+(this.options.get("borderSize")*2))/f.height)*100;var d=(f.width-this.options.get("borderSize")*2)-c;var b=(f.height-this.options.get("borderSize")*2)-a;if(!(b==0)){new Effect.Scale(this.getID("outerImageContainer"),e,{scaleX:false,duration:this.resizeDuration,queue:"front"})}if(!(d==0)){new Effect.Scale(this.getID("outerImageContainer"),g,{scaleY:false,delay:this.resizeDuration,duration:this.resizeDuration})}if((b==0)&&(d==0)){if(navigator.appVersion.indexOf("MSIE")!=-1){this.pause(250)}else{this.pause(100)}}$(this.getID("prevLinkImg")).setStyle({height:a+"px"});$(this.getID("nextLinkImg")).setStyle({height:a+"px"});$(this.getID("imageDataContainer")).setStyle({width:(c+(this.options.get("borderSize")*2))+"px"});this.showImage()},showImage:function(){$(this.getID("loading")).hide();new Effect.Appear(this.getID("lightboxImage"),{duration:0.5,queue:"end",afterFinish:function(){Lightbox.updateDetails()}});this.preloadNeighborImages()},updateDetails:function(){$(this.getID("caption")).show();$(this.getID("caption")).update(this.imageArray[this.activeImage].title);if(this.imageArray.length>1){var num_display=this.options.get("strings").numDisplayPrefix+" "+eval(this.activeImage+1)+" "+this.options.get("strings").numDisplaySeparator+" "+this.imageArray.length;if(this.options.get("showGroupName")&&this.groupName!=""){num_display+=" "+this.options.get("strings").numDisplaySeparator+" "+this.groupName}$(this.getID("numberDisplay")).update(num_display).show();if(!this.enableSlideshow){$(this.getID("slideShowControl")).hide()}$(this.getID("detailsNav")).show()}new Effect.Parallel([new Effect.SlideDown(this.getID("imageDataContainer"),{sync:true}),new Effect.Appear(this.getID("imageDataContainer"),{sync:true})],{duration:0.65,afterFinish:function(){Lightbox.updateNav()}})},updateNav:function(){if(this.imageArray.length>1){$(this.getID("hoverNav")).show();if(this.enableSlideshow){if(this.playSlides){this.startSlideShow()}else{this.stopSlideShow()}}}this.enableKeyboardNav()},startSlideShow:function(){this.playSlides=true;this.slideShowTimer=new PeriodicalExecuter(function(a){Lightbox.showNext();a.stop()},this.options.get("slideTime"));$(this.getID("slideShowControl")).update(this.options.get("strings").stopSlideshow)},stopSlideShow:function(){this.playSlides=false;if(this.slideShowTimer){this.slideShowTimer.stop()}$(this.getID("slideShowControl")).update(this.options.get("strings").startSlideshow)},toggleSlideShow:function(){if(this.playSlides){this.stopSlideShow()}else{this.startSlideShow()}},pauseSlideShow:function(){if(this.slideShowTimer){this.slideShowTimer.stop()}},showNext:function(){if(this.imageArray.length>1){if(!this.options.get("loop")&&((this.activeImage==this.imageArray.length-1&&this.startImage==0)||(this.activeImage+1==this.startImage))){return this.end()}if(this.activeImage==this.imageArray.length-1){this.changeImage(0)}else{this.changeImage(this.activeImage+1)}}},showPrev:function(){if(this.imageArray.length>1){if(this.activeImage==0){this.changeImage(this.imageArray.length-1)}else{this.changeImage(this.activeImage-1)}}},showFirst:function(){if(this.imageArray.length>1){this.changeImage(0)}},showLast:function(){if(this.imageArray.length>1){this.changeImage(this.imageArray.length-1)}},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"){Lightbox.end()}else{if(key=="p"||key=="%"){Lightbox.showPrev()}else{if(key=="n"||key=="'"){Lightbox.showNext()}else{if(key=="f"){Lightbox.showFirst()}else{if(key=="l"){Lightbox.showLast()}else{if(key=="s"){if(Lightbox.imageArray.length>0&&Lightbox.options.enableSlideshow){Lightbox.toggleSlideShow()}}}}}}}},preloadNeighborImages:function(){var b=this.imageArray.length-1==this.activeImage?0:this.activeImage+1;nextImage=new Image();nextImage.src=this.imageArray[b].link;var a=this.activeImage==0?this.imageArray.length-1:this.activeImage-1;prevImage=new Image();prevImage.src=this.imageArray[a].link},end:function(){this.disableKeyboardNav();this.pauseSlideShow();$(this.getID("lightbox")).hide();new Effect.Fade(this.getID("overlay"),{duration:this.overlayDuration});this.showBadObjects()},showBadObjects:function(){var d;var b=Lightbox.badObjects;for(var c=0;c<b.length;c++){d=document.getElementsByTagName(b[c]);for(var a=0;a<d.length;a++){$(d[a]).setStyle({visibility:"visible"})}}},hideBadObjects:function(){var d;var b=Lightbox.badObjects;for(var c=0;c<b.length;c++){d=document.getElementsByTagName(b[c]);for(var a=0;a<d.length;a++){$(d[a]).setStyle({visibility:"hidden"})}}},pause:function(b){var a=new Date();var c=a.getTime()+b;while(true){a=new Date();if(a.getTime()>c){return}}},getPageScroll:function(){var a,b;if(self.pageYOffset){a=self.pageXOffset;b=self.pageYOffset}else{if(document.documentElement&&document.documentElement.scrollTop){a=document.documentElement.scrollLeft;b=document.documentElement.scrollTop}else{if(document.body){a=document.body.scrollLeft;b=document.body.scrollTop}}}return{x:a,y:b}},getPageSize:function(){var f,e,b,a,d,c;if(window.innerHeight&&window.scrollMaxY){f=document.body.scrollWidth;e=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){f=document.body.scrollWidth;e=document.body.scrollHeight}else{f=document.body.offsetWidth;e=document.body.offsetHeight}}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}}}c=(e<a)?a:e;d=(f<b)?b:f;return{pageWidth:d,pageHeight:c,winWidth:b,winHeight:a}},getID:function(a){return this.options.get("prefix")+a}};Event.observe(window,"load",function(){Lightbox.initialize()});
