/*
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({/* Put custom options here */
}, null, function(el) {
    return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
});
};
window.addEvent("domready", Slimbox.scanPage);

