dt_early_calculate = function()
{
	var loan, term, yearsLeft, rate, extra;
	try
	{
		loan = DT_F.getFormFloat( "dt_early_loan", "Please enter the initial loan amount", "Please enter the initial loan amount as a number" );
		if ( loan <= 0 ) {
			throw("Please enter an initial loan amount > 0");
		}
		term = parseInt( document.getElementById("dt_early_term").value, 10 );

		yearsLeft = DT_F.getFormInt( "dt_early_yearsleft", "Please enter the years left on your mortgage", "Please enter the years left on your mortgage as a number", "The years left on your mortgage was rounded to" );
		if ( yearsLeft <= 0 ) {
			throw("Since there are no years left on your mortgage, you've already paid it off. Congrats!");
		}
		if ( yearsLeft > term ) {
			throw("The years left on your mortgage can't be greater than the initial loan term.");
		}

		rate = DT_F.getFormFloat( "dt_early_rate", "Please enter an interest rate", "Please enter the interest rate as a number" );
		if ( rate < 0 || rate > 30 ) {
			throw("Please enter an interest rate between 0 and 30");
		}

		extra = DT_F.getFormFloat( "dt_early_extra", "Please enter the amount extra to pay each month", "Please enter the amount extra to pay each month as a number" );
		if ( extra < 0 ) {
			throw("Please enter an extra monthly payment >= 0");
		}		
	}
	catch ( err )
	{
		alert(err);
		return;
	}

	var payment = DT_F.calcPayment(loan, term*12, rate);

	var results = [];
	var p1 = loan, i1 = 0, p2 = loan, i2 = 0;
	var ep;
	var mRate = rate / 1200;
	var paidOff = 12*term;

	for (m=1; m<12*term; m++)
	{
		if ( m > 12*(term-yearsLeft)) {
			ep = extra;
		}
		else {
			ep = 0;
		}
		var mi1 = mRate * p1;
		i1 += mi1;
		p1 -= ( payment - mi1 );

		if ( p2 > 0 )
		{
			var mi2 = mRate * p2;
			i2 += mi2;
			p2 -= ( payment - mi2 + ep );
			if ( p2 <= 0 ) {
				p2 = 0;
				paidOff = m;
			}
		}
	}

	var x = term*12 - paidOff;
	var y = parseInt( x/12, 10 );	
	m = x%12;

	results.push( "Currently, your monthly payment is " + DT_F.formatDollars(payment) + ".</p>" );
	results.push( "<p>By paying an extra " + DT_F.formatDollars(extra) + " per month, you will save " + DT_F.formatDollars(i1-i2) + " in interest.</p>" );
	results.push( "<p>You will pay off your mortgage " + y + " years and " + m + " months early.</p>" );

	var z = document.getElementById("dt_early_results");
	z.innerHTML = results.join('');
	z.style.display = "block";
};



