constrain a number between an upper and lower bound
/**
* constrain a number between an upper and lower bound
* @param {num} min lower bound
* @param {num} value value to be constrained
* @param {num} max upper bound
* @return {num} the constrained value
*/
function constrain(min, value, max) {
if (value > max)
return max;
else if (value < min)
return min;
else
return value;
}