function b() {
var t, e, n;
if ("" === (t = L.val())) return void("" !== T.replacementval && (L.val(T.replacementval), L.trigger("change")));
T.decimals > 0 && "." === t || (e = parseFloat(t), isNaN(e) && (e = "" !== T.replacementval ? T.replacementval : 0), n = e, e.toString() !== t && (n = e), e < T.min && (n = T.min), e > T.max && (n = T.max), n = y(n), Number(t).toString() !== n.toString() && (L.val(n), L.trigger("change")))
}
function _() {
if (T.booster) {
var t = Math.pow(2, Math.floor(B / T.boostat)) * T.step;
return T.maxboostedstep && t > T.maxboostedstep && (t = T.maxboostedstep, O = Math.round(O / t) * t), Math.max(T.step, t)
}
return T.step
}
function x() {
b(), O = parseFloat(I.input.val()), isNaN(O) && (O = 0);
var t = O,
e = _();
O += e, O > T.max && (O = T.max, L.trigger("touchspin.on.max"), C()), I.input.val(Number(O).toFixed(T.decimals)), t !== O && L.trigger("change")
}
function w() {
b(), O = parseFloat(I.input.val()), isNaN(O) && (O = 0);
var t = O,
e = _();
O -= e, O < T.min && (O = T.min, L.trigger("touchspin.on.min"), C()), I.input.val(O.toFixed(T.decimals)), t !== O && L.trigger("change")
}
function S() {
C(), B = 0, V = "down", L.trigger("touchspin.on.startspin"), L.trigger("touchspin.on.startdownspin"), N = setTimeout(function() {
k = setInterval(function() {
B++, w()
}, T.stepinterval)
}, T.stepintervaldelay)
}
function E() {
C(), B = 0, V = "up", L.trigger("touchspin.on.startspin"), L.trigger("touchspin.on.startupspin"), P = setTimeout(function() {
D = setInterval(function() {
B++, x()
}, T.stepinterval)
}, T.stepintervaldelay)
}