Template:Team:Leeds TouchSwipejs

From 2013.igem.org

(Difference between revisions)
m
m (Undo revision 99269 by Parsley (talk))
Line 4: Line 4:
  * to bypass the global wiki html and tags when referencing.
  * to bypass the global wiki html and tags when referencing.
  */
  */
-
(function (e) {
+
(function(e){var o="left",n="right",d="up",v="down",c="in",w="out",l="none",r="auto",k="swipe",s="pinch",x="tap",i="doubletap",b="longtap",A="horizontal",t="vertical",h="all",q=10,f="start",j="move",g="end",p="cancel",a="ontouchstart" in window,y="TouchSwipe";var m={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:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:"button, input, select, textarea, a, .noSwipe"};e.fn.swipe=function(D){var C=e(this),B=C.data(y);if(B&&typeof D==="string"){if(B[D]){return B[D].apply(this,Array.prototype.slice.call(arguments,1))}else{e.error("Method "+D+" does not exist on jQuery.swipe")}}else{if(!B&&(typeof D==="object"||!D)){return u.apply(this,arguments)}}return C};e.fn.swipe.defaults=m;e.fn.swipe.phases={PHASE_START:f,PHASE_MOVE:j,PHASE_END:g,PHASE_CANCEL:p};e.fn.swipe.directions={LEFT:o,RIGHT:n,UP:d,DOWN:v,IN:c,OUT:w};e.fn.swipe.pageScroll={NONE:l,HORIZONTAL:A,VERTICAL:t,AUTO:r};e.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:h};function u(B){if(B&&(B.allowPageScroll===undefined&&(B.swipe!==undefined||B.swipeStatus!==undefined))){B.allowPageScroll=l}if(B.click!==undefined&&B.tap===undefined){B.tap=B.click}if(!B){B={}}B=e.extend({},e.fn.swipe.defaults,B);return this.each(function(){var D=e(this);var C=D.data(y);if(!C){C=new z(this,B);D.data(y,C)}})}function z(a0,aq){var av=(a||!aq.fallbackToMouseEvents),G=av?"touchstart":"mousedown",au=av?"touchmove":"mousemove",R=av?"touchend":"mouseup",P=av?null:"mouseleave",az="touchcancel";var ac=0,aL=null,Y=0,aX=0,aV=0,D=1,am=0,aF=0,J=null;var aN=e(a0);var W="start";var T=0;var aM=null;var Q=0,aY=0,a1=0,aa=0,K=0;var aS=null;try{aN.bind(G,aJ);aN.bind(az,a5)}catch(ag){e.error("events not supported "+G+","+az+" on jQuery.swipe")}this.enable=function(){aN.bind(G,aJ);aN.bind(az,a5);return aN};this.disable=function(){aG();return aN};this.destroy=function(){aG();aN.data(y,null);return aN};this.option=function(a8,a7){if(aq[a8]!==undefined){if(a7===undefined){return aq[a8]}else{aq[a8]=a7}}else{e.error("Option "+a8+" does not exist on jQuery.swipe.options")}};function aJ(a9){if(ax()){return}if(e(a9.target).closest(aq.excludedElements,aN).length>0){return}var ba=a9.originalEvent?a9.originalEvent:a9;var a8,a7=a?ba.touches[0]:ba;W=f;if(a){T=ba.touches.length}else{a9.preventDefault()}ac=0;aL=null;aF=null;Y=0;aX=0;aV=0;D=1;am=0;aM=af();J=X();O();if(!a||(T===aq.fingers||aq.fingers===h)||aT()){ae(0,a7);Q=ao();if(T==2){ae(1,ba.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}if(aq.swipeStatus||aq.pinchStatus){a8=L(ba,W)}}else{a8=false}if(a8===false){W=p;L(ba,W);return a8}else{ak(true)}}function aZ(ba){var bd=ba.originalEvent?ba.originalEvent:ba;if(W===g||W===p||ai()){return}var a9,a8=a?bd.touches[0]:bd;var bb=aD(a8);aY=ao();if(a){T=bd.touches.length}W=j;if(T==2){if(aX==0){ae(1,bd.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}else{aD(bd.touches[1]);aV=ap(aM[0].end,aM[1].end);aF=an(aM[0].end,aM[1].end)}D=a3(aX,aV);am=Math.abs(aX-aV)}if((T===aq.fingers||aq.fingers===h)||!a||aT()){aL=aH(bb.start,bb.end);ah(ba,aL);ac=aO(bb.start,bb.end);Y=aI();aE(aL,ac);if(aq.swipeStatus||aq.pinchStatus){a9=L(bd,W)}if(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave){var a7=true;if(aq.triggerOnTouchLeave){var bc=aU(this);a7=B(bb.end,bc)}if(!aq.triggerOnTouchEnd&&a7){W=ay(j)}else{if(aq.triggerOnTouchLeave&&!a7){W=ay(g)}}if(W==p||W==g){L(bd,W)}}}else{W=p;L(bd,W)}if(a9===false){W=p;L(bd,W)}}function I(a7){var a8=a7.originalEvent;if(a){if(a8.touches.length>0){C();return true}}if(ai()){T=aa}a7.preventDefault();aY=ao();Y=aI();if(a6()){W=p;L(a8,W)}else{if(aq.triggerOnTouchEnd||(aq.triggerOnTouchEnd==false&&W===j)){W=g;L(a8,W)}else{if(!aq.triggerOnTouchEnd&&a2()){W=g;aB(a8,W,x)}else{if(W===j){W=p;L(a8,W)}}}}ak(false)}function a5(){T=0;aY=0;Q=0;aX=0;aV=0;D=1;O();ak(false)}function H(a7){var a8=a7.originalEvent;if(aq.triggerOnTouchLeave){W=ay(g);L(a8,W)}}function aG(){aN.unbind(G,aJ);aN.unbind(az,a5);aN.unbind(au,aZ);aN.unbind(R,I);if(P){aN.unbind(P,H)}ak(false)}function ay(bb){var ba=bb;var a9=aw();var a8=aj();var a7=a6();if(!a9||a7){ba=p}else{if(a8&&bb==j&&(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave)){ba=g}else{if(!a8&&bb==g&&aq.triggerOnTouchLeave){ba=p}}}return ba}function L(a9,a7){var a8=undefined;if(F()||S()){a8=aB(a9,a7,k)}else{if((M()||aT())&&a8!==false){a8=aB(a9,a7,s)}}if(aC()&&a8!==false){a8=aB(a9,a7,i)}else{if(al()&&a8!==false){a8=aB(a9,a7,b)}else{if(ad()&&a8!==false){a8=aB(a9,a7,x)}}}if(a7===p){a5(a9)}if(a7===g){if(a){if(a9.touches.length==0){a5(a9)}}else{a5(a9)}}return a8}function aB(ba,a7,a9){var a8=undefined;if(a9==k){aN.trigger("swipeStatus",[a7,aL||null,ac||0,Y||0,T]);if(aq.swipeStatus){a8=aq.swipeStatus.call(aN,ba,a7,aL||null,ac||0,Y||0,T);if(a8===false){return false}}if(a7==g&&aR()){aN.trigger("swipe",[aL,ac,Y,T]);if(aq.swipe){a8=aq.swipe.call(aN,ba,aL,ac,Y,T);if(a8===false){return false}}switch(aL){case o:aN.trigger("swipeLeft",[aL,ac,Y,T]);if(aq.swipeLeft){a8=aq.swipeLeft.call(aN,ba,aL,ac,Y,T)}break;case n:aN.trigger("swipeRight",[aL,ac,Y,T]);if(aq.swipeRight){a8=aq.swipeRight.call(aN,ba,aL,ac,Y,T)}break;case d:aN.trigger("swipeUp",[aL,ac,Y,T]);if(aq.swipeUp){a8=aq.swipeUp.call(aN,ba,aL,ac,Y,T)}break;case v:aN.trigger("swipeDown",[aL,ac,Y,T]);if(aq.swipeDown){a8=aq.swipeDown.call(aN,ba,aL,ac,Y,T)}break}}}if(a9==s){aN.trigger("pinchStatus",[a7,aF||null,am||0,Y||0,T,D]);if(aq.pinchStatus){a8=aq.pinchStatus.call(aN,ba,a7,aF||null,am||0,Y||0,T,D);if(a8===false){return false}}if(a7==g&&a4()){switch(aF){case c:aN.trigger("pinchIn",[aF||null,am||0,Y||0,T,D]);if(aq.pinchIn){a8=aq.pinchIn.call(aN,ba,aF||null,am||0,Y||0,T,D)}break;case w:aN.trigger("pinchOut",[aF||null,am||0,Y||0,T,D]);if(aq.pinchOut){a8=aq.pinchOut.call(aN,ba,aF||null,am||0,Y||0,T,D)}break}}}if(a9==x){if(a7===p||a7===g){clearTimeout(aS);if(V()&&!E()){K=ao();aS=setTimeout(e.proxy(function(){K=null;aN.trigger("tap",[ba.target]);if(aq.tap){a8=aq.tap.call(aN,ba,ba.target)}},this),aq.doubleTapThreshold)}else{K=null;aN.trigger("tap",[ba.target]);if(aq.tap){a8=aq.tap.call(aN,ba,ba.target)}}}}else{if(a9==i){if(a7===p||a7===g){clearTimeout(aS);K=null;aN.trigger("doubletap",[ba.target]);if(aq.doubleTap){a8=aq.doubleTap.call(aN,ba,ba.target)}}}else{if(a9==b){if(a7===p||a7===g){clearTimeout(aS);K=null;aN.trigger("longtap",[ba.target]);if(aq.longTap){a8=aq.longTap.call(aN,ba,ba.target)}}}}}return a8}function aj(){var a7=true;if(aq.threshold!==null){a7=ac>=aq.threshold}return a7}function a6(){var a7=false;if(aq.cancelThreshold!==null&&aL!==null){a7=(aP(aL)-ac)>=aq.cancelThreshold}return a7}function ab(){if(aq.pinchThreshold!==null){return am>=aq.pinchThreshold}return true}function aw(){var a7;if(aq.maxTimeThreshold){if(Y>=aq.maxTimeThreshold){a7=false}else{a7=true}}else{a7=true}return a7}function ah(a7,a8){if(aq.allowPageScroll===l||aT()){a7.preventDefault()}else{var a9=aq.allowPageScroll===r;switch(a8){case o:if((aq.swipeLeft&&a9)||(!a9&&aq.allowPageScroll!=A)){a7.preventDefault()}break;case n:if((aq.swipeRight&&a9)||(!a9&&aq.allowPageScroll!=A)){a7.preventDefault()}break;case d:if((aq.swipeUp&&a9)||(!a9&&aq.allowPageScroll!=t)){a7.preventDefault()}break;case v:if((aq.swipeDown&&a9)||(!a9&&aq.allowPageScroll!=t)){a7.preventDefault()}break}}}function a4(){var a8=aK();var a7=U();var a9=ab();return a8&&a7&&a9}function aT(){return !!(aq.pinchStatus||aq.pinchIn||aq.pinchOut)}function M(){return !!(a4()&&aT())}function aR(){var ba=aw();var bc=aj();var a9=aK();var a7=U();var a8=a6();var bb=!a8&&a7&&a9&&bc&&ba;return bb}function S(){return !!(aq.swipe||aq.swipeStatus||aq.swipeLeft||aq.swipeRight||aq.swipeUp||aq.swipeDown)}function F(){return !!(aR()&&S())}function aK(){return((T===aq.fingers||aq.fingers===h)||!a)}function U(){return aM[0].end.x!==0}function a2(){return !!(aq.tap)}function V(){return !!(aq.doubleTap)}function aQ(){return !!(aq.longTap)}function N(){if(K==null){return false}var a7=ao();return(V()&&((a7-K)<=aq.doubleTapThreshold))}function E(){return N()}function at(){return((T===1||!a)&&(isNaN(ac)||ac===0))}function aW(){return((Y>aq.longTapThreshold)&&(ac<q))}function ad(){return !!(at()&&a2())}function aC(){return !!(N()&&V())}function al(){return !!(aW()&&aQ())}function C(){a1=ao();aa=event.touches.length+1}function O(){a1=0;aa=0}function ai(){var a7=false;if(a1){var a8=ao()-a1;if(a8<=aq.fingerReleaseThreshold){a7=true}}return a7}function ax(){return !!(aN.data(y+"_intouch")===true)}function ak(a7){if(a7===true){aN.bind(au,aZ);aN.bind(R,I);if(P){aN.bind(P,H)}}else{aN.unbind(au,aZ,false);aN.unbind(R,I,false);if(P){aN.unbind(P,H,false)}}aN.data(y+"_intouch",a7===true)}function ae(a8,a7){var a9=a7.identifier!==undefined?a7.identifier:0;aM[a8].identifier=a9;aM[a8].start.x=aM[a8].end.x=a7.pageX||a7.clientX;aM[a8].start.y=aM[a8].end.y=a7.pageY||a7.clientY;return aM[a8]}function aD(a7){var a9=a7.identifier!==undefined?a7.identifier:0;var a8=Z(a9);a8.end.x=a7.pageX||a7.clientX;a8.end.y=a7.pageY||a7.clientY;return a8}function Z(a8){for(var a7=0;a7<aM.length;a7++){if(aM[a7].identifier==a8){return aM[a7]}}}function af(){var a7=[];for(var a8=0;a8<=5;a8++){a7.push({start:{x:0,y:0},end:{x:0,y:0},identifier:0})}return a7}function aE(a7,a8){a8=Math.max(a8,aP(a7));J[a7].distance=a8}function aP(a7){return J[a7].distance}function X(){var a7={};a7[o]=ar(o);a7[n]=ar(n);a7[d]=ar(d);a7[v]=ar(v);return a7}function ar(a7){return{direction:a7,distance:0}}function aI(){return aY-Q}function ap(ba,a9){var a8=Math.abs(ba.x-a9.x);var a7=Math.abs(ba.y-a9.y);return Math.round(Math.sqrt(a8*a8+a7*a7))}function a3(a7,a8){var a9=(a8/a7)*1;return a9.toFixed(2)}function an(){if(D<1){return w}else{return c}}function aO(a8,a7){return Math.round(Math.sqrt(Math.pow(a7.x-a8.x,2)+Math.pow(a7.y-a8.y,2)))}function aA(ba,a8){var a7=ba.x-a8.x;var bc=a8.y-ba.y;var a9=Math.atan2(bc,a7);var bb=Math.round(a9*180/Math.PI);if(bb<0){bb=360-Math.abs(bb)}return bb}function aH(a8,a7){var a9=aA(a8,a7);if((a9<=45)&&(a9>=0)){return o}else{if((a9<=360)&&(a9>=315)){return o}else{if((a9>=135)&&(a9<=225)){return n}else{if((a9>45)&&(a9<135)){return v}else{return d}}}}}function ao(){var a7=new Date();return a7.getTime()}function aU(a7){a7=e(a7);var a9=a7.offset();var a8={left:a9.left,right:a9.left+a7.outerWidth(),top:a9.top,bottom:a9.top+a7.outerHeight()};return a8}function B(a7,a8){return(a7.x>a8.left&&a7.x<a8.right&&a7.y>a8.top&&a7.y<a8.bottom)}}})(jQuery);
-
    var o = "left",
+
-
        n = "right",
+
-
        d = "up",
+
-
        v = "down",
+
-
        c = "in",
+
-
        w = "out",
+
-
        l = "none",
+
-
        r = "auto",
+
-
        k = "swipe",
+
-
        s = "pinch",
+
-
        x = "tap",
+
-
        i = "doubletap",
+
-
        b = "longtap",
+
-
        A = "horizontal",
+
-
        t = "vertical",
+
-
        h = "all",
+
-
        q = 10,
+
-
        f = "start",
+
-
        j = "move",
+
-
        g = "end",
+
-
        p = "cancel",
+
-
        a = "ontouchstart" in window,
+
-
        y = "TouchSwipe";
+
-
    var m = {
+
-
        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: true,
+
-
        triggerOnTouchLeave: false,
+
-
        allowPageScroll: "auto",
+
-
        fallbackToMouseEvents: true,
+
-
        excludedElements: "button, input, select, textarea, a, .noSwipe"
+
-
    };
+
-
    e.fn.swipe = function (D) {
+
-
        var C = e(this),
+
-
            B = C.data(y);
+
-
        if (B && typeof D === "string") {
+
-
            if (B[D]) {
+
-
                return B[D].apply(this, Array.prototype.slice.call(arguments, 1))
+
-
            } else {
+
-
                e.error("Method " + D + " does not exist on jQuery.swipe")
+
-
            }
+
-
        } else {
+
-
            if (!B && (typeof D === "object" || !D)) {
+
-
                return u.apply(this, arguments)
+
-
            }
+
-
        }
+
-
        return C
+
-
    };
+
-
    e.fn.swipe.defaults = m;
+
-
    e.fn.swipe.phases = {
+
-
        PHASE_START: f,
+
-
        PHASE_MOVE: j,
+
-
        PHASE_END: g,
+
-
        PHASE_CANCEL: p
+
-
    };
+
-
    e.fn.swipe.directions = {
+
-
        LEFT: o,
+
-
        RIGHT: n,
+
-
        UP: d,
+
-
        DOWN: v,
+
-
        IN: c,
+
-
        OUT: w
+
-
    };
+
-
    e.fn.swipe.pageScroll = {
+
-
        NONE: l,
+
-
        HORIZONTAL: A,
+
-
        VERTICAL: t,
+
-
        AUTO: r
+
-
    };
+
-
    e.fn.swipe.fingers = {
+
-
        ONE: 1,
+
-
        TWO: 2,
+
-
        THREE: 3,
+
-
        ALL: h
+
-
    };
+
-
 
+
-
    function u(B) {
+
-
        if (B && (B.allowPageScroll === undefined && (B.swipe !== undefined || B.swipeStatus !== undefined))) {
+
-
            B.allowPageScroll = l
+
-
        }
+
-
        if (B.click !== undefined && B.tap === undefined) {
+
-
            B.tap = B.click
+
-
        }
+
-
        if (!B) {
+
-
            B = {}
+
-
        }
+
-
        B = e.extend({}, e.fn.swipe.defaults, B);
+
-
        return this.each(function () {
+
-
            var D = e(this);
+
-
            var C = D.data(y);
+
-
            if (!C) {
+
-
                C = new z(this, B);
+
-
                D.data(y, C)
+
-
            }
+
-
        })
+
-
    }
+
-
 
+
-
    function z(a0, aq) {
+
-
        var av = (a || !aq.fallbackToMouseEvents),
+
-
            G = av ? "touchstart" : "mousedown",
+
-
            au = av ? "touchmove" : "mousemove",
+
-
            R = av ? "touchend" : "mouseup",
+
-
            P = av ? null : "mouseleave",
+
-
            az = "touchcancel";
+
-
        var ac = 0,
+
-
            aL = null,
+
-
            Y = 0,
+
-
            aX = 0,
+
-
            aV = 0,
+
-
            D = 1,
+
-
            am = 0,
+
-
            aF = 0,
+
-
            J = null;
+
-
        var aN = e(a0);
+
-
        var W = "start";
+
-
        var T = 0;
+
-
        var aM = null;
+
-
        var Q = 0,
+
-
            aY = 0,
+
-
            a1 = 0,
+
-
            aa = 0,
+
-
            K = 0;
+
-
        var aS = null;
+
-
        try {
+
-
            aN.bind(G, aJ);
+
-
            aN.bind(az, a5)
+
-
        } catch (ag) {
+
-
            e.error("events not supported " + G + "," + az + " on jQuery.swipe")
+
-
        }
+
-
        this.enable = function () {
+
-
            aN.bind(G, aJ);
+
-
            aN.bind(az, a5);
+
-
            return aN
+
-
        };
+
-
        this.disable = function () {
+
-
            aG();
+
-
            return aN
+
-
        };
+
-
        this.destroy = function () {
+
-
            aG();
+
-
            aN.data(y, null);
+
-
            return aN
+
-
        };
+
-
        this.option = function (a8, a7) {
+
-
            if (aq[a8] !== undefined) {
+
-
                if (a7 === undefined) {
+
-
                    return aq[a8]
+
-
                } else {
+
-
                    aq[a8] = a7
+
-
                }
+
-
            } else {
+
-
                e.error("Option " + a8 + " does not exist on jQuery.swipe.options")
+
-
            }
+
-
        };
+
-
 
+
-
        function aJ(a9) {
+
-
            if (ax()) {
+
-
                return
+
-
            }
+
-
            if (e(a9.target).closest(aq.excludedElements, aN).length > 0) {
+
-
                return
+
-
            }
+
-
            var ba = a9.originalEvent ? a9.originalEvent : a9;
+
-
            var a8, a7 = a ? ba.touches[0] : ba;
+
-
            W = f;
+
-
            if (a) {
+
-
                T = ba.touches.length
+
-
            } else {
+
-
                a9.preventDefault()
+
-
            }
+
-
            ac = 0;
+
-
            aL = null;
+
-
            aF = null;
+
-
            Y = 0;
+
-
            aX = 0;
+
-
            aV = 0;
+
-
            D = 1;
+
-
            am = 0;
+
-
            aM = af();
+
-
            J = X();
+
-
            O();
+
-
            if (!a || (T === aq.fingers || aq.fingers === h) || aT()) {
+
-
                ae(0, a7);
+
-
                Q = ao();
+
-
                if (T == 2) {
+
-
                    ae(1, ba.touches[1]);
+
-
                    aX = aV = ap(aM[0].start, aM[1].start)
+
-
                }
+
-
                if (aq.swipeStatus || aq.pinchStatus) {
+
-
                    a8 = L(ba, W)
+
-
                }
+
-
            } else {
+
-
                a8 = false
+
-
            } if (a8 === false) {
+
-
                W = p;
+
-
                L(ba, W);
+
-
                return a8
+
-
            } else {
+
-
                ak(true)
+
-
            }
+
-
        }
+
-
 
+
-
        function aZ(ba) {
+
-
            var bd = ba.originalEvent ? ba.originalEvent : ba;
+
-
            if (W === g || W === p || ai()) {
+
-
                return
+
-
            }
+
-
            var a9, a8 = a ? bd.touches[0] : bd;
+
-
            var bb = aD(a8);
+
-
            aY = ao();
+
-
            if (a) {
+
-
                T = bd.touches.length
+
-
            }
+
-
            W = j;
+
-
            if (T == 2) {
+
-
                if (aX == 0) {
+
-
                    ae(1, bd.touches[1]);
+
-
                    aX = aV = ap(aM[0].start, aM[1].start)
+
-
                } else {
+
-
                    aD(bd.touches[1]);
+
-
                    aV = ap(aM[0].end, aM[1].end);
+
-
                    aF = an(aM[0].end, aM[1].end)
+
-
                }
+
-
                D = a3(aX, aV);
+
-
                am = Math.abs(aX - aV)
+
-
            }
+
-
            if ((T === aq.fingers || aq.fingers === h) || !a || aT()) {
+
-
                aL = aH(bb.start, bb.end);
+
-
                ah(ba, aL);
+
-
                ac = aO(bb.start, bb.end);
+
-
                Y = aI();
+
-
                aE(aL, ac);
+
-
                if (aq.swipeStatus || aq.pinchStatus) {
+
-
                    a9 = L(bd, W)
+
-
                }
+
-
                if (!aq.triggerOnTouchEnd || aq.triggerOnTouchLeave) {
+
-
                    var a7 = true;
+
-
                    if (aq.triggerOnTouchLeave) {
+
-
                        var bc = aU(this);
+
-
                        a7 = B(bb.end, bc)
+
-
                    }
+
-
                    if (!aq.triggerOnTouchEnd && a7) {
+
-
                        W = ay(j)
+
-
                    } else {
+
-
                        if (aq.triggerOnTouchLeave && !a7) {
+
-
                            W = ay(g)
+
-
                        }
+
-
                    } if (W == p || W == g) {
+
-
                        L(bd, W)
+
-
                    }
+
-
                }
+
-
            } else {
+
-
                W = p;
+
-
                L(bd, W)
+
-
            } if (a9 === false) {
+
-
                W = p;
+
-
                L(bd, W)
+
-
            }
+
-
        }
+
-
 
+
-
        function I(a7) {
+
-
            var a8 = a7.originalEvent;
+
-
            if (a) {
+
-
                if (a8.touches.length > 0) {
+
-
                    C();
+
-
                    return true
+
-
                }
+
-
            }
+
-
            if (ai()) {
+
-
                T = aa
+
-
            }
+
-
            a7.preventDefault();
+
-
            aY = ao();
+
-
            Y = aI();
+
-
            if (a6()) {
+
-
                W = p;
+
-
                L(a8, W)
+
-
            } else {
+
-
                if (aq.triggerOnTouchEnd || (aq.triggerOnTouchEnd == false && W === j)) {
+
-
                    W = g;
+
-
                    L(a8, W)
+
-
                } else {
+
-
                    if (!aq.triggerOnTouchEnd && a2()) {
+
-
                        W = g;
+
-
                        aB(a8, W, x)
+
-
                    } else {
+
-
                        if (W === j) {
+
-
                            W = p;
+
-
                            L(a8, W)
+
-
                        }
+
-
                    }
+
-
                }
+
-
            }
+
-
            ak(false)
+
-
        }
+
-
 
+
-
        function a5() {
+
-
            T = 0;
+
-
            aY = 0;
+
-
            Q = 0;
+
-
            aX = 0;
+
-
            aV = 0;
+
-
            D = 1;
+
-
            O();
+
-
            ak(false)
+
-
        }
+
-
 
+
-
        function H(a7) {
+
-
            var a8 = a7.originalEvent;
+
-
            if (aq.triggerOnTouchLeave) {
+
-
                W = ay(g);
+
-
                L(a8, W)
+
-
            }
+
-
        }
+
-
 
+
-
        function aG() {
+
-
            aN.unbind(G, aJ);
+
-
            aN.unbind(az, a5);
+
-
            aN.unbind(au, aZ);
+
-
            aN.unbind(R, I);
+
-
            if (P) {
+
-
                aN.unbind(P, H)
+
-
            }
+
-
            ak(false)
+
-
        }
+
-
 
+
-
        function ay(bb) {
+
-
            var ba = bb;
+
-
            var a9 = aw();
+
-
            var a8 = aj();
+
-
            var a7 = a6();
+
-
            if (!a9 || a7) {
+
-
                ba = p
+
-
            } else {
+
-
                if (a8 && bb == j && (!aq.triggerOnTouchEnd || aq.triggerOnTouchLeave)) {
+
-
                    ba = g
+
-
                } else {
+
-
                    if (!a8 && bb == g && aq.triggerOnTouchLeave) {
+
-
                        ba = p
+
-
                    }
+
-
                }
+
-
            }
+
-
            return ba
+
-
        }
+
-
 
+
-
        function L(a9, a7) {
+
-
            var a8 = undefined;
+
-
            if (F() || S()) {
+
-
                a8 = aB(a9, a7, k)
+
-
            } else {
+
-
                if ((M() || aT()) && a8 !== false) {
+
-
                    a8 = aB(a9, a7, s)
+
-
                }
+
-
            } if (aC() && a8 !== false) {
+
-
                a8 = aB(a9, a7, i)
+
-
            } else {
+
-
                if (al() && a8 !== false) {
+
-
                    a8 = aB(a9, a7, b)
+
-
                } else {
+
-
                    if (ad() && a8 !== false) {
+
-
                        a8 = aB(a9, a7, x)
+
-
                    }
+
-
                }
+
-
            } if (a7 === p) {
+
-
                a5(a9)
+
-
            }
+
-
            if (a7 === g) {
+
-
                if (a) {
+
-
                    if (a9.touches.length == 0) {
+
-
                        a5(a9)
+
-
                    }
+
-
                } else {
+
-
                    a5(a9)
+
-
                }
+
-
            }
+
-
            return a8
+
-
        }
+
-
 
+
-
        function aB(ba, a7, a9) {
+
-
            var a8 = undefined;
+
-
            if (a9 == k) {
+
-
                aN.trigger("swipeStatus", [a7, aL || null, ac || 0, Y || 0, T]);
+
-
                if (aq.swipeStatus) {
+
-
                    a8 = aq.swipeStatus.call(aN, ba, a7, aL || null, ac || 0, Y || 0, T);
+
-
                    if (a8 === false) {
+
-
                        return false
+
-
                    }
+
-
                }
+
-
                if (a7 == g && aR()) {
+
-
                    aN.trigger("swipe", [aL, ac, Y, T]);
+
-
                    if (aq.swipe) {
+
-
                        a8 = aq.swipe.call(aN, ba, aL, ac, Y, T);
+
-
                        if (a8 === false) {
+
-
                            return false
+
-
                        }
+
-
                    }
+
-
                    switch (aL) {
+
-
                    case o:
+
-
                        aN.trigger("swipeLeft", [aL, ac, Y, T]);
+
-
                        if (aq.swipeLeft) {
+
-
                            a8 = aq.swipeLeft.call(aN, ba, aL, ac, Y, T)
+
-
                        }
+
-
                        break;
+
-
                    case n:
+
-
                        aN.trigger("swipeRight", [aL, ac, Y, T]);
+
-
                        if (aq.swipeRight) {
+
-
                            a8 = aq.swipeRight.call(aN, ba, aL, ac, Y, T)
+
-
                        }
+
-
                        break;
+
-
                    case d:
+
-
                        aN.trigger("swipeUp", [aL, ac, Y, T]);
+
-
                        if (aq.swipeUp) {
+
-
                            a8 = aq.swipeUp.call(aN, ba, aL, ac, Y, T)
+
-
                        }
+
-
                        break;
+
-
                    case v:
+
-
                        aN.trigger("swipeDown", [aL, ac, Y, T]);
+
-
                        if (aq.swipeDown) {
+
-
                            a8 = aq.swipeDown.call(aN, ba, aL, ac, Y, T)
+
-
                        }
+
-
                        break
+
-
                    }
+
-
                }
+
-
            }
+
-
            if (a9 == s) {
+
-
                aN.trigger("pinchStatus", [a7, aF || null, am || 0, Y || 0, T, D]);
+
-
                if (aq.pinchStatus) {
+
-
                    a8 = aq.pinchStatus.call(aN, ba, a7, aF || null, am || 0, Y || 0, T, D);
+
-
                    if (a8 === false) {
+
-
                        return false
+
-
                    }
+
-
                }
+
-
                if (a7 == g && a4()) {
+
-
                    switch (aF) {
+
-
                    case c:
+
-
                        aN.trigger("pinchIn", [aF || null, am || 0, Y || 0, T, D]);
+
-
                        if (aq.pinchIn) {
+
-
                            a8 = aq.pinchIn.call(aN, ba, aF || null, am || 0, Y || 0, T, D)
+
-
                        }
+
-
                        break;
+
-
                    case w:
+
-
                        aN.trigger("pinchOut", [aF || null, am || 0, Y || 0, T, D]);
+
-
                        if (aq.pinchOut) {
+
-
                            a8 = aq.pinchOut.call(aN, ba, aF || null, am || 0, Y || 0, T, D)
+
-
                        }
+
-
                        break
+
-
                    }
+
-
                }
+
-
            }
+
-
            if (a9 == x) {
+
-
                if (a7 === p || a7 === g) {
+
-
                    clearTimeout(aS);
+
-
                    if (V() && !E()) {
+
-
                        K = ao();
+
-
                        aS = setTimeout(e.proxy(function () {
+
-
                            K = null;
+
-
                            aN.trigger("tap", [ba.target]);
+
-
                            if (aq.tap) {
+
-
                                a8 = aq.tap.call(aN, ba, ba.target)
+
-
                            }
+
-
                        }, this), aq.doubleTapThreshold)
+
-
                    } else {
+
-
                        K = null;
+
-
                        aN.trigger("tap", [ba.target]);
+
-
                        if (aq.tap) {
+
-
                            a8 = aq.tap.call(aN, ba, ba.target)
+
-
                        }
+
-
                    }
+
-
                }
+
-
            } else {
+
-
                if (a9 == i) {
+
-
                    if (a7 === p || a7 === g) {
+
-
                        clearTimeout(aS);
+
-
                        K = null;
+
-
                        aN.trigger("doubletap", [ba.target]);
+
-
                        if (aq.doubleTap) {
+
-
                            a8 = aq.doubleTap.call(aN, ba, ba.target)
+
-
                        }
+
-
                    }
+
-
                } else {
+
-
                    if (a9 == b) {
+
-
                        if (a7 === p || a7 === g) {
+
-
                            clearTimeout(aS);
+
-
                            K = null;
+
-
                            aN.trigger("longtap", [ba.target]);
+
-
                            if (aq.longTap) {
+
-
                                a8 = aq.longTap.call(aN, ba, ba.target)
+
-
                            }
+
-
                        }
+
-
                    }
+
-
                }
+
-
            }
+
-
            return a8
+
-
        }
+
-
 
+
-
        function aj() {
+
-
            var a7 = true;
+
-
            if (aq.threshold !== null) {
+
-
                a7 = ac >= aq.threshold
+
-
            }
+
-
            return a7
+
-
        }
+
-
 
+
-
        function a6() {
+
-
            var a7 = false;
+
-
            if (aq.cancelThreshold !== null && aL !== null) {
+
-
                a7 = (aP(aL) - ac) >= aq.cancelThreshold
+
-
            }
+
-
            return a7
+
-
        }
+
-
 
+
-
        function ab() {
+
-
            if (aq.pinchThreshold !== null) {
+
-
                return am >= aq.pinchThreshold
+
-
            }
+
-
            return true
+
-
        }
+
-
 
+
-
        function aw() {
+
-
            var a7;
+
-
            if (aq.maxTimeThreshold) {
+
-
                if (Y >= aq.maxTimeThreshold) {
+
-
                    a7 = false
+
-
                } else {
+
-
                    a7 = true
+
-
                }
+
-
            } else {
+
-
                a7 = true
+
-
            }
+
-
            return a7
+
-
        }
+
-
 
+
-
        function ah(a7, a8) {
+
-
            if (aq.allowPageScroll === l || aT()) {
+
-
                a7.preventDefault()
+
-
            } else {
+
-
                var a9 = aq.allowPageScroll === r;
+
-
                switch (a8) {
+
-
                case o:
+
-
                    if ((aq.swipeLeft && a9) || (!a9 && aq.allowPageScroll != A)) {
+
-
                        a7.preventDefault()
+
-
                    }
+
-
                    break;
+
-
                case n:
+
-
                    if ((aq.swipeRight && a9) || (!a9 && aq.allowPageScroll != A)) {
+
-
                        a7.preventDefault()
+
-
                    }
+
-
                    break;
+
-
                case d:
+
-
                    if ((aq.swipeUp && a9) || (!a9 && aq.allowPageScroll != t)) {
+
-
                        a7.preventDefault()
+
-
                    }
+
-
                    break;
+
-
                case v:
+
-
                    if ((aq.swipeDown && a9) || (!a9 && aq.allowPageScroll != t)) {
+
-
                        a7.preventDefault()
+
-
                    }
+
-
                    break
+
-
                }
+
-
            }
+
-
        }
+
-
 
+
-
        function a4() {
+
-
            var a8 = aK();
+
-
            var a7 = U();
+
-
            var a9 = ab();
+
-
            return a8 && a7 && a9
+
-
        }
+
-
 
+
-
        function aT() {
+
-
            return !!(aq.pinchStatus || aq.pinchIn || aq.pinchOut)
+
-
        }
+
-
 
+
-
        function M() {
+
-
            return !!(a4() && aT())
+
-
        }
+
-
 
+
-
        function aR() {
+
-
            var ba = aw();
+
-
            var bc = aj();
+
-
            var a9 = aK();
+
-
            var a7 = U();
+
-
            var a8 = a6();
+
-
            var bb = !a8 && a7 && a9 && bc && ba;
+
-
            return bb
+
-
        }
+
-
 
+
-
        function S() {
+
-
            return !!(aq.swipe || aq.swipeStatus || aq.swipeLeft || aq.swipeRight || aq.swipeUp || aq.swipeDown)
+
-
        }
+
-
 
+
-
        function F() {
+
-
            return !!(aR() && S())
+
-
        }
+
-
 
+
-
        function aK() {
+
-
            return ((T === aq.fingers || aq.fingers === h) || !a)
+
-
        }
+
-
 
+
-
        function U() {
+
-
            return aM[0].end.x !== 0
+
-
        }
+
-
 
+
-
        function a2() {
+
-
            return !!(aq.tap)
+
-
        }
+
-
 
+
-
        function V() {
+
-
            return !!(aq.doubleTap)
+
-
        }
+
-
 
+
-
        function aQ() {
+
-
            return !!(aq.longTap)
+
-
        }
+
-
 
+
-
        function N() {
+
-
            if (K == null) {
+
-
                return false
+
-
            }
+
-
            var a7 = ao();
+
-
            return (V() && ((a7 - K) <= aq.doubleTapThreshold))
+
-
        }
+
-
 
+
-
        function E() {
+
-
            return N()
+
-
        }
+
-
 
+
-
        function at() {
+
-
            return ((T === 1 || !a) && (isNaN(ac) || ac === 0))
+
-
        }
+
-
 
+
-
        function aW() {
+
-
            return ((Y > aq.longTapThreshold) && (ac < q))
+
-
        }
+
-
 
+
-
        function ad() {
+
-
            return !!(at() && a2())
+
-
        }
+
-
 
+
-
        function aC() {
+
-
            return !!(N() && V())
+
-
        }
+
-
 
+
-
        function al() {
+
-
            return !!(aW() && aQ())
+
-
        }
+
-
 
+
-
        function C() {
+
-
            a1 = ao();
+
-
            aa = event.touches.length + 1
+
-
        }
+
-
 
+
-
        function O() {
+
-
            a1 = 0;
+
-
            aa = 0
+
-
        }
+
-
 
+
-
        function ai() {
+
-
            var a7 = false;
+
-
            if (a1) {
+
-
                var a8 = ao() - a1;
+
-
                if (a8 <= aq.fingerReleaseThreshold) {
+
-
                    a7 = true
+
-
                }
+
-
            }
+
-
            return a7
+
-
        }
+
-
 
+
-
        function ax() {
+
-
            return !!(aN.data(y + "_intouch") === true)
+
-
        }
+
-
 
+
-
        function ak(a7) {
+
-
            if (a7 === true) {
+
-
                aN.bind(au, aZ);
+
-
                aN.bind(R, I);
+
-
                if (P) {
+
-
                    aN.bind(P, H)
+
-
                }
+
-
            } else {
+
-
                aN.unbind(au, aZ, false);
+
-
                aN.unbind(R, I, false);
+
-
                if (P) {
+
-
                    aN.unbind(P, H, false)
+
-
                }
+
-
            }
+
-
            aN.data(y + "_intouch", a7 === true)
+
-
        }
+
-
 
+
-
        function ae(a8, a7) {
+
-
            var a9 = a7.identifier !== undefined ? a7.identifier : 0;
+
-
            aM[a8].identifier = a9;
+
-
            aM[a8].start.x = aM[a8].end.x = a7.pageX || a7.clientX;
+
-
            aM[a8].start.y = aM[a8].end.y = a7.pageY || a7.clientY;
+
-
            return aM[a8]
+
-
        }
+
-
 
+
-
        function aD(a7) {
+
-
            var a9 = a7.identifier !== undefined ? a7.identifier : 0;
+
-
            var a8 = Z(a9);
+
-
            a8.end.x = a7.pageX || a7.clientX;
+
-
            a8.end.y = a7.pageY || a7.clientY;
+
-
            return a8
+
-
        }
+
-
 
+
-
        function Z(a8) {
+
-
            for (var a7 = 0; a7 < aM.length; a7++) {
+
-
                if (aM[a7].identifier == a8) {
+
-
                    return aM[a7]
+
-
                }
+
-
            }
+
-
        }
+
-
 
+
-
        function af() {
+
-
            var a7 = [];
+
-
            for (var a8 = 0; a8 <= 5; a8++) {
+
-
                a7.push({
+
-
                    start: {
+
-
                        x: 0,
+
-
                        y: 0
+
-
                    },
+
-
                    end: {
+
-
                        x: 0,
+
-
                        y: 0
+
-
                    },
+
-
                    identifier: 0
+
-
                })
+
-
            }
+
-
            return a7
+
-
        }
+
-
 
+
-
        function aE(a7, a8) {
+
-
            a8 = Math.max(a8, aP(a7));
+
-
            J[a7].distance = a8
+
-
        }
+
-
 
+
-
        function aP(a7) {
+
-
            return J[a7].distance
+
-
        }
+
-
 
+
-
        function X() {
+
-
            var a7 = {};
+
-
            a7[o] = ar(o);
+
-
            a7[n] = ar(n);
+
-
            a7[d] = ar(d);
+
-
            a7[v] = ar(v);
+
-
            return a7
+
-
        }
+
-
 
+
-
        function ar(a7) {
+
-
            return {
+
-
                direction: a7,
+
-
                distance: 0
+
-
            }
+
-
        }
+
-
 
+
-
        function aI() {
+
-
            return aY - Q
+
-
        }
+
-
 
+
-
        function ap(ba, a9) {
+
-
            var a8 = Math.abs(ba.x - a9.x);
+
-
            var a7 = Math.abs(ba.y - a9.y);
+
-
            return Math.round(Math.sqrt(a8 * a8 + a7 * a7))
+
-
        }
+
-
 
+
-
        function a3(a7, a8) {
+
-
            var a9 = (a8 / a7) * 1;
+
-
            return a9.toFixed(2)
+
-
        }
+
-
 
+
-
        function an() {
+
-
            if (D < 1) {
+
-
                return w
+
-
            } else {
+
-
                return c
+
-
            }
+
-
        }
+
-
 
+
-
        function aO(a8, a7) {
+
-
            return Math.round(Math.sqrt(Math.pow(a7.x - a8.x, 2) + Math.pow(a7.y - a8.y, 2)))
+
-
        }
+
-
 
+
-
        function aA(ba, a8) {
+
-
            var a7 = ba.x - a8.x;
+
-
            var bc = a8.y - ba.y;
+
-
            var a9 = Math.atan2(bc, a7);
+
-
            var bb = Math.round(a9 * 180 / Math.PI);
+
-
            if (bb < 0) {
+
-
                bb = 360 - Math.abs(bb)
+
-
            }
+
-
            return bb
+
-
        }
+
-
 
+
-
        function aH(a8, a7) {
+
-
            var a9 = aA(a8, a7);
+
-
            if ((a9 <= 45) && (a9 >= 0)) {
+
-
                return o
+
-
            } else {
+
-
                if ((a9 <= 360) && (a9 >= 315)) {
+
-
                    return o
+
-
                } else {
+
-
                    if ((a9 >= 135) && (a9 <= 225)) {
+
-
                        return n
+
-
                    } else {
+
-
                        if ((a9 > 45) && (a9 < 135)) {
+
-
                            return v
+
-
                        } else {
+
-
                            return d
+
-
                        }
+
-
                    }
+
-
                }
+
-
            }
+
-
        }
+
-
 
+
-
        function ao() {
+
-
            var a7 = new Date();
+
-
            return a7.getTime()
+
-
        }
+
-
 
+
-
        function aU(a7) {
+
-
            a7 = e(a7);
+
-
            var a9 = a7.offset();
+
-
            var a8 = {
+
-
                left: a9.left,
+
-
                right: a9.left + a7.outerWidth(),
+
-
                top: a9.top,
+
-
                bottom: a9.top + a7.outerHeight()
+
-
            };
+
-
            return a8
+
-
        }
+
-
 
+
-
        function B(a7, a8) {
+
-
            return (a7.x > a8.left && a7.x < a8.right && a7.y > a8.top && a7.y < a8.bottom)
+
-
        }
+
-
    }
+
-
})(jQuery);
+

Revision as of 15:25, 2 September 2013

/*!

* To initialize the javascript within the wiki properly, use this url:
* https://2013.igem.org/Template:Team:Leeds_TouchSwipejs?action=raw&ctype=text/javascript
* to bypass the global wiki html and tags when referencing.
*/

(function(e){var o="left",n="right",d="up",v="down",c="in",w="out",l="none",r="auto",k="swipe",s="pinch",x="tap",i="doubletap",b="longtap",A="horizontal",t="vertical",h="all",q=10,f="start",j="move",g="end",p="cancel",a="ontouchstart" in window,y="TouchSwipe";var m={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:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:"button, input, select, textarea, a, .noSwipe"};e.fn.swipe=function(D){var C=e(this),B=C.data(y);if(B&&typeof D==="string"){if(B[D]){return B[D].apply(this,Array.prototype.slice.call(arguments,1))}else{e.error("Method "+D+" does not exist on jQuery.swipe")}}else{if(!B&&(typeof D==="object"||!D)){return u.apply(this,arguments)}}return C};e.fn.swipe.defaults=m;e.fn.swipe.phases={PHASE_START:f,PHASE_MOVE:j,PHASE_END:g,PHASE_CANCEL:p};e.fn.swipe.directions={LEFT:o,RIGHT:n,UP:d,DOWN:v,IN:c,OUT:w};e.fn.swipe.pageScroll={NONE:l,HORIZONTAL:A,VERTICAL:t,AUTO:r};e.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:h};function u(B){if(B&&(B.allowPageScroll===undefined&&(B.swipe!==undefined||B.swipeStatus!==undefined))){B.allowPageScroll=l}if(B.click!==undefined&&B.tap===undefined){B.tap=B.click}if(!B){B={}}B=e.extend({},e.fn.swipe.defaults,B);return this.each(function(){var D=e(this);var C=D.data(y);if(!C){C=new z(this,B);D.data(y,C)}})}function z(a0,aq){var av=(a||!aq.fallbackToMouseEvents),G=av?"touchstart":"mousedown",au=av?"touchmove":"mousemove",R=av?"touchend":"mouseup",P=av?null:"mouseleave",az="touchcancel";var ac=0,aL=null,Y=0,aX=0,aV=0,D=1,am=0,aF=0,J=null;var aN=e(a0);var W="start";var T=0;var aM=null;var Q=0,aY=0,a1=0,aa=0,K=0;var aS=null;try{aN.bind(G,aJ);aN.bind(az,a5)}catch(ag){e.error("events not supported "+G+","+az+" on jQuery.swipe")}this.enable=function(){aN.bind(G,aJ);aN.bind(az,a5);return aN};this.disable=function(){aG();return aN};this.destroy=function(){aG();aN.data(y,null);return aN};this.option=function(a8,a7){if(aq[a8]!==undefined){if(a7===undefined){return aq[a8]}else{aq[a8]=a7}}else{e.error("Option "+a8+" does not exist on jQuery.swipe.options")}};function aJ(a9){if(ax()){return}if(e(a9.target).closest(aq.excludedElements,aN).length>0){return}var ba=a9.originalEvent?a9.originalEvent:a9;var a8,a7=a?ba.touches[0]:ba;W=f;if(a){T=ba.touches.length}else{a9.preventDefault()}ac=0;aL=null;aF=null;Y=0;aX=0;aV=0;D=1;am=0;aM=af();J=X();O();if(!a||(T===aq.fingers||aq.fingers===h)||aT()){ae(0,a7);Q=ao();if(T==2){ae(1,ba.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}if(aq.swipeStatus||aq.pinchStatus){a8=L(ba,W)}}else{a8=false}if(a8===false){W=p;L(ba,W);return a8}else{ak(true)}}function aZ(ba){var bd=ba.originalEvent?ba.originalEvent:ba;if(W===g||W===p||ai()){return}var a9,a8=a?bd.touches[0]:bd;var bb=aD(a8);aY=ao();if(a){T=bd.touches.length}W=j;if(T==2){if(aX==0){ae(1,bd.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}else{aD(bd.touches[1]);aV=ap(aM[0].end,aM[1].end);aF=an(aM[0].end,aM[1].end)}D=a3(aX,aV);am=Math.abs(aX-aV)}if((T===aq.fingers||aq.fingers===h)||!a||aT()){aL=aH(bb.start,bb.end);ah(ba,aL);ac=aO(bb.start,bb.end);Y=aI();aE(aL,ac);if(aq.swipeStatus||aq.pinchStatus){a9=L(bd,W)}if(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave){var a7=true;if(aq.triggerOnTouchLeave){var bc=aU(this);a7=B(bb.end,bc)}if(!aq.triggerOnTouchEnd&&a7){W=ay(j)}else{if(aq.triggerOnTouchLeave&&!a7){W=ay(g)}}if(W==p||W==g){L(bd,W)}}}else{W=p;L(bd,W)}if(a9===false){W=p;L(bd,W)}}function I(a7){var a8=a7.originalEvent;if(a){if(a8.touches.length>0){C();return true}}if(ai()){T=aa}a7.preventDefault();aY=ao();Y=aI();if(a6()){W=p;L(a8,W)}else{if(aq.triggerOnTouchEnd||(aq.triggerOnTouchEnd==false&&W===j)){W=g;L(a8,W)}else{if(!aq.triggerOnTouchEnd&&a2()){W=g;aB(a8,W,x)}else{if(W===j){W=p;L(a8,W)}}}}ak(false)}function a5(){T=0;aY=0;Q=0;aX=0;aV=0;D=1;O();ak(false)}function H(a7){var a8=a7.originalEvent;if(aq.triggerOnTouchLeave){W=ay(g);L(a8,W)}}function aG(){aN.unbind(G,aJ);aN.unbind(az,a5);aN.unbind(au,aZ);aN.unbind(R,I);if(P){aN.unbind(P,H)}ak(false)}function ay(bb){var ba=bb;var a9=aw();var a8=aj();var a7=a6();if(!a9||a7){ba=p}else{if(a8&&bb==j&&(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave)){ba=g}else{if(!a8&&bb==g&&aq.triggerOnTouchLeave){ba=p}}}return ba}function L(a9,a7){var a8=undefined;if(F()||S()){a8=aB(a9,a7,k)}else{if((M()||aT())&&a8!==false){a8=aB(a9,a7,s)}}if(aC()&&a8!==false){a8=aB(a9,a7,i)}else{if(al()&&a8!==false){a8=aB(a9,a7,b)}else{if(ad()&&a8!==false){a8=aB(a9,a7,x)}}}if(a7===p){a5(a9)}if(a7===g){if(a){if(a9.touches.length==0){a5(a9)}}else{a5(a9)}}return a8}function aB(ba,a7,a9){var a8=undefined;if(a9==k){aN.trigger("swipeStatus",[a7,aL||null,ac||0,Y||0,T]);if(aq.swipeStatus){a8=aq.swipeStatus.call(aN,ba,a7,aL||null,ac||0,Y||0,T);if(a8===false){return false}}if(a7==g&&aR()){aN.trigger("swipe",[aL,ac,Y,T]);if(aq.swipe){a8=aq.swipe.call(aN,ba,aL,ac,Y,T);if(a8===false){return false}}switch(aL){case o:aN.trigger("swipeLeft",[aL,ac,Y,T]);if(aq.swipeLeft){a8=aq.swipeLeft.call(aN,ba,aL,ac,Y,T)}break;case n:aN.trigger("swipeRight",[aL,ac,Y,T]);if(aq.swipeRight){a8=aq.swipeRight.call(aN,ba,aL,ac,Y,T)}break;case d:aN.trigger("swipeUp",[aL,ac,Y,T]);if(aq.swipeUp){a8=aq.swipeUp.call(aN,ba,aL,ac,Y,T)}break;case v:aN.trigger("swipeDown",[aL,ac,Y,T]);if(aq.swipeDown){a8=aq.swipeDown.call(aN,ba,aL,ac,Y,T)}break}}}if(a9==s){aN.trigger("pinchStatus",[a7,aF||null,am||0,Y||0,T,D]);if(aq.pinchStatus){a8=aq.pinchStatus.call(aN,ba,a7,aF||null,am||0,Y||0,T,D);if(a8===false){return false}}if(a7==g&&a4()){switch(aF){case c:aN.trigger("pinchIn",[aF||null,am||0,Y||0,T,D]);if(aq.pinchIn){a8=aq.pinchIn.call(aN,ba,aF||null,am||0,Y||0,T,D)}break;case w:aN.trigger("pinchOut",[aF||null,am||0,Y||0,T,D]);if(aq.pinchOut){a8=aq.pinchOut.call(aN,ba,aF||null,am||0,Y||0,T,D)}break}}}if(a9==x){if(a7===p||a7===g){clearTimeout(aS);if(V()&&!E()){K=ao();aS=setTimeout(e.proxy(function(){K=null;aN.trigger("tap",[ba.target]);if(aq.tap){a8=aq.tap.call(aN,ba,ba.target)}},this),aq.doubleTapThreshold)}else{K=null;aN.trigger("tap",[ba.target]);if(aq.tap){a8=aq.tap.call(aN,ba,ba.target)}}}}else{if(a9==i){if(a7===p||a7===g){clearTimeout(aS);K=null;aN.trigger("doubletap",[ba.target]);if(aq.doubleTap){a8=aq.doubleTap.call(aN,ba,ba.target)}}}else{if(a9==b){if(a7===p||a7===g){clearTimeout(aS);K=null;aN.trigger("longtap",[ba.target]);if(aq.longTap){a8=aq.longTap.call(aN,ba,ba.target)}}}}}return a8}function aj(){var a7=true;if(aq.threshold!==null){a7=ac>=aq.threshold}return a7}function a6(){var a7=false;if(aq.cancelThreshold!==null&&aL!==null){a7=(aP(aL)-ac)>=aq.cancelThreshold}return a7}function ab(){if(aq.pinchThreshold!==null){return am>=aq.pinchThreshold}return true}function aw(){var a7;if(aq.maxTimeThreshold){if(Y>=aq.maxTimeThreshold){a7=false}else{a7=true}}else{a7=true}return a7}function ah(a7,a8){if(aq.allowPageScroll===l||aT()){a7.preventDefault()}else{var a9=aq.allowPageScroll===r;switch(a8){case o:if((aq.swipeLeft&&a9)||(!a9&&aq.allowPageScroll!=A)){a7.preventDefault()}break;case n:if((aq.swipeRight&&a9)||(!a9&&aq.allowPageScroll!=A)){a7.preventDefault()}break;case d:if((aq.swipeUp&&a9)||(!a9&&aq.allowPageScroll!=t)){a7.preventDefault()}break;case v:if((aq.swipeDown&&a9)||(!a9&&aq.allowPageScroll!=t)){a7.preventDefault()}break}}}function a4(){var a8=aK();var a7=U();var a9=ab();return a8&&a7&&a9}function aT(){return !!(aq.pinchStatus||aq.pinchIn||aq.pinchOut)}function M(){return !!(a4()&&aT())}function aR(){var ba=aw();var bc=aj();var a9=aK();var a7=U();var a8=a6();var bb=!a8&&a7&&a9&&bc&&ba;return bb}function S(){return !!(aq.swipe||aq.swipeStatus||aq.swipeLeft||aq.swipeRight||aq.swipeUp||aq.swipeDown)}function F(){return !!(aR()&&S())}function aK(){return((T===aq.fingers||aq.fingers===h)||!a)}function U(){return aM[0].end.x!==0}function a2(){return !!(aq.tap)}function V(){return !!(aq.doubleTap)}function aQ(){return !!(aq.longTap)}function N(){if(K==null){return false}var a7=ao();return(V()&&((a7-K)<=aq.doubleTapThreshold))}function E(){return N()}function at(){return((T===1||!a)&&(isNaN(ac)||ac===0))}function aW(){return((Y>aq.longTapThreshold)&&(ac<q))}function ad(){return !!(at()&&a2())}function aC(){return !!(N()&&V())}function al(){return !!(aW()&&aQ())}function C(){a1=ao();aa=event.touches.length+1}function O(){a1=0;aa=0}function ai(){var a7=false;if(a1){var a8=ao()-a1;if(a8<=aq.fingerReleaseThreshold){a7=true}}return a7}function ax(){return !!(aN.data(y+"_intouch")===true)}function ak(a7){if(a7===true){aN.bind(au,aZ);aN.bind(R,I);if(P){aN.bind(P,H)}}else{aN.unbind(au,aZ,false);aN.unbind(R,I,false);if(P){aN.unbind(P,H,false)}}aN.data(y+"_intouch",a7===true)}function ae(a8,a7){var a9=a7.identifier!==undefined?a7.identifier:0;aM[a8].identifier=a9;aM[a8].start.x=aM[a8].end.x=a7.pageX||a7.clientX;aM[a8].start.y=aM[a8].end.y=a7.pageY||a7.clientY;return aM[a8]}function aD(a7){var a9=a7.identifier!==undefined?a7.identifier:0;var a8=Z(a9);a8.end.x=a7.pageX||a7.clientX;a8.end.y=a7.pageY||a7.clientY;return a8}function Z(a8){for(var a7=0;a7<aM.length;a7++){if(aM[a7].identifier==a8){return aM[a7]}}}function af(){var a7=[];for(var a8=0;a8<=5;a8++){a7.push({start:{x:0,y:0},end:{x:0,y:0},identifier:0})}return a7}function aE(a7,a8){a8=Math.max(a8,aP(a7));J[a7].distance=a8}function aP(a7){return J[a7].distance}function X(){var a7={};a7[o]=ar(o);a7[n]=ar(n);a7[d]=ar(d);a7[v]=ar(v);return a7}function ar(a7){return{direction:a7,distance:0}}function aI(){return aY-Q}function ap(ba,a9){var a8=Math.abs(ba.x-a9.x);var a7=Math.abs(ba.y-a9.y);return Math.round(Math.sqrt(a8*a8+a7*a7))}function a3(a7,a8){var a9=(a8/a7)*1;return a9.toFixed(2)}function an(){if(D<1){return w}else{return c}}function aO(a8,a7){return Math.round(Math.sqrt(Math.pow(a7.x-a8.x,2)+Math.pow(a7.y-a8.y,2)))}function aA(ba,a8){var a7=ba.x-a8.x;var bc=a8.y-ba.y;var a9=Math.atan2(bc,a7);var bb=Math.round(a9*180/Math.PI);if(bb<0){bb=360-Math.abs(bb)}return bb}function aH(a8,a7){var a9=aA(a8,a7);if((a9<=45)&&(a9>=0)){return o}else{if((a9<=360)&&(a9>=315)){return o}else{if((a9>=135)&&(a9<=225)){return n}else{if((a9>45)&&(a9<135)){return v}else{return d}}}}}function ao(){var a7=new Date();return a7.getTime()}function aU(a7){a7=e(a7);var a9=a7.offset();var a8={left:a9.left,right:a9.left+a7.outerWidth(),top:a9.top,bottom:a9.top+a7.outerHeight()};return a8}function B(a7,a8){return(a7.x>a8.left&&a7.x<a8.right&&a7.y>a8.top&&a7.y<a8.bottom)}}})(jQuery);