function check()
{ if(top.document.form.amt.value=="" || isNaN(parseFloat(top.document.form.amt.value)))
  { alert("Please enter a valid loan amount.");
    top.document.form.amt.value="";
    top.document.form.amt.focus();
    return false; }
  if(top.document.form.term.value=="" || isNaN(parseFloat(top.document.form.pay.value)))
  { alert("Please enter a valid term in years.");
    top.document.form.pay.value="";
    top.document.form.term.focus();
    return false; }
  if(top.document.form.rate.value=="" || isNaN(parseFloat(top.document.form.rate.value)))
  { alert("Please enter the interest rate.");
    top.document.form.rate.value="";
    top.document.form.rate.focus();
    return false; }
  if(top.document.form.amt.value!="" && top.document.form.pay.value!="" && top.document.form.rate.value!="")
  { show(); }
}

function clearScreen()
{ top.document.form.amt.value="";
  top.document.form.term.value="";
  top.document.form.pay.value="";
  top.document.form.rate.value="";
  outp = document.getElementById("output");
  outp.innerHTML = "";
  top.document.form.amt.focus();
}

function fixVal(value,numberOfCharacters,numberOfDecimals,padCharacter)
{ var i, stringObject, stringLength, numberToPad;            

  value=value*Math.pow(10,numberOfDecimals);                
  value=Math.round(value);                                  

  stringObject=new String(value);                           
  stringLength=stringObject.length;                          
  while(stringLength<numberOfDecimals)                      
  {
    stringObject="0"+stringObject;                          
    stringLength=stringLength+1;                            
  }

  if(numberOfDecimals>0)
  {							    
    stringObject=stringObject.substring(0,stringLength-numberOfDecimals)+"."+
      stringObject.substring(stringLength-numberOfDecimals,stringLength);
  }

  if (stringObject.length<numberOfCharacters && numberOfCharacters>0)
  {
    numberToPad=numberOfCharacters-stringObject.length;     
    for (i=0; i<numberToPad; i=i+1)
    {
      stringObject=padCharacter+stringObject;
    }
  }

  return stringObject;                                       
}

function pmnts()
{
  top.document.form.pay.value=top.document.form.term.value*12;
}
function show()
{
  amount=parseFloat(top.document.form.amt.value);
  number=parseInt(top.document.form.pay.value);
  rate=parseFloat(top.document.form.rate.value);
 
  rate=rate/100;
  monthly=rate/12;
  payment=((amount*monthly)/(1-Math.pow((1+monthly),-number)));
  total=payment*number;
  interest=total-amount;
  outp = document.getElementById("output");
  newText = "<HR><table border='0' align='center' width='250'><tr><td align='left'><font face='Arial' size='2'>Loan amount:</font></td><td align='right'><font face='Arial'size='2'>"+amount+"</font></td></tr><tr><td align='left'><font face='Arial' size='2'>Num payments:</font></td><td align='right'><font face='Arial' size='2'>"+number+"</font></td></tr><tr><td align='left'><font face='Arial' size='2'>Annual Rate:</font></td><td align='right'><font face='Arial' size='2'>"+fixVal(rate,0,4,' ')+"</font></td></tr><tr><TD></TD></tr><tr><td align='left'><font face='Arial' size='2'>Monthly Payment:</font></td><td align='right'><font face='Arial' size='2'>"+fixVal(payment,0,2,' ')+"</font></td><td> (P &#038; I)</td></tr></table>";

  newText = newText+"<P><BR><CENTER>Generate <A style='cursor:pointer' onclick='amort()'>printable amortization table</a>?</CENTER></P>"  
  outp.innerHTML = newText;
}
function amort()
{ amount=parseFloat(top.document.form.amt.value);
  number=parseInt(top.document.form.pay.value);
  rate=parseFloat(top.document.form.rate.value);
 
  rate=rate/100;
  monthly=rate/12;
  payment=((amount*monthly)/(1-Math.pow((1+monthly),-number)));
  total=payment*number;
  interest=total-amount;
  //var resdiv = document.getElementById("results");
  //var resdiv = window.open("","","top=20,left=225,width=480,height=1000");
  var resdiv = window.open("","");

  resdiv.document.open();
  resdiv.document.write("<table border='0' align='center' width='250'>");
  resdiv.document.write("<tr><td align='left'><font face='Arial' size='2'>Loan amount:</font></td>");
  resdiv.document.write("<td align='right'><font face='Arial'size='2'>"+amount+"</font></td></tr>");
  resdiv.document.write("<tr><td align='left'><font face='Arial' size='2'>Num payments:</font></td>");
  resdiv.document.write("<td align='right'><font face='Arial' size='2'>"+number+"</font></td></tr>");
  resdiv.document.write("<tr><td align='left'><font face='Arial' size='2'>Annual Rate:</font></td>");
  resdiv.document.write("<td align='right'><font face='Arial' size='2'>"+fixVal(rate,0,4,' ')+"</font></td></tr>");
  resdiv.document.write("<tr><td align='left'><font face='Arial' size='2'>Monthly Rate:</font></td>");
  resdiv.document.write("<td align='right'><font face='Arial' size='2'>"+fixVal(monthly,0,5,' ')+"</font></td></tr>");
  resdiv.document.write("<tr><td align='left'><font face='Arial' size='2'>Monthly Payment:</font></td>");
  resdiv.document.write("<td align='right'><font face='Arial' size='2'>"+fixVal(payment,0,2,' ')+"</font></td></tr>");
  resdiv.document.write("<tr><td align='left'><font face='Arial' size='2'>Total Paid:</font></td>");
  resdiv.document.write("<td align='right'><font face='Arial' size='2'>"+fixVal(total,0,2,' ')+"</font></td></tr>");
  resdiv.document.write("<tr><td align='left'><font face='Arial' size='2'>Total Interest:</font></td>");
  resdiv.document.write("<td align='right'><font face='Arial' size='2'>"+fixVal(interest,0,2,' ')+"</font></td></tr>");
  resdiv.document.write("</table>");
//  resdiv.document.close();
  resdiv.document.write("<HR>")
//  top.frame3.document.open();
  resdiv.document.write("<table border='0' align='center' cellpadding='5' cellspacing='1' width='90%' bgcolor='#84A1C1'>");
  resdiv.document.write("<tr><td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Pmt</b></font></td>");
  resdiv.document.write("<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Payment<br>Amount</b></font></td>");
  resdiv.document.write("<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Interest<br>Paid</b></font></td>");
  resdiv.document.write("<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Principal<br>Reduction</b></font></td>");
  resdiv.document.write("<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Principal<br>Balance</b></font></td></tr>");
  resdiv.document.write("<tr><td align='center' bgcolor='white'><font face='courier' size='2'>0</font></td>");
  resdiv.document.write("<td align='center' bgcolor='white'>&nbsp;</td>");
  resdiv.document.write("<td align='center' bgcolor='white'>&nbsp;</td>");
  resdiv.document.write("<td align='center' bgcolor='white'>&nbsp;</td>");
  resdiv.document.write("<td align='center' bgcolor='white'><font face='courier' size='2'>"+fixVal(amount,0,2,' ')+"</font></td>");
  resdiv.document.write("</tr>");

  newPrincipal=amount;

  for (i=1; i<=number; i++)
  { newInterest=monthly*newPrincipal;
	reduction=payment-newInterest;
	newPrincipal=newPrincipal-reduction;
	resdiv.document.write("<tr><td align='center' bgcolor='white'><font face='Arial' size='2'>");
	resdiv.document.write(i);
	resdiv.document.write("</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>");
	resdiv.document.write(fixVal(payment,0,2,' '));
	resdiv.document.write("</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>");
	resdiv.document.write(fixVal(newInterest,0,2,' '));
   	resdiv.document.write("</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>");
	resdiv.document.write(fixVal(reduction,0,2,' '));
   	resdiv.document.write("</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>");
	resdiv.document.write(fixVal(newPrincipal,0,2,' '));
	resdiv.document.write("</font></td></tr>"); }

	resdiv.document.write("</table>");
	resdiv.document.close();
}
