
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 = "";
		}
	}
	calcMonthly(input.form);

	input.value = commas_place(input.value);
}

function checkTotal(input) {
	input.value = checkNum(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) {
			input.value = "";
		}
	}
	calcMonthly(input.form);

	input.value = commas_place(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 = "";
		}
	}
	calcMonthly(input.form);

}

function commas_place(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 commas_remove(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 calcMonthly() {
	if(document.calculator.interest.value == "" ||
	   document.calculator.nper.value == "" ||
	   document.calculator.loan.value == "") {
		document.calculator.monthly.value = "";
	}
	else {
		i = commas_remove(document.calculator.interest.value) / 1200;
		n = commas_remove(document.calculator.nper.value) * 12;
		tmp = Math.pow((1.0 + i),n)
		tmp = commas_remove(document.calculator.loan.value) * (i / (1.0 - (1.0 / tmp)))
		tmp = Math.round(tmp*100) / 100;
		document.calculator.monthly.value = commas_place(tmp);
		if(document.calculator.monthly.value == null ||
	         document.calculator.monthly.value.length == 0 ||
		   document.calculator.monthly.value == "NaN") {
			document.calculator.total.value = "";
		}
	}
}

function calcMonthlyCA() {
	if(document.calculator.interest.value == "" ||
	   document.calculator.nper.value == "" ||
	   document.calculator.loan.value == "") {
		document.calculator.monthlyCA.value = "";
	}
	else {
		i = commas_remove(document.calculator.interest.value) / 200;
		n = commas_remove(document.calculator.nper.value) * -12;
		tmp = Math.pow((1.0 + i),(1/6)) - 1.0
		tmp = commas_remove(document.calculator.loan.value) * (tmp / (1.0 - (Math.pow((1.0 + tmp),n))))
		tmp = Math.round(tmp*100) / 100;
		document.calculator.monthlyCA.value = commas_place(tmp);
		if(document.calculator.monthlyCA.value == null ||
	         document.calculator.monthlyCA.value.length == 0 ||
		   document.calculator.monthlyCA.value == "NaN") {
			document.calculator.total.value = "";
		}
	}
}


