(function(n){typeof define=="function"&&define.amd&&define.amd.jQuery?define(["jquery"],n):n(jQuery)})(function(n){function rt(t){return t&&t.allowPageScroll===undefined&&(t.swipe!==undefined||t.swipeStatus!==undefined)&&(t.allowPageScroll=v),t.click!==undefined&&t.tap===undefined&&(t.tap=t.click),t||(t={}),t=n.extend({},n.fn.swipe.defaults,t),this.each(function(){var r=n(this),i=r.data(h);i||(i=new ut(this,t),r.data(h,i))})}function ut(rt,ut){function wi(t){if(!cu()&&!(n(t.target).closest(ut.excludedElements,ft).length>0)){var u=t.originalEvent?t.originalEvent:t,f,e=r?u.touches[0]:u;return(et=tt,r?ot=u.touches.length:t.preventDefault(),ht=0,ct=null,pt=null,st=0,wt=0,bt=0,at=1,yt=0,lt=au(),ei=yu(),yr(),!r||ot===ut.fingers||ut.fingers===c||ii()?(ir(0,e),yi=dt(),ot==2&&(ir(1,u.touches[1]),wt=bt=rr(lt[0].start,lt[1].start)),(ut.swipeStatus||ut.pinchStatus)&&(f=vt(u,et))):f=!1,f===!1)?(et=i,vt(u,et),f):(ci(!0),null)}}function bi(n){var u=n.originalEvent?n.originalEvent:n,o,h,f,e,l;et===t||et===i||pr()||(h=r?u.touches[0]:u,f=wr(h),oi=dt(),r&&(ot=u.touches.length),et=s,ot==2&&(wt==0?(ir(1,u.touches[1]),wt=bt=rr(lt[0].start,lt[1].start)):(wr(u.touches[1]),bt=rr(lt[0].end,lt[1].end),pt=wu(lt[0].end,lt[1].end)),at=pu(wt,bt),yt=Math.abs(wt-bt)),ot===ut.fingers||ut.fingers===c||!r||ii()?(ct=du(f.start,f.end),gr(n,ct),ht=bu(f.start,f.end),st=kr(),vu(ct,ht),(ut.swipeStatus||ut.pinchStatus)&&(o=vt(u,et)),(!ut.triggerOnTouchEnd||ut.triggerOnTouchLeave)&&(e=!0,ut.triggerOnTouchLeave&&(l=gu(this),e=nf(f.end,l)),!ut.triggerOnTouchEnd&&e?et=gi(s):ut.triggerOnTouchLeave&&!e&&(et=gi(t)),(et==i||et==t)&&vt(u,et))):(et=i,vt(u,et)),o===!1&&(et=i,vt(u,et)))}function ki(n){var u=n.originalEvent;return r&&u.touches.length>0?(hu(),!0):(pr()&&(ot=pi),n.preventDefault(),oi=dt(),st=kr(),nr()?(et=i,vt(u,et)):ut.triggerOnTouchEnd||ut.triggerOnTouchEnd==!1&&et===s?(et=t,vt(u,et)):!ut.triggerOnTouchEnd&&ar()?(et=t,ti(u,et,y)):et===s&&(et=i,vt(u,et)),ci(!1),null)}function ni(){ot=0;oi=0;yi=0;wt=0;bt=0;at=1;yr();ci(!1)}function di(n){var i=n.originalEvent;ut.triggerOnTouchLeave&&(et=gi(t),vt(i,et))}function ur(){ft.unbind(ui,wi);ft.unbind(fi,ni);ft.unbind(ai,bi);ft.unbind(vi,ki);gt&&ft.unbind(gt,di);ci(!1)}function gi(n){var r=n,f=er(),u=fr(),e=nr();return!f||e?r=i:u&&n==s&&(!ut.triggerOnTouchEnd||ut.triggerOnTouchLeave)?r=t:!u&&n==t&&ut.triggerOnTouchLeave&&(r=i),r}function vt(n,u){var f=undefined;return tu()||hr()?f=ti(n,u,k):(nu()||ii())&&f!==!1&&(f=ti(n,u,d)),ou()&&f!==!1?f=ti(n,u,g):su()&&f!==!1?f=ti(n,u,nt):eu()&&f!==!1&&(f=ti(n,u,y)),u===i&&ni(n),u===t&&(r?n.touches.length==0&&ni(n):ni(n)),f}function ti(r,s,h){var c=undefined;if(h==k){if(ft.trigger("swipeStatus",[s,ct||null,ht||0,st||0,ot]),ut.swipeStatus&&(c=ut.swipeStatus.call(ft,r,s,ct||null,ht||0,st||0,ot),c===!1))return!1;if(s==t&&sr()){if(ft.trigger("swipe",[ct,ht,st,ot]),ut.swipe&&(c=ut.swipe.call(ft,r,ct,ht,st,ot),c===!1))return!1;switch(ct){case u:ft.trigger("swipeLeft",[ct,ht,st,ot]);ut.swipeLeft&&(c=ut.swipeLeft.call(ft,r,ct,ht,st,ot));break;case f:ft.trigger("swipeRight",[ct,ht,st,ot]);ut.swipeRight&&(c=ut.swipeRight.call(ft,r,ct,ht,st,ot));break;case e:ft.trigger("swipeUp",[ct,ht,st,ot]);ut.swipeUp&&(c=ut.swipeUp.call(ft,r,ct,ht,st,ot));break;case o:ft.trigger("swipeDown",[ct,ht,st,ot]);ut.swipeDown&&(c=ut.swipeDown.call(ft,r,ct,ht,st,ot))}}}if(h==d){if(ft.trigger("pinchStatus",[s,pt||null,yt||0,st||0,ot,at]),ut.pinchStatus&&(c=ut.pinchStatus.call(ft,r,s,pt||null,yt||0,st||0,ot,at),c===!1))return!1;if(s==t&&or())switch(pt){case l:ft.trigger("pinchIn",[pt||null,yt||0,st||0,ot,at]);ut.pinchIn&&(c=ut.pinchIn.call(ft,r,pt||null,yt||0,st||0,ot,at));break;case a:ft.trigger("pinchOut",[pt||null,yt||0,st||0,ot,at]);ut.pinchOut&&(c=ut.pinchOut.call(ft,r,pt||null,yt||0,st||0,ot,at))}}return h==y?(s===i||s===t)&&(clearTimeout(hi),tr()&&!ru()?(kt=dt(),hi=setTimeout(n.proxy(function(){kt=null;ft.trigger("tap",[r.target]);ut.tap&&(c=ut.tap.call(ft,r,r.target))},this),ut.doubleTapThreshold)):(kt=null,ft.trigger("tap",[r.target]),ut.tap&&(c=ut.tap.call(ft,r,r.target)))):h==g?(s===i||s===t)&&(clearTimeout(hi),kt=null,ft.trigger("doubletap",[r.target]),ut.doubleTap&&(c=ut.doubleTap.call(ft,r,r.target))):h==nt&&(s===i||s===t)&&(clearTimeout(hi),kt=null,ft.trigger("longtap",[r.target]),ut.longTap&&(c=ut.longTap.call(ft,r,r.target))),c}function fr(){var n=!0;return ut.threshold!==null&&(n=ht>=ut.threshold),n}function nr(){var n=!1;return ut.cancelThreshold!==null&&ct!==null&&(n=br(ct)-ht>=ut.cancelThreshold),n}function dr(){return ut.pinchThreshold!==null?yt>=ut.pinchThreshold:!0}function er(){return ut.maxTimeThreshold?st>=ut.maxTimeThreshold?!1:!0:!0}function gr(n,t){if(ut.allowPageScroll===v||ii())n.preventDefault();else{var i=ut.allowPageScroll===b;switch(t){case u:(ut.swipeLeft&&i||!i&&ut.allowPageScroll!=p)&&n.preventDefault();break;case f:(ut.swipeRight&&i||!i&&ut.allowPageScroll!=p)&&n.preventDefault();break;case e:(ut.swipeUp&&i||!i&&ut.allowPageScroll!=w)&&n.preventDefault();break;case o:(ut.swipeDown&&i||!i&&ut.allowPageScroll!=w)&&n.preventDefault()}}}function or(){var n=cr(),t=lr(),i=dr();return n&&t&&i}function ii(){return!!(ut.pinchStatus||ut.pinchIn||ut.pinchOut)}function nu(){return!!(or()&&ii())}function sr(){var n=er(),t=fr(),i=cr(),r=lr(),u=nr();return!u&&r&&i&&t&&n}function hr(){return!!(ut.swipe||ut.swipeStatus||ut.swipeLeft||ut.swipeRight||ut.swipeUp||ut.swipeDown)}function tu(){return!!(sr()&&hr())}function cr(){return ot===ut.fingers||ut.fingers===c||!r}function lr(){return lt[0].end.x!==0}function ar(){return!!ut.tap}function tr(){return!!ut.doubleTap}function iu(){return!!ut.longTap}function vr(){if(kt==null)return!1;var n=dt();return tr()&&n-kt<=ut.doubleTapThreshold}function ru(){return vr()}function uu(){return(ot===1||!r)&&(isNaN(ht)||ht===0)}function fu(){return st>ut.longTapThreshold&&ht<it}function eu(){return!!(uu()&&ar())}function ou(){return!!(vr()&&tr())}function su(){return!!(fu()&&iu())}function hu(){si=dt();pi=event.touches.length+1}function yr(){si=0;pi=0}function pr(){var n=!1,t;return si&&(t=dt()-si,t<=ut.fingerReleaseThreshold&&(n=!0)),n}function cu(){return!!(ft.data(h+"_intouch")===!0)}function ci(n){n===!0?(ft.bind(ai,bi),ft.bind(vi,ki),gt&&ft.bind(gt,di)):(ft.unbind(ai,bi,!1),ft.unbind(vi,ki,!1),gt&&ft.unbind(gt,di,!1));ft.data(h+"_intouch",n===!0)}function ir(n,t){var i=t.identifier!==undefined?t.identifier:0;return lt[n].identifier=i,lt[n].start.x=lt[n].end.x=t.pageX||t.clientX,lt[n].start.y=lt[n].end.y=t.pageY||t.clientY,lt[n]}function wr(n){var i=n.identifier!==undefined?n.identifier:0,t=lu(i);return t.end.x=n.pageX||n.clientX,t.end.y=n.pageY||n.clientY,t}function lu(n){for(var t=0;t<lt.length;t++)if(lt[t].identifier==n)return lt[t]}function au(){for(var n=[],t=0;t<=5;t++)n.push({start:{x:0,y:0},end:{x:0,y:0},identifier:0});return n}function vu(n,t){t=Math.max(t,br(n));ei[n].distance=t}function br(n){return ei[n]?ei[n].distance:undefined}function yu(){var n={};return n[u]=li(u),n[f]=li(f),n[e]=li(e),n[o]=li(o),n}function li(n){return{direction:n,distance:0}}function kr(){return oi-yi}function rr(n,t){var i=Math.abs(n.x-t.x),r=Math.abs(n.y-t.y);return Math.round(Math.sqrt(i*i+r*r))}function pu(n,t){var i=t/n*1;return i.toFixed(2)}function wu(){return at<1?a:l}function bu(n,t){return Math.round(Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)))}function ku(n,t){var r=n.x-t.x,u=t.y-n.y,f=Math.atan2(u,r),i=Math.round(f*180/Math.PI);return i<0&&(i=360-Math.abs(i)),i}function du(n,t){var i=ku(n,t);return i<=45&&i>=0?u:i<=360&&i>=315?u:i>=135&&i<=225?f:i>45&&i<135?o:e}function dt(){var n=new Date;return n.getTime()}function gu(t){t=n(t);var i=t.offset();return{left:i.left,right:i.left+t.outerWidth(),top:i.top,bottom:i.top+t.outerHeight()}}function nf(n,t){return n.x>t.left&&n.x<t.right&&n.y>t.top&&n.y<t.bottom}var ri=r||!ut.fallbackToMouseEvents,ui=ri?"touchstart":"mousedown",ai=ri?"touchmove":"mousemove",vi=ri?"touchend":"mouseup",gt=ri?null:"mouseleave",fi="touchcancel",ht=0,ct=null,st=0,wt=0,bt=0,at=1,yt=0,pt=0,ei=null,ft=n(rt),et="start",ot=0,lt=null,yi=0,oi=0,si=0,pi=0,kt=0,hi=null;try{ft.bind(ui,wi);ft.bind(fi,ni)}catch(tf){n.error("events not supported "+ui+","+fi+" on jQuery.swipe")}this.enable=function(){return ft.bind(ui,wi),ft.bind(fi,ni),ft};this.disable=function(){return ur(),ft};this.destroy=function(){return ur(),ft.data(h,null),ft};this.option=function(t,i){if(ut[t]!==undefined){if(i===undefined)return ut[t];ut[t]=i}else n.error("Option "+t+" does not exist on jQuery.swipe.options");return null}}var u="left",f="right",e="up",o="down",l="in",a="out",v="none",b="auto",k="swipe",d="pinch",y="tap",g="doubletap",nt="longtap",p="horizontal",w="vertical",c="all",it=10,tt="start",s="move",t="end",i="cancel",r="ontouchstart"in window,h="TouchSwipe";n.fn.swipe=function(t){var r=n(this),i=r.data(h);if(i&&typeof t=="string"){if(i[t])return i[t].apply(this,Array.prototype.slice.call(arguments,1));n.error("Method "+t+" does not exist on jQuery.swipe")}else if(!i&&(typeof t=="object"||!t))return rt.apply(this,arguments);return r};n.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,triggerOnTouchEnd:!0,triggerOnTouchLeave:!1,allowPageScroll:"auto",fallbackToMouseEvents:!0,excludedElements:"label, button, input, select, textarea, a, .noSwipe"};n.fn.swipe.phases={PHASE_START:tt,PHASE_MOVE:s,PHASE_END:t,PHASE_CANCEL:i};n.fn.swipe.directions={LEFT:u,RIGHT:f,UP:e,DOWN:o,IN:l,OUT:a};n.fn.swipe.pageScroll={NONE:v,HORIZONTAL:p,VERTICAL:w,AUTO:b};n.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:c}})