(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<l(a.target).closest(b.excludedElements,e).length)){var c=a.originalEvent?a.originalEvent:a;if(!c.pointerType||"mouse"!=c.pointerType||0!=b.fallbackToMouseEvents){var d=c.touches,f=d?d[0]:c;g="start";d?h=d.length:!1!==b.preventDefaultEvents&&a.preventDefault();p=0;x=u=q=null;z=A=n=0;v=1;y=0;N=ua();O=I=0;P(0,f);if(!d||h===b.fingers||"all"===b.fingers||Q()){if(R=B(),2==h&&(P(1,d[1]),A=z=aa(k[0].start,k[1].start)),b.swipeStatus||
b.pinchStatus)var r=w(c,g)}else r=!1;if(!1===r)return g="cancel",w(c,g),r;b.hold&&(J=setTimeout(l.proxy(function(){e.trigger("hold",[c.target]);b.hold&&(r=b.hold.call(e,c,c.target))},this),b.longTapThreshold));S(!0);return null}}}function ba(a){var c=a.originalEvent?a.originalEvent:a;if("end"!==g&&"cancel"!==g&&!T()){var d=c.touches;var f=ka(d?d[0]:c);K=B();d&&(h=d.length);b.hold&&clearTimeout(J);g="move";2==h&&(0==A?(P(1,d[1]),A=z=aa(k[0].start,k[1].start)):(ka(d[1]),z=aa(k[0].end,k[1].end),x=1>
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.x<d&&f.y>va&&f.y<L}!b.triggerOnTouchEnd&&
a?g=ca("move"):b.triggerOnTouchLeave&&!a&&(g=ca("end"));"cancel"!=g&&"end"!=g||w(c,g)}}else g="cancel",w(c,g);!1===r&&(g="cancel",w(c,g))}}function da(a){var c=a.originalEvent?a.originalEvent:a,d=c.touches;if(d){if(d.length&&!T())return I=B(),O=c.touches.length+1,!0;if(d.length&&T())return!0}T()&&(h=O);K=B();n=K-R;ea()||!fa()?(g="cancel",w(c,g)):b.triggerOnTouchEnd||!1===b.triggerOnTouchEnd&&"move"===g?(!1!==b.preventDefaultEvents&&!1!==a.cancelable&&a.preventDefault(),g="end",w(c,g)):!b.triggerOnTouchEnd&&
b.tap?(g="end",D(c,g,"tap")):"move"===g&&(g="cancel",w(c,g));S(!1);return null}function E(){z=A=R=K=h=0;v=1;O=I=0;S(!1)}function ha(a){a=a.originalEvent?a.originalEvent:a;b.triggerOnTouchLeave&&(g=ca("end"),w(a,g))}function na(){e.off(V,t);e.off(W,E);e.off(ia,ba);e.off(ja,da);F&&e.off(F,ha);S(!1)}function ca(a){var c=a,d=b.maxTimeThreshold?n>=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)&&b.tap&&!1!==f&&(f=D(a,c,"tap"));"cancel"===c&&E(a);"end"===c&&(d?d.length||E(a):E(a));return f}function D(a,c,d){if("swipe"==d){e.trigger("swipeStatus",[c,q||null,p||0,n||0,h,k,u]);if(b.swipeStatus){var f=
b.swipeStatus.call(e,a,c,q||null,p||0,n||0,h,k,u);if(!1===f)return!1}if("end"==c&&oa()){clearTimeout(M);clearTimeout(J);e.trigger("swipe",[q,p,n,h,k,u]);if(b.swipe&&(f=b.swipe.call(e,a,q,p,n,h,k,u),!1===f))return!1;switch(q){case "left":e.trigger("swipeLeft",[q,p,n,h,k,u]);b.swipeLeft&&(f=b.swipeLeft.call(e,a,q,p,n,h,k,u));break;case "right":e.trigger("swipeRight",[q,p,n,h,k,u]);b.swipeRight&&(f=b.swipeRight.call(e,a,q,p,n,h,k,u));break;case "up":e.trigger("swipeUp",[q,p,n,h,k,u]);b.swipeUp&&(f=b.swipeUp.call(e,
a,q,p,n,h,k,u));break;case "down":e.trigger("swipeDown",[q,p,n,h,k,u]),b.swipeDown&&(f=b.swipeDown.call(e,a,q,p,n,h,k,u))}}}if("pinch"==d){e.trigger("pinchStatus",[c,x||null,y||0,n||0,h,v,k]);if(b.pinchStatus&&(f=b.pinchStatus.call(e,a,c,x||null,y||0,n||0,h,v,k),!1===f))return!1;if("end"==c&&qa())switch(x){case "in":e.trigger("pinchIn",[x||null,y||0,n||0,h,v,k]);b.pinchIn&&(f=b.pinchIn.call(e,a,x||null,y||0,n||0,h,v,k));break;case "out":e.trigger("pinchOut",[x||null,y||0,n||0,h,v,k]),b.pinchOut&&
(f=b.pinchOut.call(e,a,x||null,y||0,n||0,h,v,k))}}if("tap"==d){if("cancel"===c||"end"===c)clearTimeout(M),clearTimeout(J),b.doubleTap&&!ra()?(C=B(),M=setTimeout(l.proxy(function(){C=null;e.trigger("tap",[a.target]);b.tap&&(f=b.tap.call(e,a,a.target))},this),b.doubleTapThreshold)):(C=null,e.trigger("tap",[a.target]),b.tap&&(f=b.tap.call(e,a,a.target)))}else if("doubletap"==d){if("cancel"===c||"end"===c)clearTimeout(M),clearTimeout(J),C=null,e.trigger("doubletap",[a.target]),b.doubleTap&&(f=b.doubleTap.call(e,
a,a.target))}else"longtap"!=d||"cancel"!==c&&"end"!==c||(clearTimeout(M),C=null,e.trigger("longtap",[a.target]),b.longTap&&(f=b.longTap.call(e,a,a.target)));return f}function fa(){var a=!0;null!==b.threshold&&(a=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":45<a&&135>a?"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.PointerEvent&&
!G,H=(window.PointerEvent||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"}});