// JavaScript Document

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 = parseFloat(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 ((document.getElementById("payments").value == null || document.getElementById("payments").value.length == 0) ||
	(document.getElementById("interest").value == null || document.getElementById("interest").value.length == 0) ||
	(document.getElementById("principal").value == null || document.getElementById("principal").value.length == 0)) {
	return;
	}
	if (!checkNumber(document.getElementById("payments"), 1, 480, "# of payments") ||
	!checkNumber(document.getElementById("interest"), .001, 99, "Interest") ||
	!checkNumber(document.getElementById("principal"), 100, 10000000, "Principal")) {
	document.getElementById("total").value = "Invalid";
	return;
	}
	var i = document.getElementById("interest").value;
	if (i > 1.0) {
	i = i / 100.0;
	document.getElementById("interest").value = i;
	}
	i /= 12;
	var pow = 1;
	for (var j = 0; j < document.getElementById("payments").value; j++)
	pow = pow * (1 + i);
	money = "" + .01* Math.round(100*(document.getElementById("principal").value * pow * i) / (pow - 1));
	dec = money.indexOf(".");
	dollars = money.substring(0,dec); 
	cents = money.substring(dec+1,dec+3);
	cents = (cents.length < 2) ? cents + "0" : cents;
	money = dollars + "." + cents;
	document.getElementById("total").value = "$"+money;
	}
	function clearForm(form) {
	document.getElementById("payments").value = "";
	document.getElementById("interest").value = "";
	document.getElementById("principal").value = "";
	document.getElementById("total").value = "";
	}
