
function termChange()
{
    term = document.getElementById("LoanTerm");
    if (term.value=='' || isNaN(term.value) || term.value<=0)
    {
        document.getElementById("PaymentTable").style.display = "none";
        term.value='';
        alert('The term you entered is invalid.');
    }    
}
function rateChange()
{
    rate = document.getElementById("LoanRate");
    if (rate.value=='' || isNaN(rate.value) || rate.value<0 || rate.value>100)
    {
        document.getElementById("PaymentTable").style.display = "none";
        rate.value='';
        alert('The rate you entered is invalid.');
    }     
}
function setLoanAmount()
{
    purchase = document.getElementById("PurchaseAmount");
    purchaseValue = getValue(purchase.value);
    down = document.getElementById("DownPayment");
    downValue = getValue(down.value);
    amount = document.getElementById("LoanAmount");
    amountValue = getValue(down.value);
    paymentTable = document.getElementById("PaymentTable");

    if (purchaseValue=='' || isNaN(purchaseValue) || purchaseValue<0 || purchaseValue > 999999.99)
    {
        purchase.value = 0;
        purchaseValue = 0;
        paymentTable.style.display = "none";
        alert('The purchase amount you entered is invalid.');
    }
            
    if(downValue=='' || isNaN(downValue) || downValue == '' || downValue > 999999.99)
    {
        down.value = 0;
        downValue = 0;
        paymentTable.style.display = "none";
        alert('The down payment you entered is invalid.');    
    }
    
    amount.value = formatCurrency(purchaseValue - downValue);
    purchase.value = formatCurrency(purchaseValue);
    down.value = formatCurrency(downValue);       
    
}
function calculatePayment()
{
    failed=false;
    amount = document.getElementById("LoanAmount");
    amountValue = getValue(amount.value);
    term = document.getElementById("LoanTerm");
    rate = document.getElementById("LoanRate");
    payment = document.getElementById("Payment");

    if (amountValue < 0)
    {
        alert('The down payment is less than the purchase amount.  Please correct and try again.');
    }    
    else if (term.value == '')
    {
        alert('Please enter a loan term and try again.');
    }
    else if (rate.value == '')
    {
        alert('Please enter an interest rate and try again.');
    }
    else
    {
        payment.innerHTML = rate.value == "0" ? formatCurrency(amountValue/term.value) + "*" : formatCurrency((amountValue * (rate.value/1200)) / (1 - Math.pow(rate.value/1200 + 1,0-term.value))) + '*';
        document.getElementById("PaymentTable").style.display = "block";
    }
}

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function getValue(num)
{
    return num.replace(',','').replace('$','');
}

