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) ||
	    (form.down.value == null || form.down.value.length == 0))
	{
		return;
	}
	if (!checkNumber(form.payments, 1, 480, "# of payments") ||
	    !checkNumber(form.interest, .001, 99, "Interest") ||
	    !checkNumber(form.purchase, 100, 10000000, "Purchase Price") ||
   	    !checkNumber(form.down, 0, 100000, "Down Payment"))
	{
		form.payment.value = "Invalid";
		return;
	}
	var purchase  = form.purchase.value;
	var down	  = form.down.value;
	form.principal.value = purchase - down;
	var i = form.interest.value;
	if (i > 1.0)
	{
		i = i / 100.0;
	}
	i /= 12;
	var pow = 1;
	for (var j = 0; j < form.payments.value * 12; j++)
		pow = pow * (1 + i);
	form.payment.value = "" + .01* Math.round(100*(form.principal.value * pow * i) / (pow - 1));
	down=down*1.0;
	purchase=purchase*1.0;
	var percent = 1.1;
	percent = down/purchase * 100;
	form.dp_percent.value = percent;

	if(percent == 0)                  		form.pmi_total.value = 0;
	else if((percent>0)  && (percent<1))	form.pmi_total.value = 75;
	else if((percent>=1) && (percent<3))	form.pmi_total.value = 74;
	else if((percent>=3) && (percent<4))	form.pmi_total.value = 73;
	else if((percent>=4) && (percent<5))	form.pmi_total.value = 72;
	else if((percent>=4) && (percent<5))	form.pmi_total.value = 72;
	else if((percent>=5) && (percent<6))	form.pmi_total.value = 62;
	else if((percent>=6) && (percent<7))	form.pmi_total.value = 61;
	else if((percent>=7) && (percent<9))	form.pmi_total.value = 60;
	else if((percent>=9) && (percent<10))	form.pmi_total.value = 59;
	else if((percent>=10) && (percent<11))	form.pmi_total.value = 44;
	else if((percent>=11) && (percent<13))	form.pmi_total.value = 43;
	else if((percent>=13) && (percent<15))	form.pmi_total.value = 42;
	else if((percent>=15) && (percent<16))	form.pmi_total.value = 23;
	else if((percent>=16) && (percent<20))	form.pmi_total.value = 22;
	else	form.pmi_total.value = 0;
	var tax = form.tax.value
	var ins = form.insurance.value
	form.tax_total.value = purchase * tax/100;
	form.insurance_total.value = purchase * ins/100;
	form.tax_month.value = purchase * tax/100/12;
	form.insurance_month.value = purchase * ins/100/12;
	var pmt_t = 0.0;
	pmt_t = form.payment.value;
	var pmi_m = 0.0;
	pmi_m = form.pmi_total.value;
	form.total.value = ((pmi_m*1) + (pmt_t*1) + (purchase * tax/100/12) + (purchase * ins/100/12) );
}
function clearForm(form)
{
	form.payments.value = "";
	form.interest.value = "";
	form.principal.value = "";
	form.purchase.value = "";
	form.down.value = "";
	form.payment.value = "";
	form.pmi_total.value = "";
	form.tax_total.value = "";
	form.insurance_total.value = "";
	form.tax_month.value = "";
	form.insurance_month.value = "";
	form.tax_total.value = "";
	form.dp_percent.value = "";}