//Lightbox, <http://www.circlesquare.biz>. Copyright (c) 2008, circlesquare solutions ltd. BSD Style License.

var Lightbox=new Class({Implements:[Events,Options],options:{duration:200,transition:"quad:in",loop:false,images:[]},initialize:function(_1,_2){this.setOptions(_2);this.lightbox=$(_1);this.opened=false;this.overlay=new Element("div").setStyles({"background-color":"#000000","opacity":0,"position":"absolute","top":0,"left":0,"width":"100%","height":"100%","z-index":1}).addEvent("click",function(e){new Event(e).stop();this.close();}.bind(this));this.container=new Element("div").addClass("lightbox").setStyles({"opacity":0,"position":"absolute","top":0,"left":0,"z-index":2});if(this.options.images.length>1){this.previous_button=new Element("div").addClass("previous").setStyles({"cursor":"pointer"}).addEvent("click",function(e){new Event(e).stop();this.swap(this.previous());}.bind(this)).inject(this.container);this.next_button=new Element("div").addClass("next").setStyles({"cursor":"pointer"}).addEvent("click",function(e){new Event(e).stop();this.swap(this.next());}.bind(this)).inject(this.container);}this.close_button=new Element("div").addClass("close").setStyles({"cursor":"pointer"}).addEvent("click",function(e){new Event(e).stop();this.close();}.bind(this)).inject(this.container);this.image=this.preload(this.lightbox.getProperty("href")).inject(this.container);this.lightbox.addEvent("click",function(e){new Event(e).stop();this.open();}.bind(this));window.addEvent("scroll",function(){if(this.opened){this.move();}}.bind(this)).addEvent("resize",function(){if(this.opened){this.move();}}.bind(this));this.buttons(this.index());},preload:function(_8,_9){_9=$merge({"onload":$empty,"onabort":$empty,"onerror":$empty},_9);var _a=new Image();var _b=$(_a)||new Element("img");["load","abort","error"].each(function(_c){var _d="on"+_c;var _e=_9[_d];delete _9[_d];_a[_d]=function(){if(!_a){return;}if(!_b.parentNode){_b.width=_a.width;_b.height=_a.height;}_a=_a.onload=_a.onabort=_a.onerror=null;_e.delay(1,_b,_b);_b.fireEvent(_c,_b,1);};});_a.src=_b.src=_8;if(_a&&_a.complete){_a.onload.delay(1);}return _b.setProperties(_9);},move:function(){this.overlay.setStyles({"top":window.getScroll().y,"left":window.getScroll().x});this.container.setStyles({"left":(($(document.body).getSize().x-this.image.getSize().x)>0)?(($(document.body).getSize().x-this.image.getSize().x)/2):0,"top":(($(document.body).getSize().y-this.image.getSize().y)>0)?(($(document.body).getSize().y-this.image.getSize().y)/2):0});},open:function(){this.overlay.inject(document.body);this.container.inject(document.body);this.move();this.opened=true;new Fx.Tween(this.overlay,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){new Fx.Tween(this.container,{wait:false,duration:this.options.duration,transition:this.options.transition}).start("opacity",1);}.bind(this)}).start("opacity",0.8);},close:function(){new Fx.Tween(this.container,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.container.dispose();new Fx.Tween(this.overlay,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.overlay.dispose();this.opened=false;}.bind(this)}).start("opacity",0);}.bind(this)}).start("opacity",0);},swap:function(_f){this.buttons(_f);new Fx.Tween(this.image,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){var _10=false;var _11=this.preload(this.options.images[_f].src);_11.onload=function(){if(!_10){_10=true;this.image.dispose();this.image=_11.setStyle("opacity",0).inject(this.container);this.move();new Fx.Tween(this.image,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.preload(this.options.images[this.next()].src);this.preload(this.options.images[this.previous()].src);}.bind(this)}).start("opacity",1);}}.bind(this);if(_11&&_11.complete){_11.onload.delay(1);}}.bind(this)}).start("opacity",0);},next:function(){var _12=this.index()+1;if(_12<0){_12=this.options.images.length-1;}if(_12>=this.options.images.length){_12=0;}return _12;},previous:function(){var _13=this.index()-1;if(_13<0){_13=this.options.images.length-1;}if(_13>=this.options.images.length){_13=0;}return _13;},index:function(){var src=this.image.getProperty("src");for(var i=0;i<this.options.images.length;i++){if(this.options.images[i].src==src){return i;}}},buttons:function(_16){if(!this.options.loop){if(_16==0){this.previous_button.setStyle("display","none");}else{this.previous_button.setStyle("display","");}if(_16==this.options.images.length-1){this.next_button.setStyle("display","none");}else{this.next_button.setStyle("display","");}}}});