function compute() {
    var total = nonStrictParseNumber(document.forms["mortgage"].elements["total"].value);
    var downPaiement = nonStrictParseNumber(document.forms["mortgage"].elements["downPaiement"].value);
    var interestRate = nonStrictParseNumber(document.forms["mortgage"].elements["interestRate"].value);
    var years = nonStrictParseNumber(document.forms["mortgage"].elements["years"].value);
    
    if (total == false) {
        alert("Veuillez verifier le format du montant entre au champ \"Total\" et essayer de nouveau.");
        document.forms["mortgage"].elements["total"].focus();
    }
    else if (interestRate == false) {
        alert("Veuillez verifier le format du montant entre au champ \"Taux d'interet\" et essayer de nouveau.");
        document.forms["mortgage"].elements["interestRate"].focus();
    }
    else if (years == false) {
        alert("Veuillez verifier le format du montant entre au champ \"Ammortissement\" et essayer de nouveau.");
        document.forms["mortgage"].elements["years"].focus();
    }
    else {
        var monthlyMortgageResult = monthlyMortgage(total, downPaiement, interestRate/100.0, years);
        // alert("Paiement mensuel: " + monthlyMortgageResult);
        document.getElementById("resultArea").innerHTML = monthlyMortgageResult + " $";
    }
}

function monthlyMortgage(totalCost, initialAccount, annualInterestRate, howManyYears) {
    var p = (totalCost - initialAccount);
    var j = (annualInterestRate/12.0);
    var n = howManyYears*12;
    return (p * (j / (1-Math.pow(1+j, -n)))).toFixed(2);
}

function nonStrictParseNumber(str) {
    var stripped = "";
    var i;
    for (i=0; i<str.length; i++) {
        if ((str.charAt(i) >= '0' && str.charAt(i) <= 9) 
                || str.charAt(i) == '.' || str.charAt(i) == '$' || str.charAt(i) == '%') {
            stripped += str.charAt(i);
            continue;
        }
        else if (str.charAt(i) == ' ' || str.charAt(i) == ',') {
            continue;
        }
        else {
            return false;
        }
    }
    
    if (stripped.charAt(stripped.length-1) == '%' || stripped.charAt(stripped.length-1) == '$') {
        stripped = stripped.substr(0, stripped.length-1);
    }

    for (i=0; i<stripped.length; i++) {
        if (stripped.charAt(i) == '$' || stripped.charAt(i) == '%') {
            return false;
        }
    }
    
    //alert("Clean string: [" + stripped + "]");
    
    if (stripped.length == 0) {
        return 0;
    }
    
    return parseFloat(stripped);
}

// alert("Montly paiement: " + monthlyMortgage(75000, 50000, 0.04, 10));