// JavaScript Document
/***************************
(c) 2008 www.TUFaT.com
All Rights Reserved. Please
do not re-sell/re-distribute
this software.
***************************/
function calcuLate(form)
{
    var amt = form.amt.value;
    var int = form.int.value;
	var len = form.len.value;
    var opt = form.opt.value;
    var ovl = form.ovl.value;
    var out = form.out.value;
	var myErr=" ";
	var StrOut='<center><table border=0 width=100% cellspacing=0 cellpadding=3>';
	if (opt == 'Length') { 
		opt = "LENGTH"; 
	} else { 
		opt = "AMOUNT"; 
	}
	var thou = amt/1000;
	var tt = len * 12; 
	var i = int / 1200;
 	var ti = 0 ;
	if (tt > 0)
	{ 
		if (i > 0) { 
			paymt = amt * i / (1 - (Math.pow((1 + i) , ((-1)*tt)))); 
		} else { 
			paymt = (amt / tt); 
		}
		StrOut=StrOut+ "<tr><td colspan=5 align='center'>(For a loan of $ "+formatNumberDec(amt,2,1)+" at a interest rate of  "+eval(int)+"% for "+len+" years)<br/><strong>The standard payment (principal & interest): $ "+formatNumberDec(paymt,2,1)+"</strong></td></tr>";
	} else {
		paymt = 0;
	}
  

	if (opt == "AMOUNT")
	{
		if (ovl < paymt)
		{
		  StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>Sorry, you did not pay enough!<br />You entered $ "+formatNumberDec(ovl,2,1)+", You need $ "+formatNumberDec((paymt-ovl),2,1)+" more!!!</strong>";
		} else {
			StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>You entered $ "+formatNumberDec(ovl,2,1)+"<br/> That's an extra $ "+formatNumberDec((ovl-paymt),2,1)+" each month</strong>";
			if (ovl < (amt * i) && tt == 0)
			{
				StrOut=StrOut+"<p> that's less than the interest of $ "+formatNumberDec((amt*i),2,1)+"</p>";
			}
			eti = (paymt * tt )- amt;
			
			if (out == 'FULL') 
			{ 
				StrOut=StrOut+"<tr><td>Month</td><td>Principal</td><td>Interest</td><td>Balance</td><td>Tot Int</td>\n"; 
			}
			var m=0;
			while(amt > 0 && m < 1200)
			{
				ti = eval(ti) + eval(amt * i); 
				ci = amt * i; 
				p = ovl - ci;
				amt = amt * (1 + i) - ovl; 
				m++;
				if (out == 'FULL') 
				{ 
					StrOut=StrOut+"<tr><td class='HeaderTDHL'>"+m+"</td><td>"+formatNumberDec(p,2,1)+"</td><td>"+formatNumberDec(ci,2,1)+"</td><td>"+formatNumberDec(amt,2,1)+"</td><td>"+formatNumberDec(ti,2,1)+"</td></tr>"; 
				}
			}
			y = m/12;
			if (tt > 0) 
			{ 
				StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>You paid it off in "+m+" months ("+formatNumberDec(y,3,1)+" years)</td></tr>";
				StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>Expected Total Interest: $ "+formatNumberDec(eti,2,1)+"</td></tr>";
				StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>Your Total Interest: $ "+formatNumberDec(ti,2,1)+"</td></tr>";
				StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>You Saved: $ "+formatNumberDec((eti-ti),2,1)+"</td></tr>";
			}
	    }
	} else {
		
		if (ovl > len && tt > 0)
		{
		  StrOut=StrOut+"<tr><td colspan=5 align='center'><br />Sorry, it can't take longer than the amortization <strong>That's considered defaulting on your loan!<br />You could lose your house!</strong></td></tr>";
	
		} else {
			eti = (paymt * tt )- amt;
			dm = ovl * 12; 
			dpt_l = paymt; 
			dpt_h = 10 * paymt; 
			m = 0;
			if (dpt_h == 0) { 
				dpt_h = amt; 
			}
			while(dpt_h > dpt_l + .01)
			{
				dpt = (dpt_l + dpt_h) / 2;
				m = 0; 
				amtt = amt;
				while(amtt > 0 && m < 1200)
				{
					amtt = amtt * (1 + i) - dpt; 
					m++;
				}
				if (m < dm) { 
					dpt_h = dpt; 
				} else { 
					dpt_l = dpt; 
				}
			}
			if (out == 'FULL')
			{
				StrOut=StrOut+"<tr><td>Month</td><td>Principal</td><td>Interest</td><td>Balance</td><td>Tot Int</td></tr>";
			}
			amtt = amt;
			var j=0;
			var ti=0;
			while(amtt > 0 && j < 1200)
			{
				ci = amtt * i; 
				p = dpt - ci;
				amtt = amtt * (1 + i) - dpt; 
				j++; 
				ti = ti + ci;
				if (out == 'FULL')
				{
					StrOut=StrOut+"<tr><td class='HeaderTDHL'>"+j+"</td><td>"+formatNumberDec(p,2,1)+"</td><td>"+formatNumberDec(ci,2,1)+"</td><td>"+formatNumberDec(amtt,2,1)+"</td><td>"+formatNumberDec(ti,2,1)+"</td></tr>";
				}
			}
			
			if(ovl == len) {
				StrOut=StrOut+"<tr><td colspan=5 align='center'><br /><strong>Of course to pay off a "+len+" year loan in "+ovl+" years,<br /> you should make your standard monthly payment!</strong></td></tr>";
			} else {     
				StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>Over "+ovl+" years<br />Required Monthly Payment: $ "+formatNumberDec(dpt,2,1)+"<br>($ "+formatNumberDec((dpt - paymt),2,1)+" extra per month)</strong></td></tr>";
			}
			StrOut=StrOut+"<tr><td colspan=5 align='center'><strong>Interest Saved: $ "+formatNumberDec((eval(eti)-eval(ti)+eval(amtt)),2,1)+"</strong></td></tr>";
		}
	}
	document.getElementById("results").innerHTML=StrOut;
	document.getElementById("results").style.display='block';
}
