/*!
 * SuperSlide v2.1 
 * 轻松解决网站大部分特效展示问题 *
 * Copyright 2011-2013, 大话主席
 * 请尊重原创，保留头部版权
 * 在保留版权的前提下可应用于个人或商业用途
 */
(function(a) {
	a.fn.slide = function(b) {
		return a.fn.slide.defaults = {
			type: "slide",
			effect: "fade",
			autoPlay: !1,
			delayTime: 1000,
			interTime: 4000,
			triggerTime: 150,
			defaultIndex: 0,
			titCell: ".hd li",
			mainCell: ".bd",
			targetCell: null,
			trigger: "mouseover",
			scroll: 1,
			vis: 1,
			titOnClassName: "on",
			autoPage:true,
			prevCell: ".prev",
			nextCell: ".next",
			pageStateCell: ".pageState",
			opp: !1,
			pnLoop: !0,
			easing: "swing",
			startFun: null,
			endFun: null,
			switchLoad: null,
			playStateCell: ".playState",
			mouseOverStop: !0,
			defaultPlay: !0,
			returnDefault: !1
		},
		this.each(function() {
			var c = a.extend({},
			a.fn.slide.defaults, b),
			d = a(this),
			e = c.effect,
			f = a(c.prevCell, d),
			g = a(c.nextCell, d),
			h = a(c.pageStateCell, d),
			i = a(c.playStateCell, d),
			j = a(c.titCell, d),
			k = j.size(),
			l = a(c.mainCell, d),
			m = l.children().size(),
			n = c.switchLoad,
			o = a(c.targetCell, d),
			p = parseInt(c.defaultIndex),
			q = parseInt(c.delayTime),
			r = parseInt(c.interTime);
			parseInt(c.triggerTime);
			var P, t = parseInt(c.scroll),
			u = parseInt(c.vis),
			v = "false" == c.autoPlay || 0 == c.autoPlay ? !1 : !0,
			w = "false" == c.opp || 0 == c.opp ? !1 : !0,
			x = "false" == c.autoPage || 0 == c.autoPage ? !1 : !0,
			y = "false" == c.pnLoop || 0 == c.pnLoop ? !1 : !0,
			z = "false" == c.mouseOverStop || 0 == c.mouseOverStop ? !1 : !0,
			A = "false" == c.defaultPlay || 0 == c.defaultPlay ? !1 : !0,
			B = "false" == c.returnDefault || 0 == c.returnDefault ? !1 : !0,
			C = 0,
			D = 0,
			E = 0,
			F = 0,
			G = c.easing,
			H = null,
			I = null,
			J = null,
			K = c.titOnClassName,
			L = j.index(d.find("." + K)),
			M = p = defaultIndex = -1 == L ? p: L,
			N = p,
			O = m >= u ? 0 != m % t ? m % t: t: 0,
			Q = "leftMarquee" == e || "topMarquee" == e ? !0 : !1,
			R = function() {
				a.isFunction(c.startFun) && c.startFun(p, k, d, a(c.titCell, d), l, o, f, g)
			},
			S = function() {
				a.isFunction(c.endFun) && c.endFun(p, k, d, a(c.titCell, d), l, o, f, g)
			},
			T = function() {
				j.removeClass(K),
				A && j.eq(defaultIndex).addClass(K)
			};
			if ("menu" == c.type) return A && j.removeClass(K).eq(p).addClass(K),
			j.hover(function() {
				P = a(this).find(c.targetCell);
				var b = j.index(a(this));
				I = setTimeout(function() {
					switch (p = b, j.removeClass(K).eq(p).addClass(K), R(), e) {
					case "fade":
						P.stop(!0, !0).animate({
							opacity: "show"
						},
						q, G, S);
						break;
					case "slideDown":
						P.stop(!0, !0).animate({
							height: "show"
						},
						q, G, S)
					}
				},
				c.triggerTime)
			},
			function() {
				
				switch (clearTimeout(I), e) {
				case "fade":
					P.animate({
						opacity:
						"hide"
					},
					q, G);
					break;
				case "slideDown":
					P.animate({
						height:
						"hide"
					},
					q, G)
				}
			}),
			B && d.hover(function() {
				clearTimeout(J)
			},
			function() {
				J = setTimeout(T, q)
			}),
			void 0;
			if (0 == k && (k = m), Q && (k = 2), x) {
				if (m >= u) if ("leftLoop" == e || "topLoop" == e) k = 0 != m % t ? (0 ^ m / t) + 1 : m / t;
				else {
					var U = m - u;
					k = 1 + parseInt(0 != U % t ? U / t + 1 : U / t),
					0 >= k && (k = 1)
				} else k = 1;
				j.html("");
				var V = "";
				if (1 == c.autoPage || "true" == c.autoPage) for (var W = 0; k > W; W++) V += "<li>" + (W + 1) + "</li>";
				else for (var W = 0; k > W; W++) V += c.autoPage.replace("$", W + 1);
				j.html(V);
				var j = j.children()
			}
			if (m >= u) {
				
				l.children().each(function() {
					a(this).width() > E && (E = a(this).width(), 
					D = a(this).outerWidth(!0)),
					a(this).height() > F && (F = a(this).height(), C = a(this).outerHeight(!0))
				});
				var X = l.children(),
				Y = function() {
					for (var a = 0; u > a; a++) X.eq(a).clone().addClass("clone").appendTo(l);
					for (var a = 0; O > a; a++) X.eq(m - a - 1).clone().addClass("clone").prependTo(l)
				};
				switch (e) {
				case "fold":
					l.css({
						position:
						"relative",
						width:"100%",
						/*height: C*/
					}).children().css({
						position: "absolute",
						width:"100%",
						left: 0,
						top: 0,
						display: "none"
					});
					break;
				case "top":
					l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + u * C + 'px"></div>').css({
						top: -(p * t) * C,
						position: "relative",
						padding: "0",
						margin: "0"
					}).children().css({
						height: F
					});
					break;
				case "left":
					l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + u * D + 'px"></div>').css({
						width: m * D,
						left: -(p * t) * D,
						position: "relative",
						overflow: "hidden",
						padding: "0",
						margin: "0"
					}).children().css({
						"float": "left",
						width: E
					});
					break;
				case "leftLoop":
				case "leftMarquee":
					Y(),
					l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + u * D + 'px"></div>').css({
						width: (m + u + O) * D,
						position: "relative",
						overflow: "hidden",
						padding: "0",
						margin: "0",
						left: -(O + p * t) * D
					}).children().css({
						"float": "left",
						width: E
					});
					break;
				case "topLoop":
				case "topMarquee":
					Y(),
					l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + u * C + 'px"></div>').css({
						height: (m + u + O) * C,
						position: "relative",
						padding: "0",
						margin: "0",
						top: -(O + p * t) * C
					}).children().css({
						height: F
					})
				}
			}
			var Z = function(a) {
				var b = a * t;
				return a == k ? b = m: -1 == a && 0 != m % t && (b = -m % t),
				b
			},
			$ = function(b) {
				var c = function(c) {
					for (var d = c; u + c > d; d++) b.eq(d).find("img[" + n + "]").each(function() {
						var b = a(this);
						if (b.attr("src", b.attr(n)).removeAttr(n), l.find(".clone")[0]) for (var c = l.children(), d = 0; c.size() > d; d++) c.eq(d).find("img[" + n + "]").each(function() {
							a(this).attr(n) == b.attr("src") && a(this).attr("src", a(this).attr(n)).removeAttr(n)
						})
					})
				};
				switch (e) {
				case "fade":
				case "fold":
				case "top":
				case "left":
				case "slideDown":
					c(p * t);
					break;
				case "leftLoop":
				case "topLoop":
					c(O + Z(N));
					break;
				case "leftMarquee":
				case "topMarquee":
					var d = "leftMarquee" == e ? l.css("left").replace("px", "") : l.css("top").replace("px", ""),
					f = "leftMarquee" == e ? D: C,
					g = O;
					if (0 != d % f) {
						var h = Math.abs(0 ^ d / f);
						g = 1 == p ? O + h: O + h - 1
					}
					c(g)
				}
			},
			_ = function(a) {
				if (!A || M != p || a || Q) {
					if (Q ? p >= 1 ? p = 1 : 0 >= p && (p = 0) : (N = p, p >= k ? p = 0 : 0 > p && (p = k - 1)), R(), null != n && $(l.children()), o[0] && (P = o.eq(p), null != n && $(o), "slideDown" == e ? (o.not(P).stop(!0, !0).slideUp(q), P.slideDown(q, G,
					function() {
						l[0] || S()
					})) : (o.not(P).stop(!0, !0).hide(), P.animate({
						opacity: "show"
					},
					q,
					function() {
						l[0] || S()
					}))), m >= u) switch (e) {
					case "fade":
						l.children().stop(!0, !0).eq(p).animate({
							opacity: "show"
						},
						q, G,
						function() {
							S()
						}).siblings().hide();
						break;
					case "fold":
						l.children().stop(!0, !0).eq(p).animate({
							opacity: "show"
						},
						q, G,
						function() {
							S()
						}).siblings().animate({
							opacity: "hide"
						},
						q, G);
						break;
					case "top":
						l.stop(!0, !1).animate({
							top: -p * t * C
						},
						q, G,
						function() {
							S()
						});
						break;
					case "left":
						l.stop(!0, !1).animate({
							left: -p * t * D
						},
						q, G,
						function() {
							S()
						});
						break;
					case "leftLoop":
						var b = N;
						l.stop(!0, !0).animate({
							left: -(Z(N) + O) * D
						},
						q, G,
						function() { - 1 >= b ? l.css("left", -(O + (k - 1) * t) * D) : b >= k && l.css("left", -O * D),
							S()
						});
						break;
					case "topLoop":
						var b = N;
						l.stop(!0, !0).animate({
							top: -(Z(N) + O) * C
						},
						q, G,
						function() { - 1 >= b ? l.css("top", -(O + (k - 1) * t) * C) : b >= k && l.css("top", -O * C),
							S()
						});
						break;
					case "leftMarquee":
						var c = l.css("left").replace("px", "");
						0 == p ? l.animate({
							left: ++c
						},
						0,
						function() {
							l.css("left").replace("px", "") >= 0 && l.css("left", -m * D)
						}) : l.animate({
							left: --c
						},
						0,
						function() { - (m + O) * D >= l.css("left").replace("px", "") && l.css("left", -O * D)
						});
						break;
					case "topMarquee":
						var d = l.css("top").replace("px", "");
						0 == p ? l.animate({
							top: ++d
						},
						0,
						function() {
							l.css("top").replace("px", "") >= 0 && l.css("top", -m * C)
						}) : l.animate({
							top: --d
						},
						0,
						function() { - (m + O) * C >= l.css("top").replace("px", "") && l.css("top", -O * C)
						})
					}
					j.removeClass(K).eq(p).addClass(K),
					M = p,
					y || (g.removeClass("nextStop"), f.removeClass("prevStop"), 0 == p && f.addClass("prevStop"), p == k - 1 && g.addClass("nextStop")),
					h.html("<span>" + (p + 1) + "</span>/" + k)
				}
			};
			A && _(!0),
			B && d.hover(function() {
				clearTimeout(J)
			},
			function() {
				J = setTimeout(function() {
					p = defaultIndex,
					A ? _() : "slideDown" == e ? P.slideUp(q, T) : P.animate({
						opacity: "hide"
					},
					q, T),
					M = p
				},
				300)
			});
			var ab = function(a) {
				H = setInterval(function() {
					w ? p--:p++,
					_()
				},
				a ? a: r)
			},
			bb = function(a) {
				H = setInterval(_, a ? a: r)
			},
			cb = function() {
				z || (clearInterval(H), ab())
			},
			db = function() { (y || p != k - 1) && (p++, _(), Q || cb())
			},
			eb = function() { (y || 0 != p) && (p--, _(), Q || cb())
			},
			fb = function() {
				clearInterval(H),
				Q ? bb() : ab(),
				i.removeClass("pauseState")
			},
			gb = function() {
				clearInterval(H),
				i.addClass("pauseState")
			};
			if (v ? Q ? (w ? p--:p++, bb(), z && l.hover(gb, fb)) : (ab(), z && d.hover(gb, fb)) : (Q && (w ? p--:p++), i.addClass("pauseState")), i.click(function() {
				i.hasClass("pauseState") ? fb() : gb()
			}), "mouseover" == c.trigger ? j.hover(function() {
				var a = j.index(this);
				I = setTimeout(function() {
					p = a,
					_(),
					cb()
				},
				c.triggerTime)
			},
			function() {
				clearTimeout(I)
			}) : j.click(function() {
				p = j.index(this),
				_(),
				cb()
			}), Q) {
				if (g.mousedown(db), f.mousedown(eb), y) {
					var hb, ib = function() {
						hb = setTimeout(function() {
							clearInterval(H),
							bb(0 ^ r / 10)
						},
						150)
					},
					jb = function() {
						clearTimeout(hb),
						clearInterval(H),
						bb()
					};
					g.mousedown(ib),
					g.mouseup(jb),
					f.mousedown(ib),
					f.mouseup(jb)
				}
				"mouseover" == c.trigger && (g.hover(db,
				function() {}), f.hover(eb,
				function() {}))
			} else g.click(db),
			f.click(eb)
		})
	}
})(jQuery),
jQuery.easing.jswing = jQuery.easing.swing,
jQuery.extend(jQuery.easing, {
	def: "easeOutQuad",
	swing: function(a, b, c, d, e) {
		return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
	},
	easeInQuad: function(a, b, c, d, e) {
		return d * (b /= e) * b + c
	},
	easeOutQuad: function(a, b, c, d, e) {
		return - d * (b /= e) * (b - 2) + c
	},
	easeInOutQuad: function(a, b, c, d, e) {
		return 1 > (b /= e / 2) ? d / 2 * b * b + c: -d / 2 * (--b * (b - 2) - 1) + c
	},
	easeInCubic: function(a, b, c, d, e) {
		return d * (b /= e) * b * b + c
	},
	easeOutCubic: function(a, b, c, d, e) {
		return d * ((b = b / e - 1) * b * b + 1) + c
	},
	easeInOutCubic: function(a, b, c, d, e) {
		return 1 > (b /= e / 2) ? d / 2 * b * b * b + c: d / 2 * ((b -= 2) * b * b + 2) + c
	},
	easeInQuart: function(a, b, c, d, e) {
		return d * (b /= e) * b * b * b + c
	},
	easeOutQuart: function(a, b, c, d, e) {
		return - d * ((b = b / e - 1) * b * b * b - 1) + c
	},
	easeInOutQuart: function(a, b, c, d, e) {
		return 1 > (b /= e / 2) ? d / 2 * b * b * b * b + c: -d / 2 * ((b -= 2) * b * b * b - 2) + c
	},
	easeInQuint: function(a, b, c, d, e) {
		return d * (b /= e) * b * b * b * b + c
	},
	easeOutQuint: function(a, b, c, d, e) {
		return d * ((b = b / e - 1) * b * b * b * b + 1) + c
	},
	easeInOutQuint: function(a, b, c, d, e) {
		return 1 > (b /= e / 2) ? d / 2 * b * b * b * b * b + c: d / 2 * ((b -= 2) * b * b * b * b + 2) + c
	},
	easeInSine: function(a, b, c, d, e) {
		return - d * Math.cos(b / e * (Math.PI / 2)) + d + c
	},
	easeOutSine: function(a, b, c, d, e) {
		return d * Math.sin(b / e * (Math.PI / 2)) + c
	},
	easeInOutSine: function(a, b, c, d, e) {
		return - d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
	},
	easeInExpo: function(a, b, c, d, e) {
		return 0 == b ? c: d * Math.pow(2, 10 * (b / e - 1)) + c
	},
	easeOutExpo: function(a, b, c, d, e) {
		return b == e ? c + d: d * ( - Math.pow(2, -10 * b / e) + 1) + c
	},
	easeInOutExpo: function(a, b, c, d, e) {
		return 0 == b ? c: b == e ? c + d: 1 > (b /= e / 2) ? d / 2 * Math.pow(2, 10 * (b - 1)) + c: d / 2 * ( - Math.pow(2, -10 * --b) + 2) + c
	},
	easeInCirc: function(a, b, c, d, e) {
		return - d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
	},
	easeOutCirc: function(a, b, c, d, e) {
		return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
	},
	easeInOutCirc: function(a, b, c, d, e) {
		return 1 > (b /= e / 2) ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c: d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
	},
	easeInElastic: function(a, b, c, d, e) {
		var f = 1.70158,
		g = 0,
		h = d;
		if (0 == b) return c;
		if (1 == (b /= e)) return c + d;
		if (g || (g = .3 * e), Math.abs(d) > h) {
			h = d;
			var f = g / 4
		} else var f = g / (2 * Math.PI) * Math.asin(d / h);
		return - (h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g)) + c
	},
	easeOutElastic: function(a, b, c, d, e) {
		var f = 1.70158,
		g = 0,
		h = d;
		if (0 == b) return c;
		if (1 == (b /= e)) return c + d;
		if (g || (g = .3 * e), Math.abs(d) > h) {
			h = d;
			var f = g / 4
		} else var f = g / (2 * Math.PI) * Math.asin(d / h);
		return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
	},
	easeInOutElastic: function(a, b, c, d, e) {
		var f = 1.70158,
		g = 0,
		h = d;
		if (0 == b) return c;
		if (2 == (b /= e / 2)) return c + d;
		if (g || (g = e * .3 * 1.5), Math.abs(d) > h) {
			h = d;
			var f = g / 4
		} else var f = g / (2 * Math.PI) * Math.asin(d / h);
		return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + c: .5 * h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
	},
	easeInBack: function(a, b, c, d, e, f) {
		return void 0 == f && (f = 1.70158),
		d * (b /= e) * b * ((f + 1) * b - f) + c
	},
	easeOutBack: function(a, b, c, d, e, f) {
		return void 0 == f && (f = 1.70158),
		d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
	},
	easeInOutBack: function(a, b, c, d, e, f) {
		return void 0 == f && (f = 1.70158),
		1 > (b /= e / 2) ? d / 2 * b * b * (((f *= 1.525) + 1) * b - f) + c: d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
	},
	easeInBounce: function(a, b, c, d, e) {
		return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
	},
	easeOutBounce: function(a, b, c, d, e) {
		return 1 / 2.75 > (b /= e) ? d * 7.5625 * b * b + c: 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c: 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c: d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
	},
	easeInOutBounce: function(a, b, c, d, e) {
		return e / 2 > b ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c: .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
	}
});