/*
 Slimbox v2.04 - The ultimate lightweight Lightbox clone for jQuery
 (c) 2007-2010 Christophe Beyls
<http://www.digitalia.be>
MIT-style license.
 */

var slimBoxRefresh = (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.9,
				overlayFadeDuration: 400,
				resizeDuration: 400,
				resizeEasing: "easeInOutCirc",
				initialWidth: 150,
				initialHeight: 150,
				imageFadeDuration: 400,
				captionAnimationDuration: 400,
				counterText: "Imagem {x} de {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);
			w(H).css({
						width: $('#frame').width(),
						height: $('#frame').height()
					});
			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)
			})
		};
	
	$(window).resize(z);
	function z() {
			var N = $('#frame').scrollLeft(),
				M = $('#frame').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]).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 - 300);
			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: y - 370,
					marginLeft: -L / 2,
					display: "",
					opacity: 0
				});
				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(G).css("opacity", 0).animate({
				opacity: 1
			}, u.captionAnimationDuration);
		}
	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|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));
		});
	});
}


$(window).resize(slimBoxRefresh);

