/*
	Slimbox v2.04 - The ultimate lightweight Lightbox clone for jQuery
	(c) 2007-2010 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
*/
(function(w){
	var E=w(window),u,f,F=-1,n,x,D,v,y,L,r,m=!window.XMLHttpRequest,s=[],l=document.documentElement,k={},t=new Image(),J=new Image(),H,a,g,p,I,d,G,c,A,K;w(function(){
		w("body").append(w([H=w('<div id="lbOverlay" />')[0],
		a=w('<div id="lbCenter" />')[0],
		G=w('<div id="lbBottomContainer" />')[0]]).css("display","none"));
		g=w('<div id="lbImage" />').appendTo(a).append(p=w('<div style="position: relative;" />').append([I=w('<a id="lbPrevLink" href="#" />').click(B)[0],
		d=w('<a id="lbNextLink" href="#" />').click(e)[0]])[0])[0];
		c=w('<div id="lbBottom" />').appendTo(G).append([w('<a id="lbCloseLink" href="#" />').add(H).click(C)[0],
		A=w('<div id="lbCaption" />')[0],
		K=w('<div id="lbNumber" />')[0],
		w('<div style="clear: both;" />')[0]])[0]
	});
		w.slimbox=function(O,N,M){
			u=w.extend({
				loop:false,
				overlayOpacity:0.8,
				overlayFadeDuration:400,
				resizeDuration:400,
				resizeEasing:"swing",
				initialWidth:250,
				initialHeight:250,
				imageFadeDuration:400,
				captionAnimationDuration:400,
				counterText:"Image {x} of {y}",
				closeKeys:[27,88,67],
				previousKeys:[37,80],
				nextKeys:[39,78]},M);
			if(typeof O=="string"){O=[[O,N]];N=0}
			y=E.scrollTop()+(E.height()/2);
			L=u.initialWidth;
			r=u.initialHeight;
			w(a).css({
				top:Math.max(0,y-(r/2)),
				width:L,
				height:r,
				marginLeft:-L/2
			}).show();
			v=m||(H.currentStyle&&(H.currentStyle.position!="fixed"));
			if(v){H.style.position="absolute"}
			w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);
			z();
			j(1);
			f=O;
			u.loop=u.loop&&(f.length>1);
			return b(N)
		};
		w.fn.slimbox=function(M,P,O){
			P=P||function(Q){
				return[Q.href,Q.title]
			};
			O=O||function(){
				return true
			};
			var N=this;
			return N.unbind("click").click(function(){
				var S=this,U=0,T,Q=0,R;
				T=w.grep(N,function(W,V){
					return O.call(S,W,V)
				});
				for(R=T.length;Q<R;++Q){
					if(T[Q]==S){U=Q}T[Q]=P(T[Q],Q)}
					return w.slimbox(T,U,M)
			})};
			function z(){
				var N=E.scrollLeft(),
				M=E.width();
				w([a,G]).css("left",N+(M/2));
				if(v){w(H).css({left:N,top:E.scrollTop(),width:M,height:E.height()})}
			}
			function j(M){
				if(M){w("object").add(m?"select":"embed").each(function(O,P){s[O]=[P,P.style.visibility];P.style.visibility="hidden"})}
				else{w.each(s,function(O,P){P[0].style.visibility=P[1]});s=[]}
				var N=M?"bind":"unbind";
				E[N]("scroll resize",z);
				w(document)[N]("keydown",o)
			}
			function o(O){
				var N=O.keyCode,M=w.inArray;
				return(M(N,u.closeKeys)>=0)?C():(M(N,u.nextKeys)>=0)?e():(M(N,u.previousKeys)>=0)?B():false
			}
			function B(){
				return b(x)
			}
			function e(){
				return b(D)
			}
			function b(M){
				if(M>=0){
					F=M;
					n=f[F][0];
					x=(F||(u.loop?f.length:0))-1;
					D=((F+1)%f.length)||(u.loop?0:-1);
					q();
					a.className="lbLoading";
					k=new Image();
					k.onload=i;
					k.src=n
				}
				return false
			}
			function i(){
				a.className="";
				w(g).css({
					backgroundImage:"url("+n+")",
					visibility:"hidden",
					display:""
				});
				w(p).width(k.width);
				w([p,I,d]).height(k.height);
				w(A).html(f[F][1]||"");
				w(K).html((((f.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,f.length));
				if(x>=0){t.src=f[x][0]}
				if(D>=0){J.src=f[D][0]}
				L=g.offsetWidth;
				r=g.offsetHeight;
				var M=Math.max(0,y-(r/2));
				if(a.offsetHeight!=r){w(a).animate({height:r,top:M},u.resizeDuration,u.resizeEasing)}
				if(a.offsetWidth!=L){w(a).animate({width:L,marginLeft:-L/2},u.resizeDuration,u.resizeEasing)}
				w(a).queue(
					function(){
						w(G).css({width:L,top:M+r,marginLeft:-L/2,visibility:"hidden",display:""});
						w(g).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,h)
					}
				)
			}
			function h(){
				if(x>=0){w(I).show()}
				if(D>=0){w(d).show()}
				w(c).css("marginTop",-c.offsetHeight).animate({marginTop:0},u.captionAnimationDuration);
				G.style.visibility=""
			}
			function q(){
				k.onload=null;
				k.src=t.src=J.src=n;
				w([a,g,c]).stop(true);
				w([I,d,g,G]).hide()
			}
			function C(){
				if(F>=0){q();F=x=D=-1;w(a).hide();w(H).stop().fadeOut(u.overlayFadeDuration,j)}return false}
})
(jQuery);

// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) {
	jQuery(function($) {
		$("a[rel^='lightbox']").slimbox({
									loop: true, //default is false
									}, null, function(el) {
			return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
		});
	});
}
