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 rate = document.getElementById("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 >= 20 )
	{
		alert("Please enter a interest rate greater than 0 and less than 20");
		return;
	}

	var years = parseInt( document.getElementById("duration").value);

	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 mrate = rate / 1200;

	var loanamount = price - downpayment;
	var payment;
	if ( years == -1 )
	{
		payment = mrate * loanamount;
	}
	else
	{
		var factor = Math.pow(1 + mrate, years * 12 );
		payment = loanamount * ( mrate / (1 - 1/factor) );
	}

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

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

	results += "<p>Your monthly payment will be <b>" + formatDollars(payment) + "</b>.";
	
	if ( years == -1 )
		results += "<p>With an interest only mortgage, you will never own your house outright.";

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