/*
Slimbox v2.03 - The ultimate lightweight Lightbox clone for jQuery
(c) 2007-2009 Christophe Beyls <http://www.digitalia.be>
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}<br /><strong>&lt; Use the Arrow Keys to Advance &gt;</strong>", 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);

// 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));
    });
});
}
