﻿/*
* jQuery SuperBox! 0.9.1
* Copyright (c) 2009 Pierre Bertet (pierrebertet.net)
* Licensed under the MIT (MIT-LICENSE.txt)
*
*/
(function(i) {
	var l, t, r, q, a, p, h, o, j, w, b = { boxId: "superbox", boxClasses: "", overlayOpacity: 0.8, boxWidth: "600", boxHeight: "400", loadTxt: "Loading...", closeTxt: "Close", prevTxt: "Previous", nextTxt: "Next", beforeShow: function() { } }, x = {}, m = false, s = i([]);
	i.superbox = function() {
		w = i.extend({}, b, i.superbox.settings); if (i.browser.msie && i.browser.version < 7) {
			s = s.add("select")
		} n(); z()
	}; function z() {
		i("a[rel^=superbox],area[rel^=superbox]").each(function() {
			var D = i(this), F = D.attr("rel"), B = F.match(/^superbox\[([^#\.\]]+)/)[1], E = F.replace("superbox", "").match(/([#\.][^#\.\]]+)/g) || [], C = w.boxId, A = w.boxClasses;
			this._relSettings = F.replace("superbox[" + B + E.join("") + "]", ""); i.each(E, function(G, H) {
				if (H.substr(0, 1) == "#") {
					C = H.substr(1)
				} else { if (H.substr(0, 1) == ".") { A += " " + H.substr(1) } } 
			}); if (B.search(/^image|gallery|iframe|content|ajax$/) != -1) {
				D.superbox(B, { boxId: C, boxClasses: A })
			} 
		})
	} i.fn.superbox = function(B, A) { A = i.extend({}, w, A); i.superbox[B](this, A) }; i.extend(i.superbox, { image: function(C, A, B) {
		var E = f(C.get(0)), D = false;
		if (E && B == "gallery") { D = E[1] } else { if (E) { D = E[0] } } C.click(function(F) {
			F.preventDefault();
			k(); if (B == "gallery") { c(C, E[0]) } y(function() {
				var H = false, G; if (D) { H = D.split("x") } G = i('<img src="' + C.attr("href") + '" title="' + (C.attr("title") || C.text()) + '" />');
				G.load(function() { g(G, H); e({ boxClasses: "image " + A.boxClasses, boxId: A.boxId }); u() }).appendTo($innerbox)
			})
		})
	}, gallery: function(B, A) {
		var C = f(B.get(0)); if (!x[C[0]]) { x[C[0]] = [] } x[C[0]].push(B);
		B.get(0)._superboxGroupKey = (x[C[0]].length - 1); i.superbox.image(B, A, "gallery")
	}, iframe: function(B, A) {
		var C = f(B.get(0));
		B.click(function(D) {
			D.preventDefault(); k(); y(function() {
				var F = false, E; if (C) {
					F = C[0].split("x")
				} A = i.extend({}, A, { boxWidth: F[0] || A.boxWidth, boxHeight: F[1] || A.boxHeight }); E = i('<iframe src="' + B.attr("href") + '" name="' + B.attr("href") + '" frameborder="0" scrolling="auto" hspace="0" width="' + A.boxWidth + '" height="' + A.boxHeight + '"></iframe>');
				E.load(function() {
					q.width(A.boxWidth + "px"); $innerbox.height(A.boxHeight + "px"); e({ boxClasses: "iframe " + A.boxClasses, boxId: A.boxId });
					u()
				}).appendTo($innerbox)
			})
		})
	}, content: function(B, A) {
		var C = f(B.get(0)); B.click(function(D) {
			D.preventDefault();
			k(); y(function() {
				var E = false; if (C) { E = C[0].split("x") } A = i.extend({}, A, { boxWidth: E[0] || A.boxWidth, boxHeight: E[1] || A.boxHeight });
				q.width(A.boxWidth + "px"); $innerbox.height(A.boxHeight + "px"); i(B.attr("href")).clone().appendTo($innerbox).show();
				e({ boxClasses: "content " + A.boxClasses, boxId: A.boxId }); u()
			})
		})
	}, ajax: function(B, A) {
		var C = f(B.get(0));
		B.click(function(D) {
			D.preventDefault(); k(); y(function() {
				var E = false; if (C && C[3]) {
					E = C[3].split("x")
				} A = i.extend({}, A, { boxWidth: E[0] || A.boxWidth, boxHeight: E[1] || A.boxHeight }); q.width(A.boxWidth + "px");
				$innerbox.height(A.boxHeight + "px"); i.get(C[2], function(F) {
					i(F).appendTo($innerbox)
				}); e({ boxClasses: "ajax " + A.boxClasses, boxId: A.boxId }); u()
			})
		})
	} 
	}); function f(A) {
		return A._relSettings.match(/([^\[\]]+)/g)
	} function g(A, B) {
		q.width(A.width() + ($innerbox.css("paddingLeft").slice(0, -2) - 0) + ($innerbox.css("paddingRight").slice(0, -2) - 0));
		$innerbox.height(A.height()); if (B && B[0] != "") { q.width(B[0] + "px") } if (B && B[1] != "" && B[1] > A.height()) {
			$innerbox.height(B[1] + "px")
		} 
	} function c(C, D) {
		h.show(); m = true; var A = C.get(0)._superboxGroupKey + 1, B = A - 2; if (x[D][A]) {
			o.removeClass("disabled").unbind("click").bind("click", function() {
				x[D][A].click()
			})
		} else { o.addClass("disabled").unbind("click") } if (x[D][B]) {
			j.removeClass("disabled").unbind("click").bind("click", function() {
				x[D][B].click()
			})
		} else { j.addClass("disabled").unbind("click") } 
	} function e(A) {
		q.attr("id", A.boxId).attr("class", A.boxClasses)
	} function d() {
		i(document).unbind("keydown"); p.hide(); h.hide(); t.hide().css({ position: "fixed", top: 0 });
		$innerbox.empty()
	} function v(A) { d(); l.fadeOut(300, function() { s.show() }); m = false } function y(B) {
		var A = function() {
			if (i.browser.msie && i.browser.version < 7) {
				t.css({ position: "absolute", top: "50%" })
			} s.hide(); p.show(); B()
		}; if (m) { l.css("opacity", w.overlayOpacity).show(); A() } else {
			l.css("opacity", 0).show().fadeTo(300, w.overlayOpacity, A)
		} 
	} function k() {
		t.show(); $innerbox.empty(); q.css({ position: "absolute", top: "-99999px" })
	} function u(A, B) {
		p.hide(); i(document).unbind("keydown").bind("keydown", function(C) {
			if (C.keyCode == 27) {
				v()
			} if (C.keyCode == 39 && o.is(":visible")) { o.click() } if (C.keyCode == 37 && j.is(":visible")) {
				j.click()
			} 
		}); q.css({ position: "static", top: 0, opacity: 0 }); if (i.browser.msie && i.browser.version < 8) {
			q.css({ position: "relative", top: "-50%" });
			if (i.browser.msie && i.browser.version < 7) { t.css({ position: "absolute", top: "50%" }) } 
		} if (i(window).height() < t.height()) {
			t.css({ position: "absolute", top: (t.offset().top + 10) + "px" })
		} w.beforeShow(); q.fadeTo(300, 1)
	} function n() {
		if (!i.superbox.elementsReady) {
			l = i('<div id="superbox-overlay"></div>').appendTo("body").hide();
			t = i('<div id="superbox-wrapper"></div>').appendTo("body").hide(); r = i('<div id="superbox-container"></div>').appendTo(t);
			q = i('<div id="superbox"></div>').appendTo(r); $innerbox = i('<div id="superbox-innerbox"></div>').appendTo(q);
			h = i('<p class="nextprev"></p>').appendTo(q).hide(); j = i('<a class="prev"><strong><span>' + w.prevTxt + "</span></strong></a>").appendTo(h);
			o = i('<a class="next"><strong><span>' + w.nextTxt + "</span></strong></a>").appendTo(h);
			a = i('<p class="close"><a><strong><span>' + w.closeTxt + "</span></strong></a></p>").prependTo(q).find("a");
			p = i('<p class="loading">' + w.loadTxt + "</p>").appendTo(r).hide(); l.add(t).add(a).click(function() {
				v()
			}); q.click(function(A) { A.stopPropagation() }); i.superbox.elementsReady = true
		} 
	} 
})(jQuery);

