/*
	Slimbox v1.64 - The ultimate lightweight Lightbox clone
	(c) 2007-2008 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
*/
var Slimbox;(
	function()
	{
		var G=0,F,L,B,S,T,O,E,M,J=new Image(),K=new Image(),X,a,P,H,W,Z,I,Y,C;
		window.addEvent("domready",function()
		{
			$(document.body).adopt($$([X=new Element("div",{id:"lbOverlay"}).addEvent("click",N),a=new Element("div",{id:"lbCenter"}),Z=new Element("div",{id:"lbBottomContainer"})]).setStyle("display","none"));
			P=new Element("div",{id:"lbImage"}).injectInside(a).adopt(H=new Element("a",{id:"lbPrevLink",href:"#"}).addEvent("click",D),W=new Element("a",{id:"lbNextLink",href:"#"}).addEvent("click",R));
			I=new Element("div",{id:"lbBottom"}).injectInside(Z).adopt(new Element("a",{id:"lbCloseLink",href:"#"}).addEvent("click",N),Y=new Element("div",{id:"lbCaption"}),C=new Element("div",{id:"lbNumber"}),new Element("div",{styles:{clear:"both"}}));
			E={overlay:new Fx.Tween(X,{property:"opacity",duration:500}).set(0),image:new Fx.Tween(P,{property:"opacity",duration:500,onComplete:A}),bottom:new Fx.Tween(I,{property:"margin-top",duration:400})}
		});
		Slimbox={open:function(e,d,c){F=$extend({loop:false,overlayOpacity:0.8,resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,animateCaption:true,showCounter:true,counterText:"Image {x} of {y}"},c||{});
		if(typeof e=="string")
		{
			e=[[e,d]];
			d=0
		}
		L=e;
		F.loop=F.loop&&(L.length>1);
		b();
		Q(true);
		O=window.getScrollTop()+(window.getHeight()/15);
		E.resize=new Fx.Morph(a,$extend({duration:F.resizeDuration,onComplete:A},F.resizeTransition?{transition:F.resizeTransition}:{}));
		a.setStyles({top:O,width:F.initialWidth,height:F.initialHeight,marginLeft:-(F.initialWidth/2),display:""});
		E.overlay.start(F.overlayOpacity);G=1;return U(d)}};
		Element.implement({slimbox:function(c,d){$$(this).slimbox(c,d);return this}});
		Elements.implement({slimbox:function(c,f,e){f=f||function(g){return[g.href,g.title]};
			e=e||function(){return true};
			var d=this;
			d.removeEvents("click").addEvent("click",function(){
				var g=d.filter(e,this);
				return Slimbox.open(g.map(f),g.indexOf(this),c)
			});
			return d
		}});
		function b(){
			X.setStyles({top:window.getScrollTop(),height:window.getHeight()})}
		function Q(c){
			["object",window.ie?"select":"embed"].forEach(function(e){
				Array.forEach(document.getElementsByTagName(e),function(f){
					if(c){f._slimbox=f.style.visibility}
						f.style.visibility=c?"hidden":f._slimbox
				})
			});
			X.style.display=c?"":"none";var d=c?"addEvent":"removeEvent";
			window[d]("scroll",b)[d]("resize",b);document[d]("keydown",V)}function V(c){
				switch(c.code){
				case 27:case 88:case 67:
					N();
					break;
				case 37:case 80:
					D();
					break;
				case 39:case 78:
					R()
				}
				return false
			}
			function D(){
				return U(S)
			}
			function R(){
				return U(T)
			}
			function U(c){
				if((G==1)&&(c>=0))
				{
					G=2;
					B=c;
					S=((B||!F.loop)?B:L.length)-1;T=B+1;
					if(T==L.length)
						{T=F.loop?0:-1}
					$$(H,W,P,Z).setStyle("display","none");
					E.bottom.cancel().set(0);
					E.image.set(0);
					a.className="lbLoading";
					M=new Image();
					M.onload=A;
					M.src=L[c][0]
				}
				return false
			}
			function A(){
				switch(G++){
					case 2:
						a.className="";P.setStyles({backgroundImage:"url("+L[B][0]+")",display:""});
						$$(P,I).setStyle("width",M.width);
						$$(P,H,W).setStyle("height",M.height);
						Y.set("html",L[B][1]||"");
						C.set("html",(F.showCounter&&(L.length>1))?F.counterText.replace(/{x}/,B+1).replace(/{y}/,L.length):"");
						if(S>=0)
						{
							J.src=L[S][0]
						}
						if(T>=0)
							{K.src=L[T][0]}
						if(a.clientHeight!=P.offsetHeight)
						{
							E.resize.start({height:P.offsetHeight});
							break
						}
						G++;
					case 3:
						if(a.clientWidth!=P.offsetWidth)
						{
							E.resize.start({width:P.offsetWidth,marginLeft:-P.offsetWidth/2});
							break
						}
						G++;
					case 4:
						Z.setStyles({top:O+a.clientHeight,marginLeft:a.style.marginLeft,visibility:"hidden",display:""});
						E.image.start(1);
						break;
					case 5:
						if(S>=0){H.style.display=""}
						if(T>=0){W.style.display=""}
						if(F.animateCaption){E.bottom.set(-I.offsetHeight).start(0)}
						Z.style.visibility="";
						G=1
				}
			}
			function N(){
				if(G)
				{
					G=0;
					M.onload=$empty;
					for(var c in E)
					{
						E[c].cancel()
					}
					$$(a,Z).setStyle("display","none");
					E.overlay.chain(Q).start(0)
				}
				return false
			}
	})();

// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
Slimbox.scanPage = function() {
	var links = $$("a").filter(function(el) {
		return el.rel && el.rel.test(/^lightbox/i);
	});
	$$(links).slimbox({loop: true}, null, function(el) {
		return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
	});
};
window.addEvent("domready", Slimbox.scanPage);

