// format numbers into pretty format
function DF(val)
{
  var newval=100*val;
  newval = Math.round(newval);
  var dollars = Math.floor(newval/100);
  var SS = new String(" ");
  var cents = newval - dollars * 100;
  if (cents == 0) {var centst = new String("00");}
  if (cents < 10) {var centst = "0" + String(cents);}
  if (cents > 9) {var centst = new String(cents);}
  if (dollars < 1000)
  {
    return (dollars + "." + centst);
  }
  else
  {
    var thou = Math.floor(dollars/1000);
    var ldoll = dollars - thou * 1000;
    if (ldoll < 10) { var ldoll = new String("00" + ldoll); }
    else
    { if (ldoll < 100) { var ldoll = new String("0" + ldoll); } }
    return (thou + "," + ldoll + "." + centst);
  }
}

function PrtTbl()
{
  var CN = parent.document.f.CN.value;
  wm = window.open('','printwin','width=600,height=700,scrollbars=1');
  wm.document.writeln(
  '<html><head><title>Equity-4-U Amortization Table for ' + CN + '</title>'
  + '<link href="style/e4u.css" rel="stylesheet" type="text/css"></head>'
  + '<body onLoad="self.focus()"><form><center><table width="90%" border=1 cellpadding=1 cellspacing=1>'
  + '<tr><td colspan=7 class="tableHeader"><center><b>EQUITY-4-U Amortization Table for ' + CN + '</b></center></td></tr>'
  + '<tr><td class="tableHeader">&nbsp;</td>'
  + '    <td colspan="2" class="tableHeader" align="center">Paid Monthly</td>'
  + '    <td colspan="2" class="tableHeader" align="center">Paid Biweekly</td></tr>'
  + '<tr><td class="tableHeader"><center>Month</center></td>'
  +     '<td class="tableHeader"><center>Balance</center></td>'
  // +     '<td class="tableHeader"><center>Interest</center></td>'
  +     '<td class="tableHeader"><center>Equity</center></td>'
  +     '<td class="tableHeader"><center>Balance</center></td>'
  // +     '<td class="tableHeader"><center>Interest</center></td>'
  +     '<td class="tableHeader"><center>Equity</center></td></tr>');
  // parent.document.f.L.value 
  // parent.document.f.R.value 
  // parent.document.f.NM.value 
  // parent.document.f.BLP.value 
  // parent.document.f.L45.value 
  var MS = new String("JanFebMarAprMayJunJulAugSepOctNovDec");
  var np = Number(1);
  var NM = Number(parent.document.f.NM.value);
  var re = /,/g;
  var loanstr = String(parent.document.f.L.value);
  loanstr = loanstr.replace(re,""); // yank commas
  var bal = Number(loanstr); 
  var rat = Number(parent.document.f.R.value);
  var blp = Number(parent.document.f.BLP.value);
  var mlp = blp * 2;
  var fp = parent.document.f.FP.value;
  // Add initial interest
  var obal = bal;
  if (fp > 30) 
    {  bal =  bal * (1 + rat/1200 * (fp - 30)/30); }
  var cbal = bal;
  var dat = parent.document.f.L45.value;
  var nmo = dat.substr(0,3); var mo = " ";
  if (dat.length == 10)
  { md = Number(dat.substr(4,1)); yr = Number(dat.substr(6,4)); }
  else
  { md = Number(dat.substr(4,2)); yr = Number(dat.substr(7,4)); }
  mc = 0; tm = 0; 
  var c6 = 0; var extra = 0;
  // May 2008 - Must subtract 399 fee from extra payments first!
  var fee2pay = 399;

  // Nov 2008 - Get to subtract one 1/2 payment first!
  if (fee2pay > blp)
  {
    fee2pay = fee2pay - blp;
  }
  else
  {
    fee2pay = 0;
    bal = bal - (blp - fee2pay);  
  }
  // end Nov 2008 addition

  var tbp = -1; // total biweekly debits - start -1 since the first half already in initial full payment 2009-03-18
  var eflag = "* ";
  while (cbal > 0 && tm < NM)
  {
    tm = tm + 1;
    c6 = c6 + 1;
    mi = 0; cmi = 0; 
    mi = bal * rat / 1200; 
    cmi = cbal * rat / 1200;

    // biweekly loan
    if (c6 == 6)
    {
      // tbp + tbp + 1; -- calculate if we need to add this payment below instead 2009-03-18
      if (fee2pay > 0)
      {
        if (blp > fee2pay)
        {
          extra = blp - fee2pay; fee2pay = 0;
        }
        else
        {
          fee2pay = fee2pay - blp; extra = 0; tbp = tbp + 1;
        }
      }
      else
      {
        extra = blp;
      }
      c6 = 0;
    }
    else
    {
      extra = 0;
    }
    var endtag = "";
    if (2 * blp + extra - mi < bal)
      {
        prin = 2 * blp + extra - mi; // subtract full payment plus any extra since balance still large
        newbal = bal - prin;
        tbp = tbp + 2;
        if (extra > 0) { tbp = tbp + 1; }
      }
      else
      { // biweekly paid off this period -- see if it requires 0, 1 or 2 biweekly payments more        
        if (bal > 0) { tbp = tbp + 1; bal = bal + mi - blp; } // paid off with first bw payment
        if (bal > 0) { tbp = tbp + 1; bal = bal - blp; } // paid off with second bw payment of month
        if (bal > 0 && extra > 0) { tbp = tbp + 1; } // paid off with extra payment if it exists
  
        endtag = eflag;
        eflag = "";
        newbal = 0;
        prin = bal;
      }
    
    // conventional loan
    if (2 * blp - cmi < cbal)
      {
        cprin = 2 * blp - cmi;
        cnewbal = cbal - cprin;
      }
      else
      {
        cnewbal = 0;
        cprin = cbal;
      }
    
    ceq = obal - cnewbal;
    neweq = obal - newbal;
    
    wm.document.writeln('<tr><td align="center">' + endtag + tm 
    + '</td><td align="right">' + DF(cnewbal) 
    // + '</td><td align="right">' + DF(cmi)
    + '</td><td align="right">' + DF(ceq) 
    + '</td><td align="right">' + DF(newbal)
    // + '</td><td align="right">' + DF(mi) 
    + '</td><td align="right">' + DF(neweq) + '</td></tr>');
    np = np + 1;
    bal = newbal;
    cbal = cnewbal;
  }

// start changes 2-23-2009
  var FP = document.f.FP.value;
  var MS = new String("JanFebMarAprMayJunJulAugSepOctNovDec");
  var DAYim = new Number(24 * 60 * 60 * 1000); // Day in ms
  var Wim = new Number(7 * DAYim); // One week in ms
  var T45im = new Number(FP * DAYim); // 45 days in ms 
  var SelYr = document.f.SY.selectedIndex + 2007;
  var SelMo = document.f.SM.selectedIndex - 1;
  var SelDy = document.f.SD.selectedIndex;
  var PDim = Date.UTC(SelYr, SelMo, SelDy, 12, 0, 0, 0);
  var ODim = Date.UTC(2008, 0, 12, 13, 0, 0, 0); // First Wed 1/12/05
  var PDate = new Date(PDim);
  var ODat = new Date(ODim);
  var PDM = MS.substr(PDate.getMonth()*3,3);
  var PDate45 = new Date(PDim + T45im);
  var PDM45 = MS.substr(PDate45.getMonth()*3,3);
  var PDS = new String(PDM + " " + PDate.getDate() + " " + PDate.getFullYear());
  var PDS45 = new String(PDM45 + " " + PDate45.getDate() + " " + 
	PDate45.getFullYear());
  var IDim = PDate45.valueOf() - 21 * DAYim;
  var IDat = new Date(IDim);
  var IDM = MS.substr(IDat.getMonth()*3,3);
  var IDS = new String(IDM + " " + IDat.getDate() + " " + 
	IDat.getFullYear());
  var EDim = IDat.valueOf() + tbp * 14 * DAYim; // end date
  var EDat = new Date(EDim); // end date   
  var EDM = MS.substr(EDat.getMonth()*3,3);
  var EDS = new String(EDM + " " + EDat.getDate() + " " + 
	EDat.getFullYear());

  var hpmts = "";
  var enddate = "";
  wm.document.writeln('<tr><td colspan=7>* First full debit will occur on ' + IDS + '<br>Last debit will occur on ' + EDS + '<br><br>Total debits include one full debit and ' + tbp + ' half debits (calculated field based on the number of half debits to occur to satisfy the loan).<br><br><u>Disclaimer:</u>  All calculation are based on the ORIGINAL figures provided to Equity 4 U, and assumes there are no changes to the loan during the course of the Loan Term.  Changes include, but are not limited to, additional lender fees, one month payment deferrals, change in lender, and consumer direct payments made to the lender.</td></tr>\n');
// end changes 2-23-2009

  wm.document.writeln('<tr><td colspan=7><center><b><input type="button" '
  + ' value="Print Now" onClick="window.print()"></b></center></td></tr></table>'
  + '</center></form></body></html>');
  wm.document.close();
}
