( function(a) {
	a.fn.undoChanges = function() {
		rotator.undoChanges();
		return this
	};
	a.fn.updateChanges = function() {
		rotator.updateChanges();
		return this
	};
	a.fn.setTransition = function(b) {
		rotator.setTransition(b);
		return this
	};
	a.fn.setEasing = function(b) {
		rotator.setEasing(b);
		return this
	};
	a.fn.setTextEffect = function(b) {
		rotator.setTextEffect(b);
		return this
	};
	a.fn.setTooltipType = function(b) {
		rotator.setTooltipType(b);
		return this
	};
	a.fn.setCpanelAlign = function(b) {
		rotator.setCpanelAlign(b);
		return this
	};
	a.fn.setCpanelPos = function(b) {
		rotator.setCpanelPos(b);
		return this
	};
	a.fn.setThumbs = function(b) {
		rotator.setThumbs(b);
		return this
	};
	a.fn.setDButtons = function(b) {
		rotator.setDButtons(b);
		return this
	};
	a.fn.setPlayButton = function(b) {
		rotator.setPlayButton(b);
		return this
	};
	a.fn.setTooltip = function(b) {
		rotator.setTooltip(b);
		return this
	};
	a.fn.setTimerBar = function(b) {
		rotator.setTimerBar(b);
		return this
	};
	a.fn.setMouseoverPause = function(b) {
		rotator.setMouseoverPause(b);
		return this
	};
	a.fn.setMouseoverCPanel = function(b) {
		rotator.setMouseoverCPanel(b);
		return this
	};
	a.fn.setMouseoverText = function(b) {
		rotator.setMouseoverText(b);
		return this
	};
	a.fn.wtRotator = function(z) {
		var l = "inside";
		var r = "outside";
		var B = 0;
		var C = 1;
		var k = {
			TL :0,
			TC :1,
			TR :2,
			BL :3,
			BC :4,
			BR :5
		};
		var e = 0;
		var h = {
			"block.top" :e++,
			"block.right" :e++,
			"block.bottom" :e++,
			"block.left" :e++,
			"block.drop" :e++,
			"diag.fade" :e++,
			"diag.exp" :e++,
			"rev.diag.fade" :e++,
			"rev.diag.exp" :e++,
			"block.fade" :e++,
			"block.exp" :e++,
			"block.top.zz" :e++,
			"block.bottom.zz" :e++,
			"block.left.zz" :e++,
			"block.right.zz" :e++,
			"spiral.in" :e++,
			"spiral.out" :e++,
			"vert.tl" :e++,
			"vert.tr" :e++,
			"vert.bl" :e++,
			"vert.br" :e++,
			"fade.left" :e++,
			"fade.right" :e++,
			"alt.left" :e++,
			"alt.right" :e++,
			"blinds.left" :e++,
			"blinds.right" :e++,
			"vert.random.fade" :e++,
			"horz.tl" :e++,
			"horz.tr" :e++,
			"horz.bl" :e++,
			"horz.br" :e++,
			"fade.top" :e++,
			"fade.bottom" :e++,
			"alt.top" :e++,
			"alt.bottom" :e++,
			"blinds.top" :e++,
			"blinds.bottom" :e++,
			"horz.random.fade" :e++,
			none :e++,
			fade :e++,
			"h.slide" :e++,
			"v.slide" :e++,
			random :e++
		};
		var x = {
			fade :0,
			down :1,
			right :2,
			up :3,
			left :4,
			none :5
		};
		var o = 250;
		var f = 75;
		var b = 50;
		var q = 5000;
		var w = 800;
		var v = 600;
		var n = 600;
		var g = "updatetext";
		function c(G, P, N, R, M, H, I) {
			var J;
			var E;
			var L;
			var Q = null;
			var S = function() {
				L = Math.ceil(P / R);
				if (L > o) {
					R = Math.ceil(P / o);
					L = Math.ceil(P / R)
				}
				var U = "";
				for ( var T = 0; T < L; T++) {
					U += "<div class='vpiece' id='" + T + "'></div>"
				}
				G.addToScreen(U);
				J = G.$el.find("div.vpiece");
				E = new Array(L);
				J.each( function(V) {
					a(this).css( {
						left :(V * R),
						height :N
					});
					E[V] = a(this)
				})
			};
			this.clear = function() {
				clearInterval(Q);
				J.stop(true).css( {
					"z-index" :2,
					opacity :0
				})
			};
			this.displayContent = function(T, U) {
				D(T, U);
				if (U == h["vert.random.fade"]) {
					O(T)
				} else {
					F(T, U)
				}
			};
			var D = function(T, U) {
				switch (U) {
				case h["vert.tl"]:
				case h["vert.tr"]:
					K(T, -N, 1, R, false);
					break;
				case h["vert.bl"]:
				case h["vert.br"]:
					K(T, N, 1, R, false);
					break;
				case h["alt.left"]:
				case h["alt.right"]:
					K(T, 0, 1, R, true);
					break;
				case h["blinds.left"]:
				case h["blinds.right"]:
					K(T, 0, 1, 0, false);
					break;
				default:
					K(T, 0, 0, R, false)
				}
			};
			var K = function(W, T, U, Y, aa) {
				var X = W.attr("src");
				var Z = 0;
				var V = 0;
				if (G.autoCenter()) {
					Z = (N - W.height()) / 2;
					V = (P - W.width()) / 2
				}
				J.each( function(ac) {
					var ab = ((-ac * R) + V);
					if (aa) {
						T = (ac % 2) == 0 ? -N : N
					}
					a(this).css( {
						background :M + " url('" + X + "') no-repeat",
						backgroundPosition :ab + "px " + Z + "px",
						opacity :U,
						top :T,
						width :Y,
						"z-index" :3
					})
				})
			};
			var F = function(V, W) {
				var Y, U, X, T;
				switch (W) {
				case h["vert.tl"]:
				case h["vert.bl"]:
				case h["fade.left"]:
				case h["blinds.left"]:
				case h["alt.left"]:
					Y = 0;
					U = L - 1;
					X = 1;
					break;
				default:
					Y = L - 1;
					U = 0;
					X = -1
				}
				Q = setInterval( function() {
					a(J.get(Y)).animate( {
						top :0,
						opacity :1,
						width :R
					}, H, G.easing(), function() {
						if (a(this).attr("id") == U) {
							G.setComplete(V)
						}
					});
					if (Y == U) {
						clearInterval(Q)
					}
					Y += X
				}, I)
			};
			var O = function(U) {
				t(E);
				var T = 0;
				var V = 0;
				Q = setInterval( function() {
					E[T++].animate( {
						opacity :1
					}, H, G.easing(), function() {
						if (++V == L) {
							G.setComplete(U)
						}
					});
					if (T == L) {
						clearInterval(Q)
					}
				}, I)
			};
			S()
		}
		function u(G, P, N, R, M, H, I) {
			var J;
			var E;
			var L;
			var Q = null;
			var S = function() {
				L = Math.ceil(N / R);
				if (L > o) {
					R = Math.ceil(N / o);
					L = Math.ceil(N / R)
				}
				var U = "";
				for ( var T = 0; T < L; T++) {
					U += "<div class='hpiece' id='" + T + "'><!-- --></div>"
				}
				G.addToScreen(U);
				J = G.$el.find("div.hpiece");
				E = new Array(L);
				J.each( function(V) {
					a(this).css( {
						top :(V * R),
						width :P
					});
					E[V] = a(this)
				})
			};
			this.clear = function() {
				clearInterval(Q);
				J.stop(true).css( {
					"z-index" :2,
					opacity :0
				})
			};
			this.displayContent = function(T, U) {
				D(T, U);
				if (U == h["horz.random.fade"]) {
					O(T)
				} else {
					F(T, U)
				}
			};
			var D = function(T, U) {
				switch (U) {
				case h["horz.tr"]:
				case h["horz.br"]:
					K(T, P, 1, R, false);
					break;
				case h["horz.tl"]:
				case h["horz.bl"]:
					K(T, -P, 1, R, false);
					break;
				case h["alt.top"]:
				case h["alt.bottom"]:
					K(T, 0, 1, R, true);
					break;
				case h["blinds.top"]:
				case h["blinds.bottom"]:
					K(T, 0, 1, 0, false);
					break;
				default:
					K(T, 0, 0, R, false)
				}
			};
			var K = function(X, W, U, T, aa) {
				var Y = X.attr("src");
				var Z = 0;
				var V = 0;
				if (G.autoCenter()) {
					Z = (N - X.height()) / 2;
					V = (P - X.width()) / 2
				}
				J.each( function(ac) {
					var ab = ((-ac * R) + Z);
					if (aa) {
						W = (ac % 2) == 0 ? -P : P
					}
					a(this).css( {
						background :M + " url('" + Y + "') no-repeat",
						backgroundPosition :V + "px " + ab + "px",
						opacity :U,
						left :W,
						height :T,
						"z-index" :3
					})
				})
			};
			var F = function(U, V) {
				var X, T, W;
				switch (V) {
				case h["horz.tl"]:
				case h["horz.tr"]:
				case h["fade.top"]:
				case h["blinds.top"]:
				case h["alt.top"]:
					X = 0;
					T = L - 1;
					W = 1;
					break;
				default:
					X = L - 1;
					T = 0;
					W = -1
				}
				Q = setInterval( function() {
					a(J.get(X)).animate( {
						left :0,
						opacity :1,
						height :R
					}, H, G.easing(), function() {
						if (a(this).attr("id") == T) {
							G.setComplete(U)
						}
					});
					if (X == T) {
						clearInterval(Q)
					}
					X += W
				}, I)
			};
			var O = function(U) {
				t(E);
				var T = 0;
				var V = 0;
				Q = setInterval( function() {
					E[T++].animate( {
						opacity :1
					}, H, G.easing(), function() {
						if (++V == L) {
							G.setComplete(U)
						}
					});
					if (T == L) {
						clearInterval(Q)
					}
				}, I)
			};
			S()
		}
		function m(N, O, J, P, M, D, W) {
			var L;
			var E;
			var Q;
			var I;
			var K;
			var Y;
			var X;
			var V = function() {
				I = Math.ceil(J / P);
				K = Math.ceil(O / P);
				Y = I * K;
				if (Y > o) {
					P = Math.ceil(Math.sqrt((J * O) / o));
					I = Math.ceil(J / P);
					K = Math.ceil(O / P);
					Y = I * K
				}
				var ac = "";
				for ( var ab = 0; ab < I; ab++) {
					for ( var aa = 0; aa < K; aa++) {
						ac += "<div class='block' id='" + ab + "-" + aa
								+ "'></div>"
					}
				}
				N.addToScreen(ac);
				E = N.$el.find("div.block");
				E.data( {
					tlId :"0-0",
					trId :"0-" + (K - 1),
					blId :(I - 1) + "-0",
					brId :(I - 1) + "-" + (K - 1)
				});
				var Z = 0;
				Q = new Array(Y);
				L = new Array(I);
				for ( var ab = 0; ab < I; ab++) {
					L[ab] = new Array(K);
					for ( var aa = 0; aa < K; aa++) {
						L[ab][aa] = Q[Z++] = E.filter("#" + (ab + "-" + aa))
								.data("top", ab * P)
					}
				}
			};
			this.clear = function() {
				clearInterval(X);
				E.stop(true).css( {
					"z-index" :2,
					opacity :0
				})
			};
			this.displayContent = function(Z, aa) {
				switch (aa) {
				case h["diag.fade"]:
					S(Z, 0, P, 0);
					T(Z, {
						opacity :1
					}, false);
					break;
				case h["diag.exp"]:
					S(Z, 0, 0, 0);
					T(Z, {
						opacity :1,
						width :P,
						height :P
					}, false);
					break;
				case h["rev.diag.fade"]:
					S(Z, 0, P, 0);
					T(Z, {
						opacity :1
					}, true);
					break;
				case h["rev.diag.exp"]:
					S(Z, 0, 0, 0);
					T(Z, {
						opacity :1,
						width :P,
						height :P
					}, true);
					break;
				case h["block.fade"]:
					S(Z, 0, P, 0);
					F(Z);
					break;
				case h["block.exp"]:
					S(Z, 1, 0, 0);
					F(Z);
					break;
				case h["block.drop"]:
					S(Z, 1, P, -(I * P));
					F(Z);
					break;
				case h["block.top.zz"]:
				case h["block.bottom.zz"]:
					S(Z, 0, P, 0);
					H(Z, aa);
					break;
				case h["block.left.zz"]:
				case h["block.right.zz"]:
					S(Z, 0, P, 0);
					R(Z, aa);
					break;
				case h["spiral.in"]:
					S(Z, 0, P, 0);
					U(Z, false);
					break;
				case h["spiral.out"]:
					S(Z, 0, P, 0);
					U(Z, true);
					break;
				default:
					S(Z, 1, 0, 0);
					G(Z, aa)
				}
			};
			var S = function(Z, af, aj, ae) {
				var ag = 0;
				var ab = 0;
				if (N.autoCenter()) {
					ag = (J - Z.height()) / 2;
					ab = (O - Z.width()) / 2
				}
				var ah = Z.attr("src");
				for ( var ad = 0; ad < I; ad++) {
					for ( var ac = 0; ac < K; ac++) {
						var ai = ((-ad * P) + ag);
						var aa = ((-ac * P) + ab);
						L[ad][ac].css( {
							background :M + " url('" + ah + "') no-repeat",
							backgroundPosition :aa + "px " + ai + "px",
							opacity :af,
							top :(ad * P) + ae,
							left :(ac * P),
							width :aj,
							height :aj,
							"z-index" :3
						})
					}
				}
			};
			var T = function(Z, ah, ae) {
				var ag = new Array(Y);
				var aa, ad, ab, ac;
				var ai = (I - 1) + (K - 1);
				if (ae) {
					aa = ai;
					ad = -1;
					ab = -1;
					ac = E.data("tlId")
				} else {
					aa = 0;
					ad = ai + 1;
					ab = 1;
					ac = E.data("brId")
				}
				var af = 0;
				while (aa != ad) {
					i = Math.min(I - 1, aa);
					while (i >= 0) {
						j = Math.abs(i - aa);
						if (j >= K) {
							break
						}
						ag[af++] = L[i][j];
						i--
					}
					aa += ab
				}
				af = 0;
				X = setInterval( function() {
					ag[af++].animate(ah, D, N.easing(), function() {
						if (a(this).attr("id") == ac) {
							N.setComplete(Z)
						}
					});
					if (af == Y) {
						clearInterval(X)
					}
				}, W)
			};
			var R = function(ac, ad) {
				var ab = true;
				var aa = 0, Z, af, ae;
				if (ad == h["block.left.zz"]) {
					ae = (K % 2 == 0) ? E.data("trId") : E.data("brId");
					Z = 0;
					af = 1
				} else {
					ae = (K % 2 == 0) ? E.data("tlId") : E.data("blId");
					Z = K - 1;
					af = -1
				}
				X = setInterval( function() {
					L[aa][Z].animate( {
						opacity :1
					}, D, N.easing(), function() {
						if (a(this).attr("id") == ae) {
							N.setComplete(ac)
						}
					});
					if (L[aa][Z].attr("id") == ae) {
						clearInterval(X)
					}
					(ab ? aa++ : aa--);
					if (aa == I || aa < 0) {
						ab = !ab;
						aa = (ab ? 0 : I - 1);
						Z += af
					}
				}, W)
			};
			var H = function(ac, ad) {
				var ab = true;
				var aa, Z = 0, af, ae;
				if (ad == h["block.top.zz"]) {
					ae = (I % 2 == 0) ? E.data("blId") : E.data("brId");
					aa = 0;
					af = 1
				} else {
					ae = (I % 2 == 0) ? E.data("tlId") : E.data("trId");
					aa = I - 1;
					af = -1
				}
				X = setInterval( function() {
					L[aa][Z].animate( {
						opacity :1
					}, D, N.easing(), function() {
						if (a(this).attr("id") == ae) {
							N.setComplete(ac)
						}
					});
					if (L[aa][Z].attr("id") == ae) {
						clearInterval(X)
					}
					(ab ? Z++ : Z--);
					if (Z == K || Z < 0) {
						ab = !ab;
						Z = (ab ? 0 : K - 1);
						aa += af
					}
				}, W)
			};
			var G = function(ab, ac) {
				var ae = new Array(Y);
				var af;
				var ad = 0;
				switch (ac) {
				case h["block.left"]:
					af = E.data("brId");
					for ( var Z = 0; Z < K; Z++) {
						for ( var aa = 0; aa < I; aa++) {
							ae[ad++] = L[aa][Z]
						}
					}
					break;
				case h["block.right"]:
					af = E.data("blId");
					for ( var Z = K - 1; Z >= 0; Z--) {
						for ( var aa = 0; aa < I; aa++) {
							ae[ad++] = L[aa][Z]
						}
					}
					break;
				case h["block.top"]:
					af = E.data("brId");
					for ( var aa = 0; aa < I; aa++) {
						for ( var Z = 0; Z < K; Z++) {
							ae[ad++] = L[aa][Z]
						}
					}
					break;
				default:
					af = E.data("trId");
					for ( var aa = I - 1; aa >= 0; aa--) {
						for ( var Z = 0; Z < K; Z++) {
							ae[ad++] = L[aa][Z]
						}
					}
				}
				ad = 0;
				X = setInterval( function() {
					ae[ad++].animate( {
						width :P,
						height :P
					}, D, N.easing(), function() {
						if (a(this).attr("id") == af) {
							N.setComplete(ab)
						}
					});
					if (ad == Y) {
						clearInterval(X)
					}
				}, W)
			};
			var F = function(aa) {
				t(Q);
				var Z = 0;
				count = 0;
				X = setInterval( function() {
					Q[Z].animate( {
						top :Q[Z].data("top"),
						width :P,
						height :P,
						opacity :1
					}, D, N.easing(), function() {
						if (++count == Y) {
							N.setComplete(aa)
						}
					});
					Z++;
					if (Z == Y) {
						clearInterval(X)
					}
				}, W)
			};
			var U = function(Z, ah) {
				var ag = 0, af = 0;
				var ak = I - 1;
				var al = K - 1;
				var ab = 0;
				var ae = al;
				var aj = new Array();
				while (ak >= 0 && al >= 0) {
					var ai = 0;
					while (true) {
						aj[aj.length] = L[ag][af];
						if ((++ai) > ae) {
							break
						}
						switch (ab) {
						case 0:
							af++;
							break;
						case 1:
							ag++;
							break;
						case 2:
							af--;
							break;
						case 3:
							ag--
						}
					}
					switch (ab) {
					case 0:
						ab = 1;
						ae = (--ak);
						ag++;
						break;
					case 1:
						ab = 2;
						ae = (--al);
						af--;
						break;
					case 2:
						ab = 3;
						ae = (--ak);
						ag--;
						break;
					case 3:
						ab = 0;
						ae = (--al);
						af++
					}
				}
				if (aj.length > 0) {
					if (ah) {
						aj.reverse()
					}
					var ad = aj.length - 1;
					var aa = aj[ad].attr("id");
					var ac = 0;
					X = setInterval( function() {
						aj[ac].animate( {
							opacity :1
						}, D, N.easing(), function() {
							if (a(this).attr("id") == aa) {
								N.setComplete(Z)
							}
						});
						if (ac == ad) {
							clearInterval(X)
						}
						ac++
					}, W)
				}
			};
			V()
		}
		function y(by, bt) {
			var an;
			var ar = d(bt.width, 825);
			var bo = d(bt.height, 300);
			var bh = A(bt.button_margin, 4);
			var ao = bt.transition.toLowerCase();
			var aw = d(bt.transition_speed, w);
			var X = d(bt.delay, q);
			var aM = bt.auto_start;
			var V = bt.cpanel_position.toLowerCase();
			var a5 = bt.cpanel_align.toUpperCase();
			var ah = d(bt.button_width, 24);
			var aY = d(bt.button_height, 24);
			var G = bt.display_thumbs;
			var aK = bt.display_dbuttons;
			var aI = bt.display_playbutton;
			var aS = bt.display_numbers;
			var bf = bt.display_thumbimg;
			var ac = bt.display_timer;
			var aC = bt.cpanel_mouseover;
			var aA = bt.text_mouseover;
			var ab = bt.mouseover_pause;
			var ak = bt.tooltip_type.toLowerCase();
			var ay = bt.text_effect.toLowerCase();
			var bu = bt.text_sync;
			var ax = bt.play_once;
			var Y = bt.auto_center;
			var a6 = bt.easing;
			var aj;
			var au;
			var J;
			var I;
			var Q;
			var aO;
			var a0;
			var bc;
			var ap;
			var a7;
			var aR;
			var ag;
			var ai;
			var aU;
			var a9;
			var av;
			var aQ;
			var E;
			var U;
			var F;
			var a1;
			var ad;
			var L;
			var R;
			var P;
			var bd;
			var S;
			var M;
			var aE;
			var aa;
			this.$el = by;
			this.init = function() {
				an = by.find(">div:first").clone();
				ai = by.find(".wt-rotator");
				aU = ai.find("div.screen");
				F = ai.find("div.c-panel");
				L = F.find("div.buttons");
				a1 = F.find("div.thumbnails");
				ad = a1.find(">ul:first>li");
				M = a("<div id='rotator-tooltip'></div>");
				bc = null;
				au = 0;
				J = -1;
				aj = ad.size();
				aE = new Array(aj);
				ap = a7 = aR = false;
				bi(h[ao]);
				aJ();
				a3();
				aV();
				bs();
				aB();
				ai.css( {
					width :ar,
					height :bo + (V == r ? U.outerHeight() : 0)
				});
				if (aA) {
					ai.hover(af, am)
				} else {
					ai.bind(g, a4)
				}
				var bz = aU.css("background-color");
				if (aR) {
					Q = new c(this, ar, bo, d(bt.vert_size, b), bz, aw, d(
							bt.vstripe_delay, 75))
				}
				if (a7) {
					aO = new u(this, ar, bo, d(bt.horz_size, b), bz, aw, d(
							bt.hstripe_delay, 75))
				}
				if (ap) {
					a0 = new m(this, ar, bo, d(bt.block_size, f), bz, aw, d(
							bt.block_delay, 25))
				}
				ba(0);
				aH(au)
			};
			this.setComplete = function(bz) {
				D(bz)
			};
			this.addToScreen = function(bz) {
				av.append(bz)
			};
			this.autoCenter = function() {
				return Y
			};
			this.easing = function() {
				return a6
			};
			var aJ = function() {
				var bz = "<div class='desc'><div class='inner-bg'></div><div class='inner-text'></div></div>								<div class='preloader'></div>								<div id='timer'></div>";
				aU.append(bz);
				aQ = aU.find("div.desc");
				E = aU.find("div.preloader");
				aU.css( {
					width :ar,
					height :bo
				});
				aa = aQ.find("div.inner-text");
				a9 = a("<div id='strip'></div>");
				if (ao == "h.slide") {
					aU.append(a9);
					a9.css( {
						width :2 * ar,
						height :bo
					});
					ad.removeAttr("effect")
				} else {
					if (ao == "v.slide") {
						aU.append(a9);
						a9.css( {
							width :ar,
							height :2 * bo
						});
						ad.removeAttr("effect")
					} else {
						aU.append("<a href='#'></a>");
						av = aU.find(">a:first")
					}
				}
			};
			var bs = function() {
				if (G || aK || aI) {
					var bA = ar - (L.width() + bh);
					if (a1.width() > bA) {
						a1.width(bA)
					}
					if (V == l) {
						F.css( {
							"margin-top" :bh,
							"margin-right" :0,
							"margin-bottom" :bh,
							"margin-left" :0
						});
						var bz = F.outerHeight(true);
						switch (k[a5]) {
						case k.TL:
							bl(0, -bz);
							a8("left");
							break;
						case k.TC:
							bl(0, -bz);
							a8("center");
							break;
						case k.TR:
							bl(0, -bz);
							a8("right");
							break;
						case k.BL:
							bl((bo - bz), bo);
							a8("left");
							break;
						case k.BC:
							bl((bo - bz), bo);
							a8("center");
							break;
						default:
							bl((bo - bz), bo);
							a8("right")
						}
						if (aC) {
							ai.hover(bv, aD)
						}
					} else {
						F.wrap("<div class='outer-cp'></div>");
						U = ai.find(".outer-cp");
						U.css( {
							"padding-top" :bh,
							"padding-bottom" :bh,
							height :F.height()
						});
						switch (k[a5]) {
						case k.TL:
							bx(true);
							a8("left");
							break;
						case k.TC:
							bx(true);
							a8("center");
							break;
						case k.TR:
							bx(true);
							a8("right");
							break;
						case k.BL:
							bx(false);
							a8("left");
							break;
						case k.BC:
							bx(false);
							a8("center");
							break;
						default:
							bx(false);
							a8("right")
						}
					}
					F.css("visibility", "visible").click(al)
				}
			};
			var bl = function(bz, bA) {
				F.data( {
					offset :bA,
					pos :bz
				}).css( {
					top :(aC ? bA : bz)
				})
			};
			var bx = function(bz) {
				if (bz) {
					U.css( {
						"border-top" :"none",
						top :0
					});
					aU.css("top", U.outerHeight())
				} else {
					U.css( {
						"border-bottom" :"none",
						top :bo
					});
					aU.css("top", 0)
				}
				F.css("top", bh)
			};
			var a8 = function(bz) {
				if (bz == "center") {
					F.css("left", Math
							.round((ar - F.outerWidth(true) - bh) / 2));
					a1.css("float", "left");
					L.css("float", "left");
					F.prepend(a1)
				} else {
					if (bz == "left") {
						F.css("left", bh);
						a1.css("float", "left");
						L.css("float", "left")
					} else {
						F.css("right", 0);
						a1.css("float", "right");
						L.css("float", "right")
					}
				}
				if (G) {
					F.height(a1.height())
				} else {
					F.height(L.height())
				}
			};
			var aV = function() {
				R = L.find("div.play-btn");
				P = L.find("div.prev-btn");
				bd = L.find("div.next-btn");
				var bz = {
					"margin-right" :bh,
					width :ah,
					height :aY
				};
				if (aK) {
					P.css(bz).click(at).mouseover(H).mouseout(aZ).mousedown(al);
					bd.css(bz).click(K).mouseover(H).mouseout(aZ).mousedown(al)
				} else {
					P.hide();
					bd.hide()
				}
				if (aI) {
					if (aM) {
						R.addClass("pause")
					}
					R.css(bz).click(ae).mouseover(H).mouseout(aZ).mousedown(al)
				} else {
					R.hide()
				}
				if (ab) {
					ai.hover(aP, Z)
				}
			};
			var aB = function() {
				S = aU.find("#timer").data("pct", 1);
				if (ac) {
					var bz = bt.timer_align.toLowerCase();
					S.css("visibility", "visible");
					S.css("top", bz == "top" ? 0 : bo - S.height())
				} else {
					S.hide()
				}
			};
			var a3 = function() {
				var bz = aa.outerHeight() - aa.height();
				ad.each( function(bC) {
					var bB = a(this).find(">a:first");
					var bA = h[a(this).attr("effect")];
					if (bA == undefined || bA == h["h.slide"]
							|| bA == h["v.slide"]) {
						bA = h[ao]
					} else {
						bi(bA)
					}
					a(this).data( {
						imgurl :bB.attr("href"),
						caption :bB.attr("title"),
						effect :bA,
						delay :d(a(this).attr("delay"), X)
					});
					bk(a(this), bz);
					aE[bC] = a(this);
					if (aS) {
						a(this).append(bC + 1)
					}
				});
				aa.css( {
					width :"auto",
					height :"auto"
				}).html("");
				aQ.css("visibility", "visible");
				if (bf) {
					ad.addClass("image");
					ad.find(">a:first").removeAttr("title").find(">img")
							.removeAttr("alt")
				}
				if (bt.shuffle) {
					O()
				}
				if (G) {
					ad.css( {
						width :ah,
						height :aY,
						"line-height" :aY + "px",
						"margin-right" :bh
					}).mouseover(bn).mouseout(W).mousedown(al);
					a1.height(ad.outerHeight(true)).click(az);
					if (ak == "text" || ak == "image") {
						bm()
					}
				} else {
					ad.hide()
				}
			};
			var bk = function(bz, bB) {
				var bA = bz.find(">div:hidden");
				var bD = d(parseInt(bA.css("width")) - bB, 300);
				var bC = d(parseInt(bA.css("height")) - bB, 0);
				aa.width(bD).html(bA.html());
				if (bC < aa.height()) {
					bC = aa.height()
				}
				bz.data("textbox", {
					x :bA.css("left"),
					y :bA.css("top"),
					w :bD + bB,
					h :bC + bB + 1,
					color :bA.css("color"),
					bgcolor :bA.css("background-color")
				})
			};
			var bm = function() {
				a("body").append(M);
				var bz, bA;
				if (ak == "text") {
					M.append("<div class='tt-txt'></div>");
					bz = "txt-up";
					bA = "txt-down";
					ad.mouseover(bq).mouseout(aN).bind("mousemove", T)
				} else {
					if (ak == "image") {
						aX();
						bz = "img-up";
						bA = "img-down";
						ad.mouseover(bj).mouseout(aN)
					}
				}
				switch (k[a5]) {
				case k.TL:
				case k.TC:
				case k.TR:
					M.data("bottom", true).addClass(bA);
					break;
				default:
					M.data("bottom", false).addClass(bz)
				}
				if (jQuery.browser.msie
						&& parseInt(jQuery.browser.version) <= 6) {
					M.css("background-image", "none").children().css("margin",
							0)
				}
			};
			var bj = function(bA) {
				var bz = aE[a(this).index()].data("ttImg");
				if (bz != undefined) {
					M.find(">img").hide();
					bz.show();
					if (bz[0].complete || bz[0].readyState == "complete") {
						var bC = M.data("bottom") ? a(this).outerHeight() : -M
								.outerHeight();
						var bB = a(this).offset();
						M.css(
								{
									top :bB.top + bC,
									left :bB.left
											+ ((a(this).outerWidth() - M
													.outerWidth()) / 2)
								}).stop(true, true).delay(n).fadeIn(300)
					}
				}
			};
			var bq = function(bA) {
				var bz = aE[a(this).index()].data("caption");
				if (bz != "") {
					M.find(">div.tt-txt").html(bz);
					var bB = M.data("bottom") ? 0 : -M.outerHeight(true);
					M.css( {
						top :bA.pageY + bB,
						left :bA.pageX
					}).stop(true, true).delay(n).fadeIn(300)
				}
			};
			var T = function(bz) {
				var bA = M.data("bottom") ? 0 : -M.outerHeight(true);
				M.css( {
					top :bz.pageY + bA,
					left :bz.pageX
				})
			};
			var aN = function() {
				M.stop(true, true).fadeOut(0)
			};
			var bv = function() {
				F.stop(true).animate( {
					top :F.data("pos"),
					opacity :1
				}, v)
			};
			var aD = function() {
				F.stop(true).animate( {
					top :F.data("offset"),
					opacity :0
				}, v)
			};
			var az = function(bB) {
				var bz = a(bB.target);
				if (bz[0].nodeName != "LI") {
					bz = bz.parents("li").eq(0)
				}
				var bA = bz.index();
				if (bA > -1 && bA != au) {
					ag = bA < au ? B : C;
					be();
					J = au;
					au = bA;
					aH(au);
					aN()
				}
				return false
			};
			var bn = function() {
				a(this).addClass("thumb-over")
			};
			var W = function() {
				a(this).removeClass("thumb-over")
			};
			var at = function() {
				ag = B;
				be();
				J = au;
				au = (au > 0) ? (au - 1) : (aj - 1);
				aH(au);
				return false
			};
			var K = function() {
				ag = C;
				be();
				J = au;
				au = (au < aj - 1) ? (au + 1) : 0;
				aH(au);
				return false
			};
			var ae = function() {
				aM = !aM;
				a(this).toggleClass("pause", aM);
				aM ? aT() : N();
				return false
			};
			var Z = function() {
				aM = true;
				R.toggleClass("pause", aM);
				aT()
			};
			var aP = function() {
				aM = false;
				R.toggleClass("pause", aM);
				N()
			};
			var aF = function(bz) {
				if (bz == aj - 1) {
					aM = false;
					R.toggleClass("pause", aM)
				}
			};
			var H = function() {
				a(this).addClass("button-over")
			};
			var aZ = function() {
				a(this).removeClass("button-over")
			};
			var a4 = function(bA) {
				if (!aQ.data("visible")) {
					aQ.data("visible", true);
					var bB = aE[au].find(">div:first").html();
					if (bB && bB.length > 0) {
						var bz = aE[au].data("textbox");
						aa.css("color", bz.color);
						aQ.find(".inner-bg").css( {
							"background-color" :bz.bgcolor,
							height :bz.h - 1
						});
						switch (x[ay]) {
						case x.fade:
							aW(bB, bz);
							break;
						case x.down:
							bg(bB, bz, {
								width :bz.w,
								height :0
							}, {
								height :bz.h
							});
							break;
						case x.right:
							bg(bB, bz, {
								width :0,
								height :bz.h
							}, {
								width :bz.w
							});
							break;
						case x.left:
							bg(bB, bz, {
								"margin-left" :bz.w,
								width :0,
								height :bz.h
							}, {
								width :bz.w,
								"margin-left" :0
							});
							break;
						case x.up:
							bg(bB, bz, {
								"margin-top" :bz.h,
								height :0,
								width :bz.w
							}, {
								height :bz.h,
								"margin-top" :0
							});
							break;
						default:
							bw(bB, bz)
						}
					}
				}
			};
			var bp = function() {
				aQ.data("visible", false).stop(true, true);
				switch (x[ay]) {
				case x.fade:
				case x.down:
				case x.right:
				case x.left:
				case x.up:
					if (jQuery.browser.msie) {
						aa.css("opacity", 0)
					}
					aQ.fadeOut(v, function() {
						a(this).css("display", "none")
					});
					break;
				default:
					aQ.css("display", "none")
				}
			};
			var bg = function(bC, bB, bA, bz) {
				aa.css("opacity", 1).html("");
				aQ.stop(true, true).css( {
					display :"block",
					top :bB.y,
					left :bB.x,
					"margin-top" :0,
					"margin-left" :0
				}).css(bA).animate(bz, v, function() {
					aa.html(bC)
				})
			};
			var aW = function(bA, bz) {
				aa.css("opacity", 1).html(bA);
				aQ.css( {
					top :bz.y,
					left :bz.x,
					width :bz.w,
					height :bz.h
				}).stop(true, true).fadeIn(v, function() {
					if (jQuery.browser.msie) {
						aa[0].style.removeAttribute("filter")
					}
				})
			};
			var bw = function(bA, bz) {
				aQ.stop(true).css( {
					display :"block",
					top :bz.y,
					left :bz.x,
					width :bz.w,
					height :bz.h
				});
				aa.html(bA)
			};
			var af = function() {
				ai.unbind(g).bind(g, a4).trigger(g)
			};
			var am = function() {
				ai.unbind(g);
				bp()
			};
			var aH = function(bB) {
				if (ax) {
					aF(bB)
				}
				ad.filter(".curr-thumb").removeClass("curr-thumb");
				a(ad.get(bB)).addClass("curr-thumb");
				I = aE[bB].data("delay");
				bp();
				if (!bu) {
					ai.trigger(g)
				}
				if (av) {
					var bC = aE[bB].find(">a:nth-child(2)");
					var bz = bC.attr("href");
					if (bz) {
						av.unbind("click", al).css("cursor", "pointer").attr( {
							href :bz,
							target :bC.attr("target")
						})
					} else {
						av.click(al).css("cursor", "default")
					}
				}
				if (aE[bB].data("img")) {
					E.hide();
					aL(aE[bB].data("img"))
				} else {
					var bA = a("<img class='main-img'/>");
					bA.load( function() {
						E.hide();
						br(aE[bB], a(this));
						aL(a(this))
					}).error( function() {
						alert("Error loading image")
					});
					E.show();
					bA.attr("src", aE[bB].data("imgurl"))
				}
			};
			var aL = function(bz) {
				if (aR) {
					Q.clear();
					aq()
				}
				if (a7) {
					aO.clear();
					aq()
				}
				if (ap) {
					a0.clear();
					aq()
				}
				var bA = aE[au].data("effect");
				if (bA == h.none || bA == undefined) {
					D(bz);
					return
				} else {
					if (bA == h.fade) {
						bb(bz);
						return
					} else {
						if (bA == h["h.slide"]) {
							a2(bz, "left", ar);
							return
						} else {
							if (bA == h["v.slide"]) {
								a2(bz, "top", bo);
								return
							}
						}
					}
				}
				if (bA == h.random) {
					bA = Math.floor(Math.random() * (e - 5))
				}
				if (bA <= h["spiral.out"]) {
					a0.displayContent(bz, bA)
				} else {
					if (bA <= h["vert.random.fade"]) {
						Q.displayContent(bz, bA)
					} else {
						aO.displayContent(bz, bA)
					}
				}
			};
			var aq = function() {
				if (J >= 0) {
					var bA = av.find("img#curr-img").attr("src");
					var bB = aE[J].data("imgurl");
					if (bA != bB) {
						av.find("img.main-img").attr("id", "").hide();
						var bz = av.find("img.main-img").filter( function() {
							return a(this).attr("src") == bB
						});
						a(bz.get(0)).show()
					}
				}
			};
			var D = function(bz) {
				if (bu) {
					ai.trigger(g)
				}
				av.find("img.main-img").attr("id", "").hide();
				bz.attr("id", "curr-img").show();
				aT()
			};
			var bb = function(bz) {
				av.find("img#curr-img").stop(true, true);
				av.find("img.main-img").attr("id", "").css("z-index", 0);
				bz.attr("id", "curr-img").stop(true, true).css( {
					opacity :0,
					"z-index" :1
				}).show().animate( {
					opacity :1
				}, aw, a6, function() {
					av.find("img.main-img:not('#curr-img')").hide();
					if (bu) {
						ai.trigger(g)
					}
					aT()
				})
			};
			var a2 = function(bD, bF, bC) {
				a9.stop(true, true);
				var bz = a("#curr-img", a9);
				if (bz.size() > 0) {
					a9.find(".main-img").attr("id", "").parents(".content-box")
							.css( {
								top :0,
								left :0
							});
					bD.attr("id", "curr-img").parents(".content-box").show();
					var bB, bA;
					if (ag == B) {
						a9.css(bF, -bC);
						bB = bz;
						bA = 0
					} else {
						bB = bD;
						bA = -bC
					}
					bB.parents(".content-box").css(bF, bC);
					var bE = (bF == "top") ? {
						top :bA
					} : {
						left :bA
					};
					a9.stop(true, true).animate(
							bE,
							aw,
							a6,
							function() {
								a9.find(".main-img:not('#curr-img')").parents(
										".content-box").hide();
								bB.parents(".content-box").css( {
									top :0,
									left :0
								});
								a9.css( {
									top :0,
									left :0
								});
								if (bu) {
									ai.trigger(g)
								}
								aT()
							})
				} else {
					a9.css( {
						top :0,
						left :0
					});
					a9.find(".main-img").parents(".content-box").hide().css( {
						top :0,
						left :0
					});
					bD.attr("id", "curr-img").parents(".content-box").show();
					if (bu) {
						ai.trigger(g)
					}
					aT()
				}
			};
			var aX = function(bB) {
				for ( var bB = 0; bB < aj; bB++) {
					var bz = aE[bB];
					var bA = bz.find(">a:first>img");
					if (bA.size() == 1) {
						bA.addClass("tt-img");
						M.append(bA);
						bz.data("ttImg", bA)
					}
				}
			};
			var ba = function(bA) {
				try {
					var bz = aE[bA];
					var bC = a("<img class='main-img'/>");
					bC.load( function() {
						if (!bz.data("img")) {
							br(bz, a(this))
						}
						bA++;
						if (bA < aj) {
							ba(bA)
						}
					}).error( function() {
						bA++;
						if (bA < aj) {
							ba(bA)
						}
					});
					bC.attr("src", bz.data("imgurl"))
				} catch (bB) {
				}
			};
			var br = function(bB, bC) {
				if (ao == "h.slide" || ao == "v.slide") {
					a9.append(bC);
					aG(bC);
					var bz = a("<div class='content-box'></div>").css( {
						width :ar,
						height :bo
					});
					bC.wrap(bz);
					bC.css("display", "block");
					var bA = bB.find(">a:nth-child(2)");
					if (bA) {
						bC.wrap(bA)
					}
				} else {
					av.append(bC);
					aG(bC)
				}
				bB.data("img", bC)
			};
			var aG = function(bC) {
				if (Y && bC.width() > 0 && bC.height() > 0) {
					var bF = (bo - bC.height()) / 2;
					var bB = (ar - bC.width()) / 2;
					var bE = 0, bD = 0, bA = 0, bz = 0;
					if (bF > 0) {
						bA = bF
					} else {
						if (bF < 0) {
							bE = bF
						}
					}
					if (bB > 0) {
						bz = bB
					} else {
						if (bB < 0) {
							bD = bB
						}
					}
					bC.css( {
						top :bE,
						left :bD,
						"padding-top" :bA,
						"padding-bottom" :bA,
						"padding-left" :bz,
						"padding-right" :bz
					})
				}
			};
			var aT = function() {
				if (aM && bc == null) {
					var bz = Math.round(S.data("pct") * I);
					S.animate( {
						width :(ar + 1)
					}, bz, "linear");
					bc = setTimeout(K, bz)
				}
			};
			var be = function() {
				clearTimeout(bc);
				bc = null;
				S.stop(true).width(0).data("pct", 1)
			};
			var N = function() {
				clearTimeout(bc);
				bc = null;
				var bz = 1 - (S.width() / (ar + 1));
				S.stop(true).data("pct", bz)
			};
			var O = function() {
				for ( var bB = 0; bB < aE.length; bB++) {
					var bz = Math.floor(Math.random() * aE.length);
					var bA = aE[bB];
					aE[bB] = aE[bz];
					aE[bz] = bA
				}
			};
			var bi = function(bz) {
				if (bz == h.random) {
					ap = a7 = aR = true
				} else {
					if (bz <= h["spiral.out"]) {
						ap = true
					} else {
						if (bz <= h["vert.random.fade"]) {
							aR = true
						} else {
							if (bz <= h["horz.random.fade"]) {
								a7 = true
							}
						}
					}
				}
			};
			var al = function() {
				return false
			};
			this.undoChanges = function() {
				be();
				if (aR) {
					Q.clear()
				}
				if (a7) {
					aO.clear()
				}
				if (ap) {
					a0.clear()
				}
				a("#rotator-tooltip").remove();
				by.empty();
				by.append(an)
			};
			this.updateChanges = function() {
				this.init()
			};
			this.setMouseoverPause = function(bz) {
				ab = bz
			};
			this.setMouseoverText = function(bz) {
				aA = bz
			};
			this.setMouseoverCPanel = function(bz) {
				aC = bz
			};
			this.setTransition = function(bz) {
				ao = bz
			};
			this.setEasing = function(bz) {
				a6 = bz
			};
			this.setTextEffect = function(bz) {
				ay = bz
			};
			this.setThumbs = function(bz) {
				G = bz
			};
			this.setDButtons = function(bz) {
				aK = bz
			};
			this.setPlayButton = function(bz) {
				aI = bz
			};
			this.setTimerBar = function(bz) {
				ac = bz
			};
			this.setCpanelAlign = function(bz) {
				a5 = bz
			};
			this.setCpanelPos = function(bz) {
				V = bz
			};
			this.setTooltipType = function(bz) {
				ak = bz
			}
		}
		var d = function(D, E) {
			if (!isNaN(D) && D > 0) {
				return D
			}
			return E
		};
		var A = function(D, E) {
			if (!isNaN(D) && D >= 0) {
				return D
			}
			return E
		};
		var t = function(D) {
			var H = D.length;
			for ( var G = 0; G < H; G++) {
				var E = Math.floor(Math.random() * H);
				var F = D[G];
				D[G] = D[E];
				D[E] = F
			}
		};
		var p = {
			width :825,
			height :300,
			button_width :24,
			button_height :24,
			button_margin :4,
			auto_start :true,
			delay :q,
			transition :"fade",
			transition_speed :w,
			cpanel_position :l,
			cpanel_align :"BR",
			timer_align :"top",
			display_thumbs :true,
			display_dbuttons :true,
			display_playbutton :true,
			display_imgtooltip :true,
			display_numbers :true,
			display_thumbimg :false,
			display_timer :true,
			mouseover_pause :false,
			cpanel_mouseover :false,
			text_mouseover :false,
			text_effect :"fade",
			text_sync :true,
			tooltip_type :"text",
			shuffle :false,
			play_once :false,
			auto_center :false,
			block_size :f,
			vert_size :b,
			horz_size :b,
			block_delay :25,
			vstripe_delay :75,
			hstripe_delay :75,
			easing :""
		};
		var s = a.extend( {}, p, z);
		return this.each( function() {
			rotator = new y(a(this), s);
			rotator.init()
		})
	}
})(jQuery);
