(function(l){"function"===typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],l):"undefined"!==typeof module&&module.exports?l(require("jquery")):l(jQuery)})(function(l){function sa(m){!m||void 0!==m.allowPageScroll||void 0===m.swipe&&void 0===m.swipeStatus||(m.allowPageScroll="none");void 0!==m.click&&void 0===m.tap&&(m.tap=m.click);m||(m={});m=l.extend({},l.fn.swipe.defaults,m);return this.each(function(){var b=l(this),t=b.data("TouchSwipe");t||(t=new ta(this,m),b.data("TouchSwipe",t))})} function ta(m,b){function t(a){if(!0!==e.data("TouchSwipe_intouch")&&!(0 v?"out":"in"),v=(z/A).toFixed(2),y=Math.abs(A-z));if(h===b.fingers||"all"===b.fingers||!d||Q()){q=la(f.start,f.end);u=la(f.last,f.end);var r=u;if(!1!==b.preventDefaultEvents)if("none"===b.allowPageScroll)a.preventDefault();else switch(d="auto"===b.allowPageScroll,r){case "left":(b.swipeLeft&&d||!d&&"horizontal"!=b.allowPageScroll)&&a.preventDefault();break;case "right":(b.swipeRight&&d||!d&&"horizontal"!=b.allowPageScroll)&&a.preventDefault();break;case "up":(b.swipeUp&&d||!d&&"vertical"!=b.allowPageScroll)&& a.preventDefault();break;case "down":(b.swipeDown&&d||!d&&"vertical"!=b.allowPageScroll)&&a.preventDefault()}r=f.start;a=f.end;p=Math.round(Math.sqrt(Math.pow(a.x-r.x,2)+Math.pow(a.y-r.y,2)));n=K-R;r=q;a=p;"none"!=r&&(a=Math.max(a,ma(r)),N[r].distance=a);r=w(c,g);if(!b.triggerOnTouchEnd||b.triggerOnTouchLeave){a=!0;if(b.triggerOnTouchLeave){var L=l(this);var U=L.offset();a=U.left;d=U.left+L.outerWidth();var va=U.top;L=U.top+L.outerHeight();f=f.end;a=f.x>a&&f.xva&&f.y=b.maxTimeThreshold?!1:!0:!0,f=fa(),r=ea();!d||r?c="cancel":!f||"move"!=a||b.triggerOnTouchEnd&&!b.triggerOnTouchLeave?!f&&"end"==a&&b.triggerOnTouchLeave&&(c="cancel"): c="end";return c}function w(a,c){var d=a.touches;if(oa()&&pa()||pa())var f=D(a,c,"swipe");(qa()&&Q()||Q())&&!1!==f&&(f=D(a,c,"pinch"));ra()&&b.doubleTap&&!1!==f?f=D(a,c,"doubletap"):n>b.longTapThreshold&&10>p&&b.longTap&&!1!==f?f=D(a,c,"longtap"):(1===h||!G)&&(isNaN(p)||p=b.threshold);return a}function ea(){var a=!1;null!==b.cancelThreshold&&null!==q&&(a=ma(q)-p>=b.cancelThreshold);return a}function qa(){var a=h===b.fingers||"all"===b.fingers||!G,c=0!==k[0].end.x;var d=null!==b.pinchThreshold?y>=b.pinchThreshold:!0;return a&&c&&d}function Q(){return!!(b.pinchStatus||b.pinchIn||b.pinchOut)} function oa(){var a=b.maxTimeThreshold?n>=b.maxTimeThreshold?!1:!0:!0,c=fa(),d=h===b.fingers||"all"===b.fingers||!G,f=0!==k[0].end.x;return!ea()&&f&&d&&c&&a}function pa(){return!!(b.swipe||b.swipeStatus||b.swipeLeft||b.swipeRight||b.swipeUp||b.swipeDown)}function ra(){if(null==C)return!1;var a=B();return!!b.doubleTap&&a-C<=b.doubleTapThreshold}function T(){var a=!1;I&&B()-I<=b.fingerReleaseThreshold&&(a=!0);return a}function S(a){if(e){if(!0===a){if(e.on(ia,ba),e.on(ja,da),F)e.on(F,ha)}else e.off(ia, ba,!1),e.off(ja,da,!1),F&&e.off(F,ha,!1);e.data("TouchSwipe_intouch",!0===a)}}function P(a,c){var d={start:{x:0,y:0},last:{x:0,y:0},end:{x:0,y:0}};d.start.x=d.last.x=d.end.x=c.pageX||c.clientX;d.start.y=d.last.y=d.end.y=c.pageY||c.clientY;return k[a]=d}function ka(a){var c=void 0!==a.identifier?a.identifier:0,d=k[c]||null;null===d&&(d=P(c,a));d.last.x=d.end.x;d.last.y=d.end.y;d.end.x=a.pageX||a.clientX;d.end.y=a.pageY||a.clientY;return d}function ma(a){if(N[a])return N[a].distance}function ua(){var a= {};a.left=X("left");a.right=X("right");a.up=X("up");a.down=X("down");return a}function X(a){return{direction:a,distance:0}}function aa(a,c){var d=Math.abs(a.x-c.x);a=Math.abs(a.y-c.y);return Math.round(Math.sqrt(d*d+a*a))}function la(a,c){if(a.x==c.x&&a.y==c.y)return"none";a=Math.round(180*Math.atan2(c.y-a.y,a.x-c.x)/Math.PI);0>a&&(a=360-Math.abs(a));return 45>=a&&0<=a?"left":360>=a&&315<=a?"left":135<=a&&225>=a?"right":45a?"down":"up"}function B(){return(new Date).getTime()}b=l.extend({}, b);var Y=G||H||!b.fallbackToMouseEvents,V=Y?H?Z?"MSPointerDown":"pointerdown":"touchstart":"mousedown",ia=Y?H?Z?"MSPointerMove":"pointermove":"touchmove":"mousemove",ja=Y?H?Z?"MSPointerUp":"pointerup":"touchend":"mouseup",F=Y?H?"mouseleave":null:"mouseleave",W=H?Z?"MSPointerCancel":"pointercancel":"touchcancel",p=0,q=null,u=null,n=0,A=0,z=0,v=1,y=0,x=0,N=null,e=l(m),g="start",h=0,k={},R=0,K=0,I=0,O=0,C=0,M=null,J=null;try{e.on(V,t),e.on(W,E)}catch(a){l.error("events not supported "+V+","+W+" on jQuery.swipe")}this.enable= function(){this.disable();e.on(V,t);e.on(W,E);return e};this.disable=function(){na();return e};this.destroy=function(){na();e.data("TouchSwipe",null);e=null};this.option=function(a,c){if("object"===typeof a)b=l.extend(b,a);else if(void 0!==b[a]){if(void 0===c)return b[a];b[a]=c}else if(a)l.error("Option "+a+" does not exist on jQuery.swipe.options");else return b;return null}}var G="ontouchstart"in window,Z=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled&&!G,H=(window.navigator.pointerEnabled|| window.navigator.msPointerEnabled)&&!G;l.fn.swipe=function(m){var b=l(this),t=b.data("TouchSwipe");if(t&&"string"===typeof m){if(t[m])return t[m].apply(t,Array.prototype.slice.call(arguments,1));l.error("Method "+m+" does not exist on jQuery.swipe")}else if(t&&"object"===typeof m)t.option.apply(t,arguments);else if(!(t||"object"!==typeof m&&m))return sa.apply(this,arguments);return b};l.fn.swipe.version="1.6.18";l.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:".noSwipe",preventDefaultEvents:!0};l.fn.swipe.phases={PHASE_START:"start",PHASE_MOVE:"move",PHASE_END:"end",PHASE_CANCEL:"cancel"}; l.fn.swipe.directions={LEFT:"left",RIGHT:"right",UP:"up",DOWN:"down",IN:"in",OUT:"out"};l.fn.swipe.pageScroll={NONE:"none",HORIZONTAL:"horizontal",VERTICAL:"vertical",AUTO:"auto"};l.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,FOUR:4,FIVE:5,ALL:"all"}});