$("input[type='number']").each(function () {
    var $this = $(this);
    
    var $clone = $this.addClass("input-number").clone(true);
    $clone.attr("type", "text");
    $this.replaceWith($clone);
    
    var $btn = $("<button>").addClass("btn btn-mini");
    var $btnPlus = $btn.clone().append("<i class='icon icon-plus'></i>");
    var $btnMinus = $btn.clone().append("<i class='icon icon-minus'></i>");
    
    var $btnGroup = $("<div>")
                        .addClass("btn-group btn-group-vertical number-btn")
                        .append($btnPlus)
                        .append($btnMinus);
    
    $clone.after($btnGroup);
});

@@ -249,24 +249,29 @@
 btn-mini%22);%0A
+    %0A
     var $btn
@@ -326,24 +326,85 @@
 plus'%3E%3C/i%3E%22)
+.on(%22click%22, function () %7B%0A        increment($(this));%0A    %7D)
 ;%0A    var $b
@@ -467,16 +467,77 @@
 '%3E%3C/i%3E%22)
+.on(%22click%22, function () %7B%0A        decrement($(this));%0A    %7D)
 ;%0A    %0A 
@@ -763,12 +763,1216 @@
 Group);%0A%7D);%0A
+%0Afunction getInput (button) %7B%0A    return $input = button.parent().prev();%0A%7D%0A%0Afunction increment (button) %7B%0A    var $input = getInput(button);%0A    var value = getValue($input);%0A    ++value;%0A    setValue($input, value);%0A%7D%0A%0Afunction decrement (button) %7B%0A    var $input = getInput(button);%0A    var value = getValue($input);%0A    --value;%0A    setValue($input, value);%0A%7D%0A%0Afunction setValue (input, value) %7B%0A    var $input = input;%0A    var limits = getLimits($input);%0A    %0A    // both limits%0A    if (limits.max && limits.min) %7B%0A        if (value %3C= limits.max && value %3E= limits.min) %7B%0A            $input.val(value);%0A        %7D%0A        return;%0A    %7D%0A    %0A    // only min%0A    if (limits.min) %7B%0A        if (value %3E= limits.min) %7B%0A            $input.val(value);%0A        %7D%0A        return;%0A    %7D%0A    %0A    // only max%0A    if (limits.max) %7B%0A        if (value %3C= limits.max) %7B%0A            $input.val(value);%0A        %7D%0A        return;%0A    %7D%0A    %0A    // no limits%0A    $input.val(value);%0A%7D%0A%0Afunction getValue (input) %7B%0A    var $input = input;%0A    return $($input).val() %7C%7C 0;%0A%7D%0A%0Afunction getLimits(input) %7B%0A    var $input = input;%0A    return %7B%0A        min: $($input).attr(%22min%22),%0A        max: $($input).attr(%22max%22)%0A    %7D;%0A%7D%0A

set values, min, max