/* ***************************************** */
/* How much does it cost */
function drawGraph(chartXml) 
{
    var chart = new FusionCharts("calcs/MSArea.swf", "chart1Id", "440", "300", "0", "0");
    chart.setDataXML(chartXml);
    chart.render("chart1div");
}

function setOutput()
{
    if(httpObject.readyState == 4)
    {
        var result = httpObject.responseText;
        resultDetails = result.split("#");
        
        document.getElementById('repayment_amount').value = resultDetails[0];
        document.getElementById('interest_only').value = resultDetails[1];
        
        document.getElementById('monthly_payment').value = resultDetails[2];
        document.getElementById('total_cost').value = resultDetails[3];
        document.getElementById('duration').value = resultDetails[4];

        document.getElementById('flexible_monthly_payment').value = resultDetails[5];
        document.getElementById('flexible_total_cost').value = resultDetails[6];
        document.getElementById('flexible_duration').value = resultDetails[7];

        drawGraph(resultDetails[8]);
    }
}
function clearForm() 
{
        document.getElementById('loan_amount').value = '';
        document.getElementById('outstanding_term').value = '25';
        document.getElementById('interest_rate').value = '';
        document.getElementById('repayment_amount').value = '';
        document.getElementById('interest_only').value = '';

        document.getElementById('monthly_overpayment').value = '';
        document.getElementById('lump_sum_amount').value = '';
        document.getElementById('lump_sum_year').value = '5';

        document.getElementById('monthly_payment').value = '';
        document.getElementById('total_cost').value = '';
        document.getElementById('duration').value = '';

        document.getElementById('flexible_monthly_payment').value = '';
        document.getElementById('flexible_total_cost').value = '';
        document.getElementById('flexTotalDuration').value = '';
}

function validateCalcInputs()
{ 
    $msg = "";
    $sep = "";
    if (document.getElementById('loan_amount').value == '')
    {
        $msg = "Loan amount.";
        $sep = "<br />";
    }
    if (document.getElementById('interest_rate').value == '')
    {
        $msg += $sep + "Interest Rate.";
        $sep = "<br />";
    }
    if (document.getElementById('interest_rate').value != '')
    {
        if (document.getElementById('interest_rate').value < 1 || document.getElementById('interest_rate').value > 100)
        {
            $msg += $sep + "An interest rate between 1 and 100.";
            $sep = "<br />";            
        }
    } 
    
    if ($msg != "")
        $msg = "Please enter the following:<br /><div style=\"padding-left: 1em;\">" + $msg + "</div>";
        
    return $msg;       
}

function calc()
{
    httpObject = getHTTPObject();
    if (httpObject != null) 
    {
        document.getElementById('validationError').innerHTML = "";                
        errMsg = validateCalcInputs();
        if (errMsg != "")        
        {
            document.getElementById('validationError').innerHTML = errMsg;                
            document.getElementById('validationError').focus();                
        }
        else
        {
            var dateTime = getDateTime();
            httpObject.open("GET", "calcs/calcCost.php?dt=" + dateTime + "&loanAmount="
                            + document.getElementById('loan_amount').value + "&term="
                            + document.getElementById('outstanding_term').value + "&interestRate="
                            + document.getElementById('interest_rate').value + "&monthlyOverpayment="
                            + document.getElementById('monthly_overpayment').value + "&lumpSumAmount="
                            + document.getElementById('lump_sum_amount').value + "&lumpSumYear="
                            + document.getElementById('lump_sum_year').value
                            , true);
            httpObject.send(null);
            httpObject.onreadystatechange = setOutput;
        }        
        return false;
    }
    else
    {
        // let form submit and process server side
        return true;
    }
}

var httpObject = null;
