var Zepto = function() { function t(t) { return null == t ? String(t) : X[V.call(t)] || "object" } function e(e) { return "function" == t(e) } function n(t) { return null != t && t == t.window } function i(t) { return null != t && t.nodeType == t.DOCUMENT_NODE } function r(e) { return "object" == t(e) } function o(t) { return r(t) && !n(t) && Object.getPrototypeOf(t) == Object.prototype } function a(t) { return "number" == typeof t.length } function s(t) { return N.call(t, function(t) { return null != t }) } function c(t) { return t.length > 0 ? E.fn.concat.apply([], t) : t } function u(t) { return t.replace(/::/g, "/").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z\d])([A-Z])/g, "$1_$2").replace(/_/g, "-").toLowerCase() } function l(t) { return t in L ? L[t] : L[t] = new RegExp("(^|\\s)" + t + "(\\s|$)") } function f(t, e) { return "number" != typeof e || M[u(t)] ? e: e + "px" } function p(t) { var e, n; return k[t] || (e = _.createElement(t), _.body.appendChild(e), n = getComputedStyle(e, "").getPropertyValue("display"), e.parentNode.removeChild(e), "none" == n && (n = "block"), k[t] = n), k[t] } function h(t) { return "children" in t ? P.call(t.children) : E.map(t.childNodes, function(t) { return 1 == t.nodeType ? t: void 0 }) } function d(t, e) { var n, i = t ? t.length: 0; for (n = 0; i > n; n++) this[n] = t[n]; this.length = i, this.selector = e || "" } function m(t, e, n) { for ($ in e) n && (o(e[$]) || K(e[$])) ? (o(e[$]) && !o(t[$]) && (t[$] = {}), K(e[$]) && !K(t[$]) && (t[$] = []), m(t[$], e[$], n)) : e[$] !== A && (t[$] = e[$]) } function g(t, e) { return null == e ? E(t) : E(t).filter(e) } function v(t, n, i, r) { return e(n) ? n.call(t, i, r) : n } function y(t, e, n) { null == n ? t.removeAttribute(e) : t.setAttribute(e, n) } function w(t, e) { var n = t.className || "", i = n && n.baseVal !== A; return e === A ? i ? n.baseVal: n: void(i ? n.baseVal = e: t.className = e) } function b(t) { try { return t ? "true" == t || ("false" == t ? !1 : "null" == t ? null: +t + "" == t ? +t: /^[\[\{]/.test(t) ? E.parseJSON(t) : t) : t } catch(e) { return t } } function x(t, e) { e(t); for (var n = 0, i = t.childNodes.length; i > n; n++) x(t.childNodes[n], e) } var A, $, E, T, S, j, C = [], O = C.concat, N = C.filter, P = C.slice, _ = window.document, k = {}, L = {}, M = { "column-count": 1, columns: 1, "font-weight": 1, "line-height": 1, opacity: 1, "z-index": 1, zoom: 1 }, Z = /^\s*<(\w+|!)[^>]*>/, D = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, R = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, z = /^(?:body|html)$/i, F = /([A-Z])/g, I = ["val", "css", "html", "text", "data", "width", "height", "offset"], W = ["after", "prepend", "before", "append"], q = _.createElement("table"), U = _.createElement("tr"), B = { tr: _.createElement("tbody"), tbody: q, thead: q, tfoot: q, td: U, th: U, "*": _.createElement("div") }, H = /complete|loaded|interactive/, Y = /^[\w-]*$/, X = {}, V = X.toString, J = {}, G = _.createElement("div"), Q = { tabindex: "tabIndex", readonly: "readOnly", "for": "htmlFor", "class": "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder", contenteditable: "contentEditable" }, K = Array.isArray || function(t) { return t instanceof Array }; return J.matches = function(t, e) { if (!e || !t || 1 !== t.nodeType) return ! 1; var n = t.webkitMatchesSelector || t.mozMatchesSelector || t.oMatchesSelector || t.matchesSelector; if (n) return n.call(t, e); var i, r = t.parentNode, o = !r; return o && (r = G).appendChild(t), i = ~J.qsa(r, e).indexOf(t), o && G.removeChild(t), i }, S = function(t) { return t.replace(/-+(.)?/g, function(t, e) { return e ? e.toUpperCase() : "" }) }, j = function(t) { return N.call(t, function(e, n) { return t.indexOf(e) == n }) }, J.fragment = function(t, e, n) { var i, r, a; return D.test(t) && (i = E(_.createElement(RegExp.$1))), i || (t.replace && (t = t.replace(R, "<$1>")), e === A && (e = Z.test(t) && RegExp.$1), e in B || (e = "*"), a = B[e], a.innerHTML = "" + t, i = E.each(P.call(a.childNodes), function() { a.removeChild(this) })), o(n) && (r = E(i), E.each(n, function(t, e) { I.indexOf(t) > -1 ? r[t](e) : r.attr(t, e) })), i }, J.Z = function(t, e) { return new d(t, e) }, J.isZ = function(t) { return t instanceof J.Z }, J.init = function(t, n) { var i; if (!t) return J.Z(); if ("string" == typeof t) if (t = t.trim(), "<" == t[0] && Z.test(t)) i = J.fragment(t, RegExp.$1, n), t = null; else { if (n !== A) return E(n).find(t); i = J.qsa(_, t) } else { if (e(t)) return E(_).ready(t); if (J.isZ(t)) return t; if (K(t)) i = s(t); else if (r(t)) i = [t], t = null; else if (Z.test(t)) i = J.fragment(t.trim(), RegExp.$1, n), t = null; else { if (n !== A) return E(n).find(t); i = J.qsa(_, t) } } return J.Z(i, t) }, E = function(t, e) { return J.init(t, e) }, E.extend = function(t) { var e, n = P.call(arguments, 1); return "boolean" == typeof t && (e = t, t = n.shift()), n.forEach(function(n) { m(t, n, e) }), t }, J.qsa = function(t, e) { var n, i = "#" == e[0], r = !i && "." == e[0], o = i || r ? e.slice(1) : e, a = Y.test(o); return t.getElementById && a && i ? (n = t.getElementById(o)) ? [n] : [] : 1 !== t.nodeType && 9 !== t.nodeType && 11 !== t.nodeType ? [] : P.call(a && !i && t.getElementsByClassName ? r ? t.getElementsByClassName(o) : t.getElementsByTagName(e) : t.querySelectorAll(e)) }, E.contains = _.documentElement.contains ? function(t, e) { return t !== e && t.contains(e) }: function(t, e) { for (; e && (e = e.parentNode);) if (e === t) return ! 0; return ! 1 }, E.type = t, E.isFunction = e, E.isWindow = n, E.isArray = K, E.isPlainObject = o, E.isEmptyObject = function(t) { var e; for (e in t) return ! 1; return ! 0 }, E.inArray = function(t, e, n) { return C.indexOf.call(e, t, n) }, E.camelCase = S, E.trim = function(t) { return null == t ? "": String.prototype.trim.call(t) }, E.uuid = 0, E.support = {}, E.expr = {}, E.noop = function() {}, E.map = function(t, e) { var n, i, r, o = []; if (a(t)) for (i = 0; i < t.length; i++) n = e(t[i], i), null != n && o.push(n); else for (r in t) n = e(t[r], r), null != n && o.push(n); return c(o) }, E.each = function(t, e) { var n, i; if (a(t)) { for (n = 0; n < t.length; n++) if (e.call(t[n], n, t[n]) === !1) return t } else for (i in t) if (e.call(t[i], i, t[i]) === !1) return t; return t }, E.grep = function(t, e) { return N.call(t, e) }, window.JSON && (E.parseJSON = JSON.parse), E.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(t, e) { X["[object " + e + "]"] = e.toLowerCase() }), E.fn = { constructor: J.Z, length: 0, forEach: C.forEach, reduce: C.reduce, push: C.push, sort: C.sort, splice: C.splice, indexOf: C.indexOf, concat: function() { var t, e, n = []; for (t = 0; t < arguments.length; t++) e = arguments[t], n[t] = J.isZ(e) ? e.toArray() : e; return O.apply(J.isZ(this) ? this.toArray() : this, n) }, map: function(t) { return E(E.map(this, function(e, n) { return t.call(e, n, e) })) }, slice: function() { return E(P.apply(this, arguments)) }, ready: function(t) { return H.test(_.readyState) && _.body ? t(E) : _.addEventListener("DOMContentLoaded", function() { t(E) }, !1), this }, get: function(t) { return t === A ? P.call(this) : this[t >= 0 ? t: t + this.length] }, toArray: function() { return this.get() }, size: function() { return this.length }, remove: function() { return this.each(function() { null != this.parentNode && this.parentNode.removeChild(this) }) }, each: function(t) { return C.every.call(this, function(e, n) { return t.call(e, n, e) !== !1 }), this }, filter: function(t) { return e(t) ? this.not(this.not(t)) : E(N.call(this, function(e) { return J.matches(e, t) })) }, add: function(t, e) { return E(j(this.concat(E(t, e)))) }, is: function(t) { return this.length > 0 && J.matches(this[0], t) }, not: function(t) { var n = []; if (e(t) && t.call !== A) this.each(function(e) { t.call(this, e) || n.push(this) }); else { var i = "string" == typeof t ? this.filter(t) : a(t) && e(t.item) ? P.call(t) : E(t); this.forEach(function(t) { i.indexOf(t) < 0 && n.push(t) }) } return E(n) }, has: function(t) { return this.filter(function() { return r(t) ? E.contains(this, t) : E(this).find(t).size() }) }, eq: function(t) { return - 1 === t ? this.slice(t) : this.slice(t, +t + 1) }, first: function() { var t = this[0]; return t && !r(t) ? t: E(t) }, last: function() { var t = this[this.length - 1]; return t && !r(t) ? t: E(t) }, find: function(t) { var e, n = this; return e = t ? "object" == typeof t ? E(t).filter(function() { var t = this; return C.some.call(n, function(e) { return E.contains(e, t) }) }) : 1 == this.length ? E(J.qsa(this[0], t)) : this.map(function() { return J.qsa(this, t) }) : E() }, closest: function(t, e) { var n = this[0], r = !1; for ("object" == typeof t && (r = E(t)); n && !(r ? r.indexOf(n) >= 0 : J.matches(n, t));) n = n !== e && !i(n) && n.parentNode; return E(n) }, parents: function(t) { for (var e = [], n = this; n.length > 0;) n = E.map(n, function(t) { return (t = t.parentNode) && !i(t) && e.indexOf(t) < 0 ? (e.push(t), t) : void 0 }); return g(e, t) }, parent: function(t) { return g(j(this.pluck("parentNode")), t) }, children: function(t) { return g(this.map(function() { return h(this) }), t) }, contents: function() { return this.map(function() { return this.contentDocument || P.call(this.childNodes) }) }, siblings: function(t) { return g(this.map(function(t, e) { return N.call(h(e.parentNode), function(t) { return t !== e }) }), t) }, empty: function() { return this.each(function() { this.innerHTML = "" }) }, pluck: function(t) { return E.map(this, function(e) { return e[t] }) }, show: function() { return this.each(function() { "none" == this.style.display && (this.style.display = ""), "none" == getComputedStyle(this, "").getPropertyValue("display") && (this.style.display = p(this.nodeName)) }) }, replaceWith: function(t) { return this.before(t).remove() }, wrap: function(t) { var n = e(t); if (this[0] && !n) var i = E(t).get(0), r = i.parentNode || this.length > 1; return this.each(function(e) { E(this).wrapAll(n ? t.call(this, e) : r ? i.cloneNode(!0) : i) }) }, clone: function() { return this.map(function() { return this.cloneNode(!0) }) }, hide: function() { return this.css("display", "none") }, toggle: function(t) { return this.each(function() { var e = E(this); (t === A ? "none" == e.css("display") : t) ? e.show() : e.hide() }) }, prev: function(t) { return E(this.pluck("previousElementSibling")).filter(t || "*") }, next: function(t) { return E(this.pluck("nextElementSibling")).filter(t || "*") }, html: function(t) { return 0 in arguments ? this.each(function(e) { var n = this.innerHTML; E(this).empty().append(v(this, t, e, n)) }) : 0 in this ? this[0].innerHTML: null }, text: function(t) { return 0 in arguments ? this.each(function(e) { var n = v(this, t, e, this.textContent); this.textContent = null == n ? "": "" + n }) : 0 in this ? this[0].textContent: null }, attr: function(t, e) { var n; return "string" != typeof t || 1 in arguments ? this.each(function(n) { if (1 === this.nodeType) if (r(t)) for ($ in t) y(this, $, t[$]); else y(this, t, v(this, e, n, this.getAttribute(t))) }) : this.length && 1 === this[0].nodeType ? !(n = this[0].getAttribute(t)) && t in this[0] ? this[0][t] : n: A }, removeAttr: function(t) { return this.each(function() { 1 === this.nodeType && t.split(" ").forEach(function(t) { y(this, t) }, this) }) }, prop: function(t, e) { return t = Q[t] || t, 1 in arguments ? this.each(function(n) { this[t] = v(this, e, n, this[t]) }) : this[0] && this[0][t] }, data: function(t, e) { var n = "data-" + t.replace(F, "-$1").toLowerCase(), i = 1 in arguments ? this.attr(n, e) : this.attr(n); return null !== i ? b(i) : A }, val: function(t) { return 0 in arguments ? this.each(function(e) { this.value = v(this, t, e, this.value) }) : this[0] && (this[0].multiple ? E(this[0]).find("option").filter(function() { return this.selected }).pluck("value") : this[0].value) }, offset: function(t) { if (t) return this.each(function(e) { var n = E(this), i = v(this, t, e, n.offset()), r = n.offsetParent().offset(), o = { top: i.top - r.top, left: i.left - r.left }; "static" == n.css("position") && (o.position = "relative"), n.css(o) }); if (!this.length) return null; var e = this[0].getBoundingClientRect(); return { left: e.left + window.pageXOffset, top: e.top + window.pageYOffset, width: Math.round(e.width), height: Math.round(e.height) } }, css: function(e, n) { if (arguments.length < 2) { var i, r = this[0]; if (!r) return; if (i = getComputedStyle(r, ""), "string" == typeof e) return r.style[S(e)] || i.getPropertyValue(e); if (K(e)) { var o = {}; return E.each(e, function(t, e) { o[e] = r.style[S(e)] || i.getPropertyValue(e) }), o } } var a = ""; if ("string" == t(e)) n || 0 === n ? a = u(e) + ":" + f(e, n) : this.each(function() { this.style.removeProperty(u(e)) }); else for ($ in e) e[$] || 0 === e[$] ? a += u($) + ":" + f($, e[$]) + ";": this.each(function() { this.style.removeProperty(u($)) }); return this.each(function() { this.style.cssText += ";" + a }) }, index: function(t) { return t ? this.indexOf(E(t)[0]) : this.parent().children().indexOf(this[0]) }, hasClass: function(t) { return t ? C.some.call(this, function(t) { return this.test(w(t)) }, l(t)) : !1 }, addClass: function(t) { return t ? this.each(function(e) { if ("className" in this) { T = []; var n = w(this), i = v(this, t, e, n); i.split(/\s+/g).forEach(function(t) { E(this).hasClass(t) || T.push(t) }, this), T.length && w(this, n + (n ? " ": "") + T.join(" ")) } }) : this }, removeClass: function(t) { return this.each(function(e) { if ("className" in this) { if (t === A) return w(this, ""); T = w(this), v(this, t, e, T).split(/\s+/g).forEach(function(t) { T = T.replace(l(t), " ") }), w(this, T.trim()) } }) }, toggleClass: function(t, e) { return t ? this.each(function(n) { var i = E(this), r = v(this, t, n, w(this)); r.split(/\s+/g).forEach(function(t) { (e === A ? !i.hasClass(t) : e) ? i.addClass(t) : i.removeClass(t) }) }) : this }, scrollTop: function(t) { if (this.length) { var e = "scrollTop" in this[0]; return t === A ? e ? this[0].scrollTop: this[0].pageYOffset: this.each(e ? function() { this.scrollTop = t }: function() { this.scrollTo(this.scrollX, t) }) } }, scrollLeft: function(t) { if (this.length) { var e = "scrollLeft" in this[0]; return t === A ? e ? this[0].scrollLeft: this[0].pageXOffset: this.each(e ? function() { this.scrollLeft = t }: function() { this.scrollTo(t, this.scrollY) }) } }, position: function() { if (this.length) { var t = this[0], e = this.offsetParent(), n = this.offset(), i = z.test(e[0].nodeName) ? { top: 0, left: 0 }: e.offset(); return n.top -= parseFloat(E(t).css("margin-top")) || 0, n.left -= parseFloat(E(t).css("margin-left")) || 0, i.top += parseFloat(E(e[0]).css("border-top-width")) || 0, i.left += parseFloat(E(e[0]).css("border-left-width")) || 0, { top: n.top - i.top, left: n.left - i.left } } }, offsetParent: function() { return this.map(function() { for (var t = this.offsetParent || _.body; t && !z.test(t.nodeName) && "static" == E(t).css("position");) t = t.offsetParent; return t }) } }, E.fn.detach = E.fn.remove, ["width", "height"].forEach(function(t) { var e = t.replace(/./, function(t) { return t[0].toUpperCase() }); E.fn[t] = function(r) { var o, a = this[0]; return r === A ? n(a) ? a["inner" + e] : i(a) ? a.documentElement["scroll" + e] : (o = this.offset()) && o[t] : this.each(function(e) { a = E(this), a.css(t, v(this, r, e, a[t]())) }) } }), W.forEach(function(e, n) { var i = n % 2; E.fn[e] = function() { var e, r, o = E.map(arguments, function(n) { return e = t(n), "object" == e || "array" == e || null == n ? n: J.fragment(n) }), a = this.length > 1; return o.length < 1 ? this: this.each(function(t, e) { r = i ? e: e.parentNode, e = 0 == n ? e.nextSibling: 1 == n ? e.firstChild: 2 == n ? e: null; var s = E.contains(_.documentElement, r); o.forEach(function(t) { if (a) t = t.cloneNode(!0); else if (!r) return E(t).remove(); r.insertBefore(t, e), s && x(t, function(t) { null == t.nodeName || "SCRIPT" !== t.nodeName.toUpperCase() || t.type && "text/javascript" !== t.type || t.src || window.eval.call(window, t.innerHTML) }) }) }) }, E.fn[i ? e + "To": "insert" + (n ? "Before": "After")] = function(t) { return E(t)[e](this), this } }), J.Z.prototype = d.prototype = E.fn, J.uniq = j, J.deserializeValue = b, E.zepto = J, E } (); window.Zepto = Zepto, void 0 === window.$ && (window.$ = Zepto), function(t) { function e(t) { return t._zid || (t._zid = p++) } function n(t, n, o, a) { if (n = i(n), n.ns) var s = r(n.ns); return (g[e(t)] || []).filter(function(t) { return ! (!t || n.e && t.e != n.e || n.ns && !s.test(t.ns) || o && e(t.fn) !== e(o) || a && t.sel != a) }) } function i(t) { var e = ("" + t).split("."); return { e: e[0], ns: e.slice(1).sort().join(" ") } } function r(t) { return new RegExp("(?:^| )" + t.replace(" ", " .* ?") + "(?: |$)") } function o(t, e) { return t.del && !y && t.e in w || !!e } function a(t) { return b[t] || y && w[t] || t } function s(n, r, s, c, l, p, h) { var d = e(n), m = g[d] || (g[d] = []); r.split(/\s/).forEach(function(e) { if ("ready" == e) return t(document).ready(s); var r = i(e); r.fn = s, r.sel = l, r.e in b && (s = function(e) { var n = e.relatedTarget; return ! n || n !== this && !t.contains(this, n) ? r.fn.apply(this, arguments) : void 0 }), r.del = p; var d = p || s; r.proxy = function(t) { if (t = u(t), !t.isImmediatePropagationStopped()) { t.data = c; var e = d.apply(n, t._args == f ? [t] : [t].concat(t._args)); return e === !1 && (t.preventDefault(), t.stopPropagation()), e } }, r.i = m.length, m.push(r), "addEventListener" in n && n.addEventListener(a(r.e), r.proxy, o(r, h)) }) } function c(t, i, r, s, c) { var u = e(t); (i || "").split(/\s/).forEach(function(e) { n(t, e, r, s).forEach(function(e) { delete g[u][e.i], "removeEventListener" in t && t.removeEventListener(a(e.e), e.proxy, o(e, c)) }) }) } function u(e, n) { return (n || !e.isDefaultPrevented) && (n || (n = e), t.each(E, function(t, i) { var r = n[t]; e[t] = function() { return this[i] = x, r && r.apply(n, arguments) }, e[i] = A }), (n.defaultPrevented !== f ? n.defaultPrevented: "returnValue" in n ? n.returnValue === !1 : n.getPreventDefault && n.getPreventDefault()) && (e.isDefaultPrevented = x)), e } function l(t) { var e, n = { originalEvent: t }; for (e in t) $.test(e) || t[e] === f || (n[e] = t[e]); return u(n, t) } var f, p = 1, h = Array.prototype.slice, d = t.isFunction, m = function(t) { return "string" == typeof t }, g = {}, v = {}, y = "onfocusin" in window, w = { focus: "focusin", blur: "focusout" }, b = { mouseenter: "mouseover", mouseleave: "mouseout" }; v.click = v.mousedown = v.mouseup = v.mousemove = "MouseEvents", t.event = { add: s, remove: c }, t.proxy = function(n, i) { var r = 2 in arguments && h.call(arguments, 2); if (d(n)) { var o = function() { return n.apply(i, r ? r.concat(h.call(arguments)) : arguments) }; return o._zid = e(n), o } if (m(i)) return r ? (r.unshift(n[i], n), t.proxy.apply(null, r)) : t.proxy(n[i], n); throw new TypeError("expected function") }, t.fn.bind = function(t, e, n) { return this.on(t, e, n) }, t.fn.unbind = function(t, e) { return this.off(t, e) }, t.fn.one = function(t, e, n, i) { return this.on(t, e, n, i, 1) }; var x = function() { return ! 0 }, A = function() { return ! 1 }, $ = /^([A-Z]|returnValue$|layer[XY]$)/, E = { preventDefault: "isDefaultPrevented", stopImmediatePropagation: "isImmediatePropagationStopped", stopPropagation: "isPropagationStopped" }; t.fn.delegate = function(t, e, n) { return this.on(e, t, n) }, t.fn.undelegate = function(t, e, n) { return this.off(e, t, n) }, t.fn.live = function(e, n) { return t(document.body).delegate(this.selector, e, n), this }, t.fn.die = function(e, n) { return t(document.body).undelegate(this.selector, e, n), this }, t.fn.on = function(e, n, i, r, o) { var a, u, p = this; return e && !m(e) ? (t.each(e, function(t, e) { p.on(t, n, i, e, o) }), p) : (m(n) || d(r) || r === !1 || (r = i, i = n, n = f), (r === f || i === !1) && (r = i, i = f), r === !1 && (r = A), p.each(function(f, p) { o && (a = function(t) { return c(p, t.type, r), r.apply(this, arguments) }), n && (u = function(e) { var i, o = t(e.target).closest(n, p).get(0); return o && o !== p ? (i = t.extend(l(e), { currentTarget: o, liveFired: p }), (a || r).apply(o, [i].concat(h.call(arguments, 1)))) : void 0 }), s(p, e, r, i, n, u || a) })) }, t.fn.off = function(e, n, i) { var r = this; return e && !m(e) ? (t.each(e, function(t, e) { r.off(t, n, e) }), r) : (m(n) || d(i) || i === !1 || (i = n, n = f), i === !1 && (i = A), r.each(function() { c(this, e, i, n) })) }, t.fn.trigger = function(e, n) { return e = m(e) || t.isPlainObject(e) ? t.Event(e) : u(e), e._args = n, this.each(function() { e.type in w && "function" == typeof this[e.type] ? this[e.type]() : "dispatchEvent" in this ? this.dispatchEvent(e) : t(this).triggerHandler(e, n) }) }, t.fn.triggerHandler = function(e, i) { var r, o; return this.each(function(a, s) { r = l(m(e) ? t.Event(e) : e), r._args = i, r.target = s, t.each(n(s, e.type || e), function(t, e) { return o = e.proxy(r), r.isImmediatePropagationStopped() ? !1 : void 0 }) }), o }, "focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e) { t.fn[e] = function(t) { return 0 in arguments ? this.bind(e, t) : this.trigger(e) } }), t.Event = function(t, e) { m(t) || (e = t, t = e.type); var n = document.createEvent(v[t] || "Events"), i = !0; if (e) for (var r in e)"bubbles" == r ? i = !!e[r] : n[r] = e[r]; return n.initEvent(t, i, !0), u(n) } } (Zepto), function(t) { function e(e, n, i) { var r = t.Event(n); return t(e).trigger(r, i), !r.isDefaultPrevented() } function n(t, n, i, r) { return t.global ? e(n || y, i, r) : void 0 } function i(e) { e.global && 0 === t.active++&&n(e, null, "ajaxStart") } function r(e) { e.global && !--t.active && n(e, null, "ajaxStop") } function o(t, e) { var i = e.context; return e.beforeSend.call(i, t, e) === !1 || n(e, i, "ajaxBeforeSend", [t, e]) === !1 ? !1 : void n(e, i, "ajaxSend", [t, e]) } function a(t, e, i, r) { var o = i.context, a = "success"; i.success.call(o, t, a, e), r && r.resolveWith(o, [t, a, e]), n(i, o, "ajaxSuccess", [e, i, t]), c(a, e, i) } function s(t, e, i, r, o) { var a = r.context; r.error.call(a, i, e, t), o && o.rejectWith(a, [i, e, t]), n(r, a, "ajaxError", [i, r, t || e]), c(e, i, r) } function c(t, e, i) { var o = i.context; i.complete.call(o, e, t), n(i, o, "ajaxComplete", [e, i]), r(i) } function u() {} function l(t) { return t && (t = t.split(";", 2)[0]), t && (t == $ ? "html": t == A ? "json": b.test(t) ? "script": x.test(t) && "xml") || "text" } function f(t, e) { return "" == e ? t: (t + "&" + e).replace(/[&?]{1,2}/, "?") } function p(e) { e.processData && e.data && "string" != t.type(e.data) && (e.data = t.param(e.data, e.traditional)), !e.data || e.type && "GET" != e.type.toUpperCase() || (e.url = f(e.url, e.data), e.data = void 0) } function h(e, n, i, r) { return t.isFunction(n) && (r = i, i = n, n = void 0), t.isFunction(i) || (r = i, i = void 0), { url: e, data: n, success: i, dataType: r } } function d(e, n, i, r) { var o, a = t.isArray(n), s = t.isPlainObject(n); t.each(n, function(n, c) { o = t.type(c), r && (n = i ? r: r + "[" + (s || "object" == o || "array" == o ? n: "") + "]"), !r && a ? e.add(c.name, c.value) : "array" == o || !i && "object" == o ? d(e, c, i, n) : e.add(n, c) }) } var m, g, v = 0, y = window.document, w = /)<[^<]*)*<\/script>/gi, b = /^(?:text|application)\/javascript/i, x = /^(?:text|application)\/xml/i, A = "application/json", $ = "text/html", E = /^\s*$/, T = y.createElement("a"); T.href = window.location.href, t.active = 0, t.ajaxJSONP = function(e, n) { if (! ("type" in e)) return t.ajax(e); var i, r, c = e.jsonpCallback, u = (t.isFunction(c) ? c() : c) || "jsonp" + ++v, l = y.createElement("script"), f = window[u], p = function(e) { t(l).triggerHandler("error", e || "abort") }, h = { abort: p }; return n && n.promise(h), t(l).on("load error", function(o, c) { clearTimeout(r), t(l).off().remove(), "error" != o.type && i ? a(i[0], h, e, n) : s(null, c || "error", h, e, n), window[u] = f, i && t.isFunction(f) && f(i[0]), f = i = void 0 }), o(h, e) === !1 ? (p("abort"), h) : (window[u] = function() { i = arguments }, l.src = e.url.replace(/\?(.+)=\?/, "?$1=" + u), y.head.appendChild(l), e.timeout > 0 && (r = setTimeout(function() { p("timeout") }, e.timeout)), h) }, t.ajaxSettings = { type: "GET", beforeSend: u, success: u, error: u, complete: u, context: null, global: !0, xhr: function() { return new window.XMLHttpRequest }, accepts: { script: "text/javascript, application/javascript, application/x-javascript", json: A, xml: "application/xml, text/xml", html: $, text: "text/plain" }, crossDomain: !1, timeout: 0, processData: !0, cache: !0 }, t.ajax = function(e) { var n, r, c = t.extend({}, e || {}), h = t.Deferred && t.Deferred(); for (m in t.ajaxSettings) void 0 === c[m] && (c[m] = t.ajaxSettings[m]); i(c), c.crossDomain || (n = y.createElement("a"), n.href = c.url, n.href = n.href, c.crossDomain = T.protocol + "http://" + T.host != n.protocol + "http://" + n.host), c.url || (c.url = window.location.toString()), (r = c.url.indexOf("#")) > -1 && (c.url = c.url.slice(0, r)), p(c); var d = c.dataType, v = /\?.+=\?/.test(c.url); if (v && (d = "jsonp"), c.cache !== !1 && (e && e.cache === !0 || "script" != d && "jsonp" != d) || (c.url = f(c.url, "_=" + Date.now())), "jsonp" == d) return v || (c.url = f(c.url, c.jsonp ? c.jsonp + "=?": c.jsonp === !1 ? "": "callback=?")), t.ajaxJSONP(c, h); var w, b = c.accepts[d], x = {}, A = function(t, e) { x[t.toLowerCase()] = [t, e] }, $ = /^([\w-]+:)\/\//.test(c.url) ? RegExp.$1: window.location.protocol, S = c.xhr(), j = S.setRequestHeader; if (h && h.promise(S), c.crossDomain || A("X-Requested-With", "XMLHttpRequest"), A("Accept", b || "*/*"), (b = c.mimeType || b) && (b.indexOf(",") > -1 && (b = b.split(",", 2)[0]), S.overrideMimeType && S.overrideMimeType(b)), (c.contentType || c.contentType !== !1 && c.data && "GET" != c.type.toUpperCase()) && A("Content-Type", c.contentType || "application/x-www-form-urlencoded;charset=UTF-8"), c.headers) for (g in c.headers) A(g, c.headers[g]); if (S.setRequestHeader = A, S.onreadystatechange = function() { if (4 == S.readyState) { S.onreadystatechange = u, clearTimeout(w); var e, n = !1; if (S.status >= 200 && S.status < 300 || 304 == S.status || 0 == S.status && "file:" == $) { d = d || l(c.mimeType || S.getResponseHeader("content-type")), e = S.responseText; try { "script" == d ? (1, eval)(e) : "xml" == d ? e = S.responseXML: "json" == d && (e = E.test(e) ? null: t.parseJSON(e)) } catch(i) { n = i } n ? s(n, "parsererror", S, c, h) : a(e, S, c, h) } else s(S.statusText || null, S.status ? "error": "abort", S, c, h) } }, o(S, c) === !1) return S.abort(), s(null, "abort", S, c, h), S; if (c.xhrFields) for (g in c.xhrFields) S[g] = c.xhrFields[g]; var C = "async" in c ? c.async: !0; S.open(c.type, c.url, C, c.username, c.password); for (g in x) j.apply(S, x[g]); return c.timeout > 0 && (w = setTimeout(function() { S.onreadystatechange = u, S.abort(), s(null, "timeout", S, c, h) }, c.timeout)), S.send(c.data ? c.data: null), S }, t.get = function() { return t.ajax(h.apply(null, arguments)) }, t.post = function() { var e = h.apply(null, arguments); return e.type = "POST", t.ajax(e) }, t.getJSON = function() { var e = h.apply(null, arguments); return e.dataType = "json", t.ajax(e) }, t.fn.load = function(e, n, i) { if (!this.length) return this; var r, o = this, a = e.split(/\s/), s = h(e, n, i), c = s.success; return a.length > 1 && (s.url = a[0], r = a[1]), s.success = function(e) { o.html(r ? t("
").html(e.replace(w, "")).find(r) : e), c && c.apply(o, arguments) }, t.ajax(s), this }; var S = encodeURIComponent; t.param = function(e, n) { var i = []; return i.add = function(e, n) { t.isFunction(n) && (n = n()), null == n && (n = ""), this.push(S(e) + "=" + S(n)) }, d(i, e, n), i.join("&").replace(/%20/g, "+") } } (Zepto), function(t) { t.fn.serializeArray = function() { var e, n, i = [], r = function(t) { return t.forEach ? t.forEach(r) : void i.push({ name: e, value: t }) }; return this[0] && t.each(this[0].elements, function(i, o) { n = o.type, e = o.name, e && "fieldset" != o.nodeName.toLowerCase() && !o.disabled && "submit" != n && "reset" != n && "button" != n && "file" != n && ("radio" != n && "checkbox" != n || o.checked) && r(t(o).val()) }), i }, t.fn.serialize = function() { var t = []; return this.serializeArray().forEach(function(e) { t.push(encodeURIComponent(e.name) + "=" + encodeURIComponent(e.value)) }), t.join("&") }, t.fn.submit = function(e) { if (0 in arguments) this.bind("submit", e); else if (this.length) { var n = t.Event("submit"); this.eq(0).trigger(n), n.isDefaultPrevented() || this.get(0).submit() } return this } } (Zepto), function(t) { function e(t, e) { var n = this.os = {}, i = this.browser = {}, r = t.match(/Web[kK]it[\/]{0,1}([\d.]+)/), o = t.match(/(Android);?[\s\/]+([\d.]+)?/), a = !!t.match(/\(Macintosh\; Intel /), s = t.match(/(iPad).*OS\s([\d_]+)/), c = t.match(/(iPod)(.*OS\s([\d_]+))?/), u = !s && t.match(/(iPhone\sOS)\s([\d_]+)/), l = t.match(/(webOS|hpwOS)[\s\/]([\d.]+)/), f = /Win\d{2}|Windows/.test(e), p = t.match(/Windows Phone ([\d.]+)/), h = t.match(/SNEBUY-APP;?/i), d = t.match(/PlayBook/), m = t.match(/Chrome\/([\d.]+)/) || t.match(/CriOS\/([\d.]+)/), g = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/[\d](?=[^\?]+).*rv:([0-9.].)/), v = !m && t.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/), y = v || t.match(/Version\/([\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/); (i.webkit = !!r) && (i.version = r[1]), o && (n.android = !0, n.version = o[2]), u && !c && (n.ios = n.iphone = !0, n.version = u[2].replace(/_/g, ".")), s && (n.ios = n.ipad = !0, n.version = s[2].replace(/_/g, ".")), c && (n.ios = n.ipod = !0, n.version = c[3] ? c[3].replace(/_/g, ".") : null), p && (n.wp = !0, n.version = p[1]), h && (i.isApp = !0), l && (n.webos = !0, n.version = l[2]), d && (i.playbook = !0), m && (i.chrome = !0, i.version = m[1]), g && (i.ie = !0, i.version = g[1]), y && (a || n.ios || f) && (i.safari = !0, n.ios || (i.version = y[1])), v && (i.webview = !0) } e.call(t, navigator.userAgent, navigator.platform), t.__detect = e } (Zepto), function(t, e) { function n(t) { return t.replace(/([a-z])([A-Z])/, "$1-$2").toLowerCase() } function i(t) { return r ? r + t: t.toLowerCase() } var r, o, a, s, c, u, l, f, p, h, d = "", m = { Webkit: "webkit", Moz: "", O: "o" }, g = document.createElement("div"), v = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i, y = {}; t.each(m, function(t, n) { return g.style[t + "TransitionProperty"] !== e ? (d = "-" + t.toLowerCase() + "-", r = n, !1) : void 0 }), o = d + "transform", y[a = d + "transition-property"] = y[s = d + "transition-duration"] = y[u = d + "transition-delay"] = y[c = d + "transition-timing-function"] = y[l = d + "animation-name"] = y[f = d + "animation-duration"] = y[h = d + "animation-delay"] = y[p = d + "animation-timing-function"] = "", t.fx = { off: r === e && g.style.transitionProperty === e, speeds: { _default: 400, fast: 200, slow: 600 }, cssPrefix: d, transitionEnd: i("TransitionEnd"), animationEnd: i("AnimationEnd") }, t.fn.animate = function(n, i, r, o, a) { return t.isFunction(i) && (o = i, r = e, i = e), t.isFunction(r) && (o = r, r = e), t.isPlainObject(i) && (r = i.easing, o = i.complete, a = i.delay, i = i.duration), i && (i = ("number" == typeof i ? i: t.fx.speeds[i] || t.fx.speeds._default) / 1e3), a && (a = parseFloat(a) / 1e3), this.anim(n, i, r, o, a) }, t.fn.anim = function(i, r, d, m, g) { var w, b, x, A = {}, $ = "", E = this, T = t.fx.transitionEnd, S = !1; if (r === e && (r = t.fx.speeds._default / 1e3), g === e && (g = 0), t.fx.off && (r = 0), "string" == typeof i) A[l] = i, A[f] = r + "s", A[h] = g + "s", A[p] = d || "linear", T = t.fx.animationEnd; else { b = []; for (w in i) v.test(w) ? $ += w + "(" + i[w] + ") ": (A[w] = i[w], b.push(n(w))); $ && (A[o] = $, b.push(o)), r > 0 && "object" == typeof i && (A[a] = b.join(", "), A[s] = r + "s", A[u] = g + "s", A[c] = d || "linear") } return x = function(e) { if ("undefined" != typeof e) { if (e.target !== e.currentTarget) return; t(e.target).unbind(T, x) } else t(this).unbind(T, x); S = !0, t(this).css(y), m && m.call(this) }, r > 0 && (this.bind(T, x), setTimeout(function() { S || x.call(E) }, 1e3 * (r + g) + 25)), this.size() && this.get(0).clientLeft, this.css(A), 0 >= r && setTimeout(function() { E.each(function() { x.call(this) }) }, 0), this }, g = null } (Zepto), function(t, e) { function n(n, i, r, o, a) { "function" != typeof i || a || (a = i, i = e); var s = { opacity: r }; return o && (s.scale = o, n.css(t.fx.cssPrefix + "transform-origin", "0 0")), n.animate(s, i, null, a) } function i(e, i, r, o) { return n(e, i, 0, r, function() { a.call(t(this)), o && o.call(this) }) } var r = window.document, o = (r.documentElement, t.fn.show), a = t.fn.hide, s = t.fn.toggle; t.fn.show = function(t, i) { return o.call(this), t === e ? t = 0 : this.css("opacity", 0), n(this, t, 1, "1,1", i) }, t.fn.hide = function(t, n) { return t === e ? a.call(this) : i(this, t, "0,0", n) }, t.fn.toggle = function(n, i) { return n === e || "boolean" == typeof n ? s.call(this, n) : this.each(function() { var e = t(this); e["none" == e.css("display") ? "show": "hide"](n, i) }) }, t.fn.fadeTo = function(t, e, i) { return n(this, t, e, null, i) }, t.fn.fadeIn = function(t, e) { var n = this.css("opacity"); return n > 0 ? this.css("opacity", 0) : n = 1, o.call(this).fadeTo(t, n, e) }, t.fn.fadeOut = function(t, e) { return i(this, t, null, e) }, t.fn.fadeToggle = function(e, n) { return this.each(function() { var i = t(this); i[0 == i.css("opacity") || "none" == i.css("display") ? "fadeIn": "fadeOut"](e, n) }) } } (Zepto), function(t) { function e(e, i) { var c = e[s], u = c && r[c]; if (void 0 === i) return u || n(e); if (u) { if (i in u) return u[i]; var l = a(i); if (l in u) return u[l] } return o.call(t(e), i) } function n(e, n, o) { var c = e[s] || (e[s] = ++t.uuid), u = r[c] || (r[c] = i(e)); return void 0 !== n && (u[a(n)] = o), u } function i(e) { var n = {}; return t.each(e.attributes || c, function(e, i) { 0 == i.name.indexOf("data-") && (n[a(i.name.replace("data-", ""))] = t.zepto.deserializeValue(i.value)) }), n } var r = {}, o = t.fn.data, a = t.camelCase, s = t.expando = "Zepto" + +new Date, c = []; t.fn.data = function(i, r) { return void 0 === r ? t.isPlainObject(i) ? this.each(function(e, r) { t.each(i, function(t, e) { n(r, t, e) }) }) : 0 in this ? e(this[0], i) : void 0 : this.each(function() { n(this, i, r) }) }, t.fn.removeData = function(e) { return "string" == typeof e && (e = e.split(/\s+/)), this.each(function() { var n = this[s], i = n && r[n]; i && t.each(e || i, function(t) { delete i[e ? a(this) : t] }) }) }, ["remove", "empty"].forEach(function(e) { var n = t.fn[e]; t.fn[e] = function() { var t = this.find("*"); return "remove" === e && (t = t.add(this)), t.removeData(), n.call(this) } }) } (Zepto), function(t) { function e(n) { var i = [["resolve", "done", t.Callbacks({ once: 1, memory: 1 }), "resolved"], ["reject", "fail", t.Callbacks({ once: 1, memory: 1 }), "rejected"], ["notify", "progress", t.Callbacks({ memory: 1 })]], r = "pending", o = { state: function() { return r }, always: function() { return a.done(arguments).fail(arguments), this }, then: function() { var n = arguments; return e(function(e) { t.each(i, function(i, r) { var s = t.isFunction(n[i]) && n[i]; a[r[1]](function() { var n = s && s.apply(this, arguments); if (n && t.isFunction(n.promise)) n.promise().done(e.resolve).fail(e.reject).progress(e.notify); else { var i = this === o ? e.promise() : this, a = s ? [n] : arguments; e[r[0] + "With"](i, a) } }) }), n = null }).promise() }, promise: function(e) { return null != e ? t.extend(e, o) : o } }, a = {}; return t.each(i, function(t, e) { var n = e[2], s = e[3]; o[e[1]] = n.add, s && n.add(function() { r = s }, i[1 ^ t][2].disable, i[2][2].lock), a[e[0]] = function() { return a[e[0] + "With"](this === a ? o: this, arguments), this }, a[e[0] + "With"] = n.fireWith }), o.promise(a), n && n.call(a, a), a } var n = Array.prototype.slice; t.when = function(i) { var r, o, a, s = n.call(arguments), c = s.length, u = 0, l = 1 !== c || i && t.isFunction(i.promise) ? c: 0, f = 1 === l ? i: e(), p = function(t, e, i) { return function(o) { e[t] = this, i[t] = arguments.length > 1 ? n.call(arguments) : o, i === r ? f.notifyWith(e, i) : --l || f.resolveWith(e, i) } }; if (c > 1) for (r = new Array(c), o = new Array(c), a = new Array(c); c > u; ++u) s[u] && t.isFunction(s[u].promise) ? s[u].promise().done(p(u, a, s)).fail(f.reject).progress(p(u, o, r)) : --l; return l || f.resolveWith(a, s), f.promise() }, t.Deferred = e } (Zepto), function(t) { t.Callbacks = function(e) { e = t.extend({}, e); var n, i, r, o, a, s, c = [], u = !e.once && [], l = function(t) { for (n = e.memory && t, i = !0, s = o || 0, o = 0, a = c.length, r = !0; c && a > s; ++s) if (c[s].apply(t[0], t[1]) === !1 && e.stopOnFalse) { n = !1; break } r = !1, c && (u ? u.length && l(u.shift()) : n ? c.length = 0 : f.disable()) }, f = { add: function() { if (c) { var i = c.length, s = function(n) { t.each(n, function(t, n) { "function" == typeof n ? e.unique && f.has(n) || c.push(n) : n && n.length && "string" != typeof n && s(n) }) }; s(arguments), r ? a = c.length: n && (o = i, l(n)) } return this }, remove: function() { return c && t.each(arguments, function(e, n) { for (var i; (i = t.inArray(n, c, i)) > -1;) c.splice(i, 1), r && (a >= i && --a, s >= i && --s) }), this }, has: function(e) { return ! (!c || !(e ? t.inArray(e, c) > -1 : c.length)) }, empty: function() { return a = c.length = 0, this }, disable: function() { return c = u = n = void 0, this }, disabled: function() { return ! c }, lock: function() { return u = void 0, n || f.disable(), this }, locked: function() { return ! u }, fireWith: function(t, e) { return ! c || i && !u || (e = e || [], e = [t, e.slice ? e.slice() : e], r ? u.push(e) : l(e)), this }, fire: function() { return f.fireWith(this, arguments) }, fired: function() { return !! i } }; return f } } (Zepto), function(t) { function e(e) { return e = t(e), !(!e.width() && !e.height()) && "none" !== e.css("display") } function n(t, e) { t = t.replace(/=#\]/g, '="#"]'); var n, i, r = s.exec(t); if (r && r[2] in a && (n = a[r[2]], i = r[3], t = r[1], i)) { var o = Number(i); i = isNaN(o) ? i.replace(/^["']|["']$/g, "") : o } return e(t, n, i) } var i = t.zepto, r = i.qsa, o = i.matches, a = t.expr[":"] = { visible: function() { return e(this) ? this: void 0 }, hidden: function() { return e(this) ? void 0 : this }, selected: function() { return this.selected ? this: void 0 }, checked: function() { return this.checked ? this: void 0 }, parent: function() { return this.parentNode }, first: function(t) { return 0 === t ? this: void 0 }, last: function(t, e) { return t === e.length - 1 ? this: void 0 }, eq: function(t, e, n) { return t === n ? this: void 0 }, contains: function(e, n, i) { return t(this).text().indexOf(i) > -1 ? this: void 0 }, has: function(t, e, n) { return i.qsa(this, n).length ? this: void 0 } }, s = new RegExp("(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*"), c = /^\s*>/, u = "Zepto" + +new Date; i.qsa = function(e, o) { return n(o, function(n, a, s) { try { var l; ! n && a ? n = "*": c.test(n) && (l = t(e).addClass(u), n = "." + u + " " + n); var f = r(e, n) } catch(p) { throw console.error("error performing selector: %o", o), p } finally { l && l.removeClass(u) } return a ? i.uniq(t.map(f, function(t, e) { return a.call(t, e, f, s) })) : f }) }, i.matches = function(t, e) { return n(e, function(e, n, i) { return ! (e && !o(t, e) || n && n.call(t, null, i) !== t) }) } } (Zepto), function(t) { function e(t, e, n, i) { return Math.abs(t - e) >= Math.abs(n - i) ? t - e > 0 ? "Left": "Right": n - i > 0 ? "Up": "Down" } function n() { l = null, p.last && (p.el.trigger("longTap"), p = {}) } function i() { l && clearTimeout(l), l = null } function r() { s && clearTimeout(s), c && clearTimeout(c), u && clearTimeout(u), l && clearTimeout(l), s = c = u = l = null, p = {} } function o(t) { return ("touch" == t.pointerType || t.pointerType == t.MSPOINTER_TYPE_TOUCH) && t.isPrimary } function a(t, e) { return t.type == "pointer" + e || t.type.toLowerCase() == "mspointer" + e } var s, c, u, l, f, p = {}, h = 750; t(document).ready(function() { var d, m, g, v, y = 0, w = 0; "MSGesture" in window && (f = new MSGesture, f.target = document.body), t(document).bind("MSGestureEnd", function(t) { var e = t.velocityX > 1 ? "Right": t.velocityX < -1 ? "Left": t.velocityY > 1 ? "Down": t.velocityY < -1 ? "Up": null; e && (p.el.trigger("swipe"), p.el.trigger("swipe" + e)) }).on("touchstart MSPointerDown pointerdown", function(e) { (!(v = a(e, "down")) || o(e)) && (g = v ? e: e.touches[0], e.touches && 1 === e.touches.length && p.x2 && (p.x2 = void 0, p.y2 = void 0), d = Date.now(), m = d - (p.last || d), p.el = t("tagName" in g.target ? g.target: g.target.parentNode), s && clearTimeout(s), p.x1 = g.pageX, p.y1 = g.pageY, m > 0 && 250 >= m && (p.isDoubleTap = !0), p.last = d, l = setTimeout(n, h), f && v && f.addPointer(e.pointerId)) }).on("touchmove MSPointerMove pointermove", function(t) { (!(v = a(t, "move")) || o(t)) && (g = v ? t: t.touches[0], i(), p.x2 = g.pageX, p.y2 = g.pageY, y += Math.abs(p.x1 - p.x2), w += Math.abs(p.y1 - p.y2)) }).on("touchend MSPointerUp pointerup", function(n) { (!(v = a(n, "up")) || o(n)) && (i(), p.x2 && Math.abs(p.x1 - p.x2) > 30 || p.y2 && Math.abs(p.y1 - p.y2) > 30 ? u = setTimeout(function() { p.el.trigger("swipe"), p.el.trigger("swipe" + e(p.x1, p.x2, p.y1, p.y2)), p = {} }, 0) : "last" in p && (30 > y && 30 > w ? c = setTimeout(function() { var e = t.Event("tap"); e.cancelTouch = r, p.el.trigger(e), p.isDoubleTap ? (p.el && p.el.trigger("doubleTap"), p = {}) : s = setTimeout(function() { s = null, p.el && p.el.trigger("singleTap"), p = {} }, 250) }, 0) : p = {}), y = w = 0) }).on("touchcancel MSPointerCancel pointercancel", r), t(window).on("scroll", r) }), ["swipe", "swipeLeft", "swipeRight", "swipeUp", "swipeDown", "doubleTap", "tap", "singleTap", "longTap"].forEach(function(e) { t.fn[e] = function(t) { return this.on(e, t) } }) } (Zepto), function(t) { function e(t) { return "tagName" in t ? t: t.parentNode } if (t.os.ios) { var n, i = {}; t(document).bind("gesturestart", function(t) { { var r = Date.now(); r - (i.last || r) } i.target = e(t.target), n && clearTimeout(n), i.e1 = t.scale, i.last = r }).bind("gesturechange", function(t) { i.e2 = t.scale }).bind("gestureend", function(e) { i.e2 > 0 ? (0 != Math.abs(i.e1 - i.e2) && t(i.target).trigger("pinch") && t(i.target).trigger("pinch" + (i.e1 - i.e2 > 0 ? "In": "Out")), i.e1 = i.e2 = i.last = 0) : "last" in i && (i = {}) }), ["pinch", "pinchIn", "pinchOut"].forEach(function(e) { t.fn[e] = function(t) { return this.bind(e, t) } }) } } (Zepto), function(t) { t.fn.end = function() { return this.prevObject || t() }, t.fn.andSelf = function() { return this.add(this.prevObject || t()) }, "filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings".split(",").forEach(function(e) { var n = t.fn[e]; t.fn[e] = function() { var t = n.apply(this, arguments); return t.prevObject = this, t } }) } (Zepto), "function" == typeof Zepto && ! function(t) { "function" == typeof define && define.amd ? define(["Zepto"], t) : t($) } (function(t) { function e(t) { return s.raw ? t: encodeURIComponent(t) } function n(t) { return s.raw ? t: decodeURIComponent(t) } function i(t) { return e(s.json ? JSON.stringify(t) : String(t)) } function r(t) { 0 === t.indexOf('"') && (t = t.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")); try { t = decodeURIComponent(t.replace(a, " ")) } catch(e) { return } try { return s.json ? JSON.parse(t) : t } catch(e) {} } function o(e, n) { var i = s.raw ? e: r(e); return t.isFunction(n) ? n(i) : i } var a = /\+/g, s = t.cookie = function(r, a, c) { if (void 0 !== a && !t.isFunction(a)) { if (c = t.extend({}, s.defaults, c), "number" == typeof c.expires) { var u = c.expires, l = c.expires = new Date; l.setDate(l.getDate() + u) } return document.cookie = [e(r), "=", i(a), c.expires ? "; expires=" + c.expires.toUTCString() : "", c.path ? "; path=" + c.path: "", c.domain ? "; domain=" + c.domain: "", c.secure ? "; secure": ""].join("") } for (var f = r ? void 0 : {}, p = document.cookie ? document.cookie.split("; ") : [], h = 0, d = p.length; d > h; h++) { var m = p[h].split("="), g = n(m.shift()), v = m.join("="); if (r && r === g) { f = o(v, a); break } r || void 0 === (v = o(v)) || (f[g] = v) } return f }; s.defaults = {}, t.removeCookie = function(e, n) { return void 0 !== t.cookie(e) ? (t.cookie(e, "", t.extend({}, n, { expires: -1 })), !0) : !1 } }), ! function() { function t(t) { return t.replace(w, "").replace(b, ",").replace(x, "").replace(A, "").replace($, "").split(E) } function e(t) { return "'" + t.replace(/('|\\)/g, "\\$1").replace(/\r/g, "\\r").replace(/\n/g, "\\n") + "'" } function n(n, i) { function r(t) { return p += t.split(/\n/).length - 1, l && (t = t.replace(/\s+/g, " ").replace(//g, "")), t && (t = y[1] + e(t) + y[2] + "\n"), t } function o(e) { var n = p; if (u ? e = u(e, i) : a && (e = e.replace(/\n/g, function() { return p++, "$line=" + p + ";" })), 0 === e.indexOf("=")) { var r = f && !/^=[=#]/.test(e); if (e = e.replace(/^=[=#]?|[\s;]*$/g, ""), r) { var o = e.replace(/\s*\([^\)]+\)/, ""); h[o] || /^(include|print)$/.test(o) || (e = "$escape(" + e + ")") } else e = "$string(" + e + ")"; e = y[1] + e + y[2] } return a && (e = "$line=" + n + ";" + e), v(t(e), function(t) { if (t && !m[t]) { var e; e = "print" === t ? b: "include" === t ? x: h[t] ? "$utils." + t: d[t] ? "$helpers." + t: "$data." + t, A += t + "=" + e + ",", m[t] = !0 } }), e + "\n" } var a = i.debug, s = i.openTag, c = i.closeTag, u = i.parser, l = i.compress, f = i.escape, p = 1, m = { $data: 1, $filename: 1, $utils: 1, $helpers: 1, $out: 1, $line: 1 }, g = "".trim, y = g ? ["$out='';", "$out+=", ";", "$out"] : ["$out=[];", "$out.push(", ");", "$out.join('')"], w = g ? "$out+=text;return $out;": "$out.push(text);", b = "function(){var text=''.concat.apply('',arguments);" + w + "}", x = "function(filename,data){data=data||$data;var text=$utils.$include(filename,data,$filename);" + w + "}", A = "'use strict';var $utils=this,$helpers=$utils.$helpers," + (a ? "$line=0,": ""), $ = y[0], E = "return new String(" + y[3] + ");"; v(n.split(s), function(t) { t = t.split(c); var e = t[0], n = t[1]; 1 === t.length ? $ += r(e) : ($ += o(e), n && ($ += r(n))) }); var T = A + $ + E; a && (T = "try{" + T + "}catch(e){throw {filename:$filename,name:'Render Error',message:e.message,line:$line,source:" + e(n) + ".split(/\\n/)[$line-1].replace(/^\\s+/,'')};}"); try { var S = new Function("$data", "$filename", T); return S.prototype = h, S } catch(j) { throw j.temp = "function anonymous($data,$filename) {" + T + "}", j } } var i = function(t, e) { return "string" == typeof e ? g(e, { filename: t }) : a(t, e) }; i.version = "3.0.0", i.config = function(t, e) { r[t] = e }; var r = i.defaults = { openTag: "<%", closeTag: "%>", escape: !0, cache: !0, compress: !1, parser: null }, o = i.cache = {}; i.render = function(t, e) { return g(t, e) }; var a = i.renderFile = function(t, e) { var n = i.get(t) || m({ filename: t, name: "Render Error", message: "Template not found" }); return e ? n(e) : n }; i.get = function(t) { var e; if (o[t]) e = o[t]; else if ("object" == typeof document) { var n = document.getElementById(t); if (n) { var i = (n.value || n.innerHTML).replace(/^\s*|\s*$/g, ""); e = g(i, { filename: t }) } } return e }; var s = function(t, e) { return "string" != typeof t && (e = typeof t, "number" === e ? t += "": t = "function" === e ? s(t.call(t)) : ""), t }, c = { "<": "<", ">": ">", '"': """, "'": "'", "&": "&" }, u = function(t) { return c[t] }, l = function(t) { return s(t).replace(/&(?![\w#]+;)|[<>"']/g, u) }, f = Array.isArray || function(t) { return "[object Array]" === {}.toString.call(t) }, p = function(t, e) { var n, i; if (f(t)) for (n = 0, i = t.length; i > n; n++) e.call(t, t[n], n, t); else for (n in t) e.call(t, t[n], n) }, h = i.utils = { $helpers: {}, $include: a, $string: s, $escape: l, $each: p }; i.helper = function(t, e) { d[t] = e }; var d = i.helpers = h.$helpers; i.onerror = function(t) { var e = "Template Error\n\n"; for (var n in t) e += "<" + n + ">\n" + t[n] + "\n\n"; "object" == typeof console && console.error(e) }; var m = function(t) { return i.onerror(t), function() { return "{Template Error}" } }, g = i.compile = function(t, e) { function i(n) { try { return new c(n, s) + "" } catch(i) { return e.debug ? m(i)() : (e.debug = !0, g(t, e)(n)) } } e = e || {}; for (var a in r) void 0 === e[a] && (e[a] = r[a]); var s = e.filename; try { var c = n(t, e) } catch(u) { return u.filename = s || "anonymous", u.name = "Syntax Error", m(u) } return i.prototype = c.prototype, i.toString = function() { return c.toString() }, s && e.cache && (o[s] = i), i }, v = h.$each, y = "break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined", w = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|\s*\.\s*[$\w\.]+/g, b = /[^\w$]+/g, x = new RegExp(["\\b" + y.replace(/,/g, "\\b|\\b") + "\\b"].join("|"), "g"), A = /^\d[^,]*|,\d[^,]*/g, $ = /^,+|,+$/g, E = /^$|,+/; r.openTag = "{{", r.closeTag = "}}"; var T = function(t, e) { var n = e.split(":"), i = n.shift(), r = n.join(":") || ""; return r && (r = ", " + r), "$helpers." + i + "(" + t + r + ")" }; r.parser = function(t, e) { t = t.replace(/^\s/, ""); var n = t.split(" "), r = n.shift(), o = n.join(" "); switch (r) { case "if": t = "if(" + o + "){"; break; case "else": n = "if" === n.shift() ? " if(" + n.join(" ") + ")": "", t = "}else" + n + "{"; break; case "/if": t = "}"; break; case "each": var a = n[0] || "$data", s = n[1] || "as", c = n[2] || "$value", u = n[3] || "$index", l = c + "," + u; "as" !== s && (a = "[]"), t = "$each(" + a + ",function(" + l + "){"; break; case "/each": t = "});"; break; case "echo": t = "print(" + o + ");"; break; case "print": case "include": t = r + "(" + n.join(",") + ");"; break; default: if (/^\s*\|\s*[\w\$]/.test(o)) { var f = !0; 0 === t.indexOf("#") && (t = t.substr(1), f = !1); for (var p = 0, h = t.split("|"), d = h.length, m = h[p++]; d > p; p++) m = T(m, h[p]); t = (f ? "=": "=#") + m } else t = i.helpers[r] ? "=#" + r + "(" + n.join(",") + ");": "=" + t } return t }, "function" == typeof define ? define(function() { return i }) : "undefined" != typeof exports ? module.exports = i: this.template = i } (), function(t) { t.extend(t, { probeAuthStatus: function(e, n, i) { "undefined" == typeof i && "undefined" != typeof passport_config && (i = passport_config), t.ajax({ url: i.base + "authStatus", crossDomain: !0, cache: !1, dataType: "jsonp", jsonpCallback: "authCallback", success: function(t) { if (t.hasLogin) { var i = t.principal; e(i) } else n() } }) } }) } (Zepto), function(t) { var e = "http://res.m.suning.com", n = "/common/script/api/"; if (window.location.search.match(/\[debug\]/)) { var i = "timing.js"; window.location.search.match(/\[debug\]chrome/) && (i = "performance.js"); try { window.addEventListener("load", function() { setTimeout(function() { var t = document.createElement("script"); t.src = e + n + i, document.querySelector("head").appendChild(t) }, 2e3) }) } catch(r) { console.log(r) } } window._get_timing_ = 0, t("body").on("pinchIn", function() { if (_get_timing_++, 5 == _get_timing_) { alert("Loading... ... Please waiting... ..."); var t = document.createElement("script"); t.src = e + n + "timing.js", document.querySelector("head").appendChild(t) } }) } (Zepto), ! function() { var t = [], e = !1, n = 0, i = function() { function i(n, i, o) { if (n.src) { n.src = n.src.constructor === Array ? n.src: [n.src]; for (var a = 0; a < n.src.length; a++) n.src[a].constructor !== Array && (n.src[a] = [n.src[a]]), t.push({ src: n.src[a], callback: n.src.length != a + 1 || o ? void 0 : i, complete: 0 }) } e || r() } function r() { var i = []; $.each(document.scripts, function() { this.src && i.push(this.src.split("?")[0]) }); var r, c, u = t[n]; if (u) { e = !0, n++, a = a || s.getElementsByTagName("head")[0]; for (var l = 0; l < u.src.length; l++) c = u.src[l], i.indexOf(c.split("?")[0]) < 0 ? (r = s.createElement("script"), r.src = c, r.type = "text/javascript", r.onload = r.onerror = function() { o(u) }, a.appendChild(r)) : o(u) } } function o(t) { t.complete++, "function" == typeof t.callback && t.callback(), e = !1, t.complete == t.src.length && r() } var a, s = document; return { init: function(t, e, n) { i(t, e, n) } } } (); window._loadScript_ = function(t) { function e(t) { if (0 != c.src.length) { if (_loadScript_.prototype.uuid++, _loadScript_.prototype.uuid <= 1 && !r && (navigator.userAgent.match(/SNEBUY-APP/i) ? document.body.insertAdjacentHTML("beforeend", '') : document.body.insertAdjacentHTML("beforeend", '')), a && o && !r && _loadScript_.prototype.ga) return _loadScript_.prototype.ga = !1, void c.src.push("http://script.suning.cn/javascript/sn_da/da_opt.js"); a = !0, o ? (o = !1, i.init(c, u)) : (t = s, !r && _loadScript_.prototype.ga && (_loadScript_.prototype.ga = !1, c.src.push("http://script.suning.cn/javascript/sn_da/da_opt.js")), i.init(c, u, t)) } } var n = t.loadComplete || function() {}, r = t.withoutGa || !1, o = !1, a = !1, s = !1, c = { src: t.srcArr }, u = n; setTimeout(function() { o = !0, s = !0, a || (a = !0, e()) }, 1e3), window.addEventListener("load", function() { e(!0) }) }, _loadScript_.prototype.uuid = 0, _loadScript_.prototype.ga = !0, $.extend($, { loadScript: _loadScript_ }) } (), function(t) { var e = !1, n = new Image; n.src = "data:image/webp;base64,UklGRiwAAABXRUJQVlA4ICAAAAAUAgCdASoBAAEAL/3+/3+CAB/AAAFzrNsAAP5QAAAAAA==", n.onerror = n.onload = function() { 1 === n.width && 1 === n.height && (e = !0, t.isWebp = e) } } (Zepto), function(t, e) { "undefined" != typeof module && module.exports ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.lazyload = e.call(t) } (this, function() { "use strict"; function t(t, e) { function n(t, e) { t.onerror = function() { e.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" }, t.src = t.getAttribute("data-src"), $(e).removeClass("opa0").addClass("opa1"), $.isWebp && (t.src += "?from=mobile"), t.setAttribute("data-src", "done") } var i = null, r = e; r = "undefined" != typeof r && "function" != typeof r ? "touchmove touchend scroll": "scroll", $(t).find("img").each(function() { ! $(t).hasClass("lazyimg") && $(t).addClass("lazyimg"); var e = $(this)[0]; null != e.getAttribute("data-src") && $(this).offset().top < window.innerHeight && "done" != e.getAttribute("data-src") && n(e, this) }), $(window).on("lazyload " + r, function() { i = setTimeout(function() { $(t).find("img").each(function() { ! $(t).hasClass("lazyimg") && $(t).addClass("lazyimg"); var e = $(this)[0]; if (null != e.getAttribute("data-src")) { var r = $(this).offset().top, o = window.innerHeight || window.screen.height; return window.pageYOffset > r + o || window.pageYOffset < r - o && "done" != e.getAttribute("data-src") ? void clearTimeout(i) : void(window.pageYOffset > r - o && "done" != e.getAttribute("data-src") && n(e, this)) } }), "function" == typeof e && $(t).each(function() { var n = $(this)[0], r = $(this).offset().top, o = window.innerHeight || window.screen.height; return window.pageYOffset > r + o || window.pageYOffset < r - o && "done" != n.getAttribute("data-loaded") ? void clearTimeout(i) : void(window.pageYOffset > r - o - 30 && "done" != n.getAttribute("data-loaded") && e($(t))) }) }, 20) }), setTimeout(function() { $(window).trigger("lazyload") }, 0) } return (window.Zepto || window.jQuery) && ! function(e) { e.fn.lazyload = function(n) { return this.each(function() { t(e(this), n) }) } } (window.Zepto || window.jQuery), t }), function() { $.extend($, { AppReady: function(t) { function e(t, e) { return "function" == typeof e ? void e(t) : void n.resolve(t) } var n = $.Deferred(); return $.isApp && $.os.android && ("undefined" == typeof baseApi ? _loadScript_({ srcArr: ["http://res.m.suning.com/common/script/android/sneapp.js"], withoutGa: !0, loadComplete: function() { document.addEventListener("deviceready", function() { e(baseApi, t) }, !1) } }) : e(baseApi, t)), $.isApp && $.os.ios && ("undefined" == typeof SNNativeClient ? document.addEventListener("SNNativeClientReady", function() { e(SNNativeClient, t) }, !1) : e(SNNativeClient, t)), n.promise() } }) } ();