var startAge = 18;
var minInvestment = 1000;
var minSavings = new Array();
minSavings[0] = 1000;
minSavings[1] = 2000;
minSavings[2] = 3000;
minSavings[3] = 4000;
minSavings[4] = 5000;
minSavings[5] = 7000;
minSavings[6] = 8000;
minSavings[7] = 9000;
minSavings[8] = 11000;
minSavings[9] = 12000;
minSavings[10] = 14000;
minSavings[11] = 16000;
minSavings[12] = 18000;
minSavings[13] = 20000;
minSavings[14] = 22000;
minSavings[15] = 24000;
minSavings[16] = 26000;
minSavings[17] = 29000;
minSavings[18] = 32000;
minSavings[19] = 34000;
minSavings[20] = 37000;
minSavings[21] = 41000;
minSavings[22] = 44000;
minSavings[23] = 48000;
minSavings[24] = 51000;
minSavings[25] = 55000;
minSavings[26] = 59000;
minSavings[27] = 64000;
minSavings[28] = 68000;
minSavings[29] = 73000;
minSavings[30] = 78000;
minSavings[31] = 84000;
minSavings[32] = 90000;
minSavings[33] = 96000;
minSavings[34] = 102000;
minSavings[35] = 109000;
minSavings[36] = 116000;
minSavings[37] = 120000;

function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

function calculate() {
    var amount = (parseFloat(document.tor.amount.value)).toFixed(2);
    var age = parseInt(document.tor.age.value);

    // Investment = (Amount - Minumum Savings) x 20%
    var investment = (parseFloat(amount - minSavings[age - startAge]) * 20 / 100).toFixed(2);
    if ((isNaN(investment)) || (investment < minInvestment)) {
        investment = 0;
    }

    // Minimum Amount = Minimum Savings + (Minimum Investment / 20%)
    var minAmount = (parseFloat(minSavings[age - startAge] + (minInvestment * 100 / 20))).toFixed(2);
    if (isNaN(minAmount)) {
        minAmount = 0;
    }

    // Age Range 18 - 55
    var ageRange = age;
    if (isNaN(ageRange) || (ageRange < startAge) || (ageRange >= (minSavings.length + startAge))) {
        ageRange = 0;
    }

    writeText(investment, minAmount, ageRange);
}

function writeText(investment, minAmount, ageRange) {
    if (investment == 0) {
        if (minAmount == 0) {
            document.getElementById("displayAmountNote").innerHTML = "";
        }
        else {
            document.getElementById("displayAmountNote").innerHTML = "<br/><table><tr><td><img src=\"http://www.meshio.com/tools/warning-icon.png\" /></td><td><em>Your savings in Acc 1 must be at least RM " + addCommas(minAmount) + "</em><br/></td></tr></table>";
        }

        if (ageRange == 0) {
            document.getElementById("displayAgeNote").innerHTML = "<br/><table><tr><td><img src=\"http://www.meshio.com/tools/warning-icon.png\" /></td><td><em>Your age must be within 18 to 55 years old to qualify.</em><br/></td></tr></table>";
        }
        else {
            document.getElementById("displayAgeNote").innerHTML = "";
        }

        document.getElementById("displayResult").innerHTML = "";
    }
    else {
        document.getElementById("displayAmountNote").innerHTML = "";
        document.getElementById("displayAgeNote").innerHTML = "";
        document.getElementById("displayResult").innerHTML = "<br/>" +
            "<br/><table><tr><td><strong>You can invest (RM)</strong><br/>" + "<input name=\"investment\" readonly=\"readonly\" type=\"text\" value=\"" + investment + "\"><br/></td><td><img src=\"http://www.meshio.com/tools/coins.png\" /></td></tr></table>";
    }
}

function ajaxFunction() {
    var xmlHttp;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                // alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange = function() {
        if(xmlHttp.readyState == 4) {
            calculate();
        }
    }
    //xmlHttp.open("GET","http://www.meshio.com/index.php/kwsp-investment-calculator",true);
    xmlHttp.open("GET","kwsp_investment_calculator.html",true);
    xmlHttp.send(null);
}