function jumpBox(list) { location.href = list.options[list.selectedIndex].value } 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); computeForm(input.form); } function computeForm(form) { if ((form.payments.value == null || form.payments.value.length == 0) || (form.interest.value == null || form.interest.value.length == 0) || (form.purchase.value == null || form.purchase.value.length == 0)) { return; } if (!checkNumber(form.payments, 1, 480, "Loan Period") || !checkNumber(form.interest, .001, 99, "Interest") || !checkNumber(form.purchase, 100, 10000000, "Purchase")) { form.payment.value = "Invalid"; return; } var principal = (form.purchase.value - form.deposit.value); form.payment.value = Math.round(payment(principal, form.interest.value, form.payments.value, 26)); form.mindep.value = (form.purchase.value * .05); } function payment(loanAmount, intRate, period, paymentsPerYear) { var rate = intRate / (100 * paymentsPerYear); var payments = period * paymentsPerYear; return loanAmount * rate / (1 - Math.pow(1 + rate, - payments)); }