/*
	Slimbox v1.71 - The ultimate lightweight Lightbox clone
	(c) 2007-2009 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
*/
var Slimbox=(function(){
	var F=window,n=Browser.Engine.trident4,u,g,G=-1,o,w,E,v,y,M,s,m={},t=new Image(),K=new Image(),I,a,h,q,J,e,H,c,A,L,x,i,d,C;
	F.addEvent("domready",function(){
		$(document.body).adopt($$(I=new Element("div",{id:"lbOverlay",events:{click:D}}),
								  a=new Element("div",{id:"lbCenter"}),
								  H=new Element("div",{id:"lbBottomContainer"})).setStyle("display","none"));
								  h=new Element("div",{id:"lbImage"}).injectInside(a).adopt(
								  		q=new Element("div",{styles:{position:"relative"}}).adopt(
								  			J=new Element("a",{id:"lbPrevLink",href:"#",events:{click:B}}),
								  			e=new Element("a",{id:"lbNextLink",href:"#",events:{click:f}})));
								  			c=new Element("div",{id:"lbBottom"}).injectInside(H).adopt(
								  				new Element("a",{id:"lbCloseLink",href:"#",events:{click:D}}),
								  				A=new Element("div",{id:"lbCaption"}),
								  				L=new Element("div",{id:"lbNumber"}),
								  				new Element("div",{styles:{clear:"both"}}))
		});
	
	function z(){
		var N=F.getScroll(),O=F.getSize();
		$$(a,H).setStyle("left",N.x+(O.x/2));
		if(v){
			I.setStyles({left:N.x,top:N.y,width:O.x,height:O.y})
		}
	}
	
	function l(N){
		["object",n?"select":"embed"].forEach(
			function(P){
				Array.forEach(
					document.getElementsByTagName(P),
					function(Q){
						if(N){
							Q._slimbox=Q.style.visibility
						}
						Q.style.visibility=N?"hidden":Q._slimbox
					}
				)
			}
		);
		I.style.display=N?"":"none";
		var O=N?"addEvent":"removeEvent";
		F[O]("scroll",z)[O]("resize",z);
		document[O]("keydown",p)
	}
	
	function p(O){
		var N=O.code;
		return u.closeKeys.contains(N)?D():u.nextKeys.contains(N)?f():u.previousKeys.contains(N)?B():false
	}
	
	function B(){return b(w)}
	function f(){return b(E)}
	function b(N){
		if(N>=0){
			G=N;
			o=g[N][0];
			w=(G||(u.loop?g.length:0))-1;
			E=((G+1)%g.length)||(u.loop?0:-1);
			r();
			a.className="lbLoading";
			m=new Image();
			m.onload=k;
			m.src=o
		}
		return false
	}
	function k(){
		a.className="";d.set(0);
		h.setStyles({backgroundImage:"url("+o+")",display:""});
		q.setStyle("width",m.width);
		$$(q,J,e).setStyle("height",m.height);
		A.set("html",g[G][1]||"");
		L.set("html",(((g.length>1)&&u.counterText)||"").replace(/{x}/,G+1).replace(/{y}/,g.length));
		if(w>=0){
			t.src=g[w][0]
		}
		if(E>=0){
			K.src=g[E][0]
		}
		M=h.offsetWidth;
		s=h.offsetHeight;
		var P=Math.max(0,y-(s/2)),N=0,O;
		if(a.offsetHeight!=s){
			N=i.start({height:s,top:P})
		}
		if(a.offsetWidth!=M){
			N=i.start({width:M,marginLeft:-M/2})
		}
		O=function(){
			H.setStyles({width:M,top:P+s,marginLeft:-M/2,visibility:"hidden",display:""});
			d.start(1)};
			if(N){
				i.chain(O)
			}
			else{
				O()
			}
		}
		function j(){
			if(w>=0){
				J.style.display=""
			}
			if(E>=0){
				e.style.display=""
			}
			C.set(-c.offsetHeight).start(0);
			H.style.visibility=""
		}
		function r(){
			m.onload=$empty;
			m.src=t.src=K.src=o;
			i.cancel();
			d.cancel();
			C.cancel();
			$$(J,e,h,H).setStyle("display","none")
		}
		function D(){
			if(G>=0){
				r();
				G=w=E=-1;
				a.style.display="none";
				x.cancel().chain(l).start(0)
			}
			return false
		}
		Element.implement(
			{
				slimbox:function(N,O){
					$$(this).slimbox(N,O);
					return this
				}
			}
		);
		Elements.implement(
			{
				slimbox:function(N,Q,P){
					Q=Q||function(R){return[R.href,R.title]};
					P=P||function(){return true};
					var O=this;
					O.removeEvents("click").addEvent("click",function(){
							var R=O.filter(P,this);
							return Slimbox.open(R.map(Q),R.indexOf(this),N)
					});
					return O
				}
			}
		);
		
		return{
			open:function(P,O,N){
				u=$extend(
					{
						loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},N||{}
					);
					x=new Fx.Tween(I,{property:"opacity",duration:u.overlayFadeDuration});
					i=new Fx.Morph(a,$extend({duration:u.resizeDuration,link:"chain"},u.resizeTransition?{transition:u.resizeTransition}:{}));
					d=new Fx.Tween(h,{property:"opacity",duration:u.imageFadeDuration,onComplete:j});
					C=new Fx.Tween(c,{property:"margin-top",duration:u.captionAnimationDuration});
					if(typeof P=="string") {
						P=[[P,O]];
						O=0
					}
					y=F.getScrollTop()+(F.getHeight()/2);
					M=u.initialWidth;
					s=u.initialHeight;
					a.setStyles({top:Math.max(0,y-(s/2)),width:M,height:s,marginLeft:-M/2,display:""});
					v=n||(I.currentStyle&&(I.currentStyle.position!="fixed"));
					if(v){I.style.position="absolute"}x.set(0).start(u.overlayOpacity);
					z();
					l(1);
					g=P;
					u.loop=u.loop&&(g.length>1);
					return b(O)
			}
		}})();

// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
Slimbox.scanPage = function() {
	$$("a").filter(function(el) {
		return el.rel && el.rel.test(/^lightbox/i);
	}).slimbox({/* Put custom options here */}, null, function(el) {
		return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
	});
};
if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) {
	window.addEvent("domready", Slimbox.scanPage);
}
