(function(a) { typeof define === "function" && define.amd && define.amd.jQuery ? define(["jquery"], a) : a(jQuery) })(function(a) { function b(b) { if (b && b.allowPageScroll === void 0 && (b.swipe !== void 0 || b.swipeStatus !== void 0)) b.allowPageScroll = i; if (b.click !== void 0 && b.tap === void 0) b.tap = b.click; b || (b = {}); b = a.extend({}, a.fn.swipe.defaults, b); return this.each(function() { var g = a(this), d = g.data(R); d || (d = new c(this, b), g.data(R, d)) }) } function c(b, c) { function ha(b) { if (t.data(R + "_intouch") !== !0 && !(a(b.target).closest(c.excludedElements, t).length > 0)) { var g = b.originalEvent ? b.originalEvent : b, d, k = r ? g.touches[0] : g; A = F; r ? B = g.touches.length : b.preventDefault(); G = 0; K = H = null; N = O = D = 0; I = 1; L = 0; w = Ba(); Y = Ca(); Z = V = 0; if (!r || B === c.fingers || c.fingers === x || W()) { if (ia(0, k), aa = P(), B == 2 && (ia(1, g.touches[1]), O = N = ja(w[0].start, w[1].start)), c.swipeStatus || c.pinchStatus) d = J(g, A) } else d = !1; if (d === !1) return A = z, J(g, A), d; else c.hold && (ka = setTimeout(a.proxy(function() { t.trigger("hold", [g.target]); c.hold && (d = c.hold.call(t, g, g.target)) }, this), c.longTapThreshold)), ba(!0); return null } } function la(b) { var o = b.originalEvent ? b.originalEvent : b; if (!(A === C || A === z || ta())) { var p, q = ua(r ? o.touches[0] : o); X = P(); if (r) B = o.touches.length; c.hold && clearTimeout(ka); A = u; B == 2 && (O == 0 ? (ia(1, o.touches[1]), O = N = ja(w[0].start, w[1].start)) : (ua(o.touches[1]), N = ja(w[0].end, w[1].end), K = I < 1 ? j : h), I = (N / O * 1).toFixed(2), L = Math.abs(O - N)); if (B === c.fingers || c.fingers === x || !r || W()) { var n; n = q.start; var m = q.end; n = Math.round(Math.atan2(m.y - n.y, n.x - m.x) * 180 / Math.PI); n < 0 && (n = 360 - Math.abs(n)); n = H = n <= 45 && n >= 0 ? d : n <= 360 && n >= 315 ? d : n >= 135 && n <= 225 ? f : n > 45 && n < 135 ? k : g; if (c.allowPageScroll === i || W()) b.preventDefault(); else switch (m = c.allowPageScroll === l, n) { case d: (c.swipeLeft && m || !m && c.allowPageScroll != s) && b.preventDefault(); break; case f: (c.swipeRight && m || !m && c.allowPageScroll != s) && b.preventDefault(); break; case g: (c.swipeUp && m || !m && c.allowPageScroll != v) && b.preventDefault(); break; case k: (c.swipeDown && m || !m && c.allowPageScroll != v) && b.preventDefault() } G = Math.round(Math.sqrt(Math.pow(q.end.x - q.start.x, 2) + Math.pow(q.end.y - q.start.y, 2))); D = X - aa; b = H; n = G; n = Math.max(n, va(b)); Y[b].distance = n; if (c.swipeStatus || c.pinchStatus) p = J(o, A); if (!c.triggerOnTouchEnd || c.triggerOnTouchLeave) b = !0, c.triggerOnTouchLeave && (b = a(this), n = b.offset(), b = { left: n.left, right: n.left + b.outerWidth(), top: n.top, bottom: n.top + b.outerHeight() }, b = q.end.x > b.left && q.end.x < b.right && q.end.y > b.top && q.end.y < b.bottom), !c.triggerOnTouchEnd && b ? A = ma(u) : c.triggerOnTouchLeave && !b && (A = ma(C)), (A == z || A == C) && J(o, A) } else A = z, J(o, A); p === !1 && (A = z, J(o, A)) } } function na(a) { var b = a.originalEvent; if (r && b.touches.length > 0) return V = P(), Z = event.touches.length + 1, !0; ta() && (B = Z); X = P(); D = X - aa; oa() || !pa() ? (A = z, J(b, A)) : c.triggerOnTouchEnd || c.triggerOnTouchEnd == !1 && A === u ? (a.preventDefault(), A = C, J(b, A)) : !c.triggerOnTouchEnd && c.tap ? (A = C, S(b, A, q)) : A === u && (A = z, J(b, A)); ba(!1); return null } function T() { N = O = aa = X = B = 0; I = 1; Z = V = 0; ba(!1) } function qa(a) { a = a.originalEvent; c.triggerOnTouchLeave && (A = ma(C), J(a, A)) } function wa() { t.unbind(ca, ha); t.unbind(da, T); t.unbind(ra, la); t.unbind(sa, na); U && t.unbind(U, qa); ba(!1) } function ma(a) { var b = a, g = c.maxTimeThreshold ? D >= c.maxTimeThreshold ? !1 : !0 : !0, d = pa(), k = oa(); !g || k ? b = z : d && a == u && (!c.triggerOnTouchEnd || c.triggerOnTouchLeave) ? b = C : !d && a == C && c.triggerOnTouchLeave && (b = z); return b } function J(a, b) { var g = void 0; if (xa() && ya() || ya()) g = S(a, b, m); else if ((za() && W() || W()) && g !== !1) g = S(a, b, o); Aa() && c.doubleTap && g !== !1 ? g = S(a, b, p) : D > c.longTapThreshold && G < y && c.longTap && g !== !1 ? g = S(a, b, n) : (B === 1 || !r) && (isNaN(G) || G < c.threshold) && c.tap && g !== !1 && (g = S(a, b, q)); b === z && T(a); b === C && (r ? a.touches.length == 0 && T(a) : T(a)); return g } function S(b, i, l) { var s = void 0; if (l == m) { t.trigger("swipeStatus", [i, H || null, G || 0, D || 0, B, w]); if (c.swipeStatus && (s = c.swipeStatus.call(t, b, i, H || null, G || 0, D || 0, B, w), s === !1)) return !1; if (i == C && xa()) { t.trigger("swipe", [H, G, D, B, w]); if (c.swipe && (s = c.swipe.call(t, b, H, G, D, B, w), s === !1)) return !1; switch (H) { case d: t.trigger("swipeLeft", [H, G, D, B, w]); c.swipeLeft && (s = c.swipeLeft.call(t, b, H, G, D, B, w)); break; case f: t.trigger("swipeRight", [H, G, D, B, w]); c.swipeRight && (s = c.swipeRight.call(t, b, H, G, D, B, w)); break; case g: t.trigger("swipeUp", [H, G, D, B, w]); c.swipeUp && (s = c.swipeUp.call(t, b, H, G, D, B, w)); break; case k: t.trigger("swipeDown", [H, G, D, B, w]), c.swipeDown && (s = c.swipeDown.call(t, b, H, G, D, B, w)) } } } if (l == o) { t.trigger("pinchStatus", [i, K || null, L || 0, D || 0, B, I, w]); if (c.pinchStatus && (s = c.pinchStatus.call(t, b, i, K || null, L || 0, D || 0, B, I, w), s === !1)) return !1; if (i == C && za()) switch (K) { case h: t.trigger("pinchIn", [K || null, L || 0, D || 0, B, I, w]); c.pinchIn && (s = c.pinchIn.call(t, b, K || null, L || 0, D || 0, B, I, w)); break; case j: t.trigger("pinchOut", [K || null, L || 0, D || 0, B, I, w]), c.pinchOut && (s = c.pinchOut.call(t, b, K || null, L || 0, D || 0, B, I, w)) } } if (l == q) { if (i === z || i === C) clearTimeout(ea), clearTimeout(ka), c.doubleTap && !Aa() ? (Q = P(), ea = setTimeout(a.proxy(function() { Q = null; t.trigger("tap", [b.target]); c.tap && (s = c.tap.call(t, b, b.target)) }, this), c.doubleTapThreshold)) : (Q = null, t.trigger("tap", [b.target]), c.tap && (s = c.tap.call(t, b, b.target))) } else if (l == p) { if (i === z || i === C) clearTimeout(ea), Q = null, t.trigger("doubletap", [b.target]), c.doubleTap && (s = c.doubleTap.call(t, b, b.target)) } else if (l == n && (i === z || i === C)) clearTimeout(ea), Q = null, t.trigger("longtap", [b.target]), c.longTap && (s = c.longTap.call(t, b, b.target)); return s } function pa() { var a = !0; c.threshold !== null && (a = G >= c.threshold); return a } function oa() { var a = !1; c.cancelThreshold !== null && H !== null && (a = va(H) - G >= c.cancelThreshold); return a } function za() { var a = B === c.fingers || c.fingers === x || !r, b = w[0].end.x !== 0, g; g = c.pinchThreshold !== null ? L >= c.pinchThreshold : !0; return a && b && g } function W() { return !(!c.pinchStatus && !c.pinchIn && !c.pinchOut) } function xa() { var a = c.maxTimeThreshold ? D >= c.maxTimeThreshold ? !1 : !0 : !0, b = pa(), g = B === c.fingers || c.fingers === x || !r, d = w[0].end.x !== 0; return !oa() && d && g && b && a } function ya() { return !(!c.swipe && !c.swipeStatus && !c.swipeLeft && !c.swipeRight && !c.swipeUp && !c.swipeDown) } function Aa() { if (Q == null) return !1; var a = P(); return !!c.doubleTap && a - Q <= c.doubleTapThreshold } function ta() { var a = !1; V && P() - V <= c.fingerReleaseThreshold && (a = !0); return a } function ba(a) { a === !0 ? (t.bind(ra, la), t.bind(sa, na), U && t.bind(U, qa)) : (t.unbind(ra, la, !1), t.unbind(sa, na, !1), U && t.unbind(U, qa, !1)); t.data(R + "_intouch", a === !0) } function ia(a, b) { w[a].identifier = b.identifier !== void 0 ? b.identifier : 0; w[a].start.x = w[a].end.x = b.pageX || b.clientX; w[a].start.y = w[a].end.y = b.pageY || b.clientY; return w[a] } function ua(a) { var b; a: { for (b = 0; b < w.length; b++) if (w[b].identifier == (a.identifier !== void 0 ? a.identifier : 0)) { b = w[b]; break a } b = void 0 } b.end.x = a.pageX || a.clientX; b.end.y = a.pageY || a.clientY; return b } function Ba() { for (var a = [], b = 0; b <= 5; b++) a.push({ start: { x: 0, y: 0 }, end: { x: 0, y: 0 }, identifier: 0 }); return a } function va(a) { if (Y[a]) return Y[a].distance } function Ca() { var a = {}; a[d] = fa(d); a[f] = fa(f); a[g] = fa(g); a[k] = fa(k); return a } function fa(a) { return { direction: a, distance: 0 } } function ja(a, b) { var c = Math.abs(a.x - b.x), g = Math.abs(a.y - b.y); return Math.round(Math.sqrt(c * c + g * g)) } function P() { return (new Date).getTime() } var ga = r || M || !c.fallbackToMouseEvents, ca = ga ? M ? E ? "MSPointerDown" : "pointerdown" : "touchstart" : "mousedown", ra = ga ? M ? E ? "MSPointerMove" : "pointermove" : "touchmove" : "mousemove", sa = ga ? M ? E ? "MSPointerUp" : "pointerup" : "touchend" : "mouseup", U = ga ? null : "mouseleave", da = M ? E ? "MSPointerCancel" : "pointercancel" : "touchcancel", G = 0, H = null, D = 0, O = 0, N = 0, I = 1, L = 0, K = 0, Y = null, t = a(b), A = "start", B = 0, w = null, aa = 0, X = 0, V = 0, Z = 0, Q = 0, ea = null, ka = null; try { t.bind(ca, ha), t.bind(da, T) } catch (Da) { a.error("events not supported " + ca + "," + da + " on jQuery.swipe") } this.enable = function() { t.bind(ca, ha); t.bind(da, T); return t }; this.disable = function() { wa(); return t }; this.destroy = function() { wa(); t.data(R, null); return t }; this.option = function(b, g) { if (c[b] !== void 0) if (g === void 0) return c[b]; else c[b] = g; else a.error("Option " + b + " does not exist on jQuery.swipe.options"); return null } } var d = "left", f = "right", g = "up", k = "down", h = "in", j = "out", i = "none", l = "auto", m = "swipe", o = "pinch", q = "tap", p = "doubletap", n = "longtap", s = "horizontal", v = "vertical", x = "all", y = 10, F = "start", u = "move", C = "end", z = "cancel", r = "ontouchstart" in window, E = window.navigator.msPointerEnabled && !window.navigator.pointerEnabled, M = window.navigator.pointerEnabled || window.navigator.msPointerEnabled, R = "TouchSwipe"; a.fn.swipe = function(c) { var g = a(this), d = g.data(R); if (d && typeof c === "string") if (d[c]) return d[c].apply(this, Array.prototype.slice.call(arguments, 1)); else a.error("Method " + c + " does not exist on jQuery.swipe"); else if (!d && (typeof c === "object" || !c)) return b.apply(this, arguments); return g }; a.fn.swipe.defaults = { fingers: 1, threshold: 75, cancelThreshold: null, pinchThreshold: 20, maxTimeThreshold: null, fingerReleaseThreshold: 250, longTapThreshold: 500, doubleTapThreshold: 200, swipe: null, swipeLeft: null, swipeRight: null, swipeUp: null, swipeDown: null, swipeStatus: null, pinchIn: null, pinchOut: null, pinchStatus: null, click: null, tap: null, doubleTap: null, longTap: null, hold: null, triggerOnTouchEnd: !0, triggerOnTouchLeave: !1, allowPageScroll: "auto", fallbackToMouseEvents: !0, excludedElements: "label, button, input, select, textarea, a, .noSwipe" }; a.fn.swipe.phases = { PHASE_START: F, PHASE_MOVE: u, PHASE_END: C, PHASE_CANCEL: z }; a.fn.swipe.directions = { LEFT: d, RIGHT: f, UP: g, DOWN: k, IN: h, OUT: j }; a.fn.swipe.pageScroll = { NONE: i, HORIZONTAL: s, VERTICAL: v, AUTO: l }; a.fn.swipe.fingers = { ONE: 1, TWO: 2, THREE: 3, ALL: x } });; (function() { if (!("undefined" == typeof Muse || "undefined" == typeof Muse.assets)) { var a = function(a, b) { for (var c = 0, d = a.length; c < d; c++) if (a[c] == b) return c; return -1 }(Muse.assets.required, "touchswipe.js"); if (-1 != a) { Muse.assets.required.splice(a, 1); for (var a = document.getElementsByTagName("meta"), b = 0, c = a.length; b < c; b++) { var d = a[b]; if ("generator" == d.getAttribute("name")) { "2014.2.0.284" != d.getAttribute("content") && Muse.assets.outOfDate.push("touchswipe.js"); break } } } } })();