var Lightbox={init:function(_1){
this.options=$extend({resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,animateCaption:true,showCounter:true},_1||{});
this.anchors=[];
$each(document.links,function(el){
if(el.rel&&el.rel.test(/^lightbox/i)){
el.onclick=this.click.pass(el,this);
this.anchors.push(el);
}
},this);
this.eventKeyDown=this.keyboardListener.bindAsEventListener(this);
this.eventPosition=this.position.bind(this);
this.overlay=new Element("div",{"id":"lbOverlay"}).injectInside(document.body);
this.center=new Element("div",{"id":"lbCenter","styles":{"width":this.options.initialWidth,"height":this.options.initialHeight,"marginLeft":-(this.options.initialWidth/2),"display":"none"}}).injectInside(document.body);
this.image=new Element("div",{"id":"lbImage"}).injectInside(this.center);
this.prevLink=new Element("a",{"id":"lbPrevLink","href":"#","styles":{"display":"none"}}).injectInside(this.image);
this.nextLink=this.prevLink.clone().setProperty("id","lbNextLink").injectInside(this.image);
this.prevLink.onclick=this.previous.bind(this);
this.nextLink.onclick=this.next.bind(this);
this.bottomContainer=new Element("div",{"id":"lbBottomContainer","styles":{"display":"none"}}).injectInside(document.body);
this.bottom=new Element("div",{"id":"lbBottom"}).injectInside(this.bottomContainer);
new Element("a",{"id":"lbCloseLink","href":"#"}).injectInside(this.bottom).onclick=this.overlay.onclick=this.close.bind(this);
this.caption=new Element("div",{"id":"lbCaption"}).injectInside(this.bottom);
this.number=new Element("div",{"id":"lbNumber"}).injectInside(this.bottom);
new Element("div",{"styles":{"clear":"both"}}).injectInside(this.bottom);
var _3=this.nextEffect.bind(this);
this.fx={overlay:this.overlay.effect("opacity",{duration:500}).hide(),resize:this.center.effects($extend({duration:this.options.resizeDuration,onComplete:_3},this.options.resizeTransition?{transition:this.options.resizeTransition}:{})),image:this.image.effect("opacity",{duration:500,onComplete:_3}),bottom:this.bottom.effect("margin-top",{duration:400,onComplete:_3})};
this.preloadPrev=new Image();
this.preloadNext=new Image();
},click:function(_4){
if(_4.rel.length==8){
return this.show(_4.href,_4.title);
}
var j,_6,_7=[];
this.anchors.each(function(el){
if(el.rel==_4.rel){
for(j=0;j<_7.length;j++){
if(_7[j][0]==el.href){
break;
}
}
if(j==_7.length){
_7.push([el.href,el.title]);
if(el.href==_4.href){
_6=j;
}
}
}
},this);
return this.open(_7,_6);
},show:function(_9,_a){
return this.open([[_9,_a]],0);
},open:function(_b,_c){
this.images=_b;
this.position();
this.setup(true);
this.top=window.getScrollTop()+(window.getHeight()/15);
this.center.setStyles({top:this.top,display:""});
this.fx.overlay.start(0.8);
return this.changeImage(_c);
},position:function(){
this.overlay.setStyles({"top":window.getScrollTop(),"height":window.getHeight()});
},setup:function(_d){
var _e=$A(document.getElementsByTagName("object"));
_e.extend(document.getElementsByTagName(window.ie?"select":"embed"));
if(window.ie){
_e.extend(document.getElementsByTagName("iframe"));
}
_e.each(function(el){
if(_d){
el.lbBackupStyle=el.style.visibility;
}
el.style.visibility=_d?"hidden":el.lbBackupStyle;
});
var fn=_d?"addEvent":"removeEvent";
window[fn]("scroll",this.eventPosition)[fn]("resize",this.eventPosition);
document[fn]("keydown",this.eventKeyDown);
this.step=0;
},keyboardListener:function(_11){
switch(_11.keyCode){
case 27:
case 88:
case 67:
this.close();
break;
case 37:
case 80:
this.previous();
break;
case 39:
case 78:
this.next();
}
},previous:function(){
return this.changeImage(this.activeImage-1);
},next:function(){
return this.changeImage(this.activeImage+1);
},changeImage:function(_12){
if(this.step||(_12<0)||(_12>=this.images.length)){
return false;
}
this.step=1;
this.activeImage=_12;
this.bottomContainer.style.display=this.prevLink.style.display=this.nextLink.style.display="none";
this.fx.image.hide();
this.center.className="lbLoading";
this.preload=new Image();
this.preload.onload=this.nextEffect.bind(this);
this.preload.src=this.images[_12][0];
return false;
},nextEffect:function(){
switch(this.step++){
case 1:
this.center.className="";
this.image.style.backgroundImage="url("+this.images[this.activeImage][0]+")";
this.image.style.width=this.bottom.style.width=this.preload.width+"px";
this.image.style.height=this.prevLink.style.height=this.nextLink.style.height=this.preload.height+"px";
this.caption.setHTML(this.images[this.activeImage][1]||"");
this.number.setHTML((!this.options.showCounter||(this.images.length==1))?"":"Image "+(this.activeImage+1)+" of "+this.images.length);
if(this.activeImage){
this.preloadPrev.src=this.images[this.activeImage-1][0];
}
if(this.activeImage!=(this.images.length-1)){
this.preloadNext.src=this.images[this.activeImage+1][0];
}
if(this.center.clientHeight!=this.image.offsetHeight){
this.fx.resize.start({height:this.image.offsetHeight});
break;
}
this.step++;
case 2:
if(this.center.clientWidth!=this.image.offsetWidth){
this.fx.resize.start({width:this.image.offsetWidth,marginLeft:-this.image.offsetWidth/2});
break;
}
this.step++;
case 3:
this.bottomContainer.setStyles({top:this.top+this.center.clientHeight,height:0,marginLeft:this.center.style.marginLeft,display:""});
this.fx.image.start(1);
break;
case 4:
if(this.options.animateCaption){
this.fx.bottom.set(-this.bottom.offsetHeight);
this.bottomContainer.style.height="";
this.fx.bottom.start(0);
break;
}
this.bottomContainer.style.height="";
case 5:
if(this.activeImage){
this.prevLink.style.display="";
}
if(this.activeImage!=(this.images.length-1)){
this.nextLink.style.display="";
}
this.step=0;
}
},close:function(){
if(this.step<0){
return;
}
this.step=-1;
if(this.preload){
this.preload.onload=Class.empty;
this.preload=null;
}
for(var f in this.fx){
this.fx[f].stop();
}
this.center.style.display=this.bottomContainer.style.display="none";
this.fx.overlay.chain(this.setup.pass(false,this)).start(0);
return false;
}};
window.addEvent("domready",Lightbox.init.bind(Lightbox));

