function checkNumber2(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 = parseFloat(str)

    if (num < min || max < num) {
        alert(msg + " not in range [" + min + ".." + max + "]");
        return false;
    }

    input.value = str;

    return true;
}

function clearPayment2(){
	this.formName.monthlyPayment.value = "";
}

function computeForm2(formName){
	
    if ((document.formName.loanAmount.value == null || document.formName.loanAmount.value.length == 0) ||
        (document.formName.nrOfMonths.value == null || document.formName.nrOfMonths.value.length == 0) ||
        (document.formName.interestRate.value == null || document.formName.interestRate.value.length == 0)) {
        return;
        }

    if (!checkNumber2(document.formName.nrOfMonths, 1, 480, "# of payments") ||
        !checkNumber2(document.formName.interestRate, .001, 99, "Interest") ||
        !checkNumber2(document.formName.loanAmount, 100, 10000000, "Principal")) {
        document.formName.payment.value = "Invalid";
        return;
    }

    var i = document.formName.interestRate.value;

    if (i > 1.0) {
        i = i / 100.0;
        document.formName.interestRate.value = i;
    }

    i /= 12;

    var pow = 1;
    var loop = eval(document.formName.nrOfMonths.value);

    for (var j = 0; j < loop; j++){

        pow = pow * (1 + i);
        Result = (eval(document.formName.loanAmount.value) * pow * i) / (pow - 1)
        }       
    document.formName.monthlyPayment.value = Math.round(Result);
}
