event-flick-min.js revision 2d6dc2a0e10bdba75ae44aa511c00d3f2b5cb4ff
YUI.add("event-flick",function(B){var F=("ontouchstart" in B.config.win)?{start:"touchstart",end:"touchend"}:{start:"mousedown",end:"mouseup"},G="start",J="end",A="ownerDocument",H="minVelocity",D="minDistance",C="_fs",E="_fsh",K="_feh",I="nodeType";B.Event.define("flick",{init:function(M,L,O){var N=M.on(F[G],this._onStart,this,M,L,O);M.setData(E,N);},destroy:function(N,M,P){var O=N.getData(E),L=N.getData(K);if(O){O.detach();N.clearData(E);}if(L){L.detach();N.clearData(K);}},processArgs:function(L){var M=(L[3])?L.splice(3,1)[0]:{};if(!(H in M)){M.minVelocity=this.MIN_VELOCITY;}if(!(D in M)){M.minDistance=this.MIN_DISTANCE;}return M;},_onStart:function(R,N,M,Q){var S=true,L,P,O=R;if(R.touches){S=(R.touches.length===1);R=R.touches[0];}if(S){O.preventDefault();N.setData(C,{time:new Date().getTime(),pageX:R.pageX,pageY:R.pageY,clientX:R.clientX,clientY:R.clientY,_e:R});L=N.getData(K);if(!L){P=(N.get(I)===9)?N:N.get(A);L=P.on(F[J],B.bind(this._onEnd,this),null,N,M,Q);N.setData(K,L);}}},_onEnd:function(Y,S,Z,P){var X=new Date().getTime(),L=S.getData(C),N=L,a=Y,O,R,U,W,M,V,T,Q;if(L){if(Y.changedTouches){if(Y.changedTouches.length===1&&Y.touches.length===0){a=Y.changedTouches[0];}else{L=false;}}if(L){a.preventDefault();O=N.time;X=new Date().getTime();R=X-O;U=Z._extra;W=[a.pageX-N.pageX,a.pageY-N.pageY];Q=U.axis||(Math.abs(W[0])>=Math.abs(W[1]))?"x":"y";M=W[(Q==="x")?0:1];V=Math.abs(M);T=V/R;if(isFinite(T)&&T>=U.minVelocity&&V>=U.minDistance){P.fire({distance:M,time:R,direction:M/V,velocity:T,axis:Q,button:Y.button,start:N,end:{time:X,clientX:a.clientX,clientY:a.clientY,pageX:a.pageX,pageY:a.pageY,_e:Y}});}S.clearData(C);}}},MIN_VELOCITY:0,MIN_DISTANCE:10});},"@VERSION@",{requires:["node-base","event-touch","event-synthetic"]});