<!-- Paste this code into an external JavaScript file named: calcAmort.js  -->

/* This script and many more are available free online at
The JavaScript Source :: http://javascript.internet.com
Created by: Jeremy Zongker :: http://www.destroydebt.com/ */

function ddCalc(showAmort) {
  if (document.getElementById('ddInitialDeposit').value=='') {alert('Please enter an initial deposit amount.'); return;}
  if (document.getElementById('ddContribution.value')=='') {alert('Please enter a monthly contribution amount.'); return;}
  if (document.getElementById('ddRate.value')=='') {alert('Please enter an assumed rate of return.'); return;}
  if (document.getElementById('ddYears.value')=='') {alert('Please enter either the number of years.'); return;}

  var mRate=(document.getElementById('ddRate').value/100)/12;
  var maxMonths=999999;
  var maxAmount=99999999999;

  if (document.getElementById('ddYears').value!='') maxMonths=document.getElementById('ddYears').value*12;

  var amort='<table width=100% cellpadding=2 cellspacing=0 border=1 style="text-align:right;"><tr><th>Month</th><th>Contributions</th><th>Interest</th><th>Total</th></tr>';

  //Get a decimal
  var currentAmount=0.1-0.1;
  var currentContributions=0.1-0.1;
  var currentInterest=0.1-0.1;

  currentAmount+=document.getElementById('ddInitialDeposit').value
  currentContributions+=document.getElementById('ddInitialDeposit').value;
  var monthlyAmount=Number(document.getElementById('ddContribution').value);

  var currentMonth=0;

  while (currentMonth<maxMonths && currentAmount<maxAmount) {
    currentMonth++;
    var interest=Number(currentAmount)*Number(mRate);
    currentInterest=Number(currentInterest) + Number(interest);
    currentContributions=Number(currentContributions) + monthlyAmount;
    currentAmount=Number(currentAmount)+Number(interest)+monthlyAmount;
    amort+='<tr><td>' + currentMonth + '</td><td>$' + Number(currentContributions).toFixed(2) + '</td><td>$' + Number(currentInterest).toFixed(2) + '</td><td>$' + Number(currentAmount).toFixed(2) + '</td></tr>';
  }

  document.getElementById('ddResult').innerHTML="With an initial deposit of $" + Number(document.getElementById('ddInitialDeposit').value).toFixed(2) + ", monthly contributions of $" + monthlyAmount.toFixed(2) + " and an assumed annual interest rate of " + document.getElementById('ddRate').value + "% for " + Number(currentMonth)/12 + " years, you will earn a total of $" + Number(currentAmount).toFixed(2) + ".";
  if (showAmort) {
    document.getElementById('ddResult').innerHTML+='<BR><BR><B>Amortization Schedule</B><BR><div style="overflow: scroll;height: 200px;">' + amort + '</table></div>';
  } else {
    document.getElementById('ddResult').innerHTML+=' <p align="center"><a href="javascript:ddCalc(true);">Show Amortization</a></p>';
  }
}
// JavaScript Document
