function floor(number)
{
	return Math.floor(number * Math.pow(10,2) + 0.5) / Math.pow(10,2);
}

function dosum()
{
	var mi = document.getElementById('IR').value / 1200;
	var base = 1;
	var mbase = 1 + mi;

	for (i = 0; i < document.getElementById('YR').value * 12; i++)
	{
		base = base * mbase;
	}

	document.getElementById('PI').innerHTML = '$' + number_format(floor(document.getElementById('LA').value * mi / ( 1 - (1/base))));
	document.getElementById('MT').innerHTML = '$' + number_format(floor(document.getElementById('AT').value / 12));
	document.getElementById('MI').innerHTML = '$' + number_format(floor(document.getElementById('AI').value / 12));

	var dasum = document.getElementById('LA').value * mi / ( 1 - (1/base)) + document.getElementById('AT').value / 12 + document.getElementById('AI').value / 12;
	document.getElementById('MP').innerHTML = '$' + number_format(floor(dasum));
}

// Modified from: http://mathiasbynens.be/archive/2006/01/js-number-format
function number_format(a)
{
	var b = 2;
	var c = '.';
	var d = ',';
	// number_format(number, decimals, comma, formatSeparator)
	a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
	e = a + '';
	f = e.split('.');
	if(!f[0]) f[0] = '0';
	if(!f[1]) f[1] = '';
	if(f[1].length < b){
		g = f[1];
		for(i = f[1].length + 1; i <= b; i++) {
			g += '0';
		}
		f[1] = g;
	}
	if(d != '' && f[0].length > 3) {
		h = f[0];
		f[0] = '';
		for(j = 3; j < h.length; j += 3) {
			i = h.slice(h.length - j, h.length - j + 3);
			f[0] = d + i +  f[0] + '';
		}
		j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
		f[0] = j + f[0];
	}
	c = (b <= 0) ? '': c;
	return f[0] + c + f[1];
}