early_calculate = function()
{
	var loanamount = document.getElementById("early_loanamount").value;
	if ( loanamount.length == 0 )
	{
		alert("Please enter the initial loan amount");
		return;
	}
	loanamount = fixNumber(loanamount);
	loanamount = parseFloat(loanamount);
	if ( isNaN(loanamount) )
	{
		alert("Please enter the initial loan amount as a number");
		return;
	}
	if ( loanamount <= 0 )
	{
		alert("Please enter a loan amount > 0");
		return;
	}

	var duration = parseInt( document.getElementById("early_duration").value);

	var yearsleft = document.getElementById("early_yearsleft").value;
	if ( yearsleft.length == 0 )
	{
		alert("Please enter the number of years left in your mortgage");
		return;
	}
	yearsleft = fixNumber(yearsleft);
	yearsleft = parseInt(yearsleft);
	if ( isNaN(yearsleft) )
	{
		alert("Please the the years left as a number");
		return;
	}
	if ( yearsleft > duration )
	{
		alert("Error. There are more years left on your mortgage than the total length of the mortgage.");
		return;
	}
	if ( yearsleft <= 0 )
	{
		alert("You have no years left on your mortgage, so it must be paid off.  Congrats.");
		return;
	}

	
	var rate = document.getElementById("early_rate").value;
	if ( rate.length == 0 )
	{
		alert("Please enter an interest rate");
		return;
	}
	rate = fixNumber(rate);
	rate = parseFloat(rate);
	if ( isNaN(rate) )
	{
		alert("Please enter the interest rate as a number");
		return;
	}
	if ( rate <= 0 || rate >= 30 )
	{
		alert("Please enter an interest rate rate greater than 0 and less than 30");
		return;
	}


	var extra = document.getElementById("early_extra").value;
	if ( extra.length == 0 )
	{
		alert("Please enter an extra payment amount");
		return;
	}
	extra = fixNumber(extra);
	extra = parseFloat(extra);
	if ( isNaN(extra) )
	{
		alert("Please enter the extra payment amount as a number");
		return;
	}
	if ( extra <= 0 )
	{
		alert("Please an extra payment amount > 0");
		return;
	}

	
	var payment = calcPayment(loanamount, rate, duration);

	var mrate = rate / 1200;
	calcPrincipalAndInterest(loanamount, duration-yearsleft, mrate); 

	var results = "<p>Currently, your monthly payment is " + formatDollars(payment) + ".</p>";

	results += "<table cellpadding=\"0\" cellspacing = \"0\" class=\"data\">";
	results += "<tr><th><th>Interest<th>Principal<th>Total Payments";
	results += "<tr><th>To Date<td>" + formatDollars(MTG.interest) + "<td>" + formatDollars(loanamount-MTG.principal) + "<td>" + formatDollars(MTG.interest+loanamount-MTG.principal);


	var prince1 = MTG.principal;
	var int1 = MTG.interest;


	calcPrincipalAndInterest(loanamount, duration, mrate); 
	results += "<tr><th>Total<td>" + formatDollars(MTG.interest) + "<td>" + formatDollars(loanamount-MTG.principal) + "<td>" + formatDollars(payment*duration*12);


	var m = 0;
	while ( prince1 > 0.01 )
	{
		var mi = mrate * prince1;
		int1 += mi;
		prince1 -= ( payment - mi + extra );
		m++;
	}
	results += "<tr><th>Total (with Extra Payments)<td>" + formatDollars(int1) + "<td>" + formatDollars(loanamount) + "<td>" + formatDollars(int1 + loanamount);
	results += "</table>";

	m = (yearsleft*12)-m;
	var y = parseInt(m/12);	
	m = m%12;
	
	results += "<br>By paying an extra " + formatDollars(extra) + " per month, you will save <strong>" + formatDollars(MTG.interest-int1) + "</strong> in interest.";
	results += "<p>You will pay off your mortage " + y + " years and " + m + " months early.";


	var x = document.getElementById("early_dt_results");

	

	x.innerHTML = results;
	x.style.display = "block";
}
MTG = {
	principal: 0,
	interest: 0
}
calcPrincipalAndInterest = function(amount, years, mrate)
{
	MTG.principal = amount;
	MTG.interest = 0;
	var y,m;	
	for (y=0; y<years; y++)
	{
		for (m=0; m<12; m++)
		{
			var mi = mrate * MTG.principal;
			MTG.interest += mi;
			MTG.principal -= ( payment - mi );
		}
	}
}
