 
function checkNumber(input, min, max, msg)
 
{
 
    msg = msg + " field has invalid data: " + input.value;
 
 
 
    var str = input.value;
 
    for (var i = 0; i < str.length; i++) {
 
        var ch = str.substring(i, i + 1)
 
        if ((ch < "0" || "9" < ch) && ch != '.') {
 
            alert(msg);
 
            return false;
 
        }
 
    }
 
    var num = 0 + str
 
    if (num < min || max < num) {
 
        alert(msg + " not in range [" + min + ".." + max + "]");
 
        return false;
 
    }
 
    input.value = str;
 
    return true;
 
}
 
 
 
function computeField(input)
 
{
 
    if (input.value != null && input.value.length != 0)
 
        input.value = "" + eval(input.value);
 
    computeLoanForm(input.form);
 
}
 
 
 
function computeLoanForm(form)
 
{
 
    if ((form.payments.value == null || form.payments.value.length == 0) ||
 
        (form.interest.value == null || form.interest.value.length == 0) ||
 
        (form.principal.value == null || form.principal.value.length == 0)) {
 
        return;
 
    }
 
 
 
    if (!checkNumber(form.payments, 1, 480, "# of payments") ||
 
        !checkNumber(form.interest, .001, 99, "Interest") ||
 
        !checkNumber(form.principal, 100, 10000000, "Principal")) {
 
        form.payment.value = "Invalid";
 
        return;
 
    }
 
 
 
    var i = form.interest.value;
 
    if (i > 1.0) {
 
        i = i / 100.0;
 
        form.interest.value = i;
 
    }
 
    i /= 12;
 
 
 
    var pow = 1;
 
    for (var j = 0; j < form.payments.value; j++)
 
        pow = pow * (1 + i);
 
     var Vpayment = (form.principal.value * pow * i) / (pow - 1);
 
    form.payment.value = "$" + parseInt(Vpayment,10);
 
    var Vtotalint = ((Vpayment * form.payments.value)
    - form.principal.value);
		
		form.totalint.value = "$" + parseInt(Vtotalint,10)
 
}
 
 
 
function clearForm(form)
 
{
 
    form.payments.value = "";
 
    form.interest.value = "";
 
    form.principal.value = "";
 
}
 
 
 
<!-- done hiding from old browsers -->
 
