function calculate()
{
    nFactors = new Array(sFactors.length);

    var i;
    for (i=0; i<sFactors.length; i++)
    {
        if ( !getNFactor(i) )
            return;
    }
  
    var x = document.getElementById("results");
    var result = getResult();
    var output = message.replace("%result", result);
    x.style.display = "block";
    x.innerHTML = output;
}

function fixNumber(x)
{
    x = x.replace(/,/g, "");
    return x;
}

function getNFactor(i)
{
    var n = document.getElementById( sFactors[i][0] ).value;

    if ( n.length == 0 )
    {
        alert("Please enter a " + sFactors[i][1] + " value." );
	  return 0;
    }

    n = fixNumber(n);
    n = parseFloat(n);
    if ( isNaN(n) )
    {
        alert("Please enter " + sFactors[i][1] + " as a number");
	  return 0;
    }

    nFactors[i] = n;
    return 1;
}