function clearDefault(clearCell) {
if (clearCell.defaultValue==clearCell.value) clearCell.value = ""}

function Calculate()
{
	var form = document.form1;
	var HomePrice = 0;
	HomePrice = cleanAndRound(form.HomePrice.value);
	var DownPayment = cleanAndRound(form.DownPayment.value);

	var AnnualInterestRate = cleanNumber(form.InterestRate.value) / 100;
	var Years = cleanNumber(form.NumberOfYears.value);
	var MonthRate = AnnualInterestRate / 12;
	var NumPayments = Years * 12;
	var LoanAmount = HomePrice - DownPayment;
	
	var MonthlyPandI = Math.floor((LoanAmount * MonthRate) / (1 - Math.pow((1 + MonthRate),(-1 * NumPayments))) * 100) / 100;
	
	form.HomePrice.value = formatNumber(HomePrice)  ;
	form.DownPayment.value = formatNumber(DownPayment);
	form.LoanAmount.value = formatNumber(LoanAmount);
	form.NumberOfPayments.value = NumPayments;
	form.MonthlyPandI.value = formatNumber(MonthlyPandI);
}

roundToHundredths = function(num){//annoying float precision forces the +0.000001
	return Math.round(parseFloat(num) * 100 + 0.000001) / 100;
};

formatNumber = function(num){
	var roundedNum = roundToHundredths(num);
	var cents = Math.round(Math.abs(roundedNum) * 100) % 100;
	var dollars = Math.floor(roundedNum);
	if (cents < 10){
		cents = '0' + cents;
	}
	
	//add commas
	dollars = dollars.toString();
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(dollars)) {
		dollars = dollars.replace(rgx, "$1,$2");
	}
	return dollars + '.' + cents;
};

cleanNumber = function(num){
	var val = (num && num.replace) ? num.replace(/[^\d\.\-]/g, '') : num;
	if(val == ''){
		return 0;
	}
	if(isFinite(val)){
		return parseFloat(val);
	}
	return 0;
};

cleanAndRound = function(num){
	//alert(cleanNumber(num));
	return roundToHundredths(cleanNumber(num));
}