$.fn.SpinButton=function(a){return this.each(function(){this.spinCfg={min:a&&!isNaN(parseFloat(a.min))?Number(a.min):null,max:a&&!isNaN(parseFloat(a.max))?Number(a.max):null,step:a&&a.step?Number(a.step):1,page:a&&a.page?Number(a.page):10,upClass:a&&a.upClass?a.upClass:"up",downClass:a&&a.downClass?a.downClass:"down",reset:a&&a.reset?a.reset:this.value,delay:a&&a.delay?Number(a.delay):500,interval:a&&a.interval?Number(a.interval):100,_btn_width:20,_btn_height:12,_direction:null,_delay:null,_repeat:null};this.adjustValue=function(b){var a=(isNaN(this.value)?this.spinCfg.reset:Number(this.value))+Number(b);if(this.spinCfg.min!==null)a=Math.max(a,this.spinCfg.min);if(this.spinCfg.max!==null)a=Math.min(a,this.spinCfg.max);this.value=a};$(this).addClass(a&&a.spinClass?a.spinClass:"spin-button").mousemove(function(a){var e=a.pageX||a.x,f=a.pageY||a.y,d=a.target||a.srcElement,c=e>b(d,"offsetLeft")+d.offsetWidth-this.spinCfg._btn_width?f<b(d,"offsetTop")+this.spinCfg._btn_height?1:-1:0;if(c!==this.spinCfg._direction){switch(c){case 1:$(this).removeClass(this.spinCfg.downClass).addClass(this.spinCfg.upClass);break;case-1:$(this).removeClass(this.spinCfg.upClass).addClass(this.spinCfg.downClass);break;default:$(this).removeClass(this.spinCfg.upClass).removeClass(this.spinCfg.downClass)}this.spinCfg._direction=c}}).mouseout(function(){$(this).removeClass(this.spinCfg.upClass).removeClass(this.spinCfg.downClass);this.spinCfg._direction=null}).mousedown(function(){if(this.spinCfg._direction!=0){var a=this,b=function(){a.adjustValue(a.spinCfg._direction*a.spinCfg.step)};b();a.spinCfg._delay=window.setTimeout(function(){b();a.spinCfg._repeat=window.setInterval(b,a.spinCfg.interval)},a.spinCfg.delay)}}).mouseup(function(){window.clearInterval(this.spinCfg._repeat);window.clearTimeout(this.spinCfg._delay)}).dblclick(function(){$.browser.msie&&this.adjustValue(this.spinCfg._direction*this.spinCfg.step)}).keydown(function(a){switch(a.keyCode){case 38:this.adjustValue(this.spinCfg.step);break;case 40:this.adjustValue(-this.spinCfg.step);break;case 33:this.adjustValue(this.spinCfg.page);break;case 34:this.adjustValue(-this.spinCfg.page)}}).bind("mousewheel",function(a){if(a.wheelDelta>=120)this.adjustValue(this.spinCfg.step);else a.wheelDelta<=-120&&this.adjustValue(-this.spinCfg.step);a.preventDefault()}).change(function(){this.adjustValue(0)});this.addEventListener&&this.addEventListener("DOMMouseScroll",function(a){if(a.detail>0)this.adjustValue(-this.spinCfg.step);else a.detail<0&&this.adjustValue(this.spinCfg.step);a.preventDefault()},false)});function b(a,b){var c=a[b],d=document.body;while((a=a.offsetParent)&&a!=d)if(!$.browser.msie||a.currentStyle.position!="relative")c+=a[b];return c}}
