// JavaScript Document
// For Home Loan Calculator (Max Loan)

function put_commas(input) {
        var result, len;
    input += "";
        len = input.indexOf(".");
        if(len == -1) {
                len = input.length;
                result = "";
        }
        else {
                result = input.substring(len, input.length);
        }
        while(len > 3) {
                result = input.substring(len-3, len) + result;          
                result = "," + result;          
                len -= 3;
        } 
        result = input.substring(0, len) + result;
        return result;
}

function strip_commas(input) {
        var newnum;
        var ch;
        newnum ="";
        for(var i=0; i<input.length; i++) {
                ch = input.charAt(i);
                if(ch != ",") {
                        newnum += ch;
                }
        }
        return parseFloat(newnum);
}

function checkNum(input) {
        var oldnum;
        var newnum;
        var ch;
        oldnum = input.value;
        newnum ="";
        for(var i=0; i<oldnum.length; i++) {
                ch = oldnum.charAt(i);
                if(ch != ",") {
                        newnum += ch;
                }
        }
        return parseFloat(newnum);
}

function checkNumPeriods(input) {
        input.value = checkNum(input);
        input.value = parseInt(input.value);
        if(input.value == null ||          
         input.value.length == 0 ||
           input.value == "NaN") {
                input.value = "";
        }
        else {
                if(parseFloat(input.value) <= 0) {
                        input.value = "";
                }
        }
        calcTotal(input.form);
        input.value = put_commas(input.value);
}

function checkPayment(input) {
        input.value = checkNum(input);
        if(input.value == null ||          
         input.value.length == 0 ||
           input.value == "NaN") {
                input.value = "";
        }
        else {
                if(parseFloat(input.value) < 0) {
                        input.value = "";
                }
        }
        calcTotal(input.form);
        input.value = put_commas(input.value);
}

function checkInterest(input) {
        input.value = parseFloat(input.value);
        if(input.value == null ||          
         input.value.length == 0 ||
           input.value == "NaN") {
                input.value = "";
        }
        else {
                if(parseFloat(input.value) <= 0 || 
                   parseFloat(input.value) > 100.0) {
                        input.value = "";
                }
        }
        calcTotal(input.form);
}

function calcTotal(input) {
        if(input.interest.value == "" || 
           input.nper.value == "" ||
           input.pmt.value == "") {
                input.total.value = "";
        }
        else {
                i = strip_commas(input.interest.value) / 100;
                i = i / 12;
                n = strip_commas(input.nper.value) * 12;
                tmp = (1/i) * (1 - Math.pow(1/(1+i), n));
                tmp = strip_commas(input.pmt.value) * tmp;
                tmp = Math.round(tmp*100) / 100;
                input.total.value = put_commas(tmp);
                if(input.total.value == null ||          
                 input.total.value.length == 0 ||
                   input.total.value == "NaN") {
                        input.total.value = "";
                }
        }
}

//Error Handling
function stopError() {
		return true;
}
window.onerror = stopError;