/*!
* @fileOverview TouchSwipe - jQuery Plugin
- * @version 1.6.15
+ * @version 1.6.16
*
* @author Matt Bryson http://www.github.com/mattbryson
* @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
@@ -101,7 +101,7 @@ jquery.touchSwipe.js
* $version: 1.4.0 - Added pinch support, pinchIn and pinchOut
*
* $Date: 2012-11-10 (Thurs, 11 Oct 2012) $
- * $version: 1.5.0 - Added excludedElements, a jquery selector that specifies child elements that do NOT trigger swipes. By default, this is one select that removes all form, input select, button and anchor elements.
+ * $version: 1.5.0 - Added excludedElements, a jquery selector that specifies child elements that do NOT trigger swipes. By default, this is .noSwipe
*
* $Date: 2012-22-10 (Mon, 22 Oct 2012) $
* $version: 1.5.1 - Fixed bug with jQuery 1.8 and trailing comma in excludedElements
@@ -160,6 +160,10 @@ jquery.touchSwipe.js
* - Fixed #267 allowPageScroll not working correctly
* $version 1.6.14 - Fixed #220 / #248 doubletap not firing with swipes, #223 commonJS compatible
* $version 1.6.15 - More bug fixes
+ *
+ * $Date: 2016-04-29 (Fri, 29 April 2016) $
+ * $version 1.6.16 - Swipes with 0 distance now allow default events to trigger. So tapping any form elements or A tags will allow default interaction, but swiping will trigger a swipe.
+ Removed the a, input, select etc from the excluded Children list as the 0 distance tap solves that issue.
*/
/**
@@ -269,7 +273,7 @@ jquery.touchSwipe.js
<code>"horizontal"</code> : will force page to scroll on horizontal swipes. <br/>
<code>"vertical"</code> : will force page to scroll on vertical swipes. <br/>
* @property {boolean} [fallbackToMouseEvents=true] If true mouse events are used when run on a non touch device, false will stop swipes being triggered by mouse events on non tocuh devices.
- * @property {string} [excludedElements="button, input, select, textarea, a, .noSwipe"] A jquery selector that specifies child elements that do NOT trigger swipes. By default this excludes all form, input, select, button, anchor and .noSwipe elements.
+ * @property {string} [excludedElements=".noSwipe"] A jquery selector that specifies child elements that do NOT trigger swipes. By default this excludes elements with the class .noSwipe .
* @property {boolean} [preventDefaultEvents=true] by default default events are cancelled, so the page doesn't move. You can dissable this so both native events fire as well as your handlers.
*/
@@ -300,7 +304,7 @@ jquery.touchSwipe.js
triggerOnTouchLeave: false,
allowPageScroll: "auto",
fallbackToMouseEvents: true,
- excludedElements: "label, button, input, select, textarea, a, .noSwipe",
+ excludedElements: ".noSwipe",
preventDefaultEvents: true
};
@@ -2145,7 +2149,7 @@ jquery.touchSwipe.js
diff --git a/docs/tutorial-Any_finger_swipe.html b/docs/tutorial-Any_finger_swipe.html
index a5f99eb..481763c 100644
--- a/docs/tutorial-Any_finger_swipe.html
+++ b/docs/tutorial-Any_finger_swipe.html
@@ -99,7 +99,7 @@ properties: fingers
diff --git a/docs/tutorial-Basic_swipe.html b/docs/tutorial-Basic_swipe.html
index 4bca423..4b097ed 100644
--- a/docs/tutorial-Basic_swipe.html
+++ b/docs/tutorial-Basic_swipe.html
@@ -98,7 +98,7 @@ events: swipe
,swipeLeft
,
diff --git a/docs/tutorial-Enable_and_destroy.html b/docs/tutorial-Enable_and_destroy.html
index bdac086..953f816 100644
--- a/docs/tutorial-Enable_and_destroy.html
+++ b/docs/tutorial-Enable_and_destroy.html
@@ -145,7 +145,7 @@ methods: enable
, disable
,
diff --git a/docs/tutorial-Excluded_children.html b/docs/tutorial-Excluded_children.html
index dc7ff4b..1a5fd86 100644
--- a/docs/tutorial-Excluded_children.html
+++ b/docs/tutorial-Excluded_children.html
@@ -42,26 +42,26 @@ Excluded children
-
+
-
+
-
+
-
+
touchSwipe
-
+
-
+
property: excludedElements
If you want to exclude certain child elements from triggering swipes, you can simply add a .noSwipe
class to the element. Then the element and any of its children will no longer trigger the swipe.
-
Also, a jQuery selector is used to exclude input elements as well as the .noSwipe
elements. By default all button
, input
, select
, textarea
and a
elements are excluded.
- So either add a .noSwipe
class the element, or set your own selector in the excludedElements property.
+
Also, a jQuery selector is used to exclude input elements as well as the .noSwipe
elements.
+ So either add a .noSwipe
class the element, or set your own selector in the excludedElements property. Setting your own selector will remove the .noSwipe selector.
-
+
-
+
+
Swipe me, the child elements will not trigger swipes by default
+ I open a new tab if clicked, but im swipeable
-
+
+
+
+
+
Im am NOT swipeable because my class is .noSwipe
-
+
-
-
+
+
Swipe me, the child elements will not trigger swipes as they have been explicitly excluded
-
-
Im am NOT swipeable because my im added to the excludedElements array
-
+
@@ -138,7 +132,7 @@ property: excludedElements
diff --git a/docs/tutorial-Finger_swipe.html b/docs/tutorial-Finger_swipe.html
index 071def0..81db625 100644
--- a/docs/tutorial-Finger_swipe.html
+++ b/docs/tutorial-Finger_swipe.html
@@ -111,7 +111,7 @@ property: fingers
diff --git a/docs/tutorial-Handlers_and_events.html b/docs/tutorial-Handlers_and_events.html
index 162195e..32307b1 100644
--- a/docs/tutorial-Handlers_and_events.html
+++ b/docs/tutorial-Handlers_and_events.html
@@ -178,7 +178,7 @@ events: tap
hold
swipe
diff --git a/docs/tutorial-Hold.html b/docs/tutorial-Hold.html
index d19b02f..4eca94e 100644
--- a/docs/tutorial-Hold.html
+++ b/docs/tutorial-Hold.html
@@ -111,7 +111,7 @@ properties: longTapThreshold
diff --git a/docs/tutorial-Image_gallery_example.html b/docs/tutorial-Image_gallery_example.html
index 2f49d20..8cba4a9 100644
--- a/docs/tutorial-Image_gallery_example.html
+++ b/docs/tutorial-Image_gallery_example.html
@@ -198,7 +198,7 @@ Image gallery example
diff --git a/docs/tutorial-Options.html b/docs/tutorial-Options.html
index 7557626..8500bb9 100644
--- a/docs/tutorial-Options.html
+++ b/docs/tutorial-Options.html
@@ -140,7 +140,7 @@ methods: option
, swipe
diff --git a/docs/tutorial-Page_scrolling.html b/docs/tutorial-Page_scrolling.html
index 8cfc6af..730872f 100644
--- a/docs/tutorial-Page_scrolling.html
+++ b/docs/tutorial-Page_scrolling.html
@@ -159,7 +159,7 @@ property: allowPageScroll
diff --git a/docs/tutorial-Page_zoom.html b/docs/tutorial-Page_zoom.html
index 2e428c5..8b5e079 100644
--- a/docs/tutorial-Page_zoom.html
+++ b/docs/tutorial-Page_zoom.html
@@ -100,7 +100,7 @@ property: fingers
diff --git a/docs/tutorial-Pinch.html b/docs/tutorial-Pinch.html
index f5146d0..b221e1a 100644
--- a/docs/tutorial-Pinch.html
+++ b/docs/tutorial-Pinch.html
@@ -107,7 +107,7 @@ events: pinchIn
, pinchOut
diff --git a/docs/tutorial-Pinch_and_Swipe.html b/docs/tutorial-Pinch_and_Swipe.html
index 02af738..14ef1ab 100644
--- a/docs/tutorial-Pinch_and_Swipe.html
+++ b/docs/tutorial-Pinch_and_Swipe.html
@@ -131,7 +131,7 @@ properties: pinchThreshold
diff --git a/docs/tutorial-Pinch_status.html b/docs/tutorial-Pinch_status.html
index 0232e63..2dcb45b 100644
--- a/docs/tutorial-Pinch_status.html
+++ b/docs/tutorial-Pinch_status.html
@@ -101,7 +101,7 @@ events: pinchStatus
diff --git a/docs/tutorial-Single_swipe.html b/docs/tutorial-Single_swipe.html
index bac511d..1748b59 100644
--- a/docs/tutorial-Single_swipe.html
+++ b/docs/tutorial-Single_swipe.html
@@ -101,7 +101,7 @@ events: swipeLeft
, swipeRight
diff --git a/docs/tutorial-Stop_propegation.html b/docs/tutorial-Stop_propegation.html
index a6a48a7..7a9dfa6 100644
--- a/docs/tutorial-Stop_propegation.html
+++ b/docs/tutorial-Stop_propegation.html
@@ -107,7 +107,7 @@ events: swipeStatus
diff --git a/docs/tutorial-Swipe_status.html b/docs/tutorial-Swipe_status.html
index 892e4eb..3fab313 100644
--- a/docs/tutorial-Swipe_status.html
+++ b/docs/tutorial-Swipe_status.html
@@ -132,7 +132,7 @@ event: swipeStatus
diff --git a/docs/tutorial-Tap_vs_swipe.html b/docs/tutorial-Tap_vs_swipe.html
index 231fc99..1435e3a 100644
--- a/docs/tutorial-Tap_vs_swipe.html
+++ b/docs/tutorial-Tap_vs_swipe.html
@@ -42,29 +42,29 @@ Tap vs swipe
-
+
-
+
-
+
-
+
-
+
touchSwipe
-
+
-
+
events: tap
, doubleTap
, longTap
, swipe
properties: longTapThreshold
, doubleTapThreshold
@@ -117,27 +121,28 @@ properties: longTapThreshold
, do
If you use the jquery.ui.ipad.js plugin (http://code.google.com/p/jquery-ui-for-ipad-and-iphone/) you can then also pickup
standard jQuery mouse events on children of the touchSwipe object.
-
+
You can set the delay between taps which defines a double tap, and the length of a long tap with the doubleTapThreshold
and longTapThreshold
properties.
-
- Note: If you assign both tap and double tap, you tap events will be delayed by the length of doubleTapThreshold
as it waits to see if its a double before trigger the event
-
- tap
replaces the old click
handler for naming consistency. Since the introduction of event
- triggering as well as callbacks, the plugin cannot trigger a click
event as it clashes with the jQ click event,
+
+
Note: If you assign both tap and double tap, you tap events will be delayed by the length of doubleTapThreshold
as it waits to see if its a double before trigger the event
+
+ tap
replaces the old click
handler for naming consistency. Since the introduction of event
+ triggering as well as callbacks, the plugin cannot trigger a click
event as it clashes with the jQ click event,
so both the event and callback are called tap
. For backwards compatibility, the click
callback will still work
but there is no click event. You must use the tap
event when binding with on
or bind
-
-
+
+
-
+
+ google
Swipe, Tap, Double Tap or Long Tap me
Im just a child div
Im a child div with my own jQuery click handler
-
+
@@ -152,7 +157,7 @@ properties: longTapThreshold
, do
diff --git a/docs/tutorial-Thresholds.html b/docs/tutorial-Thresholds.html
index b8c4c72..ed46528 100644
--- a/docs/tutorial-Thresholds.html
+++ b/docs/tutorial-Thresholds.html
@@ -159,7 +159,7 @@ property: maxTimeThreshold
diff --git a/docs/tutorial-Trigger_handlers.html b/docs/tutorial-Trigger_handlers.html
index 33b3d16..79de654 100644
--- a/docs/tutorial-Trigger_handlers.html
+++ b/docs/tutorial-Trigger_handlers.html
@@ -208,7 +208,7 @@ properties: triggerOnTouchEnd
, t
diff --git a/docs/tutorial-index_.html b/docs/tutorial-index_.html
index b649bc0..51dabdd 100644
--- a/docs/tutorial-index_.html
+++ b/docs/tutorial-index_.html
@@ -124,7 +124,7 @@ Demos
diff --git a/jquery.touchSwipe.js b/jquery.touchSwipe.js
index 0f80282..922f204 100644
--- a/jquery.touchSwipe.js
+++ b/jquery.touchSwipe.js
@@ -1,6 +1,6 @@
/*!
* @fileOverview TouchSwipe - jQuery Plugin
- * @version 1.6.15
+ * @version 1.6.16
*
* @author Matt Bryson http://www.github.com/mattbryson
* @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
@@ -61,7 +61,7 @@
* $version: 1.4.0 - Added pinch support, pinchIn and pinchOut
*
* $Date: 2012-11-10 (Thurs, 11 Oct 2012) $
- * $version: 1.5.0 - Added excludedElements, a jquery selector that specifies child elements that do NOT trigger swipes. By default, this is one select that removes all form, input select, button and anchor elements.
+ * $version: 1.5.0 - Added excludedElements, a jquery selector that specifies child elements that do NOT trigger swipes. By default, this is .noSwipe
*
* $Date: 2012-22-10 (Mon, 22 Oct 2012) $
* $version: 1.5.1 - Fixed bug with jQuery 1.8 and trailing comma in excludedElements
@@ -120,6 +120,10 @@
* - Fixed #267 allowPageScroll not working correctly
* $version 1.6.14 - Fixed #220 / #248 doubletap not firing with swipes, #223 commonJS compatible
* $version 1.6.15 - More bug fixes
+ *
+ * $Date: 2016-04-29 (Fri, 29 April 2016) $
+ * $version 1.6.16 - Swipes with 0 distance now allow default events to trigger. So tapping any form elements or A tags will allow default interaction, but swiping will trigger a swipe.
+ Removed the a, input, select etc from the excluded Children list as the 0 distance tap solves that issue.
*/
/**
@@ -229,7 +233,7 @@
"horizontal"
: will force page to scroll on horizontal swipes.
"vertical"
: will force page to scroll on vertical swipes.
* @property {boolean} [fallbackToMouseEvents=true] If true mouse events are used when run on a non touch device, false will stop swipes being triggered by mouse events on non tocuh devices.
- * @property {string} [excludedElements="button, input, select, textarea, a, .noSwipe"] A jquery selector that specifies child elements that do NOT trigger swipes. By default this excludes all form, input, select, button, anchor and .noSwipe elements.
+ * @property {string} [excludedElements=".noSwipe"] A jquery selector that specifies child elements that do NOT trigger swipes. By default this excludes elements with the class .noSwipe .
* @property {boolean} [preventDefaultEvents=true] by default default events are cancelled, so the page doesn't move. You can dissable this so both native events fire as well as your handlers.
*/
@@ -260,7 +264,7 @@
triggerOnTouchLeave: false,
allowPageScroll: "auto",
fallbackToMouseEvents: true,
- excludedElements: "label, button, input, select, textarea, a, .noSwipe",
+ excludedElements: ".noSwipe",
preventDefaultEvents: true
};
diff --git a/jquery.touchSwipe.map b/jquery.touchSwipe.map
deleted file mode 100644
index f0b1e6b..0000000
--- a/jquery.touchSwipe.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["jquery.touchSwipe.js"],"names":["factory","define","amd","jQuery","module","exports","require","$","init","options","undefined","allowPageScroll","swipe","swipeStatus","NONE","click","tap","extend","fn","defaults","this","each","$this","plugin","data","PLUGIN_NS","TouchSwipe","element","touchStart","jqEvent","getTouchInProgress","target","closest","excludedElements","$element","length","ret","event","originalEvent","touches","evt","phase","PHASE_START","fingerCount","preventDefaultEvents","preventDefault","distance","direction","currentDirection","pinchDirection","duration","startTouchesDistance","endTouchesDistance","pinchZoom","pinchDistance","maximumsMap","createMaximumsData","cancelMultiFingerRelease","createFingerData","fingers","ALL_FINGERS","hasPinches","startTime","getTimeStamp","calculateTouchesDistance","fingerData","start","pinchStatus","triggerHandler","PHASE_CANCEL","hold","holdTimeout","setTimeout","proxy","trigger","call","longTapThreshold","setTouchInProgress","touchMove","PHASE_END","inMultiFingerRelease","currentFinger","updateFingerData","endTime","clearTimeout","PHASE_MOVE","end","calculatePinchDirection","calculatePinchZoom","Math","abs","calculateDirection","last","validateDefaultEvent","calculateDistance","calculateDuration","setMaxDistance","triggerOnTouchEnd","triggerOnTouchLeave","inBounds","bounds","getbounds","isInBounds","getNextPhase","touchEnd","startMultiFingerRelease","fingerCountAtRelease","didSwipeBackToCancel","validateSwipeDistance","hasTap","triggerHandlerForGesture","TAP","touchCancel","touchLeave","removeListeners","unbind","START_EV","CANCEL_EV","MOVE_EV","END_EV","LEAVE_EV","currentPhase","nextPhase","validTime","validateSwipeTime","validDistance","didCancel","didSwipe","hasSwipes","SWIPE","didPinch","PINCH","didDoubleTap","DOUBLE_TAP","didLongTap","LONG_TAP","didTap","gesture","validateSwipe","singleTapTimeout","LEFT","swipeLeft","RIGHT","swipeRight","UP","swipeUp","DOWN","swipeDown","validatePinch","IN","pinchIn","OUT","pinchOut","hasDoubleTap","inDoubleTap","doubleTapStartTime","doubleTapThreshold","doubleTap","longTap","valid","threshold","cancelled","cancelThreshold","getMaxDistance","validatePinchDistance","pinchThreshold","result","maxTimeThreshold","auto","AUTO","HORIZONTAL","VERTICAL","hasCorrectFingerCount","validateFingers","hasEndPoint","validateEndPoint","hasCorrectDistance","hasValidTime","hasValidDistance","SUPPORTS_TOUCH","x","hasLongTap","validateDoubleTap","now","validateTap","isNaN","validateLongTap","DOUBLE_TAP_THRESHOLD","previousTouchEndTime","withinThreshold","diff","fingerReleaseThreshold","val","bind","id","f","y","pageX","clientX","pageY","clientY","identifier","getFingerData","max","maxData","createMaximumVO","dir","startPoint","endPoint","diffX","diffY","round","sqrt","startDistance","endDistance","percent","toFixed","pow","calculateAngle","r","atan2","angle","PI","comparePoints","Date","getTime","el","offset","left","right","outerWidth","top","bottom","outerHeight","point","pointA","pointB","useTouchEvents","SUPPORTS_POINTER","fallbackToMouseEvents","SUPPORTS_POINTER_IE10","e","error","enable","disable","destroy","option","property","value","VERSION","window","navigator","msPointerEnabled","pointerEnabled","method","apply","Array","prototype","slice","arguments","version","phases","directions","pageScroll","ONE","TWO","THREE","FOUR","FIVE","ALL"],"mappings":"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","file":"jquery.touchSwipe.min.js"}
\ No newline at end of file
diff --git a/jquery.touchSwipe.map.js b/jquery.touchSwipe.map.js
deleted file mode 100644
index 4b18f35..0000000
--- a/jquery.touchSwipe.map.js
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["jquery.touchSwipe.js"],"names":["factory","define","amd","jQuery","module","exports","require","$","VERSION","LEFT","RIGHT","UP","DOWN","IN","OUT","NONE","AUTO","SWIPE","PINCH","TAP","DOUBLE_TAP","LONG_TAP","HOLD","HORIZONTAL","VERTICAL","ALL_FINGERS","DOUBLE_TAP_THRESHOLD","PHASE_START","PHASE_MOVE","PHASE_END","PHASE_CANCEL","SUPPORTS_TOUCH","window","SUPPORTS_POINTER_IE10","navigator","msPointerEnabled","pointerEnabled","SUPPORTS_POINTER","PLUGIN_NS","defaults","fingers","threshold","cancelThreshold","pinchThreshold","maxTimeThreshold","fingerReleaseThreshold","longTapThreshold","doubleTapThreshold","swipe","swipeLeft","swipeRight","swipeUp","swipeDown","swipeStatus","pinchIn","pinchOut","pinchStatus","click","tap","doubleTap","longTap","hold","triggerOnTouchEnd","triggerOnTouchLeave","allowPageScroll","fallbackToMouseEvents","excludedElements","preventDefaultEvents","fn","method","$this","this","plugin","data","apply","Array","prototype","slice","call","arguments","error","init","version","phases","directions","pageScroll","ONE","TWO","THREE","FOUR","FIVE","ALL","options","undefined","extend","each","TouchSwipe","element","useTouchEvents","START_EV","MOVE_EV","END_EV","LEAVE_EV","CANCEL_EV","distance","direction","currentDirection","duration","startTouchesDistance","endTouchesDistance","pinchZoom","pinchDistance","pinchDirection","maximumsMap","$element","phase","fingerCount","fingerData","startTime","endTime","previousTouchEndTime","fingerCountAtRelease","doubleTapStartTime","singleTapTimeout","holdTimeout","bind","touchStart","touchCancel","e","enable","disable","removeListeners","destroy","option","property","value","jqEvent","getTouchInProgress","target","closest","length","event","originalEvent","ret","touches","evt","preventDefault","createMaximumsData","cancelMultiFingerRelease","createFingerData","hasPinches","getTimeStamp","calculateTouchesDistance","start","triggerHandler","setTimeout","proxy","trigger","setTouchInProgress","touchMove","inMultiFingerRelease","currentFinger","updateFingerData","clearTimeout","end","calculatePinchDirection","calculatePinchZoom","Math","abs","calculateDirection","last","validateDefaultEvent","calculateDistance","calculateDuration","setMaxDistance","inBounds","bounds","getbounds","isInBounds","getNextPhase","touchEnd","startMultiFingerRelease","didSwipeBackToCancel","validateSwipeDistance","hasTap","triggerHandlerForGesture","touchLeave","unbind","currentPhase","nextPhase","validTime","validateSwipeTime","validDistance","didCancel","didSwipe","hasSwipes","didPinch","didDoubleTap","didLongTap","didTap","gesture","validateSwipe","validatePinch","hasDoubleTap","inDoubleTap","valid","cancelled","getMaxDistance","validatePinchDistance","result","auto","hasCorrectFingerCount","validateFingers","hasEndPoint","validateEndPoint","hasCorrectDistance","hasValidTime","hasValidDistance","x","hasLongTap","validateDoubleTap","now","validateTap","isNaN","validateLongTap","withinThreshold","diff","val","id","f","y","pageX","clientX","pageY","clientY","identifier","getFingerData","max","maxData","createMaximumVO","dir","startPoint","endPoint","diffX","diffY","round","sqrt","startDistance","endDistance","percent","toFixed","pow","calculateAngle","r","atan2","angle","PI","comparePoints","Date","getTime","el","offset","left","right","outerWidth","top","bottom","outerHeight","point","pointA","pointB"],"mappings":"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","file":"jquery.touchSwipe.min.js"}
\ No newline at end of file
diff --git a/jquery.touchSwipe.min.js b/jquery.touchSwipe.min.js
index fcc46a9..9324682 100644
--- a/jquery.touchSwipe.min.js
+++ b/jquery.touchSwipe.min.js
@@ -1,6 +1,6 @@
/*!
* @fileOverview TouchSwipe - jQuery Plugin
- * @version 1.6.15
+ * @version 1.6.16
*
* @author Matt Bryson http://www.github.com/mattbryson
* @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
@@ -11,4 +11,4 @@
* Dual licensed under the MIT or GPL Version 2 licenses.
*
*/
-!function(factory){"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],factory):factory("undefined"!=typeof module&&module.exports?require("jquery"):jQuery)}(function($){"use strict";function init(options){return!options||void 0!==options.allowPageScroll||void 0===options.swipe&&void 0===options.swipeStatus||(options.allowPageScroll=NONE),void 0!==options.click&&void 0===options.tap&&(options.tap=options.click),options||(options={}),options=$.extend({},$.fn.swipe.defaults,options),this.each(function(){var $this=$(this),plugin=$this.data(PLUGIN_NS);plugin||(plugin=new TouchSwipe(this,options),$this.data(PLUGIN_NS,plugin))})}function TouchSwipe(element,options){function touchStart(jqEvent){if(!(getTouchInProgress()||$(jqEvent.target).closest(options.excludedElements,$element).length>0)){var ret,event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent,touches=event.touches,evt=touches?touches[0]:event;return phase=PHASE_START,touches?fingerCount=touches.length:options.preventDefaultEvents!==!1&&jqEvent.preventDefault(),distance=0,direction=null,currentDirection=null,pinchDirection=null,duration=0,startTouchesDistance=0,endTouchesDistance=0,pinchZoom=1,pinchDistance=0,maximumsMap=createMaximumsData(),cancelMultiFingerRelease(),createFingerData(0,evt),!touches||fingerCount===options.fingers||options.fingers===ALL_FINGERS||hasPinches()?(startTime=getTimeStamp(),2==fingerCount&&(createFingerData(1,touches[1]),startTouchesDistance=endTouchesDistance=calculateTouchesDistance(fingerData[0].start,fingerData[1].start)),(options.swipeStatus||options.pinchStatus)&&(ret=triggerHandler(event,phase))):ret=!1,ret===!1?(phase=PHASE_CANCEL,triggerHandler(event,phase),ret):(options.hold&&(holdTimeout=setTimeout($.proxy(function(){$element.trigger("hold",[event.target]),options.hold&&(ret=options.hold.call($element,event,event.target))},this),options.longTapThreshold)),setTouchInProgress(!0),null)}}function touchMove(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent;if(phase!==PHASE_END&&phase!==PHASE_CANCEL&&!inMultiFingerRelease()){var ret,touches=event.touches,evt=touches?touches[0]:event,currentFinger=updateFingerData(evt);if(endTime=getTimeStamp(),touches&&(fingerCount=touches.length),options.hold&&clearTimeout(holdTimeout),phase=PHASE_MOVE,2==fingerCount&&(0==startTouchesDistance?(createFingerData(1,touches[1]),startTouchesDistance=endTouchesDistance=calculateTouchesDistance(fingerData[0].start,fingerData[1].start)):(updateFingerData(touches[1]),endTouchesDistance=calculateTouchesDistance(fingerData[0].end,fingerData[1].end),pinchDirection=calculatePinchDirection(fingerData[0].end,fingerData[1].end)),pinchZoom=calculatePinchZoom(startTouchesDistance,endTouchesDistance),pinchDistance=Math.abs(startTouchesDistance-endTouchesDistance)),fingerCount===options.fingers||options.fingers===ALL_FINGERS||!touches||hasPinches()){if(direction=calculateDirection(currentFinger.start,currentFinger.end),currentDirection=calculateDirection(currentFinger.last,currentFinger.end),validateDefaultEvent(jqEvent,currentDirection),distance=calculateDistance(currentFinger.start,currentFinger.end),duration=calculateDuration(),setMaxDistance(direction,distance),ret=triggerHandler(event,phase),!options.triggerOnTouchEnd||options.triggerOnTouchLeave){var inBounds=!0;if(options.triggerOnTouchLeave){var bounds=getbounds(this);inBounds=isInBounds(currentFinger.end,bounds)}!options.triggerOnTouchEnd&&inBounds?phase=getNextPhase(PHASE_MOVE):options.triggerOnTouchLeave&&!inBounds&&(phase=getNextPhase(PHASE_END)),phase!=PHASE_CANCEL&&phase!=PHASE_END||triggerHandler(event,phase)}}else phase=PHASE_CANCEL,triggerHandler(event,phase);ret===!1&&(phase=PHASE_CANCEL,triggerHandler(event,phase))}}function touchEnd(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent,touches=event.touches;if(touches){if(touches.length&&!inMultiFingerRelease())return startMultiFingerRelease(event),!0;if(touches.length&&inMultiFingerRelease())return!0}return inMultiFingerRelease()&&(fingerCount=fingerCountAtRelease),endTime=getTimeStamp(),duration=calculateDuration(),didSwipeBackToCancel()||!validateSwipeDistance()?(phase=PHASE_CANCEL,triggerHandler(event,phase)):options.triggerOnTouchEnd||options.triggerOnTouchEnd===!1&&phase===PHASE_MOVE?(options.preventDefaultEvents!==!1&&jqEvent.preventDefault(),phase=PHASE_END,triggerHandler(event,phase)):!options.triggerOnTouchEnd&&hasTap()?(phase=PHASE_END,triggerHandlerForGesture(event,phase,TAP)):phase===PHASE_MOVE&&(phase=PHASE_CANCEL,triggerHandler(event,phase)),setTouchInProgress(!1),null}function touchCancel(){fingerCount=0,endTime=0,startTime=0,startTouchesDistance=0,endTouchesDistance=0,pinchZoom=1,cancelMultiFingerRelease(),setTouchInProgress(!1)}function touchLeave(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent;options.triggerOnTouchLeave&&(phase=getNextPhase(PHASE_END),triggerHandler(event,phase))}function removeListeners(){$element.unbind(START_EV,touchStart),$element.unbind(CANCEL_EV,touchCancel),$element.unbind(MOVE_EV,touchMove),$element.unbind(END_EV,touchEnd),LEAVE_EV&&$element.unbind(LEAVE_EV,touchLeave),setTouchInProgress(!1)}function getNextPhase(currentPhase){var nextPhase=currentPhase,validTime=validateSwipeTime(),validDistance=validateSwipeDistance(),didCancel=didSwipeBackToCancel();return!validTime||didCancel?nextPhase=PHASE_CANCEL:!validDistance||currentPhase!=PHASE_MOVE||options.triggerOnTouchEnd&&!options.triggerOnTouchLeave?!validDistance&¤tPhase==PHASE_END&&options.triggerOnTouchLeave&&(nextPhase=PHASE_CANCEL):nextPhase=PHASE_END,nextPhase}function triggerHandler(event,phase){var ret,touches=event.touches;return(didSwipe()||hasSwipes())&&(ret=triggerHandlerForGesture(event,phase,SWIPE)),(didPinch()||hasPinches())&&ret!==!1&&(ret=triggerHandlerForGesture(event,phase,PINCH)),didDoubleTap()&&ret!==!1?ret=triggerHandlerForGesture(event,phase,DOUBLE_TAP):didLongTap()&&ret!==!1?ret=triggerHandlerForGesture(event,phase,LONG_TAP):didTap()&&ret!==!1&&(ret=triggerHandlerForGesture(event,phase,TAP)),phase===PHASE_CANCEL&&touchCancel(event),phase===PHASE_END&&(touches?touches.length||touchCancel(event):touchCancel(event)),ret}function triggerHandlerForGesture(event,phase,gesture){var ret;if(gesture==SWIPE){if($element.trigger("swipeStatus",[phase,direction||null,distance||0,duration||0,fingerCount,fingerData,currentDirection]),options.swipeStatus&&(ret=options.swipeStatus.call($element,event,phase,direction||null,distance||0,duration||0,fingerCount,fingerData,currentDirection),ret===!1))return!1;if(phase==PHASE_END&&validateSwipe()){if(clearTimeout(singleTapTimeout),clearTimeout(holdTimeout),$element.trigger("swipe",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipe&&(ret=options.swipe.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection),ret===!1))return!1;switch(direction){case LEFT:$element.trigger("swipeLeft",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeLeft&&(ret=options.swipeLeft.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection));break;case RIGHT:$element.trigger("swipeRight",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeRight&&(ret=options.swipeRight.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection));break;case UP:$element.trigger("swipeUp",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeUp&&(ret=options.swipeUp.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection));break;case DOWN:$element.trigger("swipeDown",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeDown&&(ret=options.swipeDown.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection))}}}if(gesture==PINCH){if($element.trigger("pinchStatus",[phase,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]),options.pinchStatus&&(ret=options.pinchStatus.call($element,event,phase,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData),ret===!1))return!1;if(phase==PHASE_END&&validatePinch())switch(pinchDirection){case IN:$element.trigger("pinchIn",[pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]),options.pinchIn&&(ret=options.pinchIn.call($element,event,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData));break;case OUT:$element.trigger("pinchOut",[pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]),options.pinchOut&&(ret=options.pinchOut.call($element,event,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData))}}return gesture==TAP?phase!==PHASE_CANCEL&&phase!==PHASE_END||(clearTimeout(singleTapTimeout),clearTimeout(holdTimeout),hasDoubleTap()&&!inDoubleTap()?(doubleTapStartTime=getTimeStamp(),singleTapTimeout=setTimeout($.proxy(function(){doubleTapStartTime=null,$element.trigger("tap",[event.target]),options.tap&&(ret=options.tap.call($element,event,event.target))},this),options.doubleTapThreshold)):(doubleTapStartTime=null,$element.trigger("tap",[event.target]),options.tap&&(ret=options.tap.call($element,event,event.target)))):gesture==DOUBLE_TAP?phase!==PHASE_CANCEL&&phase!==PHASE_END||(clearTimeout(singleTapTimeout),clearTimeout(holdTimeout),doubleTapStartTime=null,$element.trigger("doubletap",[event.target]),options.doubleTap&&(ret=options.doubleTap.call($element,event,event.target))):gesture==LONG_TAP&&(phase!==PHASE_CANCEL&&phase!==PHASE_END||(clearTimeout(singleTapTimeout),doubleTapStartTime=null,$element.trigger("longtap",[event.target]),options.longTap&&(ret=options.longTap.call($element,event,event.target)))),ret}function validateSwipeDistance(){var valid=!0;return null!==options.threshold&&(valid=distance>=options.threshold),valid}function didSwipeBackToCancel(){var cancelled=!1;return null!==options.cancelThreshold&&null!==direction&&(cancelled=getMaxDistance(direction)-distance>=options.cancelThreshold),cancelled}function validatePinchDistance(){return null!==options.pinchThreshold?pinchDistance>=options.pinchThreshold:!0}function validateSwipeTime(){var result;return result=options.maxTimeThreshold?!(duration>=options.maxTimeThreshold):!0}function validateDefaultEvent(jqEvent,direction){if(options.preventDefaultEvents!==!1)if(options.allowPageScroll===NONE)jqEvent.preventDefault();else{var auto=options.allowPageScroll===AUTO;switch(direction){case LEFT:(options.swipeLeft&&auto||!auto&&options.allowPageScroll!=HORIZONTAL)&&jqEvent.preventDefault();break;case RIGHT:(options.swipeRight&&auto||!auto&&options.allowPageScroll!=HORIZONTAL)&&jqEvent.preventDefault();break;case UP:(options.swipeUp&&auto||!auto&&options.allowPageScroll!=VERTICAL)&&jqEvent.preventDefault();break;case DOWN:(options.swipeDown&&auto||!auto&&options.allowPageScroll!=VERTICAL)&&jqEvent.preventDefault();break;case NONE:}}}function validatePinch(){var hasCorrectFingerCount=validateFingers(),hasEndPoint=validateEndPoint(),hasCorrectDistance=validatePinchDistance();return hasCorrectFingerCount&&hasEndPoint&&hasCorrectDistance}function hasPinches(){return!!(options.pinchStatus||options.pinchIn||options.pinchOut)}function didPinch(){return!(!validatePinch()||!hasPinches())}function validateSwipe(){var hasValidTime=validateSwipeTime(),hasValidDistance=validateSwipeDistance(),hasCorrectFingerCount=validateFingers(),hasEndPoint=validateEndPoint(),didCancel=didSwipeBackToCancel(),valid=!didCancel&&hasEndPoint&&hasCorrectFingerCount&&hasValidDistance&&hasValidTime;return valid}function hasSwipes(){return!!(options.swipe||options.swipeStatus||options.swipeLeft||options.swipeRight||options.swipeUp||options.swipeDown)}function didSwipe(){return!(!validateSwipe()||!hasSwipes())}function validateFingers(){return fingerCount===options.fingers||options.fingers===ALL_FINGERS||!SUPPORTS_TOUCH}function validateEndPoint(){return 0!==fingerData[0].end.x}function hasTap(){return!!options.tap}function hasDoubleTap(){return!!options.doubleTap}function hasLongTap(){return!!options.longTap}function validateDoubleTap(){if(null==doubleTapStartTime)return!1;var now=getTimeStamp();return hasDoubleTap()&&now-doubleTapStartTime<=options.doubleTapThreshold}function inDoubleTap(){return validateDoubleTap()}function validateTap(){return(1===fingerCount||!SUPPORTS_TOUCH)&&(isNaN(distance)||distanceoptions.longTapThreshold&&DOUBLE_TAP_THRESHOLD>distance}function didTap(){return!(!validateTap()||!hasTap())}function didDoubleTap(){return!(!validateDoubleTap()||!hasDoubleTap())}function didLongTap(){return!(!validateLongTap()||!hasLongTap())}function startMultiFingerRelease(event){previousTouchEndTime=getTimeStamp(),fingerCountAtRelease=event.touches.length+1}function cancelMultiFingerRelease(){previousTouchEndTime=0,fingerCountAtRelease=0}function inMultiFingerRelease(){var withinThreshold=!1;if(previousTouchEndTime){var diff=getTimeStamp()-previousTouchEndTime;diff<=options.fingerReleaseThreshold&&(withinThreshold=!0)}return withinThreshold}function getTouchInProgress(){return!($element.data(PLUGIN_NS+"_intouch")!==!0)}function setTouchInProgress(val){$element&&(val===!0?($element.bind(MOVE_EV,touchMove),$element.bind(END_EV,touchEnd),LEAVE_EV&&$element.bind(LEAVE_EV,touchLeave)):($element.unbind(MOVE_EV,touchMove,!1),$element.unbind(END_EV,touchEnd,!1),LEAVE_EV&&$element.unbind(LEAVE_EV,touchLeave,!1)),$element.data(PLUGIN_NS+"_intouch",val===!0))}function createFingerData(id,evt){var f={start:{x:0,y:0},last:{x:0,y:0},end:{x:0,y:0}};return f.start.x=f.last.x=f.end.x=evt.pageX||evt.clientX,f.start.y=f.last.y=f.end.y=evt.pageY||evt.clientY,fingerData[id]=f,f}function updateFingerData(evt){var id=void 0!==evt.identifier?evt.identifier:0,f=getFingerData(id);return null===f&&(f=createFingerData(id,evt)),f.last.x=f.end.x,f.last.y=f.end.y,f.end.x=evt.pageX||evt.clientX,f.end.y=evt.pageY||evt.clientY,f}function getFingerData(id){return fingerData[id]||null}function setMaxDistance(direction,distance){direction!=NONE&&(distance=Math.max(distance,getMaxDistance(direction)),maximumsMap[direction].distance=distance)}function getMaxDistance(direction){return maximumsMap[direction]?maximumsMap[direction].distance:void 0}function createMaximumsData(){var maxData={};return maxData[LEFT]=createMaximumVO(LEFT),maxData[RIGHT]=createMaximumVO(RIGHT),maxData[UP]=createMaximumVO(UP),maxData[DOWN]=createMaximumVO(DOWN),maxData}function createMaximumVO(dir){return{direction:dir,distance:0}}function calculateDuration(){return endTime-startTime}function calculateTouchesDistance(startPoint,endPoint){var diffX=Math.abs(startPoint.x-endPoint.x),diffY=Math.abs(startPoint.y-endPoint.y);return Math.round(Math.sqrt(diffX*diffX+diffY*diffY))}function calculatePinchZoom(startDistance,endDistance){var percent=endDistance/startDistance*1;return percent.toFixed(2)}function calculatePinchDirection(){return 1>pinchZoom?OUT:IN}function calculateDistance(startPoint,endPoint){return Math.round(Math.sqrt(Math.pow(endPoint.x-startPoint.x,2)+Math.pow(endPoint.y-startPoint.y,2)))}function calculateAngle(startPoint,endPoint){var x=startPoint.x-endPoint.x,y=endPoint.y-startPoint.y,r=Math.atan2(y,x),angle=Math.round(180*r/Math.PI);return 0>angle&&(angle=360-Math.abs(angle)),angle}function calculateDirection(startPoint,endPoint){if(comparePoints(startPoint,endPoint))return NONE;var angle=calculateAngle(startPoint,endPoint);return 45>=angle&&angle>=0?LEFT:360>=angle&&angle>=315?LEFT:angle>=135&&225>=angle?RIGHT:angle>45&&135>angle?DOWN:UP}function getTimeStamp(){var now=new Date;return now.getTime()}function getbounds(el){el=$(el);var offset=el.offset(),bounds={left:offset.left,right:offset.left+el.outerWidth(),top:offset.top,bottom:offset.top+el.outerHeight()};return bounds}function isInBounds(point,bounds){return point.x>bounds.left&&point.xbounds.top&&point.y0)){var ret,event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent,touches=event.touches,evt=touches?touches[0]:event;return phase=PHASE_START,touches?fingerCount=touches.length:options.preventDefaultEvents!==!1&&jqEvent.preventDefault(),distance=0,direction=null,currentDirection=null,pinchDirection=null,duration=0,startTouchesDistance=0,endTouchesDistance=0,pinchZoom=1,pinchDistance=0,maximumsMap=createMaximumsData(),cancelMultiFingerRelease(),createFingerData(0,evt),!touches||fingerCount===options.fingers||options.fingers===ALL_FINGERS||hasPinches()?(startTime=getTimeStamp(),2==fingerCount&&(createFingerData(1,touches[1]),startTouchesDistance=endTouchesDistance=calculateTouchesDistance(fingerData[0].start,fingerData[1].start)),(options.swipeStatus||options.pinchStatus)&&(ret=triggerHandler(event,phase))):ret=!1,ret===!1?(phase=PHASE_CANCEL,triggerHandler(event,phase),ret):(options.hold&&(holdTimeout=setTimeout($.proxy(function(){$element.trigger("hold",[event.target]),options.hold&&(ret=options.hold.call($element,event,event.target))},this),options.longTapThreshold)),setTouchInProgress(!0),null)}}function touchMove(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent;if(phase!==PHASE_END&&phase!==PHASE_CANCEL&&!inMultiFingerRelease()){var ret,touches=event.touches,evt=touches?touches[0]:event,currentFinger=updateFingerData(evt);if(endTime=getTimeStamp(),touches&&(fingerCount=touches.length),options.hold&&clearTimeout(holdTimeout),phase=PHASE_MOVE,2==fingerCount&&(0==startTouchesDistance?(createFingerData(1,touches[1]),startTouchesDistance=endTouchesDistance=calculateTouchesDistance(fingerData[0].start,fingerData[1].start)):(updateFingerData(touches[1]),endTouchesDistance=calculateTouchesDistance(fingerData[0].end,fingerData[1].end),pinchDirection=calculatePinchDirection(fingerData[0].end,fingerData[1].end)),pinchZoom=calculatePinchZoom(startTouchesDistance,endTouchesDistance),pinchDistance=Math.abs(startTouchesDistance-endTouchesDistance)),fingerCount===options.fingers||options.fingers===ALL_FINGERS||!touches||hasPinches()){if(direction=calculateDirection(currentFinger.start,currentFinger.end),currentDirection=calculateDirection(currentFinger.last,currentFinger.end),validateDefaultEvent(jqEvent,currentDirection),distance=calculateDistance(currentFinger.start,currentFinger.end),duration=calculateDuration(),setMaxDistance(direction,distance),ret=triggerHandler(event,phase),!options.triggerOnTouchEnd||options.triggerOnTouchLeave){var inBounds=!0;if(options.triggerOnTouchLeave){var bounds=getbounds(this);inBounds=isInBounds(currentFinger.end,bounds)}!options.triggerOnTouchEnd&&inBounds?phase=getNextPhase(PHASE_MOVE):options.triggerOnTouchLeave&&!inBounds&&(phase=getNextPhase(PHASE_END)),phase!=PHASE_CANCEL&&phase!=PHASE_END||triggerHandler(event,phase)}}else phase=PHASE_CANCEL,triggerHandler(event,phase);ret===!1&&(phase=PHASE_CANCEL,triggerHandler(event,phase))}}function touchEnd(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent,touches=event.touches;if(touches){if(touches.length&&!inMultiFingerRelease())return startMultiFingerRelease(event),!0;if(touches.length&&inMultiFingerRelease())return!0}return inMultiFingerRelease()&&(fingerCount=fingerCountAtRelease),endTime=getTimeStamp(),duration=calculateDuration(),didSwipeBackToCancel()||!validateSwipeDistance()?(phase=PHASE_CANCEL,triggerHandler(event,phase)):options.triggerOnTouchEnd||options.triggerOnTouchEnd===!1&&phase===PHASE_MOVE?(options.preventDefaultEvents!==!1&&jqEvent.preventDefault(),phase=PHASE_END,triggerHandler(event,phase)):!options.triggerOnTouchEnd&&hasTap()?(phase=PHASE_END,triggerHandlerForGesture(event,phase,TAP)):phase===PHASE_MOVE&&(phase=PHASE_CANCEL,triggerHandler(event,phase)),setTouchInProgress(!1),null}function touchCancel(){fingerCount=0,endTime=0,startTime=0,startTouchesDistance=0,endTouchesDistance=0,pinchZoom=1,cancelMultiFingerRelease(),setTouchInProgress(!1)}function touchLeave(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent;options.triggerOnTouchLeave&&(phase=getNextPhase(PHASE_END),triggerHandler(event,phase))}function removeListeners(){$element.unbind(START_EV,touchStart),$element.unbind(CANCEL_EV,touchCancel),$element.unbind(MOVE_EV,touchMove),$element.unbind(END_EV,touchEnd),LEAVE_EV&&$element.unbind(LEAVE_EV,touchLeave),setTouchInProgress(!1)}function getNextPhase(currentPhase){var nextPhase=currentPhase,validTime=validateSwipeTime(),validDistance=validateSwipeDistance(),didCancel=didSwipeBackToCancel();return!validTime||didCancel?nextPhase=PHASE_CANCEL:!validDistance||currentPhase!=PHASE_MOVE||options.triggerOnTouchEnd&&!options.triggerOnTouchLeave?!validDistance&¤tPhase==PHASE_END&&options.triggerOnTouchLeave&&(nextPhase=PHASE_CANCEL):nextPhase=PHASE_END,nextPhase}function triggerHandler(event,phase){var ret,touches=event.touches;return(didSwipe()||hasSwipes())&&(ret=triggerHandlerForGesture(event,phase,SWIPE)),(didPinch()||hasPinches())&&ret!==!1&&(ret=triggerHandlerForGesture(event,phase,PINCH)),didDoubleTap()&&ret!==!1?ret=triggerHandlerForGesture(event,phase,DOUBLE_TAP):didLongTap()&&ret!==!1?ret=triggerHandlerForGesture(event,phase,LONG_TAP):didTap()&&ret!==!1&&(ret=triggerHandlerForGesture(event,phase,TAP)),phase===PHASE_CANCEL&&touchCancel(event),phase===PHASE_END&&(touches?touches.length||touchCancel(event):touchCancel(event)),ret}function triggerHandlerForGesture(event,phase,gesture){var ret;if(gesture==SWIPE){if($element.trigger("swipeStatus",[phase,direction||null,distance||0,duration||0,fingerCount,fingerData,currentDirection]),options.swipeStatus&&(ret=options.swipeStatus.call($element,event,phase,direction||null,distance||0,duration||0,fingerCount,fingerData,currentDirection),ret===!1))return!1;if(phase==PHASE_END&&validateSwipe()){if(clearTimeout(singleTapTimeout),clearTimeout(holdTimeout),$element.trigger("swipe",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipe&&(ret=options.swipe.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection),ret===!1))return!1;switch(direction){case LEFT:$element.trigger("swipeLeft",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeLeft&&(ret=options.swipeLeft.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection));break;case RIGHT:$element.trigger("swipeRight",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeRight&&(ret=options.swipeRight.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection));break;case UP:$element.trigger("swipeUp",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeUp&&(ret=options.swipeUp.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection));break;case DOWN:$element.trigger("swipeDown",[direction,distance,duration,fingerCount,fingerData,currentDirection]),options.swipeDown&&(ret=options.swipeDown.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection))}}}if(gesture==PINCH){if($element.trigger("pinchStatus",[phase,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]),options.pinchStatus&&(ret=options.pinchStatus.call($element,event,phase,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData),ret===!1))return!1;if(phase==PHASE_END&&validatePinch())switch(pinchDirection){case IN:$element.trigger("pinchIn",[pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]),options.pinchIn&&(ret=options.pinchIn.call($element,event,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData));break;case OUT:$element.trigger("pinchOut",[pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]),options.pinchOut&&(ret=options.pinchOut.call($element,event,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData))}}return gesture==TAP?phase!==PHASE_CANCEL&&phase!==PHASE_END||(clearTimeout(singleTapTimeout),clearTimeout(holdTimeout),hasDoubleTap()&&!inDoubleTap()?(doubleTapStartTime=getTimeStamp(),singleTapTimeout=setTimeout($.proxy(function(){doubleTapStartTime=null,$element.trigger("tap",[event.target]),options.tap&&(ret=options.tap.call($element,event,event.target))},this),options.doubleTapThreshold)):(doubleTapStartTime=null,$element.trigger("tap",[event.target]),options.tap&&(ret=options.tap.call($element,event,event.target)))):gesture==DOUBLE_TAP?phase!==PHASE_CANCEL&&phase!==PHASE_END||(clearTimeout(singleTapTimeout),clearTimeout(holdTimeout),doubleTapStartTime=null,$element.trigger("doubletap",[event.target]),options.doubleTap&&(ret=options.doubleTap.call($element,event,event.target))):gesture==LONG_TAP&&(phase!==PHASE_CANCEL&&phase!==PHASE_END||(clearTimeout(singleTapTimeout),doubleTapStartTime=null,$element.trigger("longtap",[event.target]),options.longTap&&(ret=options.longTap.call($element,event,event.target)))),ret}function validateSwipeDistance(){var valid=!0;return null!==options.threshold&&(valid=distance>=options.threshold),valid}function didSwipeBackToCancel(){var cancelled=!1;return null!==options.cancelThreshold&&null!==direction&&(cancelled=getMaxDistance(direction)-distance>=options.cancelThreshold),cancelled}function validatePinchDistance(){return null!==options.pinchThreshold?pinchDistance>=options.pinchThreshold:!0}function validateSwipeTime(){var result;return result=options.maxTimeThreshold?!(duration>=options.maxTimeThreshold):!0}function validateDefaultEvent(jqEvent,direction){if(options.preventDefaultEvents!==!1)if(options.allowPageScroll===NONE)jqEvent.preventDefault();else{var auto=options.allowPageScroll===AUTO;switch(direction){case LEFT:(options.swipeLeft&&auto||!auto&&options.allowPageScroll!=HORIZONTAL)&&jqEvent.preventDefault();break;case RIGHT:(options.swipeRight&&auto||!auto&&options.allowPageScroll!=HORIZONTAL)&&jqEvent.preventDefault();break;case UP:(options.swipeUp&&auto||!auto&&options.allowPageScroll!=VERTICAL)&&jqEvent.preventDefault();break;case DOWN:(options.swipeDown&&auto||!auto&&options.allowPageScroll!=VERTICAL)&&jqEvent.preventDefault();break;case NONE:}}}function validatePinch(){var hasCorrectFingerCount=validateFingers(),hasEndPoint=validateEndPoint(),hasCorrectDistance=validatePinchDistance();return hasCorrectFingerCount&&hasEndPoint&&hasCorrectDistance}function hasPinches(){return!!(options.pinchStatus||options.pinchIn||options.pinchOut)}function didPinch(){return!(!validatePinch()||!hasPinches())}function validateSwipe(){var hasValidTime=validateSwipeTime(),hasValidDistance=validateSwipeDistance(),hasCorrectFingerCount=validateFingers(),hasEndPoint=validateEndPoint(),didCancel=didSwipeBackToCancel(),valid=!didCancel&&hasEndPoint&&hasCorrectFingerCount&&hasValidDistance&&hasValidTime;return valid}function hasSwipes(){return!!(options.swipe||options.swipeStatus||options.swipeLeft||options.swipeRight||options.swipeUp||options.swipeDown)}function didSwipe(){return!(!validateSwipe()||!hasSwipes())}function validateFingers(){return fingerCount===options.fingers||options.fingers===ALL_FINGERS||!SUPPORTS_TOUCH}function validateEndPoint(){return 0!==fingerData[0].end.x}function hasTap(){return!!options.tap}function hasDoubleTap(){return!!options.doubleTap}function hasLongTap(){return!!options.longTap}function validateDoubleTap(){if(null==doubleTapStartTime)return!1;var now=getTimeStamp();return hasDoubleTap()&&now-doubleTapStartTime<=options.doubleTapThreshold}function inDoubleTap(){return validateDoubleTap()}function validateTap(){return(1===fingerCount||!SUPPORTS_TOUCH)&&(isNaN(distance)||distanceoptions.longTapThreshold&&DOUBLE_TAP_THRESHOLD>distance}function didTap(){return!(!validateTap()||!hasTap())}function didDoubleTap(){return!(!validateDoubleTap()||!hasDoubleTap())}function didLongTap(){return!(!validateLongTap()||!hasLongTap())}function startMultiFingerRelease(event){previousTouchEndTime=getTimeStamp(),fingerCountAtRelease=event.touches.length+1}function cancelMultiFingerRelease(){previousTouchEndTime=0,fingerCountAtRelease=0}function inMultiFingerRelease(){var withinThreshold=!1;if(previousTouchEndTime){var diff=getTimeStamp()-previousTouchEndTime;diff<=options.fingerReleaseThreshold&&(withinThreshold=!0)}return withinThreshold}function getTouchInProgress(){return!($element.data(PLUGIN_NS+"_intouch")!==!0)}function setTouchInProgress(val){$element&&(val===!0?($element.bind(MOVE_EV,touchMove),$element.bind(END_EV,touchEnd),LEAVE_EV&&$element.bind(LEAVE_EV,touchLeave)):($element.unbind(MOVE_EV,touchMove,!1),$element.unbind(END_EV,touchEnd,!1),LEAVE_EV&&$element.unbind(LEAVE_EV,touchLeave,!1)),$element.data(PLUGIN_NS+"_intouch",val===!0))}function createFingerData(id,evt){var f={start:{x:0,y:0},last:{x:0,y:0},end:{x:0,y:0}};return f.start.x=f.last.x=f.end.x=evt.pageX||evt.clientX,f.start.y=f.last.y=f.end.y=evt.pageY||evt.clientY,fingerData[id]=f,f}function updateFingerData(evt){var id=void 0!==evt.identifier?evt.identifier:0,f=getFingerData(id);return null===f&&(f=createFingerData(id,evt)),f.last.x=f.end.x,f.last.y=f.end.y,f.end.x=evt.pageX||evt.clientX,f.end.y=evt.pageY||evt.clientY,f}function getFingerData(id){return fingerData[id]||null}function setMaxDistance(direction,distance){direction!=NONE&&(distance=Math.max(distance,getMaxDistance(direction)),maximumsMap[direction].distance=distance)}function getMaxDistance(direction){return maximumsMap[direction]?maximumsMap[direction].distance:void 0}function createMaximumsData(){var maxData={};return maxData[LEFT]=createMaximumVO(LEFT),maxData[RIGHT]=createMaximumVO(RIGHT),maxData[UP]=createMaximumVO(UP),maxData[DOWN]=createMaximumVO(DOWN),maxData}function createMaximumVO(dir){return{direction:dir,distance:0}}function calculateDuration(){return endTime-startTime}function calculateTouchesDistance(startPoint,endPoint){var diffX=Math.abs(startPoint.x-endPoint.x),diffY=Math.abs(startPoint.y-endPoint.y);return Math.round(Math.sqrt(diffX*diffX+diffY*diffY))}function calculatePinchZoom(startDistance,endDistance){var percent=endDistance/startDistance*1;return percent.toFixed(2)}function calculatePinchDirection(){return 1>pinchZoom?OUT:IN}function calculateDistance(startPoint,endPoint){return Math.round(Math.sqrt(Math.pow(endPoint.x-startPoint.x,2)+Math.pow(endPoint.y-startPoint.y,2)))}function calculateAngle(startPoint,endPoint){var x=startPoint.x-endPoint.x,y=endPoint.y-startPoint.y,r=Math.atan2(y,x),angle=Math.round(180*r/Math.PI);return 0>angle&&(angle=360-Math.abs(angle)),angle}function calculateDirection(startPoint,endPoint){if(comparePoints(startPoint,endPoint))return NONE;var angle=calculateAngle(startPoint,endPoint);return 45>=angle&&angle>=0?LEFT:360>=angle&&angle>=315?LEFT:angle>=135&&225>=angle?RIGHT:angle>45&&135>angle?DOWN:UP}function getTimeStamp(){var now=new Date;return now.getTime()}function getbounds(el){el=$(el);var offset=el.offset(),bounds={left:offset.left,right:offset.left+el.outerWidth(),top:offset.top,bottom:offset.top+el.outerHeight()};return bounds}function isInBounds(point,bounds){return point.x>bounds.left&&point.xbounds.top&&point.y