<!--


function CompareBiWeeklyLoanAccel()
{

var prin = parseFloat(document.compareform.prin.value);
var months = parseFloat(document.compareform.months.value);
var normalPay = parseFloat(document.compareform.normalPay.value);

var normalInterestRate = 1;
var accelInterestRate = 1;

var theButton = document.getElementById('ShowButtonTop');


        normalInterestRate = parseFloat(FindInterestRate(prin, months, normalPay));
        accelInterestRate  = parseFloat(ConvertMonthlyRateToAnnual(normalInterestRate));
        document.compareform.normalInterestRate.value = formatCurrency(normalInterestRate);
        document.compareform.accelInterestRate.value = formatCurrency(accelInterestRate);

        CalculateBiWeeklyLoanAccelAmortization();

        document.compareform.normalInterestPaid.value = formatCurrency(valueInterestPaidNorm);
        document.compareform.accelInterestPaid.value = formatCurrency(valueInterestPaidAccl);
        document.compareform.normalTotalPaid.value = formatCurrency(valueTotalPaidNorm);
        document.compareform.accelTotalPaid.value = formatCurrency(valueTotalPaidAccl);
        document.compareform.normalNumPayments.value = valueNumPaymentsNorm;
        document.compareform.accelNumPayments.value = valueNumPaymentsAccl;

        theButton.style.display = 'block';
}

function CalculateBiWeeklyLoanAccelAmortization()
{

var prin = parseFloat(document.compareform.prin.value);
var rate = parseFloat(document.compareform.normalInterestRate.value);
var months = parseFloat(document.compareform.months.value);
var amountNorm = parseFloat(document.compareform.normalPay.value);
var amountAccl = parseFloat(amountNorm / 2);
var startMonth = parseFloat(document.compareform.startmonth.value);

var termRate = 1;
var index = 1;

var termPrinNorm;
var termPrinAccl;
var termPrinTotalNorm = prin;
var termPrinTotalAccl = prin;
var termIntNorm;
var termIntAccl;
var termIntTotalNorm = 0;
var termIntTotalAccl = 0;

var termPrinTotal;
var thisMonthExtra;

var newTBody;
var newTR;
var newTD;
var txt = 'Text';
var newTxt;
var theSchedule = document.getElementById('StartSchedule');
var theTable = document.getElementById('StartScheduleTable');

    var oldTBody = document.getElementById("AmortBodyContent");
    if (oldTBody)
    {
        theTable.removeChild(oldTBody);
    }

    termRate = parseFloat(rate / 1200);

    newTBody = document.createElement("tbody");
    newTBody.id = 'AmortBodyContent';

    for (index = 1; index <= months; index++)
    {
        // normal schedule
        // don't pay more than the loan requires
        if (termPrinTotalNorm <= amountNorm)
        {
            if (termPrinTotalNorm > 0)
            {
                termIntNorm = FindMonthlyInterest(termPrinTotalNorm, rate, index, termPrinTotalNorm);
                valueNumPaymentsNorm = index;     // save off in global variable how many payments it took for this loan
            }
            else
            {
                termIntNorm = 0;
            }
            termPrinNorm = termPrinTotalNorm;
            termPrinTotalNorm = 0;
        }
        // calculate only if there is some loan principal left
        if (termPrinTotalNorm > 0)
        {
            termIntNorm = FindMonthlyInterest(termPrinTotalNorm, rate, index, amountNorm);
            termIntTotalNorm = parseFloat(termIntTotalNorm + termIntNorm);
            
            termPrinNorm = parseFloat(amountNorm - termIntNorm);
            termPrinTotalNorm = parseFloat(termPrinTotalNorm - termPrinNorm);
        }

        if ((index >= startMonth) &&
            (((index - startMonth + 1) % 6) == 0))
        {
            thisMonthExtra = 1;
            // accelerated schedule
            // don't pay more than the loan requires
            if (termPrinTotalAccl <= amountNorm)
            {
                if (termPrinTotalAccl > 0)
                {
                    termIntAccl = FindMonthlyInterest(termPrinTotalAccl, rate, index, termPrinTotalAccl);
                    valueNumPaymentsAccl = index;     // save off in global variable how many payments it took for this loan
                }
                else
                {
                    thisMonthExtra = 0;
                    termIntAccl = 0;
                }
                termPrinAccl = termPrinTotalAccl;
                termPrinTotalAccl = 0;
            }
            // calculate only if there is some loan principal left
            if (termPrinTotalAccl > 0)
            {
                termIntAccl = FindMonthlyInterest(termPrinTotalAccl, rate, index, amountNorm);
                termIntTotalAccl = parseFloat(termIntTotalAccl + termIntAccl);

                termPrinAccl = parseFloat(amountNorm + amountAccl - termIntAccl);
                termPrinTotalAccl = parseFloat(termPrinTotalAccl - termPrinAccl);
            }
        }
        else
        {
            thisMonthExtra = 0;
            // don't pay more than the loan requires
            if (termPrinTotalAccl <= amountNorm)
            {
                if (termPrinTotalAccl > 0)
                {
                    termIntAccl = FindMonthlyInterest(termPrinTotalAccl, rate, index, termPrinTotalAccl);
                    valueNumPaymentsAccl = index;     // save off in global variable how many payments it took for this loan
                }
                else
                {
                    termIntAccl = 0;
                }
                termPrinAccl = termPrinTotalAccl;
                termPrinTotalAccl = 0;
            }
            if (termPrinTotalAccl > 0)
            {
                termIntAccl = FindMonthlyInterest(termPrinTotalAccl, rate, index, amountNorm);
                termIntTotalAccl = parseFloat(termIntTotalAccl + termIntAccl);

                termPrinAccl = parseFloat(amountNorm - termIntAccl);
                termPrinTotalAccl = parseFloat(termPrinTotalAccl - termPrinAccl);
            }
        }

        newTR = document.createElement("tr");

        // first cell
        newTD = AddTableData(index, newTR, 'border-right: 1px solid black; text-align: right; padding-right: 0.5em;');

        AddTableData(formatCurrency(termPrinNorm), newTR, 'text-align: right; padding-right: 0.5em;');
        AddTableData(formatCurrency(termIntNorm), newTR, 'text-align: right; padding-right: 0.5em;');
        AddTableData(formatCurrency(termPrinTotalNorm), newTR, 'text-align: right; padding-right: 0.5em;');

        if (thisMonthExtra)
        {
            AddTableData(formatCurrency(termPrinAccl), newTR, 'color: green; font-weight: bold; border-left: 1px solid green; text-align: right; padding-right: 0.5em;');
        }
        else
        {
            AddTableData(formatCurrency(termPrinAccl), newTR, 'border-left: 1px solid green; text-align: right; padding-right: 0.5em;');
        }

        AddTableData(formatCurrency(termIntAccl), newTR, 'text-align: right; padding-right: 0.5em;');
        AddTableData(formatCurrency(termPrinTotalAccl), newTR, 'text-align: right; padding-right: 0.5em;');

        // after final cell
        if ((index % 2) == 0)
        {
            newTR.style.background = '#DDD';
        }
        newTBody.appendChild(newTR);
    }


    newTR = document.createElement("tr");

    // first cell
    AddTableData('Total', newTR, 'border-right: 1px solid black; text-align: right; padding-right: 0.5em;');

    AddTableData(formatCurrency(prin), newTR, 'text-align: right; padding-right: 0.5em;');
    AddTableData(formatCurrency(termIntTotalNorm), newTR, 'text-align: right; padding-right: 0.5em;');
    AddTableData(formatCurrency(0), newTR, 'text-align: right; padding-right: 0.5em;');
    AddTableData(formatCurrency(prin), newTR, 'background: #BFB; border-left: 1px solid green; text-align: right; padding-right: 0.5em;');
    AddTableData(formatCurrency(termIntTotalAccl), newTR, 'background: #BFB; text-align: right; padding-right: 0.5em;');
    AddTableData(formatCurrency(0), newTR, 'background: #BFB; text-align: right; padding-right: 0.5em;');

    // after final cell
    newTR.style.fontWeight = 'bold';
    newTBody.appendChild(newTR);
    theTable.appendChild(newTBody);

    // Update global variables with final results
    valueInterestPaidNorm = termIntTotalNorm;
    valueInterestPaidAccl = termIntTotalAccl;

    valueTotalPaidNorm = prin + termIntTotalNorm;
    valueTotalPaidAccl = prin + termIntTotalAccl;
}


//-->


