/*
	Slimbox v1.69 - 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,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).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 O=Math.max(0,y-(s/2)),N;
				//Fix 5.5.09: use setStyles rather than the transition as it was broken by GAM
				if(a.offsetHeight!=s){a.setStyles({height:s,top:O})}
				//if(a.offsetHeight!=s){i.start({height:s,top:O})}
				if(a.offsetWidth!=M){a.setStyles({width:M,marginLeft:-M/2})}
				//if(a.offsetWidth!=M){i.start({width:M,marginLeft:-M/2})}
				N=function(){
					H.setStyles({width:M,top:O+s,marginLeft:-M/2,visibility:"hidden",display:""});
					d.start(1)};
				if(i.check(N)){N()}}
			function j(){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();$$(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() {
	$$(document.links).filter(function(el) {
		return el.rel && el.rel.test(/^lightbox/i);
	}).slimbox({ }, null, function(el) {
		return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
	});
};
window.addEvent("domready", Slimbox.scanPage);
