").append(b.parseHTML(e)).find(i) : e)
+ }).complete(r && function(e, t) {
+ s.each(r, o || [e.responseText, t, e])
+ }
+ ),
+ this
+ }
+ ,
+ b.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
+ b.fn[t] = function(e) {
+ return this.on(t, e)
+ }
+ }),
+ b.each(["get", "post"], function(e, n) {
+ b[n] = function(e, r, i, o) {
+ return b.isFunction(r) && (o = o || i,
+ i = r,
+ r = t),
+ b.ajax({
+ url: e,
+ type: n,
+ dataType: o,
+ data: r,
+ success: i
+ })
+ }
+ }),
+ b.extend({
+ active: 0,
+ lastModified: {},
+ etag: {},
+ ajaxSettings: {
+ url: yn,
+ type: "GET",
+ isLocal: Nn.test(mn[1]),
+ global: !0,
+ processData: !0,
+ async: !0,
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+ accepts: {
+ "*": Dn,
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript"
+ },
+ contents: {
+ xml: /xml/,
+ html: /html/,
+ json: /json/
+ },
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText"
+ },
+ converters: {
+ "* text": e.String,
+ "text html": !0,
+ "text json": b.parseJSON,
+ "text xml": b.parseXML
+ },
+ flatOptions: {
+ url: !0,
+ context: !0
+ }
+ },
+ ajaxSetup: function(e, t) {
+ return t ? Mn(Mn(e, b.ajaxSettings), t) : Mn(b.ajaxSettings, e)
+ },
+ ajaxPrefilter: Hn(An),
+ ajaxTransport: Hn(jn),
+ ajax: function(e, n) {
+ "object" == typeof e && (n = e,
+ e = t),
+ n = n || {};
+ var r, i, o, a, s, u, l, c, p = b.ajaxSetup({}, n), f = p.context || p, d = p.context && (f.nodeType || f.jquery) ? b(f) : b.event, h = b.Deferred(), g = b.Callbacks("once memory"), m = p.statusCode || {}, y = {}, v = {}, x = 0, T = "canceled", N = {
+ readyState: 0,
+ getResponseHeader: function(e) {
+ var t;
+ if (2 === x) {
+ if (!c) {
+ c = {};
+ while (t = Tn.exec(a))
+ c[t[1].toLowerCase()] = t[2]
+ }
+ t = c[e.toLowerCase()]
+ }
+ return null == t ? null : t
+ },
+ getAllResponseHeaders: function() {
+ return 2 === x ? a : null
+ },
+ setRequestHeader: function(e, t) {
+ var n = e.toLowerCase();
+ return x || (e = v[n] = v[n] || e,
+ y[e] = t),
+ this
+ },
+ overrideMimeType: function(e) {
+ return x || (p.mimeType = e),
+ this
+ },
+ statusCode: function(e) {
+ var t;
+ if (e)
+ if (2 > x)
+ for (t in e)
+ m[t] = [m[t], e[t]];
+ else
+ N.always(e[N.status]);
+ return this
+ },
+ abort: function(e) {
+ var t = e || T;
+ return l && l.abort(t),
+ k(0, t),
+ this
+ }
+ };
+ if (h.promise(N).complete = g.add,
+ N.success = N.done,
+ N.error = N.fail,
+ p.url = ((e || p.url || yn) + "").replace(xn, "").replace(kn, mn[1] + "//"),
+ p.type = n.method || n.type || p.method || p.type,
+ p.dataTypes = b.trim(p.dataType || "*").toLowerCase().match(w) || [""],
+ null == p.crossDomain && (r = En.exec(p.url.toLowerCase()),
+ p.crossDomain = !(!r || r[1] === mn[1] && r[2] === mn[2] && (r[3] || ("http:" === r[1] ? 80 : 443)) == (mn[3] || ("http:" === mn[1] ? 80 : 443)))),
+ p.data && p.processData && "string" != typeof p.data && (p.data = b.param(p.data, p.traditional)),
+ qn(An, p, n, N),
+ 2 === x)
+ return N;
+ u = p.global,
+ u && 0 === b.active++ && b.event.trigger("ajaxStart"),
+ p.type = p.type.toUpperCase(),
+ p.hasContent = !Cn.test(p.type),
+ o = p.url,
+ p.hasContent || (p.data && (o = p.url += (bn.test(o) ? "&" : "?") + p.data,
+ delete p.data),
+ p.cache === !1 && (p.url = wn.test(o) ? o.replace(wn, "$1_=" + vn++) : o + (bn.test(o) ? "&" : "?") + "_=" + vn++)),
+ p.ifModified && (b.lastModified[o] && N.setRequestHeader("If-Modified-Since", b.lastModified[o]),
+ b.etag[o] && N.setRequestHeader("If-None-Match", b.etag[o])),
+ (p.data && p.hasContent && p.contentType !== !1 || n.contentType) && N.setRequestHeader("Content-Type", p.contentType),
+ N.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Dn + "; q=0.01" : "") : p.accepts["*"]);
+ for (i in p.headers)
+ N.setRequestHeader(i, p.headers[i]);
+ if (p.beforeSend && (p.beforeSend.call(f, N, p) === !1 || 2 === x))
+ return N.abort();
+ T = "abort";
+ for (i in {
+ success: 1,
+ error: 1,
+ complete: 1
+ })
+ N[i](p[i]);
+ if (l = qn(jn, p, n, N)) {
+ N.readyState = 1,
+ u && d.trigger("ajaxSend", [N, p]),
+ p.async && p.timeout > 0 && (s = setTimeout(function() {
+ N.abort("timeout")
+ }, p.timeout));
+ try {
+ x = 1,
+ l.send(y, k)
+ } catch (C) {
+ if (!(2 > x))
+ throw C;
+ k(-1, C)
+ }
+ } else
+ k(-1, "No Transport");
+ function k(e, n, r, i) {
+ var c, y, v, w, T, C = n;
+ 2 !== x && (x = 2,
+ s && clearTimeout(s),
+ l = t,
+ a = i || "",
+ N.readyState = e > 0 ? 4 : 0,
+ r && (w = _n(p, N, r)),
+ e >= 200 && 300 > e || 304 === e ? (p.ifModified && (T = N.getResponseHeader("Last-Modified"),
+ T && (b.lastModified[o] = T),
+ T = N.getResponseHeader("etag"),
+ T && (b.etag[o] = T)),
+ 204 === e ? (c = !0,
+ C = "nocontent") : 304 === e ? (c = !0,
+ C = "notmodified") : (c = Fn(p, w),
+ C = c.state,
+ y = c.data,
+ v = c.error,
+ c = !v)) : (v = C,
+ (e || !C) && (C = "error",
+ 0 > e && (e = 0))),
+ N.status = e,
+ N.statusText = (n || C) + "",
+ c ? h.resolveWith(f, [y, C, N]) : h.rejectWith(f, [N, C, v]),
+ N.statusCode(m),
+ m = t,
+ u && d.trigger(c ? "ajaxSuccess" : "ajaxError", [N, p, c ? y : v]),
+ g.fireWith(f, [N, C]),
+ u && (d.trigger("ajaxComplete", [N, p]),
+ --b.active || b.event.trigger("ajaxStop")))
+ }
+ return N
+ },
+ getScript: function(e, n) {
+ return b.get(e, t, n, "script")
+ },
+ getJSON: function(e, t, n) {
+ return b.get(e, t, n, "json")
+ }
+ });
+ function _n(e, n, r) {
+ var i, o, a, s, u = e.contents, l = e.dataTypes, c = e.responseFields;
+ for (s in c)
+ s in r && (n[c[s]] = r[s]);
+ while ("*" === l[0])
+ l.shift(),
+ o === t && (o = e.mimeType || n.getResponseHeader("Content-Type"));
+ if (o)
+ for (s in u)
+ if (u[s] && u[s].test(o)) {
+ l.unshift(s);
+ break
+ }
+ if (l[0]in r)
+ a = l[0];
+ else {
+ for (s in r) {
+ if (!l[0] || e.converters[s + " " + l[0]]) {
+ a = s;
+ break
+ }
+ i || (i = s)
+ }
+ a = a || i
+ }
+ return a ? (a !== l[0] && l.unshift(a),
+ r[a]) : t
+ }
+ function Fn(e, t) {
+ var n, r, i, o, a = {}, s = 0, u = e.dataTypes.slice(), l = u[0];
+ if (e.dataFilter && (t = e.dataFilter(t, e.dataType)),
+ u[1])
+ for (i in e.converters)
+ a[i.toLowerCase()] = e.converters[i];
+ for (; r = u[++s]; )
+ if ("*" !== r) {
+ if ("*" !== l && l !== r) {
+ if (i = a[l + " " + r] || a["* " + r],
+ !i)
+ for (n in a)
+ if (o = n.split(" "),
+ o[1] === r && (i = a[l + " " + o[0]] || a["* " + o[0]])) {
+ i === !0 ? i = a[n] : a[n] !== !0 && (r = o[0],
+ u.splice(s--, 0, r));
+ break
+ }
+ if (i !== !0)
+ if (i && e["throws"])
+ t = i(t);
+ else
+ try {
+ t = i(t)
+ } catch (c) {
+ return {
+ state: "parsererror",
+ error: i ? c : "No conversion from " + l + " to " + r
+ }
+ }
+ }
+ l = r
+ }
+ return {
+ state: "success",
+ data: t
+ }
+ }
+ b.ajaxSetup({
+ accepts: {
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /(?:java|ecma)script/
+ },
+ converters: {
+ "text script": function(e) {
+ return b.globalEval(e),
+ e
+ }
+ }
+ }),
+ b.ajaxPrefilter("script", function(e) {
+ e.cache === t && (e.cache = !1),
+ e.crossDomain && (e.type = "GET",
+ e.global = !1)
+ }),
+ b.ajaxTransport("script", function(e) {
+ if (e.crossDomain) {
+ var n, r = o.head || b("head")[0] || o.documentElement;
+ return {
+ send: function(t, i) {
+ n = o.createElement("script"),
+ n.async = !0,
+ e.scriptCharset && (n.charset = e.scriptCharset),
+ n.src = e.url,
+ n.onload = n.onreadystatechange = function(e, t) {
+ (t || !n.readyState || /loaded|complete/.test(n.readyState)) && (n.onload = n.onreadystatechange = null,
+ n.parentNode && n.parentNode.removeChild(n),
+ n = null,
+ t || i(200, "success"))
+ }
+ ,
+ r.insertBefore(n, r.firstChild)
+ },
+ abort: function() {
+ n && n.onload(t, !0)
+ }
+ }
+ }
+ });
+ var On = []
+ , Bn = /(=)\?(?=&|$)|\?\?/;
+ b.ajaxSetup({
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var e = On.pop() || b.expando + "_" + vn++;
+ return this[e] = !0,
+ e
+ }
+ }),
+ b.ajaxPrefilter("json jsonp", function(n, r, i) {
+ var o, a, s, u = n.jsonp !== !1 && (Bn.test(n.url) ? "url" : "string" == typeof n.data && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && Bn.test(n.data) && "data");
+ return u || "jsonp" === n.dataTypes[0] ? (o = n.jsonpCallback = b.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback,
+ u ? n[u] = n[u].replace(Bn, "$1" + o) : n.jsonp !== !1 && (n.url += (bn.test(n.url) ? "&" : "?") + n.jsonp + "=" + o),
+ n.converters["script json"] = function() {
+ return s || b.error(o + " was not called"),
+ s[0]
+ }
+ ,
+ n.dataTypes[0] = "json",
+ a = e[o],
+ e[o] = function() {
+ s = arguments
+ }
+ ,
+ i.always(function() {
+ e[o] = a,
+ n[o] && (n.jsonpCallback = r.jsonpCallback,
+ On.push(o)),
+ s && b.isFunction(a) && a(s[0]),
+ s = a = t
+ }),
+ "script") : t
+ });
+ var Pn, Rn, Wn = 0, $n = e.ActiveXObject && function() {
+ var e;
+ for (e in Pn)
+ Pn[e](t, !0)
+ }
+ ;
+ function In() {
+ try {
+ return new e.XMLHttpRequest
+ } catch (t) {}
+ }
+ function zn() {
+ try {
+ return new e.ActiveXObject("Microsoft.XMLHTTP")
+ } catch (t) {}
+ }
+ b.ajaxSettings.xhr = e.ActiveXObject ? function() {
+ return !this.isLocal && In() || zn()
+ }
+ : In,
+ Rn = b.ajaxSettings.xhr(),
+ b.support.cors = !!Rn && "withCredentials"in Rn,
+ Rn = b.support.ajax = !!Rn,
+ Rn && b.ajaxTransport(function(n) {
+ if (!n.crossDomain || b.support.cors) {
+ var r;
+ return {
+ send: function(i, o) {
+ var a, s, u = n.xhr();
+ if (n.username ? u.open(n.type, n.url, n.async, n.username, n.password) : u.open(n.type, n.url, n.async),
+ n.xhrFields)
+ for (s in n.xhrFields)
+ u[s] = n.xhrFields[s];
+ n.mimeType && u.overrideMimeType && u.overrideMimeType(n.mimeType),
+ n.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest");
+ try {
+ for (s in i)
+ u.setRequestHeader(s, i[s])
+ } catch (l) {}
+ u.send(n.hasContent && n.data || null),
+ r = function(e, i) {
+ var s, l, c, p;
+ try {
+ if (r && (i || 4 === u.readyState))
+ if (r = t,
+ a && (u.onreadystatechange = b.noop,
+ $n && delete Pn[a]),
+ i)
+ 4 !== u.readyState && u.abort();
+ else {
+ p = {},
+ s = u.status,
+ l = u.getAllResponseHeaders(),
+ "string" == typeof u.responseText && (p.text = u.responseText);
+ try {
+ c = u.statusText
+ } catch (f) {
+ c = ""
+ }
+ s || !n.isLocal || n.crossDomain ? 1223 === s && (s = 204) : s = p.text ? 200 : 404
+ }
+ } catch (d) {
+ i || o(-1, d)
+ }
+ p && o(s, c, p, l)
+ }
+ ,
+ n.async ? 4 === u.readyState ? setTimeout(r) : (a = ++Wn,
+ $n && (Pn || (Pn = {},
+ b(e).unload($n)),
+ Pn[a] = r),
+ u.onreadystatechange = r) : r()
+ },
+ abort: function() {
+ r && r(t, !0)
+ }
+ }
+ }
+ });
+ var Xn, Un, Vn = /^(?:toggle|show|hide)$/, Yn = RegExp("^(?:([+-])=|)(" + x + ")([a-z%]*)$", "i"), Jn = /queueHooks$/, Gn = [nr], Qn = {
+ "*": [function(e, t) {
+ var n, r, i = this.createTween(e, t), o = Yn.exec(t), a = i.cur(), s = +a || 0, u = 1, l = 20;
+ if (o) {
+ if (n = +o[2],
+ r = o[3] || (b.cssNumber[e] ? "" : "px"),
+ "px" !== r && s) {
+ s = b.css(i.elem, e, !0) || n || 1;
+ do
+ u = u || ".5",
+ s /= u,
+ b.style(i.elem, e, s + r);
+ while (u !== (u = i.cur() / a) && 1 !== u && --l)
+ }
+ i.unit = r,
+ i.start = s,
+ i.end = o[1] ? s + (o[1] + 1) * n : n
+ }
+ return i
+ }
+ ]
+ };
+ function Kn() {
+ return setTimeout(function() {
+ Xn = t
+ }),
+ Xn = b.now()
+ }
+ function Zn(e, t) {
+ b.each(t, function(t, n) {
+ var r = (Qn[t] || []).concat(Qn["*"])
+ , i = 0
+ , o = r.length;
+ for (; o > i; i++)
+ if (r[i].call(e, t, n))
+ return
+ })
+ }
+ function er(e, t, n) {
+ var r, i, o = 0, a = Gn.length, s = b.Deferred().always(function() {
+ delete u.elem
+ }), u = function() {
+ if (i)
+ return !1;
+ var t = Xn || Kn()
+ , n = Math.max(0, l.startTime + l.duration - t)
+ , r = n / l.duration || 0
+ , o = 1 - r
+ , a = 0
+ , u = l.tweens.length;
+ for (; u > a; a++)
+ l.tweens[a].run(o);
+ return s.notifyWith(e, [l, o, n]),
+ 1 > o && u ? n : (s.resolveWith(e, [l]),
+ !1)
+ }, l = s.promise({
+ elem: e,
+ props: b.extend({}, t),
+ opts: b.extend(!0, {
+ specialEasing: {}
+ }, n),
+ originalProperties: t,
+ originalOptions: n,
+ startTime: Xn || Kn(),
+ duration: n.duration,
+ tweens: [],
+ createTween: function(t, n) {
+ var r = b.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
+ return l.tweens.push(r),
+ r
+ },
+ stop: function(t) {
+ var n = 0
+ , r = t ? l.tweens.length : 0;
+ if (i)
+ return this;
+ for (i = !0; r > n; n++)
+ l.tweens[n].run(1);
+ return t ? s.resolveWith(e, [l, t]) : s.rejectWith(e, [l, t]),
+ this
+ }
+ }), c = l.props;
+ for (tr(c, l.opts.specialEasing); a > o; o++)
+ if (r = Gn[o].call(l, e, c, l.opts))
+ return r;
+ return Zn(l, c),
+ b.isFunction(l.opts.start) && l.opts.start.call(e, l),
+ b.fx.timer(b.extend(u, {
+ elem: e,
+ anim: l,
+ queue: l.opts.queue
+ })),
+ l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always)
+ }
+ function tr(e, t) {
+ var n, r, i, o, a;
+ for (i in e)
+ if (r = b.camelCase(i),
+ o = t[r],
+ n = e[i],
+ b.isArray(n) && (o = n[1],
+ n = e[i] = n[0]),
+ i !== r && (e[r] = n,
+ delete e[i]),
+ a = b.cssHooks[r],
+ a && "expand"in a) {
+ n = a.expand(n),
+ delete e[r];
+ for (i in n)
+ i in e || (e[i] = n[i],
+ t[i] = o)
+ } else
+ t[r] = o
+ }
+ b.Animation = b.extend(er, {
+ tweener: function(e, t) {
+ b.isFunction(e) ? (t = e,
+ e = ["*"]) : e = e.split(" ");
+ var n, r = 0, i = e.length;
+ for (; i > r; r++)
+ n = e[r],
+ Qn[n] = Qn[n] || [],
+ Qn[n].unshift(t)
+ },
+ prefilter: function(e, t) {
+ t ? Gn.unshift(e) : Gn.push(e)
+ }
+ });
+ function nr(e, t, n) {
+ var r, i, o, a, s, u, l, c, p, f = this, d = e.style, h = {}, g = [], m = e.nodeType && nn(e);
+ n.queue || (c = b._queueHooks(e, "fx"),
+ null == c.unqueued && (c.unqueued = 0,
+ p = c.empty.fire,
+ c.empty.fire = function() {
+ c.unqueued || p()
+ }
+ ),
+ c.unqueued++,
+ f.always(function() {
+ f.always(function() {
+ c.unqueued--,
+ b.queue(e, "fx").length || c.empty.fire()
+ })
+ })),
+ 1 === e.nodeType && ("height"in t || "width"in t) && (n.overflow = [d.overflow, d.overflowX, d.overflowY],
+ "inline" === b.css(e, "display") && "none" === b.css(e, "float") && (b.support.inlineBlockNeedsLayout && "inline" !== un(e.nodeName) ? d.zoom = 1 : d.display = "inline-block")),
+ n.overflow && (d.overflow = "hidden",
+ b.support.shrinkWrapBlocks || f.always(function() {
+ d.overflow = n.overflow[0],
+ d.overflowX = n.overflow[1],
+ d.overflowY = n.overflow[2]
+ }));
+ for (i in t)
+ if (a = t[i],
+ Vn.exec(a)) {
+ if (delete t[i],
+ u = u || "toggle" === a,
+ a === (m ? "hide" : "show"))
+ continue;
+ g.push(i)
+ }
+ if (o = g.length) {
+ s = b._data(e, "fxshow") || b._data(e, "fxshow", {}),
+ "hidden"in s && (m = s.hidden),
+ u && (s.hidden = !m),
+ m ? b(e).show() : f.done(function() {
+ b(e).hide()
+ }),
+ f.done(function() {
+ var t;
+ b._removeData(e, "fxshow");
+ for (t in h)
+ b.style(e, t, h[t])
+ });
+ for (i = 0; o > i; i++)
+ r = g[i],
+ l = f.createTween(r, m ? s[r] : 0),
+ h[r] = s[r] || b.style(e, r),
+ r in s || (s[r] = l.start,
+ m && (l.end = l.start,
+ l.start = "width" === r || "height" === r ? 1 : 0))
+ }
+ }
+ function rr(e, t, n, r, i) {
+ return new rr.prototype.init(e,t,n,r,i)
+ }
+ b.Tween = rr,
+ rr.prototype = {
+ constructor: rr,
+ init: function(e, t, n, r, i, o) {
+ this.elem = e,
+ this.prop = n,
+ this.easing = i || "swing",
+ this.options = t,
+ this.start = this.now = this.cur(),
+ this.end = r,
+ this.unit = o || (b.cssNumber[n] ? "" : "px")
+ },
+ cur: function() {
+ var e = rr.propHooks[this.prop];
+ return e && e.get ? e.get(this) : rr.propHooks._default.get(this)
+ },
+ run: function(e) {
+ var t, n = rr.propHooks[this.prop];
+ return this.pos = t = this.options.duration ? b.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : e,
+ this.now = (this.end - this.start) * t + this.start,
+ this.options.step && this.options.step.call(this.elem, this.now, this),
+ n && n.set ? n.set(this) : rr.propHooks._default.set(this),
+ this
+ }
+ },
+ rr.prototype.init.prototype = rr.prototype,
+ rr.propHooks = {
+ _default: {
+ get: function(e) {
+ var t;
+ return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = b.css(e.elem, e.prop, ""),
+ t && "auto" !== t ? t : 0) : e.elem[e.prop]
+ },
+ set: function(e) {
+ b.fx.step[e.prop] ? b.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[b.cssProps[e.prop]] || b.cssHooks[e.prop]) ? b.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
+ }
+ }
+ },
+ rr.propHooks.scrollTop = rr.propHooks.scrollLeft = {
+ set: function(e) {
+ e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
+ }
+ },
+ b.each(["toggle", "show", "hide"], function(e, t) {
+ var n = b.fn[t];
+ b.fn[t] = function(e, r, i) {
+ return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ir(t, !0), e, r, i)
+ }
+ }),
+ b.fn.extend({
+ fadeTo: function(e, t, n, r) {
+ return this.filter(nn).css("opacity", 0).show().end().animate({
+ opacity: t
+ }, e, n, r)
+ },
+ animate: function(e, t, n, r) {
+ var i = b.isEmptyObject(e)
+ , o = b.speed(t, n, r)
+ , a = function() {
+ var t = er(this, b.extend({}, e), o);
+ a.finish = function() {
+ t.stop(!0)
+ }
+ ,
+ (i || b._data(this, "finish")) && t.stop(!0)
+ };
+ return a.finish = a,
+ i || o.queue === !1 ? this.each(a) : this.queue(o.queue, a)
+ },
+ stop: function(e, n, r) {
+ var i = function(e) {
+ var t = e.stop;
+ delete e.stop,
+ t(r)
+ };
+ return "string" != typeof e && (r = n,
+ n = e,
+ e = t),
+ n && e !== !1 && this.queue(e || "fx", []),
+ this.each(function() {
+ var t = !0
+ , n = null != e && e + "queueHooks"
+ , o = b.timers
+ , a = b._data(this);
+ if (n)
+ a[n] && a[n].stop && i(a[n]);
+ else
+ for (n in a)
+ a[n] && a[n].stop && Jn.test(n) && i(a[n]);
+ for (n = o.length; n--; )
+ o[n].elem !== this || null != e && o[n].queue !== e || (o[n].anim.stop(r),
+ t = !1,
+ o.splice(n, 1));
+ (t || !r) && b.dequeue(this, e)
+ })
+ },
+ finish: function(e) {
+ return e !== !1 && (e = e || "fx"),
+ this.each(function() {
+ var t, n = b._data(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = b.timers, a = r ? r.length : 0;
+ for (n.finish = !0,
+ b.queue(this, e, []),
+ i && i.cur && i.cur.finish && i.cur.finish.call(this),
+ t = o.length; t--; )
+ o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0),
+ o.splice(t, 1));
+ for (t = 0; a > t; t++)
+ r[t] && r[t].finish && r[t].finish.call(this);
+ delete n.finish
+ })
+ }
+ });
+ function ir(e, t) {
+ var n, r = {
+ height: e
+ }, i = 0;
+ for (t = t ? 1 : 0; 4 > i; i += 2 - t)
+ n = Zt[i],
+ r["margin" + n] = r["padding" + n] = e;
+ return t && (r.opacity = r.width = e),
+ r
+ }
+ b.each({
+ slideDown: ir("show"),
+ slideUp: ir("hide"),
+ slideToggle: ir("toggle"),
+ fadeIn: {
+ opacity: "show"
+ },
+ fadeOut: {
+ opacity: "hide"
+ },
+ fadeToggle: {
+ opacity: "toggle"
+ }
+ }, function(e, t) {
+ b.fn[e] = function(e, n, r) {
+ return this.animate(t, e, n, r)
+ }
+ }),
+ b.speed = function(e, t, n) {
+ var r = e && "object" == typeof e ? b.extend({}, e) : {
+ complete: n || !n && t || b.isFunction(e) && e,
+ duration: e,
+ easing: n && t || t && !b.isFunction(t) && t
+ };
+ return r.duration = b.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in b.fx.speeds ? b.fx.speeds[r.duration] : b.fx.speeds._default,
+ (null == r.queue || r.queue === !0) && (r.queue = "fx"),
+ r.old = r.complete,
+ r.complete = function() {
+ b.isFunction(r.old) && r.old.call(this),
+ r.queue && b.dequeue(this, r.queue)
+ }
+ ,
+ r
+ }
+ ,
+ b.easing = {
+ linear: function(e) {
+ return e
+ },
+ swing: function(e) {
+ return .5 - Math.cos(e * Math.PI) / 2
+ }
+ },
+ b.timers = [],
+ b.fx = rr.prototype.init,
+ b.fx.tick = function() {
+ var e, n = b.timers, r = 0;
+ for (Xn = b.now(); n.length > r; r++)
+ e = n[r],
+ e() || n[r] !== e || n.splice(r--, 1);
+ n.length || b.fx.stop(),
+ Xn = t
+ }
+ ,
+ b.fx.timer = function(e) {
+ e() && b.timers.push(e) && b.fx.start()
+ }
+ ,
+ b.fx.interval = 13,
+ b.fx.start = function() {
+ Un || (Un = setInterval(b.fx.tick, b.fx.interval))
+ }
+ ,
+ b.fx.stop = function() {
+ clearInterval(Un),
+ Un = null
+ }
+ ,
+ b.fx.speeds = {
+ slow: 600,
+ fast: 200,
+ _default: 400
+ },
+ b.fx.step = {},
+ b.expr && b.expr.filters && (b.expr.filters.animated = function(e) {
+ return b.grep(b.timers, function(t) {
+ return e === t.elem
+ }).length
+ }
+ ),
+ b.fn.offset = function(e) {
+ if (arguments.length)
+ return e === t ? this : this.each(function(t) {
+ b.offset.setOffset(this, e, t)
+ });
+ var n, r, o = {
+ top: 0,
+ left: 0
+ }, a = this[0], s = a && a.ownerDocument;
+ if (s)
+ return n = s.documentElement,
+ b.contains(n, a) ? (typeof a.getBoundingClientRect !== i && (o = a.getBoundingClientRect()),
+ r = or(s),
+ {
+ top: o.top + (r.pageYOffset || n.scrollTop) - (n.clientTop || 0),
+ left: o.left + (r.pageXOffset || n.scrollLeft) - (n.clientLeft || 0)
+ }) : o
+ }
+ ,
+ b.offset = {
+ setOffset: function(e, t, n) {
+ var r = b.css(e, "position");
+ "static" === r && (e.style.position = "relative");
+ var i = b(e), o = i.offset(), a = b.css(e, "top"), s = b.css(e, "left"), u = ("absolute" === r || "fixed" === r) && b.inArray("auto", [a, s]) > -1, l = {}, c = {}, p, f;
+ u ? (c = i.position(),
+ p = c.top,
+ f = c.left) : (p = parseFloat(a) || 0,
+ f = parseFloat(s) || 0),
+ b.isFunction(t) && (t = t.call(e, n, o)),
+ null != t.top && (l.top = t.top - o.top + p),
+ null != t.left && (l.left = t.left - o.left + f),
+ "using"in t ? t.using.call(e, l) : i.css(l)
+ }
+ },
+ b.fn.extend({
+ position: function() {
+ if (this[0]) {
+ var e, t, n = {
+ top: 0,
+ left: 0
+ }, r = this[0];
+ return "fixed" === b.css(r, "position") ? t = r.getBoundingClientRect() : (e = this.offsetParent(),
+ t = this.offset(),
+ b.nodeName(e[0], "html") || (n = e.offset()),
+ n.top += b.css(e[0], "borderTopWidth", !0),
+ n.left += b.css(e[0], "borderLeftWidth", !0)),
+ {
+ top: t.top - n.top - b.css(r, "marginTop", !0),
+ left: t.left - n.left - b.css(r, "marginLeft", !0)
+ }
+ }
+ },
+ offsetParent: function() {
+ return this.map(function() {
+ var e = this.offsetParent || o.documentElement;
+ while (e && !b.nodeName(e, "html") && "static" === b.css(e, "position"))
+ e = e.offsetParent;
+ return e || o.documentElement
+ })
+ }
+ }),
+ b.each({
+ scrollLeft: "pageXOffset",
+ scrollTop: "pageYOffset"
+ }, function(e, n) {
+ var r = /Y/.test(n);
+ b.fn[e] = function(i) {
+ return b.access(this, function(e, i, o) {
+ var a = or(e);
+ return o === t ? a ? n in a ? a[n] : a.document.documentElement[i] : e[i] : (a ? a.scrollTo(r ? b(a).scrollLeft() : o, r ? o : b(a).scrollTop()) : e[i] = o,
+ t)
+ }, e, i, arguments.length, null)
+ }
+ });
+ function or(e) {
+ return b.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1
+ }
+ b.each({
+ Height: "height",
+ Width: "width"
+ }, function(e, n) {
+ b.each({
+ padding: "inner" + e,
+ content: n,
+ "": "outer" + e
+ }, function(r, i) {
+ b.fn[i] = function(i, o) {
+ var a = arguments.length && (r || "boolean" != typeof i)
+ , s = r || (i === !0 || o === !0 ? "margin" : "border");
+ return b.access(this, function(n, r, i) {
+ var o;
+ return b.isWindow(n) ? n.document.documentElement["client" + e] : 9 === n.nodeType ? (o = n.documentElement,
+ Math.max(n.body["scroll" + e], o["scroll" + e], n.body["offset" + e], o["offset" + e], o["client" + e])) : i === t ? b.css(n, r, s) : b.style(n, r, i, s)
+ }, n, a ? i : t, a, null)
+ }
+ })
+ }),
+ e.jQuery = e.$ = b,
+ "function" == typeof define && define.amd && define.amd.jQuery && define("jquery", [], function() {
+ return b
+ })
+}
+)(window);
+
+/*!
+ * jQuery Cookie Plugin v1.4.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+(function(factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object') {
+ // CommonJS
+ factory(require('jquery'));
+ } else {
+ // Browser globals
+ factory(jQuery);
+ }
+}(function($) {
+
+ var pluses = /\+/g;
+
+ function encode(s) {
+ return config.raw ? s : encodeURIComponent(s);
+ }
+
+ function decode(s) {
+ return config.raw ? s : decodeURIComponent(s);
+ }
+
+ function stringifyCookieValue(value) {
+ return encode(config.json ? JSON.stringify(value) : String(value));
+ }
+
+ function parseCookieValue(s) {
+ if (s.indexOf('"') === 0) {
+ // This is a quoted cookie as according to RFC2068, unescape...
+ s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+ }
+
+ try {
+ // Replace server-side written pluses with spaces.
+ // If we can't decode the cookie, ignore it, it's unusable.
+ // If we can't parse the cookie, ignore it, it's unusable.
+ s = decodeURIComponent(s.replace(pluses, ' '));
+ return config.json ? JSON.parse(s) : s;
+ } catch (e) {}
+ }
+
+ function read(s, converter) {
+ var value = config.raw ? s : parseCookieValue(s);
+ return $.isFunction(converter) ? converter(value) : value;
+ }
+
+ var config = $.cookie = function(key, value, options) {
+
+ // Write
+
+ if (value !== undefined && !$.isFunction(value)) {
+ options = $.extend({}, config.defaults, options);
+
+ if (typeof options.expires === 'number') {
+ var days = options.expires
+ , t = options.expires = new Date();
+ t.setTime(+t + days * 864e+5);
+ }
+
+ return (document.cookie = [encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+ options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : ''].join(''));
+ }
+
+ // Read
+
+ var result = key ? undefined : {};
+
+ // To prevent the for loop in the first place assign an empty array
+ // in case there are no cookies at all. Also prevents odd result when
+ // calling $.cookie().
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
+
+ for (var i = 0, l = cookies.length; i < l; i++) {
+ var parts = cookies[i].split('=');
+ var name = decode(parts.shift());
+ var cookie = parts.join('=');
+
+ if (key && key === name) {
+ // If second argument (value) is a function it's a converter...
+ result = read(cookie, value);
+ break;
+ }
+
+ // Prevent storing a cookie that we couldn't decode.
+ if (!key && (cookie = read(cookie)) !== undefined) {
+ result[name] = cookie;
+ }
+ }
+
+ return result;
+ }
+ ;
+
+ config.defaults = {};
+
+ $.removeCookie = function(key, options) {
+ if ($.cookie(key) === undefined) {
+ return false;
+ }
+
+ // Must not alter options, thus extending a fresh object...
+ $.cookie(key, '', $.extend({}, options, {
+ expires: -1
+ }));
+ return !$.cookie(key);
+ }
+ ;
+
+}));
diff --git a/code/public/template/hzpxw/book_m/js/logo.js b/code/public/template/hzpxw/book_m/js/logo.js
new file mode 100644
index 0000000..47191e0
--- /dev/null
+++ b/code/public/template/hzpxw/book_m/js/logo.js
@@ -0,0 +1,106 @@
+function qsskel(o){function w(b,a){return(b<
>>(32-a))}function E(k,b){var U,a,d,x,c;d=(k&2147483648);x=(b&2147483648);U=(k&1073741824);a=(b&1073741824);c=(k&1073741823)+(b&1073741823);if(U&a){return(c^2147483648^d^x)}if(U|a){if(c&1073741824){return(c^3221225472^d^x)}else{return(c^1073741824^d^x)}}else{return(c^d^x)}}function s(a,c,b){return(a&c)|((~a)&b)}function r(a,c,b){return(a&b)|(c&(~b))}function q(a,c,b){return(a^c^b)}function p(a,c,b){return(c^(a|(~b)))}function f(V,U,Z,Y,k,W,X){V=E(V,E(E(s(U,Z,Y),k),X));return E(w(V,W),U)}function C(V,U,Z,Y,k,W,X){V=E(V,E(E(r(U,Z,Y),k),X));return E(w(V,W),U)}function t(V,U,Z,Y,k,W,X){V=E(V,E(E(q(U,Z,Y),k),X));return E(w(V,W),U)}function e(V,U,Z,Y,k,W,X){V=E(V,E(E(p(U,Z,Y),k),X));return E(w(V,W),U)}function g(k){var V;var d=k.length;var c=d+8;var b=(c-(c%64))/64;var U=(b+1)*16;var W=Array(U-1);var a=0;var x=0;while(x>>29;return W}function G(c){var b="",d="",k,a;for(a=0;a<=3;a++){k=(c>>>(a*8))&255;d="0"+k.toString(16);b=b+d.substr(d.length-2,2)}return b}function u(b){b=b.replace(/\r\n/g,"\n");var a="";for(var k=0;k127)&&(d<2048)){a+=String.fromCharCode((d>>6)|192);a+=String.fromCharCode((d&63)|128)}else{a+=String.fromCharCode((d>>12)|224);a+=String.fromCharCode(((d>>6)&63)|128);a+=String.fromCharCode((d&63)|128)}}}return a}var D=Array();var K,i,F,v,h,T,S,R,Q;var N=7,L=12,I=17,H=22;var B=5,A=9,z=14,y=20;var n=4,m=11,l=16,j=23;var P=6,O=10,M=15,J=21;o=u(o);D=g(o);T=1732584193;S=4023233417;R=2562383102;Q=271733878;for(K=0;K退出登录');
+}else{
+ $('#qs_login').html('
登录注册');
+}
+
+function qs_logout(){//退出登录
+ $.removeCookie(varslehj3,{ path: '/'});
+ $.removeCookie('user_id',{ path: '/'});
+ $.removeCookie('user_name',{ path: '/'});
+ window.location.reload();
+}
+
+function login(lg_url){//用户登录
+ user_name = document.getElementById("user_name").value;
+ user_pass = qsskel(document.getElementById("user_pass").value);
+ user_code = document.getElementById("user_code").value;
+ $.post('/qs_login_go.php',{'user_name':user_name,'user_pass':user_pass,'user_code':user_code},
+ function(data){
+ data=data.replace(/\s/g,'');data=data.split("|");
+ erword=data[1];
+ if(data[0]==1){
+ window.location.href = lg_url;
+ }
+ else{
+ reloadcode();
+ $('#shuqian').html('
');
+ }
+ });
+}
+
+function register(lg_url){//用户注册
+ name = document.getElementById("name").value;
+ mobile = document.getElementById("mobile").value;
+ pass = qsskel(document.getElementById("pass").value);
+ pass2 = qsskel(document.getElementById("pass2").value);
+ code = document.getElementById("code").value;
+ if(pass == pass2){
+ $.post('/qs_register_go.php',{'name':name,'mobile':mobile,'pass':pass,'pass2':pass2,'code':code},
+ function(data){
+ data=data.replace(/\s/g,'');data=data.split('|');
+ erword=data[1];
+ if(data[0]==1){
+ window.location.href = lg_url;
+ }
+ else{
+ reloadcode();
+ $('#shuqian').html('
');
+ }
+ });
+ }else{
+ reloadcode();
+ $('#shuqian').html('
');
+ }
+}
+
+
+function case_del(aid,xstitle){//从书架删除小说
+ $.post("/ajax.php",{"aid":aid,"case_del":"1"},function(data){
+ $("#"+aid).html("
删除中");if(data != ""){
+ $("#"+aid).html("
已删除");
+ }
+ });
+}
+
+function shanchusc(){document.getElementById('shuqian').innerHTML = '';}//清空shuqian DIV
+function addbookcase(url,aid){//添加小说到书架
+ $.get('/ajax.php',{'addbookcase':'1','url':url,'aid':aid},
+ function(data){
+ data=data.replace(/\s/g,'');data=data.split("|");
+ if(data[0]==1){
+ $('#shuqian').animate({left:"-5px"},20).animate({left:"10px"},20).animate({left:"-10px"},20).animate({left:"0px"},20).html('
');
+ }
+ else{
+ window.location.href = "/login.html?url="+data[1];
+ }
+ });
+}
+function shuqian(aid,cid,url){//存书签
+ //alert("shuqian");
+ $.get('/ajax.php',{'addmark':'1','url':url,'aid':aid,'cid':cid},
+ function(data){
+ data=data.replace(/\s/g,'');data=data.split("|");
+ if(data[0]==1){
+ $('#shuqian').animate({left:"-5px"},20).animate({left:"10px"},20).animate({left:"-10px"},20).animate({left:"0px"},20).html('
');
+ }
+ else{
+ window.location.href = "/login.html?url="+data[1];
+ }
+ });
+}
+function shuqian2(t){
+ var t = t.replace(/\s/g,'');
+ //alert(t);
+ var a = t.split("|");
+ if(a[0]==1){
+ $("#shuqian").html("
");
+ }
+ if(a[0]==0){
+ window.location.href = "/login.php?url="+a[1];
+ }
+}
\ No newline at end of file
diff --git a/code/public/template/hzpxw/book_m/js/yuedu.js b/code/public/template/hzpxw/book_m/js/yuedu.js
new file mode 100644
index 0000000..686cdc3
--- /dev/null
+++ b/code/public/template/hzpxw/book_m/js/yuedu.js
@@ -0,0 +1,212 @@
+var _num = 100;
+
+function LastRead(){
+ this.bookList="bookList"
+ }
+LastRead.prototype={
+ set:function(bid,tid,title,texttitle,read_page,author){
+ if(!(bid&&tid&&title&&texttitle,read_page))return;
+ var v=bid+'#'+tid+'#'+title+'#'+texttitle+'#'+read_page+'#'+author;
+ this.setItem(bid,v);
+ this.setBook(bid)
+ },
+
+ get:function(k){
+ return this.getItem(k)?this.getItem(k).split("#"):"";
+ },
+
+ remove:function(k){
+ this.removeItem(k);
+ this.removeBook(k)
+ },
+
+ setBook:function(v){
+ var reg=new RegExp("(^|#)"+v);
+ var books = this.getItem(this.bookList);
+ if(books==""){
+ books=v
+ }
+ else{
+ if(books.search(reg)==-1){
+ books+="#"+v
+ }
+ else{
+ books.replace(reg,"#"+v)
+ }
+ }
+ this.setItem(this.bookList,books)
+
+ },
+
+ getBook:function(){
+ var v=this.getItem(this.bookList)?this.getItem(this.bookList).split("#"):Array();
+ var books=Array();
+ if(v.length){
+
+ for(var i=0;i
v.length-(_num+1)){
+ if (tem.length>3) books.push(tem);
+ }
+ else{
+ lastread.remove(tem[0]);
+ }
+ }
+ }
+ return books
+ },
+
+ removeBook:function(v){
+ var reg=new RegExp("(^|#)"+v);
+ var books = this.getItem(this.bookList);
+ if(!books){
+ books=""
+ }
+ else{
+ if(books.search(reg)!=-1){
+ books=books.replace(reg,"")
+ }
+
+ }
+ this.setItem(this.bookList,books)
+
+ },
+
+ setItem:function(k,v){
+ if(!!window.localStorage){
+ localStorage.setItem(k,v);
+ }
+ else{
+ var expireDate=new Date();
+ var EXPIR_MONTH=30*24*3600*1000;
+ expireDate.setTime(expireDate.getTime()+12*EXPIR_MONTH)
+ document.cookie=k+"="+encodeURIComponent(v)+";expires="+expireDate.toGMTString()+"; path=/";
+ }
+ },
+
+ getItem:function(k){
+ var value=""
+ var result=""
+ if(!!window.localStorage){
+ result=window.localStorage.getItem(k);
+ value=result||"";
+ }
+ else{
+ var reg=new RegExp("(^| )"+k+"=([^;]*)(;|\x24)");
+ var result=reg.exec(document.cookie);
+ if(result){
+ value=decodeURIComponent(result[2])||""}
+ }
+ return value
+
+ },
+
+ removeItem:function(k){
+ if(!!window.localStorage){
+ window.localStorage.removeItem(k);
+ }
+ else{
+ var expireDate=new Date();
+ expireDate.setTime(expireDate.getTime()-1000)
+ document.cookie=k+"= "+";expires="+expireDate.toGMTString()
+ }
+ },
+ removeAll:function(){
+ if(!!window.localStorage){
+ window.localStorage.clear();
+ }
+ else{
+ var v=this.getItem(this.bookList)?this.getItem(this.bookList).split("#"):Array();
+ var books=Array();
+ if(v.length){
+ for( i in v ){
+ var tem=this.removeItem(v[k])
+ }
+ }
+ this.removeItem(this.bookList)
+ }
+ }
+}
+
+function showbook(){
+ var showbook=document.getElementById('tmpbook');
+ var books=lastread.getBook();
+ var bookhtml = '';
+ if(books.length){
+ var k = 1;
+ for(var i=books.length-1;i>-1;i--){
+ var articleid = parseInt(books[i][0]);
+ var shortid = parseInt(articleid/1000);
+ var articlename = books[i][2];
+ var lastchapter = books[i][3];
+ var lastchapterid = books[i][1];
+ var read_page = parseInt(books[i][4]);
+ var author = books[i][5];
+ var read_ym = parseInt(read_page+1);
+ info_url = info_rewrite.replace(/{aid}/, articleid);
+ info_url = info_url.replace(/{bid}/, shortid);
+ read_url = read_rewrite.replace(/{aid}/, articleid);
+ read_url = read_url.replace(/{bid}/,shortid);
+ read_url = read_url.replace(/{cid}/,lastchapterid);
+ read_page_url = read_page_rewrite.replace(/{aid}/, articleid);
+ read_page_url = read_page_url.replace(/{bid}/,shortid);
+ read_page_url = read_page_url.replace(/{cid}/,lastchapterid);
+ read_page_url = read_page_url.replace(/{pid}/,read_page);
+ var info_url,read_url;
+ var c = '';
+ if((k % 2) == 0){
+ c = 'hot_saleEm';
+ }
+ if(read_page == 0){
+ page_word='';
+ }else{
+ page_word='第'+read_ym+'页';
+ }
+ /*
+ if(read_page == 0){
+ jxyd ='继续阅读 ';
+ }else{
+ jxyd ='