/*
	Slimbox v2.04 - The ultimate lightweight Lightbox clone for jQuery
	(c) 2007-2010 Christophe Beyls <http://www.digitalia.be>
                                        http://www.digitalia.be/software/slimbox2
	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({/* Put custom options here */}, null, function(el) {
            return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
        });
    });
}
