(function (b) {
	var a;
	b.fn.undoChanges = function () {
		a.undoChanges();
		return this
	};
	b.fn.updateChanges = function () {
		a.updateChanges();
		return this
	};
	b.fn.setCtrlType = function (c) {
		a.setCtrlType(c);
		return this
	};
	b.fn.setEasing = function (c) {
		a.setEasing(c);
		return this
	};
	b.fn.setCapPosition = function (c, d) {
		a.setCapPosition(c, d);
		return this
	};
	b.fn.setCapMouseover = function (c) {
		a.setCapMouseover(c);
		return this
	};
	b.fn.setCaption = function (c) {
		a.setCaption(c);
		return this
	};
	b.fn.setButtons = function (c) {
		a.setButtons(c);
		return this
	};
	b.fn.setBtnsMouseover = function (c) {
		a.setBtnsMouseover(c);
		return this
	};
	b.fn.setScrollbar = function (c) {
		a.setScrollbar(c);
		return this
	};
	b.fn.setIndexes = function (c) {
		a.setIndexes(c);
		return this
	};
	b.fn.wtScroller = function (t) {
		var q = "top";
		var i = "bottom";
		var m = "outside";
		var g = "inside";
		var x = 0.85;
		var e = 0.7;
		var p = 1000;
		var c = 600;
		var o = 300;
		var l = 4000;
		var y = "update_buttons";
		var s = "update_thumb";
		var h = "update_index";
		var f = "update_text";
		var k = "start_timer";
		var w = "lightbox_open";
		var u = "lightbox_close";
		function r(a2, a1) {
			var aB = d(a1.num_display, 3);
			var N = d(a1.slide_width, 300);
			var az = d(a1.slide_height, 200);
			var Z = v(a1.slide_margin, 1);
			var aW = v(a1.margin, 10);
			var T = d(a1.button_width, 35);
			var aZ = d(a1.ctrl_height, 20);
			var O = a1.auto_scroll;
			var z = d(a1.delay, l);
			var am = d(a1.scroll_speed, p);
			var aR = a1.easing;
			var au = a1.auto_scale;
			var Y = a1.display_buttons;
			var A = a1.mouseover_buttons;
			var aH = a1.ctrl_type.toLowerCase();
			var aG = a1.display_caption;
			var aw = a1.mouseover_caption;
			var aA = a1.caption_position.toLowerCase();
			var a0 = a1.caption_align.toLowerCase();
			var ac = a1.move_one;
			var H = a1.cont_nav;
			var F = a1.shuffle;
			var M;
			var ay;
			var av;
			var aP;
			var G;
			var aV;
			var al;
			var P;
			var R;
			var aC;
			var ao;
			var V;
			var D;
			var aj;
			var aE;
			var ar;
			var ah;
			var aY;
			var aU;
			var aS;
			var aX;
			var aJ;
			var ab;
			this.init = function () {
				ab = a2.find(">div:first").clone();
				M = b(".wt-scroller", a2);
				ay = M.find(".slides");
				av = ay.find(">ul:first");
				aP = av.find(">li");
				al = M.find(".lower-panel");
				G = M.find(".prev-btn");
				aV = M.find(".next-btn");
				aS = 0;
				aX = 0;
				aY = 0;
				aJ = -1;
				aU = null;
				V = aP.size();
				if (V <= aB) {
					Y = false;
					aH = "none";
					aB = V
				}
				if (aH == "index") {
					ac = false
				}
				aO();
				af();
				aF();
				M.css({
					width: ay.width() + G.width() + aV.width(),
					height: ay.height() + al.outerHeight(),
					"padding-top": aW
				});
				if (F) {
					E()
				}
				K();
				b(document).bind(u, ag).bind(w, ae);
				M.trigger(u)
			};
			var aO = function () {
				aN();
				ao = new Array(V);
				aP.each(function (a5) {
					var a4 = b(this).find("img:first");
					var a3 = b(this).find(">a:first");
					if (!a3.attr("href")) {
						b(this).click(aa);
						a3.css("cursor", "default")
					} else {
						a3.data("text", b(this).find(">p:first").html())
					}
					if (au) {
						a4[0].complete || a4[0].readyState == "complete" ? ad(a4) : a4.load(B)
					}
					if (aG && aA == g) {
						X(b(this))
					}
					ao[a5] = b(this)
				})
			};
			var aN = function () {
				var a3 = aP.find(">p:first");
				if (aG) {
					var a6 = a3.outerWidth() - a3.width();
					a3.css({
						width: N - a6,
						visibility: "visible"
					}).click(aa);
					if (aA == m) {
						var a5 = a3.map(function () {
							return b(this).height()
						}).get();
						var a4 = Math.max.apply(Math, a5);
						a3.css({
							top: a0 == q ? 0 : az,
							height: a4
						});
						aX = a3.outerHeight();
						if (a0 == q) {
							aS = aX
						}
						a3.addClass("outside")
					} else {
						a3.addClass("inside")
					}
				} else {
					a3.hide()
				}
			};
			var X = function (a3) {
				var a4 = a3.find(">p:first");
				if (a4.length < 1 || a4.html() == "") {
					a4.remove();
					return
				}
				if (aw) {
					a4.css("top", a0 == q ? -a4.outerHeight() : az);
					a3.hover(L, aQ)
				} else {
					a4.css("top", a0 == q ? 0 : az - a4.outerHeight())
				}
			};
			var af = function () {
				aP.css({
					width: N,
					height: az + aX,
					"margin-right": Z
				}).hover(aT, aD);
				ay.css({
					width: (aB * aP.width()) + ((aB - 1) * Z),
					height: aP.height()
				});
				D = aP.outerWidth(true);
				var a3;
				if (aH == "index") {
					a3 = aB * Math.ceil(V / aB)
				} else {
					a3 = V
				}
				av.width(a3 * D);
				ar = a3 - aB;
				aj = 0;
				aE = ar;
				ah = ((av.width() - Z) - ay.width())
			};
			var aF = function () {
				aK();
				al.css({
					width: ay.width(),
					"padding-left": G.width(),
					"padding-right": aV.width()
				});
				switch (aH) {
				case "scrollbar":
					aL();
					var a3 = Math.max((aZ - R.height()) / 2, 0);
					al.css({
						"padding-top": a3,
						"padding-bottom": a3
					});
					break;
				case "index":
					I();
					var a3 = Math.max((aZ - P.height()) / 2, 0);
					al.css({
						"padding-top": a3,
						"padding-bottom": a3
					});
					break;
				default:
					al.remove();
					M.css("padding-bottom", aW)
				}
			};
			var aK = function () {
				if (Y) {
					if (A) {
						Q();
						ay.append("<div class='m-prev'></div><div class='m-next'></div>");
						var a4 = ay.find(".m-prev").mousedown(aa).click(at);
						var a3 = ay.find(".m-next").mousedown(aa).click(W);
						if (!window.Touch) {
							a4.css("left", -a4.width());
							a3.css("marginLeft", 0);
							ay.hover(function () {
								a4.stop(true).animate({
									left: 0
								},
								o);
								a3.stop(true).animate({
									marginLeft: -a3.width()
								},
								o)
							},
							function () {
								a4.stop(true).animate({
									left: -a4.width()
								},
								o);
								a3.stop(true).animate({
									marginLeft: 0
								},
								o)
							})
						}
						if (!H) {
							M.bind(y, function () {
								var a5 = Math.abs(aY / D);
								var a6 = a5 + aB;
								a4.css(a5 > 0 ? {
									opacity: 1,
									cursor: "pointer"
								}: {
									opacity: 0,
									cursor: "default"
								});
								a3.css(a6 < V ? {
									opacity: 1,
									cursor: "pointer"
								}: {
									opacity: 0,
									cursor: "default"
								})
							})
						}
					} else {
						G.css({
							width: T,
							height: ay.height()
						}).mousedown(aa).click(at);
						aV.css({
							width: T,
							height: ay.height()
						}).mousedown(aa).click(W);
						if (!H) {
							M.bind(y, J)
						}
					}
				} else {
					Q()
				}
			};
			var Q = function () {
				G.remove();
				aV.remove();
				M.css({
					"padding-left": aW,
					"padding-right": aW
				})
			};
			var J = function () {
				var a3 = Math.abs(aY / D);
				var a4 = a3 + aB;
				G.css(a3 > 0 ? {
					opacity: 1,
					cursor: "pointer"
				}: {
					opacity: e,
					cursor: "default"
				});
				aV.css(a4 < V ? {
					opacity: 1,
					cursor: "pointer"
				}: {
					opacity: e,
					cursor: "default"
				})
			};
			var aL = function () {
				al.append("<div class='scroll-bar'><div class='thumb'></div></div>");
				R = al.find("div.scroll-bar");
				aC = al.find("div.thumb");
				R.width(al.width()).click(ai).mousedown(aa);
				aC.width(Math.ceil((aB / V) * R.width())).click(aa);
				var a3 = R.width() - aC.width();
				var a5 = ah / a3;
				try {
					aC.draggable({
						containment: "parent"
					}).bind("drag", function () {
						av.css({
							left: Math.round( - aC.position().left * a5)
						})
					}).bind("dragstop", function () {
						aq(aC.position().left / a3)
					})
				} catch(a4) {}
				M.bind(s, function () {
					var a6 = Math.round(Math.abs(aY) / a5);
					aC.stop(true, true).animate({
						left: a6
					},
					am, aR)
				})
			};
			var I = function () {
				var a5 = Math.ceil(V / aB);
				var a4 = "";
				for (var a3 = 0; a3 < a5; a3++) {
					a4 += "<span class='index'></span>"
				}
				al.prepend(a4);
				P = al.find(".index").mousedown(aa).bind("click", ak);
				M.bind(h, ax)
			};
			var ax = function () {
				var a3 = Math.ceil(aj / aB);
				P.filter(".index-hl").removeClass("index-hl");
				P.eq(a3).addClass("index-hl")
			};
			var S = function () {
				aY = -aj * D;
				av.stop(true, true).animate({
					left: aY
				},
				am, aR, function () {
					M.trigger(k)
				});
				K()
			};
			var K = function () {
				M.trigger(y).trigger(s).trigger(h)
			};
			var ai = function (a3) {
				aq((a3.pageX - R.offset().left) / R.width())
			};
			var aq = function (a6) {
				if (a6 != aJ) {
					aJ = a6;
					var a3;
					var a4 = a6 * ah;
					if (a4 > Math.abs(aY)) {
						a3 = Math.ceil(a4 / D)
					} else {
						if (a4 < Math.abs(aY)) {
							a3 = Math.floor(a4 / D)
						} else {
							return
						}
					}
					var a5 = a3 + (aY / D);
					aj += a5;
					aE -= a5;
					S()
				}
			};
			var ak = function () {
				U();
				aj = b(this).index() * aB;
				aE = ar - aj;
				S();
				return false
			};
			var at = function () {
				U();
				if (aE < ar) {
					var a3 = ac ? 1 : Math.min(ar - aE, aB);
					aE += a3;
					aj -= a3
				} else {
					if (H) {
						aE = 0;
						aj = ar
					} else {
						return
					}
				}
				S()
			};
			var W = function () {
				U();
				if (aj < ar) {
					var a3 = ac ? 1 : Math.min(ar - aj, aB);
					aj += a3;
					aE -= a3
				} else {
					if (H) {
						aj = 0;
						aE = ar
					} else {
						return
					}
				}
				S()
			};
			var an = function () {
				U();
				if (aj < ar) {
					var a3 = ac ? 1 : Math.min(ar - aj, aB);
					aj += a3;
					aE -= a3
				} else {
					aj = 0;
					aE = ar
				}
				S()
			};
			var B = function () {
				ad(b(this))
			};
			var ad = function (a3) {
				if (a3.outerWidth() > 0 && a3.outerHeight() > 0) {
					var a4;
					if (a3.outerWidth() > N) {
						a4 = a3.outerHeight() / a3.outerWidth();
						a3.css({
							width: N,
							height: a4 * N
						})
					}
					if (a3.outerHeight() > az) {
						a4 = a3.outerWidth() / a3.outerHeight();
						a3.css({
							width: a4 * az,
							height: az
						})
					}
					a3.css({
						left: Math.round((N - a3.outerWidth()) / 2),
						top: aS + Math.round((az - a3.outerHeight()) / 2)
					})
				}
			};
			var ae = function () {
				M.unbind(k).unbind("mouseenter").unbind("mouseleave");
				U();
				b(document).unbind("keyup", C)
			};
			var ag = function () {
				if (O) {
					M.bind(k, aI).hover(aM, ap).trigger(k)
				}
				b(document).bind("keyup", C)
			};
			var aT = function () {
				b(this).find("img:first").stop().animate({
					opacity: x
				},
				o)
			};
			var aD = function () {
				b(this).find("img:first").stop().animate({
					opacity: 1
				},
				o, function () {
					if (jQuery.browser.msie) {
						this.style.removeAttribute("filter")
					}
				})
			};
			var L = function () {
				var a3 = b(this).find(">p:first");
				a3.stop().animate({
					top: a0 == i ? az - a3.outerHeight() : 0
				},
				o)
			};
			var aQ = function () {
				var a3 = b(this).find(">p:first");
				a3.stop().animate({
					top: a0 == i ? az: -a3.outerHeight()
				},
				o)
			};
			var aM = function () {
				M.unbind(k);
				U()
			};
			var ap = function () {
				M.bind(k, aI).trigger(k)
			};
			var C = function (a3) {
				switch (a3.keyCode) {
				case 37:
					at();
					break;
				case 39:
					W();
					break
				}
			};
			var aa = function () {
				return false
			};
			var E = function () {
				for (var a5 = 0; a5 < ao.length; a5++) {
					var a3 = Math.floor(Math.random() * ao.length);
					var a4 = ao[a5];
					ao[a5] = ao[a3];
					ao[a3] = a4
				}
				for (var a5 = 0; a5 < ao.length; a5++) {
					ao[a5] = ao[a5].clone(true)
				}
				for (var a5 = 0; a5 < ao.length; a5++) {
					aP.eq(a5).replaceWith(ao[a5])
				}
			};
			var aI = function () {
				if (aU == null) {
					aU = setTimeout(an, z)
				}
			};
			var U = function () {
				clearTimeout(aU);
				aU = null
			};
			this.undoChanges = function () {
				U();
				a2.empty();
				a2.append(ab)
			};
			this.updateChanges = function () {
				this.init()
			};
			this.setCtrlType = function (a3) {
				aH = a3
			};
			this.setEasing = function (a3) {
				aR = a3
			};
			this.setButtons = function (a3) {
				Y = a3
			};
			this.setCaption = function (a3) {
				aG = a3
			};
			this.setCapPosition = function (a3, a4) {
				aA = a3;
				a0 = a4
			};
			this.setBtnsMouseover = function (a3) {
				A = a3
			};
			this.setCapMouseover = function (a3) {
				aw = a3
			}
		}
		var d = function (z, A) {
			if (!isNaN(z) && z > 0) {
				return z
			}
			return A
		};
		var v = function (z, A) {
			if (!isNaN(z) && z >= 0) {
				return z
			}
			return A
		};
		var j = {
			num_display: 3,
			slide_width: 300,
			slide_height: 200,
			slide_margin: 1,
			button_width: 35,
			ctrl_height: 20,
			margin: 10,
			auto_scroll: true,
			delay: l,
			scroll_speed: p,
			easing: "",
			auto_scale: true,
			move_one: false,
			ctrl_type: "scrollbar",
			display_buttons: true,
			mouseover_buttons: false,
			display_caption: true,
			mouseover_caption: false,
			caption_align: i,
			caption_position: g,
			cont_nav: true,
			shuffle: false
		};
		var n = b.extend(true, {},
		j, t);
		return this.each(function () {
			a = new r(b(this), n);
			a.init()
		})
	}
})(jQuery);
