function checkNumberEntry(input, min, max, msg) {

        var str = input.value;

	if (str == null || input.length == 0) {
		msg = msg + " is blank.  You must fill in this field to calculate.";
		alert(msg);
		return false;
	}

        for (var i = 0; i < str.length; i++) {
            var curr_ch = str.substring(i, i + 1)
            if ((curr_ch < "0" || curr_ch > "9") && curr_ch != '.') {
	        msg = msg + " should only contain digits.";
                alert(msg);
                return false;
            }
        }
        var num = input.value;
        if (num < min && (min != "none")) {
	    msg = msg + " that's too low. You should only enter values greater than " + min + ".";
            alert("You have entered a " + msg);
            return false;
        }

        if  (num > max && (max != "none")) {
	    msg = msg + " that's high. You should only enter values less than " + max + ".";
            alert("You have entered a " + msg);
            return false;
        }
        input.value = str;
        return true;
}

function myRound(val) {
	val = val * 100;
	val = Math.round(val);
        return val / 100;
}

function computeField(input) {
        if (input.value != null && input.value.length != 0)
            input.value = "" + eval(input.value);
        compute(input.form);
}

function filterNum(str) {
	re = /^\$|,/g;
	// remove "$" and ","
	return str.replace(re, "");
}

function compute() {

        var Debt = document.getElementById('Debt').value;
	var Interest = document.getElementById('Interest').value;
	var Payment = document.getElementById('Payment').value

        if (!checkNumberEntry(document.getElementById('Debt'), 1, "none", "Debt")) {
            document.getElementById('Time').value = "Invalid";
            return;
        }

        if (!checkNumberEntry(document.getElementById('Payment'), 1, "none", "Monthly Payment")) {
            document.getElementById('Time').value = "Invalid";
            return;
        }

        if (!checkNumberEntry(document.getElementById('Interest'), 1, 99, "% Interest Rate")) {
            document.getElementById('Time').value = "Invalid";
            return;
        }

        Interest = (Interest / 100.0) / 12.0;
	
	TimeToPay = (Math.log(0 * Interest - (-Payment)) - Math.log((-Debt) * Interest - (-Payment)))/ Math.log(1 + Interest);

	document.getElementById('debtResults').style.display='';
	document.getElementById('debt-calculator-ad').style.display='';

	document.getElementById('Time').value = Math.round(TimeToPay);
	var TotPaid = myRound(TimeToPay * Payment);
	document.getElementById('TotPd').value = myRound(TotPaid);
	document.getElementById('TotInt').value = myRound(TotPaid - Debt);
	
	if (document.getElementById('Time').value == "NaN") {document.getElementById('Time').value="Infinity"};
	if (document.getElementById('TotPd').value == "NaN") {document.getElementById('TotPd').value="Infinity"};
	if (document.getElementById('TotInt').value == "NaN") {document.getElementById('TotInt').value="Infinity"};

}

function clearForm() {
	document.getElementById('debtResults').style.display='none';
	document.getElementById('debt-calculator-ad').style.display='none';
        document.getElementById('Debt').value = "";
        document.getElementById('Payment').value = "";
        document.getElementById('Interest').value = "";
        document.getElementById('Time').value = "";
        document.getElementById('TotPd').value = "";
        document.getElementById('TotInt').value = "";
}
