﻿
function LinkMessage(text) {
   window.status = text;
}

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 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);
    computeMortgagePayments(input.form);
}

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, "Number of Years") ||
		!checkNumber(form.mortRate, 0, 99.99, "Mortgage Rate") ||
		!checkNumber(form.debt, 0, 1000000, "Debt.") ||
        !checkNumber(form.propTax, 0, 100000, "Property Tax")) {
        form.mortPay.value = "Invalid";
        form.totalPay.value = "Invalid";
        form.reqdSal.value = "Invalid";
        return;
    }
	var mortgage = form.mortAmt.value;
	var yrTime = form.numYears.value;
	var yrRate = form.mortRate.value;
	var yrTax = form.propTax.value;
	var yrDebt = form.debt.value;
	var yrSalary = 0;

	var monTax      = yrTax/12;
	var monDebt     = yrDebt/12.0;
    var rate        = yrRate/1200.00;
    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 mon35       = monTotal / .35;

    if (mon28 > mon35) {
		yrSalary = 12 * mon28;
    } else {
		yrSalary = 12 * mon35;
    }
    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;
}

function clearForm(form)
{
    form.mortAmt.value = "";
    form.numYears.value = "";
    form.propTax.value = "";
    form.debt.value = "";
    form.mortRate.value = "";
    form.mortPay.value = "";
    form.totalPay.value = "";
    form.reqdSal.value = "";;
}

