/*
	Slimbox v2.03 - The ultimate lightweight Lightbox clone for jQuery
	(c) 2007-2009 Christophe Beyls <http://www.digitalia.be>
    http://www.digitalia.be/software/slimbox2
	MIT-style license.
*/
(function(w){
    var E=w(window),u,g,F=-1,o,x,D,v,y,L,s,n=!window.XMLHttpRequest,e=window.opera&&(document.compatMode=="CSS1Compat")&&(w.browser.version>=9.3),
    m=document.documentElement,
    l={},
    t=new Image(),
    J=new Image(),H,a,h,q,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"));
        h=w('<div id="lbImage" />').appendTo(a).append(q=w('<div style="position: relative;" />').append([
        I=w('<a id="lbPrevLink" href="#" />').click(B)[0],d=w('<a id="lbNextLink" href="#" />').click(f)[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?m.clientHeight:E.height())/2);
    L=u.initialWidth;
    s=u.initialHeight;
    w(a).css({top:Math.max(0,y-(s/2)),width:L,height:s,marginLeft:-L/2}).show();
    v=n||(H.currentStyle&&(H.currentStyle.position!="fixed"));
    if(v){H.style.position="absolute"}w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);
    z();
    k(1);
    g=O;
    u.loop=u.loop&&(g.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?m.clientWidth: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 k(M){w("object").add(n?"select":"embed").each(function(O,P){if(M){w.data(P,"slimbox",P.style.visibility)}P.style.visibility=M?"hidden":w.data(P,"slimbox")});
    var N=M?"bind":"unbind";
    E[N]("scroll resize",z);
    w(document)[N]("keydown",p)}function p(O){var N=O.keyCode,M=w.inArray;
    return(M(N,u.closeKeys)>=0)?C():(M(N,u.nextKeys)>=0)?f():(M(N,u.previousKeys)>=0)?B():false}function B(){return b(x)}function f(){return b(D)}function b(M){if(M>=0){F=M;
    o=g[F][0];
    x=(F||(u.loop?g.length:0))-1;
    D=((F+1)%g.length)||(u.loop?0:-1);
    r();
    a.className="lbLoading";
    l=new Image();
    l.onload=j;
    l.src=o}return false}function j(){a.className="";
    w(h).css({backgroundImage:"url("+o+")",visibility:"hidden",display:""});
    w(q).width(l.width);
    w([q,I,d]).height(l.height);
    w(A).html(g[F][1]||"");
    w(K).html((((g.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,g.length));
    if(x>=0){t.src=g[x][0]}if(D>=0){J.src=g[D][0]}L=h.offsetWidth;
    s=h.offsetHeight;
    var M=Math.max(0,y-(s/2));
    if(a.offsetHeight!=s){w(a).animate({height:s,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+s,marginLeft:-L/2,visibility:"hidden",display:""});
    w(h).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,i)})}function i(){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 r(){l.onload=null;
    l.src=t.src=J.src=o;
    w([a,h,c]).stop(true);
    w([I,d,h,G]).hide()}function C(){if(F>=0){r();
    F=x=D=-1;
    w(a).hide();
    w(H).stop().fadeOut(u.overlayFadeDuration,k)}return false}})(jQuery);


