/*
 * jQuery Super Gestures Plugin
 * http://www.evanbot.com/article/super-gestures-jquery-plugin/22
 *
 * @version      1.0
 * @copyright    2009 Evan Byrne (http://www.evanbot.com)
 */

jQuery.fn.gestures=function(_1){if(_1.strict==null){_1.strict=false;}if(_1.instant==null){_1.instant=false;}if(_1.disabled==null){_1.disabled=false;jQuery(this).disableTextSelect().attr("gestures","enabled");}else{_1.disabled=true;jQuery(this).removeAttr("gestures");}var _2={x:0,y:0,dir:{last:false,chain:[]},callback:function(_3){if(_3.magnitude<45){_1.callback(_3);}},strict:_1.strict,disabled:_1.disabled,instant:_1.instant};jQuery(this).mousedown(function(e){_2.x=e.pageX;_2.y=e.pageY;jQuery(this).attr("gestures","enabled");});jQuery(this).mousemove(function(e){if(jQuery(this).attr("gestures")=="enabled"){var _6=e.pageX-_2.x;var _7=e.pageY-_2.y;var _8=false;var _9=false;if(Math.abs(_6)>Math.abs(_7)){if(_6<=-6){_8="left";_9=Math.abs(_6);}if(_6>=6){_8="right";_9=Math.abs(_6);}}else{if(_7<=-6){_8="up";_9=Math.abs(_7);}if(_7>=6){_8="down";_9=Math.abs(_7);}}_2.x=e.pageX;_2.y=e.pageY;if(_8!=_2.dir.last&&_8!=false){_2.dir.last=_8;_2.dir.chain[_2.dir.chain.length]={direction:_8,magnitude:_9};if(_1.instant==true){_2.callback({string:_8,magnitude:_9});}var _a=_2.dir.chain.length;if(_2.dir.chain[_a-4]&&_2.dir.chain[_a-3]&&_2.dir.chain[_a-2]&&_2.dir.chain[_a-1]){if(_2.dir.chain[_a-4].direction=="right"&&_2.dir.chain[_a-3].direction=="down"&&_2.dir.chain[_a-2].direction=="left"&&_2.dir.chain[_a-1].direction=="up"){var _b=(_2.dir.chain[_a-4].magnitude+_2.dir.chain[_a-3].magnitude+_2.dir.chain[_a-2].magnitude+_2.dir.chain[_a-1].magnitude);_b=(_b/4);_2.callback({string:"circle-clockwise",magnitude:_b});_2.callback({string:"circle",magnitude:_b});}else{if(_2.dir.chain[_a-4].direction=="left"&&_2.dir.chain[_a-3].direction=="down"&&_2.dir.chain[_a-2].direction=="right"&&_2.dir.chain[_a-1].direction=="up"){var _b=(_2.dir.chain[_a-4].magnitude+_2.dir.chain[_a-3].magnitude+_2.dir.chain[_a-2].magnitude+_2.dir.chain[_a-1].magnitude);_b=(_b/4);_2.callback({string:"circle-counter-clockwise",magnitude:_b});_2.callback({string:"circle",magnitude:_b});}else{if((_2.dir.chain[_a-4].direction=="right"&&_2.dir.chain[_a-3].direction=="left"&&_2.dir.chain[_a-2].direction=="right"&&_2.dir.chain[_a-1].direction=="left")||(_2.dir.chain[_a-4].direction=="left"&&_2.dir.chain[_a-3].direction=="right"&&_2.dir.chain[_a-2].direction=="left"&&_2.dir.chain[_a-1].direction=="right")){var _b=(_2.dir.chain[_a-4].magnitude+_2.dir.chain[_a-3].magnitude+_2.dir.chain[_a-2].magnitude+_2.dir.chain[_a-1].magnitude);_b=(_b/4);_2.dir={last:false,chain:[]};_2.callback({string:"zig-zag-horizontal",magnitude:_b});_2.callback({string:"zig-zag",magnitude:_b});}else{if((_2.dir.chain[_a-4].direction=="up"&&_2.dir.chain[_a-3].direction=="down"&&_2.dir.chain[_a-2].direction=="up"&&_2.dir.chain[_a-1]=="down")||(_2.dir.chain[_a-4].direction=="down"&&_2.dir.chain[_a-3].direction=="up"&&_2.dir.chain[_a-2].direction=="down"&&_2.dir.chain[_a-1].direction=="up")){var _b=(_2.dir.chain[_a-4].magnitude+_2.dir.chain[_a-3].magnitude+_2.dir.chain[_a-2].magnitude+_2.dir.chain[_a-1].magnitude);_b=(_b/4);_2.dir={last:false,chain:[]};_2.callback({string:"zig-zag-vertical",magnitude:_b});_2.callback({string:"zig-zag",magnitude:_b});}}}}}}}});if(_1.strict==true){var el=this;}else{var el="*";}jQuery(el).mouseup(function(){jQuery("*").attr("gestures","disabled");var i=0;var _e={string:"",chain:_2.dir.chain,magnitude:0};while(typeof (_2.dir.chain[i])!="undefined"){_e.string=(_e.string+_2.dir.chain[i].direction+",");_e.magnitude+=_2.dir.chain[i].magnitude;i++;}_e.string=_e.string.replace(/,$/,"",_e.string);_e.magnitude=(_e.magnitude/i);if(_e.string!=""){if(!(_1.instant==true&&_2.dir.chain.length<2)){_2.callback(_e);}}_2.dir={last:false,chain:[]};});return this;};jQuery.fn.disableGestures=function(){jQuery(this).enableTextSelect().removeAttr("gestures");return this;};jQuery.fn.enableGestures=function(){jQuery(this).disableTextSelect().attr("gestures","enabled");return this;};
