(function (I) {
	var c = 0.75;
	var G = 600;
	var ab = 300;
	var f = 4000;
	var K = 250;
	var n = 40;
	var C = "update_text";
	var R = "start_timer";
	var al = "ie6_init";
	var o = "ie6_cleanup";
	var af = "lightbox_open";
	var aj = "lightbox_close";
	var V = "<div id='overlay'></div>					<div id='lightbox'>						<div class='preloader'></div>						<div class='inner-box'>							<div class='content'></div>							<div class='timer'></div>							<div class='desc'><div class='inner-text'></div></div>							<div class='btn-panel'><div class='back-btn'></div></div>							<div class='btn-panel'><div class='fwd-btn'></div></div>						</div>						<div class='cpanel'>							<div id='play-btn'></div>							<div class='info'></div>							<div id='close-btn'></div>						</div>					</div>";
	var L = {
		rotate: true,
		delay: f,
		easing: "",
		transition_speed: G,
		display_dbuttons: true,
		display_number: true,
		display_timer: true,
		display_caption: true,
		caption_align: "bottom",
		mouseover_buttons: true,
		cont_nav: true,
		auto_fit: true
	};
	var S;
	var F;
	var g;
	var ad;
	var s;
	var U;
	var z;
	var H;
	var Q;
	var r;
	var X;
	var v;
	var j;
	var T;
	var aa;
	var e;
	var ag;
	var u;
	var h;
	var N;
	var ak;
	var ah;
	var b;
	I(document).ready(function () {
		D()
	});
	I.fn.wtLightBox = function (an) {
		var ao = I(this);
		var am = I.extend(true, {},
		L, an);
		ao.data({
			rotate: am.rotate,
			delay: p(am.delay, f),
			duration: p(am.transition_speed, G),
			displayTimer: am.display_timer,
			displayDButtons: am.display_dbuttons,
			displayNum: am.display_number,
			contNav: am.cont_nav,
			displayText: am.display_caption,
			textAlign: am.caption_align.toLowerCase(),
			autoFit: am.auto_fit,
			easing: am.easing,
			mouseoverBtns: !window.Touch ? am.mouseover_buttons: false
		}).each(function (at) {
			var ar;
			var aq;
			var ap = I(this).attr("rel");
			if (ap && ap != "") {
				ar = ao.filter("[rel=" + ap + "]");
				aq = ar.index(I(this))
			} else {
				ar = I(this);
				aq = 0
			}
			I(this).bind("click", {
				index: aq,
				group: ar,
				obj: ao
			},
			q)
		});
		return this
	};
	var D = function () {
		b = null;
		I("body").append(V);
		S = I("#overlay").click(M);
		F = I("#lightbox");
		ad = F.find("div.preloader");
		H = F.find("div.inner-box");
		j = H.find("div.timer").data("pct", 1);
		g = H.find("div.desc");
		r = H.find(".back-btn");
		v = H.find(".fwd-btn");
		Q = H.find("div.btn-panel").has(r);
		X = H.find("div.btn-panel").has(v);
		s = F.find("div.cpanel").bind("click", ac);
		U = s.find("#play-btn");
		z = s.find(".info");
		ah = F.outerWidth() - F.width();
		ae()
	};
	var q = function (ar) {
		ak = false;
		aa = I(ar.data.obj);
		e = I(ar.data.group);
		ag = ar.data.index;
		u = e.size();
		h = aa.data("contNav");
		N = aa.data("mouseoverBtns");
		var an = aa.data("textAlign");
		var aq = aa.data("displayText");
		var am;
		var ap;
		var at;
		var ao;
		if (u > 1) {
			am = aa.data("rotate");
			ap = aa.data("displayTimer");
			ao = aa.data("displayDButtons");
			at = aa.data("displayNum")
		} else {
			am = ap = ao = at = false
		}
		if (am) {
			F.bind(R, x);
			U.toggleClass("pause", ak).show()
		} else {
			F.unbind(R);
			U.hide()
		}
		if (ap) {
			j.css(an == "top" ? "bottom": "top", 0).css("visibility", "visible")
		} else {
			j.css({
				visibility: "hidden"
			})
		}
		if (ao) {
			Q.css("visibility", "visible");
			X.css("visibility", "visible")
		} else {
			Q.css("visibility", "hidden");
			X.css("visibility", "hidden")
		}
		if (at) {
			z.css("visibility", "visible")
		} else {
			z.css("visibility", "hidden")
		}
		if (aq) {
			F.unbind(C).bind(C, P);
			g.show()
		} else {
			F.unbind(C);
			g.hide()
		}
		if (!N) {
			r.css("margin-left", 0);
			v.css("margin-left", -v.width())
		}
		F.data("visible", true).trigger(al);
		I(document).unbind("keyup", J).bind("keyup", J);
		S.stop(true, true).css("opacity", c).show();
		F.css({
			width: K,
			height: K,
			"margin-left": -K / 2,
			"margin-top": -K / 2
		}).show();
		E(ag);
		I(document).trigger(af);
		return false
	};
	var M = function () {
		k();
		F.data("visible", false).trigger(o);
		I(document).unbind("keyup", J).unbind("keyup", a);
		i();
		g.stop(true).hide();
		F.stop(true).hide();
		S.stop(true).fadeOut("fast");
		I(document).trigger(aj);
		return false
	};
	var E = function (an) {
		T = I(e.get(an));
		i();
		g.stop(true).hide();
		var am = I("<img/>");
		I("div.content", H).empty().append(am);
		am.css({
			opacity: 0,
			visibility: "hidden"
		}).load(function () {
			ad.hide();
			Z(am)
		});
		am.attr("src", T.attr("href"));
		if (am[0].complete || am[0].readyState == "complete") {
			am.unbind("load");
			ad.hide();
			Z(am)
		} else {
			ad.show()
		}
	};
	var Z = function (an) {
		if (F.data("visible")) {
			if (aa.data("autoFit")) {
				ai(an[0])
			}
			var ao = an[0].width;
			var at = an[0].height;
			var ar = at + s.height();
			var am = w(ao, ar);
			var aq = -(ao + ah) / 2;
			var ap = -(ar + (ah / 2)) / 2;
			F.stop(true).animate({
				"margin-left": aq,
				"margin-top": ap,
				width: ao,
				height: ar
			},
			am, aa.data("easing"), function () {
				H.height(at);
				z.html((ag + 1) + " / " + u);
				F.trigger(C);
				B();
				an.css("visibility", "visible").animate({
					opacity: 1
				},
				"normal", function () {
					if (jQuery.browser.msie) {
						this.style.removeAttribute("filter")
					}
					F.trigger(R)
				})
			})
		}
	};
	var P = function () {
		var an = T.attr("title");
		if (!an || an == "") {
			an = T.data("text")
		}
		if (an && an != "") {
			g.find("div.inner-text").html(an);
			var am = aa.data("textAlign");
			g.stop().css("top", am == "bottom" ? H.height() : -g.height()).show().animate({
				top: am == "bottom" ? H.height() - g.height() : 0
			},
			"normal")
		}
	};
	var ai = function (am) {
		var an;
		var ap = I(window).width() - ah - n;
		var ao = I(window).height() - ah / 2 - s.height() - n;
		if (am.width > ap) {
			an = am.height / am.width;
			am.width = ap;
			am.height = an * ap
		}
		if (am.height > ao) {
			an = am.width / am.height;
			am.width = an * ao;
			am.height = ao
		}
	};
	var B = function () {
		I(document).unbind("keyup", a).bind("keyup", a);
		s.show();
		var an = Math.round(H.width() / 2);
		Q.css({
			width: an,
			height: "100%"
		}).unbind();
		if (!h && ag == 0) {
			Q.css("cursor", "default")
		} else {
			Q.bind("click", Y).css("cursor", "pointer");
			r.show()
		}
		var am = H.width() - Q.width();
		X.css({
			width: am,
			height: "100%"
		}).unbind();
		if (!h && ag == u - 1) {
			X.css("cursor", "default")
		} else {
			X.bind("click", d).css("cursor", "pointer");
			v.show()
		}
		if (N) {
			Q.hover(W, O);
			X.hover(t, l)
		}
	};
	var i = function () {
		I(document).unbind("keyup", a);
		s.hide();
		r.hide();
		v.hide()
	};
	var ac = function (am) {
		switch (I(am.target).attr("id")) {
		case "play-btn":
			m();
			break;
		case "close-btn":
			M();
			break
		}
	};
	var m = function () {
		ak = !ak;
		U.toggleClass("pause", ak);
		ak ? F.trigger(R) : A();
		return false
	};
	var Y = function () {
		if (Q.css("visibility") == "visible") {
			k();
			if (ag > 0) {
				ag--
			} else {
				if (h) {
					ag = u - 1
				} else {
					return
				}
			}
			E(ag)
		}
		return false
	};
	var d = function () {
		if (X.css("visibility") == "visible") {
			k();
			if (ag < u - 1) {
				ag++
			} else {
				if (h) {
					ag = 0
				} else {
					return
				}
			}
			E(ag)
		}
		return false
	};
	var y = function () {
		k();
		ag = (ag < u - 1) ? ag + 1 : 0;
		E(ag)
	};
	var W = function () {
		r.stop().animate({
			"margin-left": 0
		},
		ab)
	};
	var O = function () {
		r.stop().animate({
			"margin-left": -r.width()
		},
		ab)
	};
	var t = function () {
		v.stop().animate({
			"margin-left": -v.width()
		},
		ab)
	};
	var l = function () {
		v.stop().animate({
			"margin-left": 0
		},
		ab)
	};
	var a = function (am) {
		switch (am.keyCode) {
		case 37:
		case 80:
			Y();
			break;
		case 39:
		case 78:
			d();
			break;
		case 32:
			m();
			break
		}
	};
	var J = function (am) {
		switch (am.keyCode) {
		case 27:
		case 67:
		case 88:
			M()
		}
	};
	var w = function (ap, am) {
		var ao = Math.abs(F.width() - ap);
		var an = Math.abs(F.height() - am);
		return Math.max(aa.data("duration"), ao, an)
	};
	var ae = function () {
		if (jQuery.browser.msie && parseInt(jQuery.browser.version) <= 6) {
			var an, am;
			S.css({
				position: "absolute",
				width: I(document).width(),
				height: I(document).height()
			});
			F.css("position", "absolute");
			I(window).bind("resize", function () {
				if (am != document.documentElement.clientHeight || an != document.documentElement.clientWidth) {
					S.css({
						width: I(document).width(),
						height: I(document).height()
					})
				}
				an = document.documentElement.clientWidth;
				am = document.documentElement.clientHeight
			});
			F.bind(al, function () {
				I("body").find("select").addClass("hide-selects")
			}).bind(o, function () {
				I("body").find("select").removeClass("hide-selects")
			})
		} else {
			if (window.Touch) {
				S.css({
					width: I(document).width(),
					height: I(document).height()
				});
				I(window).bind("resize", function () {
					S.css({
						width: I(document).width(),
						height: I(document).height()
					})
				})
			}
		}
	};
	var x = function () {
		if (ak && b == null) {
			var am = Math.round(j.data("pct") * aa.data("delay"));
			j.animate({
				width: H.width() + 1
			},
			am, "linear");
			b = setTimeout(y, am)
		}
	};
	var k = function () {
		clearTimeout(b);
		b = null;
		j.stop(true).width(0).data("pct", 1)
	};
	var A = function () {
		clearTimeout(b);
		b = null;
		var am = 1 - (j.width() / (H.width() + 1));
		j.stop(true).data("pct", am)
	};
	var p = function (am, an) {
		if (!isNaN(am) && am > 0) {
			return am
		}
		return an
	}
})(jQuery);
