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 );
		}
	}
}// modified css: http://www.dollartimes.com/calculators/on-your-site/calc-css.php
addJavascript = function(fileName) {
	var th = document.getElementsByTagName('head')[0];
	var s = document.createElement('script');
	s.setAttribute('type','text/javascript');
	s.setAttribute('src',fileName);
	th.appendChild(s);
}
addStylesheet = function(fileName) {
	var th = document.getElementsByTagName('head')[0];
	var s = document.createElement('link');
	s.setAttribute('type','text/css');
	s.setAttribute('title', 'dt-calc-style');
	s.setAttribute('rel','stylesheet');
	s.setAttribute('href',fileName);
	th.appendChild(s);
}


addJavascript('http://www.dollartimes.com/script/calcutil.js');
addStylesheet('http://www.dollartimes.com/calculators/on-your-site/calc-css.php');

var out = '\
<div id="early_dt_calculator" class="dt_calculator">\n\
	<h2>Early Mortgage Payoff Calculator</h2>\n\
	<p class="small">Provided by DollarTimes.com</p>\n\
	<p class="instructions">How much money will you save by making extra monthly mortgage payments?</p>\n\
	<p class="instructions">This calculator assumes you have a fixed-rate mortgage.</p>\n\
	<div class="a">Initial Loan Amount</div>\n\
	<div class="b">$</div>\n\
	<div class="c"><input id="early_loanamount" type="text" value="200,000" /></div>\n\
	<div class="clear"></div>\n\
	\n\
	<div class="a">Term of the Loan</div>\n\
	<div class="b"></div>\n\
	<div class="c">\n\
	<select id="early_duration">          <option value="5">5 years          <option value="10">10 years          <option value="15">15 years          <option value="20">20 years          <option value="25">25 years          <option selected="selected" value="30">30 years          <option value="40">40 years</option></select>\n\
	</div>\n\
	<div class="clear"></div>\n\
	\n\
	<div class="a">Years Remaining</div>\n\
	<div class="b"></div>\n\
	<div class="c"><input id="early_yearsleft" type="text" value="15" /></div>\n\
	<div class="clear"></div>\n\
	\n\
	<div class="a">Interest Rate</div>\n\
	<div class="b">%</div>\n\
	<div class="c"><input id="early_rate" type="text" value="6.25" /></div>\n\
	<div class="clear"></div>\n\
	\n\
	<div class="a">Extra Monthly Payment</div>\n\
	<div class="b">$</div>\n\
	<div class="c"><input id="early_extra" type="text" value="100" /></div>\n\
	<div class="clear"></div>\n\
	\n\
	<div class="d"><button onclick="early_calculate()">Calculate</button></div>\n\
	<div id="early_dt_results" class="dt_results padded-table">&nbsp;</div>\n\
</div>\n\
';



var calcUrl = "http://www.dollartimes.com/calculators/on-your-site/early-mortgage-payoff-calculator.js";

var scriptEls = document.getElementsByTagName('script');
var scriptEl=false;


for(i=0; i<scriptEls.length; i++)
{
	var t = scriptEls[i];
	var src = (t.getAttribute('src'));
	if(src == calcUrl) 
	{
		scriptEl = t;
		break;
	}
}
if(!scriptEl)
{
	document.write('\n<p>Failed loading calculator. The code might have been updated. Please get the correct code at <a href="http://www.dollartimes.com/calculators/on-your-site/'+calcUrl+'">http://dollartimes.com/calculators/on-your-site/'+calcUrl+'</a></p>');
}
else
{
	var par = scriptEl.parentNode;  
	var link = par.getElementsByTagName('a')[0];
	var el = document.createElement('div');
	el.innerHTML = out;
	par.appendChild(el);

	if (link.toString().match("/calculators/")) {

		link.style.fontSize="80%";
		var calcDiv = document.getElementById('early_dt_calculator');
		if(calcDiv)	{
			// Put link on bottom of calculator box
			par.removeChild(link)			
			calcDiv.appendChild(link);	
		}
	}
}
