num: function(o,p) { var f,d=0,c=0 function alter(fn) {f.val(fn(Number(f.val())));p.changed()} var plusOne = function(){alter(function(v){return v + 1})} var minusOne = function(){alter(function(v){return v - 1})} return [dv,{'class':'rel'}, ['input',{value:o,size:5,style:'float:left',fn:function(){ f=this v.u.si(f,p) if(isNaN(f.val())) {f.val(0)} f.mousedown(function(){d=1}) f.mouseup(function(){d=0}) f.mousemove(function(e){ if (d==1) { if (e.clientY < c) {plusOne()} else {minusOne()} c=e.clientY } }) }}, sp,{'class':'int_minus',fn:function(){this.click(minusOne)}},['-'], sp,{'class':'int_plus',fn:function(){this.click(plusOne)}},['+']]] },