;(function($){$.fn._0=$.fn.hover;$.fn.hover=function(a,b,c){if(c)this.bind('hoverstart',a);if(b)this.bind('hoverend',c?c:b);return!a?this.trigger('hover'):this.bind('hover',c?b:a)};var d=$.event.special.hover={delay:100,speed:100,setup:function(a){a=$.extend({speed:d.speed,delay:d.delay,hovered:0},a||{});$.event.add(this,"mouseenter mouseleave",e,a)},teardown:function(){$.event.remove(this,"mouseenter mouseleave",e)}};function e(a){var b=a.data||a;switch(a.type){case'mouseenter':b.dist2=0;b.event=a;a.type="hoverstart";if($.event.handle.call(this,a)!==false){b.elem=this;$.event.add(this,"mousemove",e,b);b.timer=setTimeout(c,b.delay)}break;case'mousemove':b.dist2+=Math.pow(a.pageX-b.event.pageX,2)+Math.pow(a.pageY-b.event.pageY,2);b.event=a;break;case'mouseleave':clearTimeout(b.timer);if(b.hovered){a.type="hoverend";$.event.handle.call(this,a);b.hovered--}else $.event.remove(b.elem,"mousemove",e);break;default:if(b.dist2<=Math.pow(b.speed*(b.delay/1e3),2)){$.event.remove(b.elem,"mousemove",e);b.event.type="hover";if($.event.handle.call(b.elem,b.event)!==false)b.hovered++}else b.timer=setTimeout(c,b.delay);b.dist2=0;break}function c(){e(b)}}})(jQuery);
