﻿    function checkform(form) {
        if (form.price.value == null || form.price.value.length == 0) {
            alert("Please enter the purchase price of your house.");
            return false;
        }
        else {
            if (form.price.value < 20000) {
                alert("House price is normally greater than $20000. Please re-enter.");
                return false;
            }
            else {
                if (form.year.value == null || form.year.value.length == 0) {
                    alert("Please enter the length of your mortgage.");
                    return false;
                }
                else {
                    if (form.rate.value < 2 || form.rate.value > 20) {
                        alert("The interest rate should be between 2% and 20%.");
                        return false;
                    }
                    else
                    { return true; }
                } 
            } 
        }
    }

    function MakeMoney(numb) {
        money = '$';
        for (var i = 0; i < numb.value.length; i++) {
            j = i + 1;
            money += numb.value.substring(i, j);
            if (numb.value == Math.round(numb.value))
            { pos = numb.value.length - j; }
            else
            { pos = numb.value.length - 3 - j; }
            tmp = Math.round(pos / 3);
            if (pos == tmp * 3 && pos != 0) money += ",";
        }
        return money;
    }

    function pir(annual_rate, years, period) {
        var monthly_rate = annual_rate / period;
        var factor = 0;
        var base_rate = 1 + monthly_rate;
        var denominator = base_rate;
        for (var i = 0; i < (years * period); i++) {
            factor += (1 / denominator);
            denominator *= base_rate;
        }
        return factor;
    }

    function yeari(annual_rate, principal, payment) {
        var money = principal;
        var monthly_rate = annual_rate / 12;
        var leftover = 0;
        var int_month = 0;
        var year_int = 0;
        var year_interest = 0;
        for (var i = 0; i < (12); i++) {
            int_month = (monthly_rate * money);
            leftover = (payment - int_month);
            money = (money - leftover);
            year_int += int_month;
        }
        year_interest = Math.round(year_int);
        return year_interest;
    }

    function calculate(form) {
        if (checkform(form)) {
            pay1 = form.price.value * 0.05;
            pay2 = form.price.value * 0.10;
            pay3 = form.price.value * 0.15;
            pay4 = form.price.value * 0.20;

            this.document.result.pay1.value = Math.round(pay1);
            this.document.result.pay2.value = Math.round(pay2);
            this.document.result.pay3.value = Math.round(pay3);
            this.document.result.pay4.value = Math.round(pay4);

            interest_rate = (form.rate.value / 100);
            monthly_factor = pir(interest_rate, form.year.value, 12);
            weekly_factor = pir(interest_rate, form.year.value, 52);
            yearly_factor = pir(interest_rate, form.year.value, 1);

            this.document.result.month0.value = Math.round(form.price.value / monthly_factor);

            var base_amount1 = form.price.value - pay1;
            this.document.result.month1.value = Math.round(base_amount1 / monthly_factor);

            var base_amount2 = form.price.value - pay2;
            this.document.result.month2.value = Math.round(base_amount2 / monthly_factor);

            var base_amount3 = form.price.value - pay3;
            this.document.result.month3.value = Math.round(base_amount3 / monthly_factor);

            var base_amount4 = form.price.value - pay4;
            this.document.result.month4.value = Math.round(base_amount4 / monthly_factor);

            this.document.result.salary0.value = Math.round(this.document.result.month0.value * 12 / .28);
            this.document.result.interest0.value = yeari(interest_rate, form.price.value, this.document.result.month0.value);

            this.document.result.salary1.value = Math.round(this.document.result.month1.value * 12 / .28);
            this.document.result.interest1.value = yeari(interest_rate, base_amount1, this.document.result.month1.value);

            this.document.result.salary2.value = Math.round(this.document.result.month2.value * 12 / .28);
            this.document.result.interest2.value = yeari(interest_rate, base_amount2, this.document.result.month2.value);

            this.document.result.salary3.value = Math.round(this.document.result.month3.value * 12 / .28);
            this.document.result.interest3.value = yeari(interest_rate, base_amount3, this.document.result.month3.value);

            this.document.result.salary4.value = Math.round(this.document.result.month4.value * 12 / .28);
            this.document.result.interest4.value = yeari(interest_rate, base_amount4, this.document.result.month4.value);

            this.document.result.pay1.value = MakeMoney(this.document.result.pay1);
            this.document.result.pay2.value = MakeMoney(this.document.result.pay2);
            this.document.result.pay3.value = MakeMoney(this.document.result.pay3);
            this.document.result.pay4.value = MakeMoney(this.document.result.pay4);
            this.document.result.month0.value = MakeMoney(this.document.result.month0);
            this.document.result.month1.value = MakeMoney(this.document.result.month1);
            this.document.result.month2.value = MakeMoney(this.document.result.month2);
            this.document.result.month3.value = MakeMoney(this.document.result.month3);
            this.document.result.month4.value = MakeMoney(this.document.result.month4);
            this.document.result.salary0.value = MakeMoney(this.document.result.salary0);
            this.document.result.salary1.value = MakeMoney(this.document.result.salary1);
            this.document.result.salary2.value = MakeMoney(this.document.result.salary2);
            this.document.result.salary3.value = MakeMoney(this.document.result.salary3);
            this.document.result.salary4.value = MakeMoney(this.document.result.salary4);
            this.document.result.interest0.value = MakeMoney(this.document.result.interest0);
            this.document.result.interest1.value = MakeMoney(this.document.result.interest1);
            this.document.result.interest2.value = MakeMoney(this.document.result.interest2);
            this.document.result.interest3.value = MakeMoney(this.document.result.interest3);
            this.document.result.interest4.value = MakeMoney(this.document.result.interest4);

            return true;
        }
    }

    function clearinput(form) {
        form.price.value = "";
        form.year.value = "";
        form.rate.value = "";
        this.document.result.pay1.value = "";
        this.document.result.pay2.value = "";
        this.document.result.pay3.value = "";
        this.document.result.pay4.value = "";
        this.document.result.month0.value = "";
        this.document.result.month1.value = "";
        this.document.result.month2.value = "";
        this.document.result.month3.value = "";
        this.document.result.month4.value = "";
        this.document.result.salary0.value = "";
        this.document.result.salary1.value = "";
        this.document.result.salary2.value = "";
        this.document.result.salary3.value = "";
        this.document.result.salary4.value = "";
        this.document.result.interest0.value = "";
        this.document.result.interest1.value = "";
        this.document.result.interest2.value = "";
        this.document.result.interest3.value = "";
        this.document.result.interest4.value = "";
        return true;
    }


