function mCalc_FormatCurrency(value)
{
	value = Math.round(value);
	var string = value.toString();
	var out = "";

	if( string.charAt(0) == '-' )
	{
		out += "-";
		string = string.substring(1);
	}

	var where = string.length % 3;

	if( where > 0 )
	{
		out += string.substring( 0, where )
	}
	for( i = 1; i <= string.length / 3; i++ )
	{
		if( out == "" || out == "-" )
			out += string.substring( where, where + 3)
		else
			out += "," + string.substring( where, where + 3)
		where += 3;
	}
	return '$' + out;
}

function mCalc_NotEditable()
{
	alert('This is calculated automatically.');
}

function mCalc_Validate(obj, lowval, hival)
{
	var testval = "";
	var tppAr = obj.value.split(",");
	
	if(tppAr.length > 0)
	{
		for(var lk = 0; lk < tppAr.length; lk++)
		{
			testval = testval + tppAr[lk];
		}
	}
	else
	{
			testval = obj.value;
	}

	if(testval < lowval || testval > hival || isNaN(testval) || testval =="")
	{
		alert("Not a valid Number!\nPlease Enter a Number\nBetween " + lowval + " and " + hival + ".\nPlease remove all $ signs.");
		obj.value = lowval;
		obj.focus();
		return false;
	}
	return true;
}

function mCalc_Calculate()
{
	var grossMonthlyIncome = parseFloat( document.calcMortgage.income.value );
	var monthlyObligations = parseFloat( document.calcMortgage.obligations.value );
	var monthlyTaxPayment = parseFloat( document.calcMortgage.tax.value );
	var monthlyInsurance = parseFloat( document.calcMortgage.insurance.value );
	var downPayment = parseFloat( document.calcMortgage.downPayment.value );
	var interest = parseFloat( document.calcMortgage.interest.value );
	var termInYears = parseFloat( document.calcMortgage.term.value );

	var monthlyAllowableTotalExpenses = grossMonthlyIncome * 0.36;
	var monthlyAllowableHousingExpenses = monthlyAllowableTotalExpenses - monthlyObligations;

	if( monthlyAllowableHousingExpenses > grossMonthlyIncome * 0.28 )
	{
		monthlyAllowableHousingExpenses = grossMonthlyIncome * 0.28;
	}

	var monthlyPrincipalAndInterest = monthlyAllowableHousingExpenses - monthlyTaxPayment - monthlyInsurance;

	var d = parseFloat(interest / 1200); 
	var e = parseFloat(termInYears * 12);
	var f = parseFloat(1 + d);
	var g = parseFloat(Math.pow(f, e));
	var h = parseFloat(1 / g);
	var i = parseFloat(1 - h);
	var j = parseFloat(i / d);
	var estimatedMortgageAmount = parseFloat(monthlyPrincipalAndInterest * j);

	var estimatedAffordablePrice = estimatedMortgageAmount + downPayment;

	document.calcMortgage.payment.value = mCalc_FormatCurrency( monthlyAllowableHousingExpenses );
	document.calcMortgage.mortgage.value = mCalc_FormatCurrency( estimatedMortgageAmount );
	document.calcMortgage.total.value = mCalc_FormatCurrency( estimatedAffordablePrice );
}
