function fixFloatFormat(input)
{
	var str = input.value;
	var index = 0;
	var newstr = 0;

	for (var i = 0; i < str.length; i++) {
		var ch = str.substring(i, i + 1)
		if (ch == '.')
		{
			index = i;
		}
	}
	newstr = str.substring(0, index);
	input.value = newstr + "." + str.substring(index+1, index+3);
	return true;
}


function checkNumber(input, min, max, msg)
{
	msg = "[" + msg + "] field invalid : " + 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 doNotComputeField(input)
{
	if ((input.name == "mortPay" || input.name == "totalPay" || input.name == "reqdSal"))
	{
		computeMortgagePayments(input.form);
		input.form.mortAmt.focus();
		input.form.mortAmt.select();
	}
	return;
}

function computeField(input)
{

	if (input.value != null && input.value.length != 0)
	{
		input.value = "" + eval(input.value);
		computeMortgagePayments(input.form);
		input.select();
		input.focus();
	}
	return;
}

function computeMortgagePayments(form)
{

	if ((form.mortAmt.value == null || form.mortAmt.value.length == 0) ||
		(form.numYears.value == null || form.numYears.value.length == 0) ||
		(form.propTax.value == null || form.propTax.value.length == 0) ||
		(form.debt.value == null || form.debt.value.length == 0) ||
		(form.mortRate.value == null || form.mortRate.value.length == 0)) 
	{
		return;
	}

	if (!checkNumber(form.mortAmt, 1, 10000000, "Mortgage Amount") ||
		!checkNumber(form.numYears, 1, 50, "Mortgage Term") ||
		!checkNumber(form.mortRate, 0, 99.99, "Mortgage Interest Rate") ||
		!checkNumber(form.debt, 0, 1000000, "Other Annual Debt.") ||
		!checkNumber(form.propTax, 0, 100000, "Annual Property Taxes")) 
	{
		form.mortPay.value = "Invalid";
		form.totalPay.value = "Invalid";
		form.reqdSal.value = "Invalid";
		return;
	}
	var mortgage = form.mortAmt.value;
	var yrTime = form.numYears.value;
	var yrTax = form.propTax.value;
	var yrDebt = form.debt.value;
	var yrSalary = 0;

	var monTax = yrTax/12;
	var monDebt = yrDebt/12.0;
// MAKE mortRate A DECIMAL
	var i_mortRate = form.mortRate.value;
	if (i_mortRate >= 1)
	{
		i_mortRate = i_mortRate/100;
		form.mortRate.value = Math.floor(10000*(i_mortRate))/10000;
	}
	var yrRate = form.mortRate.value;
	var rate = (yrRate/1200.00)*100;
	var monTime = yrTime * 12.0;
	var poly = (1.0 + rate);
	for (i=1; i < monTime; i++)
	{
		poly = poly * (1.0 + rate);
	}
	var monPayment = mortgage * poly * rate / (poly - 1.0);
	var monTotal = monPayment + monTax + monDebt;
	var mon28 = (monPayment + monTax) / .28;
	var mon36 = monTotal / .36;

	if (mon28 > mon36) {
		yrSalary = 12 * mon28;
	} else {
		yrSalary = 12 * mon36;
	}
	var principal = 0.0;
	var interest = 0.0;
	for (i = 1; i < monTime; i++) {
	interest = interest + (principal * rate);
	principal = (principal + monPayment)/(1.0 + rate);
	}
	form.mortPay.value = Math.floor(100 * monPayment)/100;
	form.totalPay.value = Math.floor(100 * monTotal)/100;
	form.reqdSal.value = Math.floor(100 * yrSalary)/100;
	return;
}

function clearForm(form)
{
	form.mortAmt.value = "";
	form.numYears.value = "";
	form.mortRate.value = "";
	form.debt.value = "0";
	form.propTax.value = "0";
	form.mortPay.value = "";
	form.totalPay.value = "";
	form.reqdSal.value = "";;
	form.mortAmt.focus();
	form.mortAmt.select();
}
