(function(n){n.fn.numberinput=function(t){var i=n.extend({upClass:"default",downClass:"default",min:null,max:null,center:!0,onChange:null},t);return this.each(function(){function o(n){return u&&n<u||r&&n>r?!1:(t.val(n).trigger("change"),!0)}var e=n(this),t=e.clone(),u=i.min,r=i.max;t.change(function(){var t=parseInt(n(this).val());u&&t<u||isNaN(t)?n(this).val(u):r&&t>r&&(t=r,n(this).val(r));i.onChange.call(n(this))});var f=n("<div class='input-group'><\/div>"),s=n("<button type='button'>-<\/button>").attr("class","btn btn-"+i.downClass).click(function(){o(parseInt(t.val())-1)}),h=n("<button type='button'>+<\/button>").attr("class","btn btn-"+i.upClass).click(function(){o(parseInt(t.val())+1)});n("<span class='input-group-btn'><\/span>").append(s).appendTo(f);t.appendTo(f);t&&t.css("text-align","center");n("<span class='input-group-btn'><\/span>").append(h).appendTo(f);t.attr("type","text").keydown(function(t){if(n.inArray(t.keyCode,[46,8,9,27,13,110,190,116])===-1&&(t.keyCode!=65||t.ctrlKey!==!0)&&(!(t.keyCode>=35)||!(t.keyCode<=39))){(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault();var i=String.fromCharCode(t.which);t.keyCode>=96&&t.keyCode<=105&&(i=t.keyCode-96)}});e.replaceWith(f)})}})(jQuery)