//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":1001}).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":1002});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();if(pageTracker){pageTracker._trackEvent('Photo', 'View', this.lightbox.getProperty('href'));}this.open();}.bind(this));window.addEvent("scroll",function(){if(this.opened){this.move_scroll();}}.bind(this));this.buttons(this.index());},preload:function(_3,_4){_4=$merge({"onload":$empty,"onabort":$empty,"onerror":$empty},_4);var _5=new Image();var _6=$(_5)||new Element("img");["load","abort","error"].each(function(_7){var _8="on"+_7;var _9=_4[_8];delete _4[_8];_5[_8]=function(){if(!_5){return;}if(!_6.parentNode){_6.width=_5.width;_6.height=_5.height;}_5=_5.onload=_5.onabort=_5.onerror=null;_9.delay(1,_6,_6);_6.fireEvent(_7,_6,1);};});_5.src=_6.src=_3;if(_5&&_5.complete){_5.onload.delay(1);}return _6.setProperties(_4);},move:function(){this.move_scroll();this.container.setStyles({"left":(($(document.body).getSize().x-this.container.getSize().x)>0)?($(document.body).getScroll().x+(($(document.body).getSize().x-this.container.getSize().x)/2)):$(document.body).getScroll().x,"top":(($(document.body).getSize().y-this.container.getSize().y)>0)?($(document.body).getScroll().y+(($(document.body).getSize().y-this.container.getSize().y)/2)):$(document.body).getScroll().y});},move_scroll:function(){this.overlay.setStyles({"left":$(window).getScroll().x,"top":$(window).getScroll().y});},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(_a){this.buttons(_a);new Fx.Tween(this.image,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){var _b=false;var _c=this.preload(this.options.images[_a].src);_c.onload=function(){if(!_b){_b=true;this.image.dispose();this.image=_c.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(_c&&_c.complete){_c.onload.delay(1);}}.bind(this)}).start("opacity",0);},next:function(){var _d=this.index()+1;if(_d<0){_d=this.options.images.length-1;}if(_d>=this.options.images.length){_d=0;}return _d;},previous:function(){var _e=this.index()-1;if(_e<0){_e=this.options.images.length-1;}if(_e>=this.options.images.length){_e=0;}return _e;},index:function(){var _f=this.image.getProperty("src");for(var i=0;i<this.options.images.length;i++){if(this.options.images[i].src==_f){return i;}}},buttons:function(_10){if(this.options.images.length>1&&!this.options.loop){if(_10==0){this.previous_button.setStyle("display","none");}else{this.previous_button.setStyle("display","");}if(_10==this.options.images.length-1){this.next_button.setStyle("display","none");}else{this.next_button.setStyle("display","");}}}});
