var Spinner=function(n,t){this.$element=$(n);this.options=$.extend({},$.fn.spinner.defaults,t);this.$input=this.$element.find(".spinner-input");this.$element.on("keyup",this.$input,$.proxy(this.change,this));if(this.options.hold){this.$element.on("mousedown",".spinner-up",$.proxy(function(){this.startSpin(!0)},this));this.$element.on("mouseup",".spinner-up, .spinner-down",$.proxy(this.stopSpin,this));this.$element.on("mouseout",".spinner-up, .spinner-down",$.proxy(this.stopSpin,this));this.$element.on("mousedown",".spinner-down",$.proxy(function(){this.startSpin(!1)},this))}else{this.$element.on("click",".spinner-up",$.proxy(function(){this.step(!0)},this));this.$element.on("click",".spinner-down",$.proxy(function(){this.step(!1)},this))}this.switches={count:1,enabled:!0};this.switches.speed=this.options.speed==="medium"?300:this.options.speed==="fast"?100:500;this.lastValue=null;this.render();this.options.disabled&this.disable()};Spinner.prototype={constructor:Spinner,render:function(){var n=this.$input.val();n?this.value(n):this.$input.val(this.options.value);this.$input.attr("maxlength",(this.options.max+"").split("").length)},change:function(){var n=this.$input.val();n/1?this.options.value=n/1:(n=n.replace(/[^0-9]/g,"")||"",this.$input.val(n),this.options.value=n/1);this.triggerChangedEvent()},stopSpin:function(){this.switches.timeout!==undefined&(clearTimeout(this.switches.timeout),this.switches.count=1,this.triggerChangedEvent())},triggerChangedEvent:function(){var n=this.value();n!==this.lastValue&(this.lastValue=n,this.$element.trigger("changed",n),this.$element.trigger("change"))},startSpin:function(n){if(!this.options.disabled){var t=this.switches.count;