function check()
{ if(document.form.amt.value=="" || isNaN(parseFloat(document.form.amt.value)))
  { alert("Please enter a valid loan amount.");
    document.form.amt.value="";
    document.form.amt.focus();
    return false; }
  if(document.form.pay.value=="" || isNaN(parseFloat(document.form.pay.value)))
  { alert("Please enter a valid number of payments.");
    document.form.pay.value="";
    document.form.pay.focus();
    return false; }
  if(document.form.rate.value=="" || isNaN(parseFloat(document.form.rate.value)))
  { alert("Please enter the interest rate.");
    document.form.rate.value="";
    document.form.rate.focus();
    return false; }
  if(document.form.amt.value!="" && document.form.pay.value!="" && document.form.rate.value!="")
  { show(); }
}

function clearScreen()
{ 
	document.form.amt.value="";
	document.form.pay.value="";
	document.form.rate.value="";
	document.getElementById('loanInfoDiv').innerHTML='';
	document.getElementById('loanScheduleDiv').innerHTML='';
}

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 show()
{ 
  amount_str=document.form.amt.value;
  amount=parseFloat(amount_str.replace(/,/g, ""));
  orig_amount=amount;
  downpayment_str=document.form.dp.value;
  downpayment=parseFloat(downpayment_str.replace(/,/g, ""));
  amount=amount-downpayment;
  number=parseInt(document.form.pay.value);
  rate=parseFloat(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 loanInfo='';
  loanInfo="<p><strong>Loan Amount:</strong>&nbsp;&nbsp;"+orig_amount+"</p>";
  loanInfo=loanInfo+"<p><strong>Down Payment:</strong>&nbsp;&nbsp;"+downpayment+"</p>";
  loanInfo=loanInfo+"<p><strong>Months:</strong>&nbsp;&nbsp;"+number+"</p>";
  loanInfo=loanInfo+"<p><strong>Annual Rate:</strong>&nbsp;&nbsp;"+fixVal(rate,0,4,' ')+"</p>";
  loanInfo=loanInfo+"<p><strong>Monthly Rate:</strong>&nbsp;&nbsp;"+fixVal(monthly,0,5,' ')+"</p>";
  loanInfo=loanInfo+"<p><strong>Monthly Payment:</strong>&nbsp;&nbsp;"+fixVal(payment,0,2,' ')+"</p>";
  loanInfo=loanInfo+"<p><strong>Total Paid:</strong>&nbsp;&nbsp;"+fixVal(total,0,2,' ')+"</p>";
  loanInfo=loanInfo+"<p><strong>Total Interest:</strong>&nbsp;&nbsp;"+fixVal(interest,0,2,' ')+"</p>";
  document.getElementById('loanInfoDiv').innerHTML=loanInfo;
  
  var loanSchedule=''
  loanSchedule="<table border='0' align='center' cellpadding='5' cellspacing='1' width='90%' bgcolor='#84A1C1'>";
  loanSchedule=loanSchedule+"<tr><td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Pmt</b></font></td>";
  loanSchedule=loanSchedule+"<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Payment<br>Amount</b></font></td>";
  loanSchedule=loanSchedule+"<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Interest<br>Paid</b></font></td>";
  loanSchedule=loanSchedule+"<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Principal<br>Reduction</b></font></td>";
  loanSchedule=loanSchedule+"<td align='center' valign='bottom' bgcolor='white'><font face='Arial' size='2'><b>Principal<br>Balance</b></font></td></tr>";
  loanSchedule=loanSchedule+"<tr><td align='center' bgcolor='white'><font face='courier' size='2'>0</font></td>";
  loanSchedule=loanSchedule+"<td align='center' bgcolor='white'>&nbsp;</td>";
  loanSchedule=loanSchedule+"<td align='center' bgcolor='white'>&nbsp;</td>";
  loanSchedule=loanSchedule+"<td align='center' bgcolor='white'>&nbsp;</td>";
  loanSchedule=loanSchedule+"<td align='center' bgcolor='white'><font face='courier' size='2'>"+fixVal(amount,0,2,' ')+"</font></td>";
  loanSchedule=loanSchedule+"</tr>";

  newPrincipal=amount;

  for (i=1; i<=number; i++)
  { newInterest=monthly*newPrincipal;
	reduction=payment-newInterest;
	newPrincipal=newPrincipal-reduction;
	loanSchedule=loanSchedule+"<tr><td align='center' bgcolor='white'><font face='Arial' size='2'>";
	loanSchedule=loanSchedule+i;
	loanSchedule=loanSchedule+"</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>";
	loanSchedule=loanSchedule+fixVal(payment,0,2,' ');
	loanSchedule=loanSchedule+"</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>";
	loanSchedule=loanSchedule+fixVal(newInterest,0,2,' ');
   	loanSchedule=loanSchedule+"</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>";
	loanSchedule=loanSchedule+fixVal(reduction,0,2,' ');
   	loanSchedule=loanSchedule+"</font></td><td align='center' bgcolor='white'><font face='courier' size='2'>";
	loanSchedule=loanSchedule+fixVal(newPrincipal,0,2,' ');
	loanSchedule=loanSchedule+"</font></td></tr>"; 
  }
	loanSchedule=loanSchedule+"</table>";
	document.getElementById('loanScheduleDiv').innerHTML=loanSchedule;
}