﻿(function (a) { a.fn.touchme = function (c) { var b = { min_move_x: 20, min_move_y: 20, wipeLeft: function (d) { }, wipeRight: function (d) { }, wipeUp: function (d) { }, wipeDown: function (d) { }, wipeDownRight: function (d) { }, wipeUpLeft: function (d) { }, wipeUpRight: function (d) { }, wipeDownLeft: function (d) { }, gestureChange: function (d) { }, onGestureEnd: function (d) { }, inMotion: function (d) { }, preventDefaultEvents: true }; if (c) { a.extend(b, c) } else { if (c.wipeLeft) { b.wipeLeft = c.wipeLeft } else { if (c.wipeRight) { b.wipeRight = c.wipeRight } else { if (c.wipeUp) { b.wipeUp = c.wipeUp } else { if (c.wipeDown) { b.wipeDown = c.wipeDown } else { if (c.wipeDownRight) { b.wipeDownRight = c.wipeDownRight } else { if (c.wipeUpLeft) { b.wipeUpLeft = c.wipeUpLeft } else { if (c.wipeUpRight) { b.wipeUpRight = c.wipeUpRight } else { if (c.wipeDownLeft) { b.wipeDownLeft = c.wipeDownLeft } else { if (c.gestureChange) { b.gestureChange = c.gestureChange } else { if (c.onGestureEnd) { b.onGestureEnd = c.onGestureEnd } else { if (c.inMotion) { b.inMotion = c.inMotion } else { var c = { isDetectHorizontalMovement: true, isDetectDiagonalMovement: false, isDetectVecticalMovement: true} } } } } } } } } } } } } this.each(function () { var e; var d; var k = false; function j() { if (document.addEventListener) { this.removeEventListener("touchmove", g) } e = null; d = null; k = false } function g(o) { if (b.preventDefaultEvents) { o.preventDefault() } if (k) { b.inMotion(o); var l = o.touches[0].pageX; var p = o.touches[0].pageY; var n = e - l; var m = d - p; if (c.isDetectDiagonalMovement == true) { if ((Math.abs(n) >= b.min_move_x) && (Math.abs(m) >= b.min_move_y)) { j(); if ((m > 0) && (n > 0)) { b.wipeUpLeft(o.target) } else { if ((n < 0) && (m < 0)) { b.wipeDownRight(o.target) } else { if ((n > 0) && (m < 0)) { b.wipeDownLeft(o.target) } else { if ((n < 0) && (m > 0)) { b.wipeUpRight(o.target) } } } } return } } if (c.isDetectHorizontalMovement == true) { if (Math.abs(n) >= b.min_move_x) { j(); if (n > 0) { b.wipeLeft(o.target) } else { b.wipeRight(o.target) } } } if (c.isDetectVecticalMovement == true) { if (Math.abs(m) >= b.min_move_y) { j(); if (m > 0) { b.wipeUp(o.target) } else { b.wipeDown(o.target) } } } } } function f(l) { l.preventDefault(); b.gestureChange(l) } function i(l) { b.onGestureEnd(l) } function j() { if (document.addEventListener) { this.removeEventListener("gesturechange", f) } k = false } function h(l) { if (l.touches.length == 1) { e = l.touches[0].pageX; d = l.touches[0].pageY; k = true; if (document.addEventListener) { this.addEventListener("touchmove", g, false) } } else { if (l.touches.length == 2) { k = true; if (document.addEventListener) { this.addEventListener("gesturechange", f, false); this.addEventListener("gestureend", i, false) } } } } if (document.addEventListener) { this.addEventListener("touchstart", h, false) } }); return this } })(jQuery);
