function calculate()
{
	var price = document.getElementById("purchaseprice").value;
	if ( price.length == 0 )
	{
		alert("Please enter the purchase price");
		return;
	}
	price = fixNumber(price);
	price = parseFloat(price);
	if ( isNaN(price) )
	{
		alert("Please enter the  purchase price as a number");
		return;
	}
	if ( price < 0 )
	{
		alert("Please enter a purchase price >= 0");
		return;
	}

	var downpayment = document.getElementById("down").value;
	if ( downpayment.length == 0 )
	{
		alert("Please enter a down payment");
		return;
	}
	downpayment = fixNumber(downpayment);
	downpayment = parseFloat(downpayment);
	if ( isNaN(downpayment) )
	{
		alert("Please enter the down payment as a number");
		return;
	}
	if ( downpayment < 0 )
	{
		alert("Please enter a down payment >= 0");
		return;
	}

	
	var rate15 = document.getElementById("rate15").value;
	if ( rate15.length == 0 )
	{
		alert("Please enter the 15-year interest rate");
		return;
	}
	rate15 = fixNumber(rate15);
	rate15 = parseFloat(rate15);
	if ( isNaN(rate15) )
	{
		alert("Please enter the 15-year interest rate as a number");
		return;
	}
	if ( rate15 <= 0 || rate15 >= 30 )
	{
		alert("Please enter a 15-year interest rate greater than 0 and less than 30");
		return;
	}


	var rate30  = document.getElementById("rate30").value;
	if ( rate30.length == 0 )
	{
		alert("Please enter the 30-year interest rate");
		return;
	}
	rate30 = fixNumber(rate30);
	rate30 = parseFloat(rate30);
	if ( isNaN(rate30) )
	{
		alert("Please enter the 30-year interest rate as a number");
		return;
	}
	if ( rate30 <= 0 || rate30 >= 30 )
	{
		alert("Please enter a 30-year interest rate greater than 0 and less than 30");
		return;
	}

	var loanamount = price - downpayment;

	var payment15 = calcPayment(loanamount, rate15, 15);
	var payment30 = calcPayment(loanamount, rate30, 30);


	var x = document.getElementById("results");

	var results = "The amount of your loan will be <b>" + formatDollars(loanamount) + "</b>.";

	results += "<p>With a 15-year mortgage, your monthly payment will be <b>" + formatDollars(payment15) + "</b>.";
	results += "<p>With a 30-year mortgage, your monthly payment will be <b>" + formatDollars(payment30) + "</b>.";
	results += "<p>The advantage of a 15-year mortgage is that you own your house sooner, and you accumulate principal more quickly.";


	x.innerHTML = results;
	x.style.display = "block";
}

function calcPayment(loanamount, rate, years)
{
	var mrate = rate / 1200;
	var factor = Math.pow(1 + mrate, years * 12 );
	payment = loanamount * ( mrate / (1 - 1/factor) );
	return payment;
}
