/*
function updateResults()
function calculateMonthlyPayment(principal, interestRate, termMonths)
function calculateTotalIntrest(principal, interestRate, termYears)
function calculateTotalPayment(principal, interestRate, termYears)
*/

if(document.getElementById("f_amount").value != '')
	updateResults();

function updateResults()
{
	//var
	var loanAmount		= document.getElementById("f_amount").value.replace(/\$|,|\.00/g,"");
	var loanTerm		= document.getElementById("f_term").value;
	var loanRate		= document.getElementById("f_rate").value;
	var loanStartDate	= new Date(document.getElementById("f_date").value);
	var totalInt		= "$0.00"
	var totalCost		= "$0.00"
//	var totalPricipal	= "$0.00"
	var monthlyPayment	= "$0.00"
	//var
	
	if(!isNaN(loanAmount) && loanAmount != '' && !isNaN(loanTerm) && loanTerm != '' && !isNaN(loanRate.replace(/\.|,/g,"")) && loanRate != '' && loanRate != '0' && !isNaN(loanStartDate))
	{
		loanAmount		= parseFloat(loanAmount);
		monthlyPayment	= calculateMonthlyPayment(loanAmount, loanRate, (loanTerm*12) );
		totalInt 		= calculateTotalIntrest(loanAmount, loanRate, loanTerm, monthlyPayment);

		totalCost		= formatCurrency(totalInt + loanAmount);
		monthlyPayment	= formatCurrency(monthlyPayment);
		totalInt		= formatCurrency(totalInt);
		
		document.getElementById("div_monthlyPayment").innerHTML	= monthlyPayment;
		document.getElementById("div_IntrestPaid").innerHTML	= totalInt;
		document.getElementById("div_totalCost").innerHTML		= totalCost;
		document.getElementById("totalCostChart").innerHTML		= "<img src='http://dev.naplesarea.com/includesAsp/charts_mortgage_calc_pie.asp?Calc=1&Title=Total%20Cost%20of%20Loan&Interest=" + totalInt + "&Principal=" + loanAmount + "' alt='Payments' />";
		document.getElementById("paymentsChart").innerHTML		= "<img src='http://dev.naplesarea.com/includesAsp/charts_mortgage_calc_line.asp?Calc=1&pri=$" + loanAmount + "&int=" + loanRate + "%&term=" + loanTerm + "&freq=1&start=" + loanStartDate.getYear() + "' alt='Payments' />";
	}else{
		document.getElementById("div_monthlyPayment").innerHTML	= "$0.00";
		document.getElementById("div_IntrestPaid").innerHTML	= "$0.00";
		document.getElementById("div_totalCost").innerHTML		= "$0.00";
		document.getElementById("totalCostChart").innerHTML		= "";
		document.getElementById("paymentsChart").innerHTML		= "";
	};
};

function calculateMonthlyPayment(principal, interestRate, termMonths)
{
	//var
	var monthlyPayment = 0;
	var monthlyIntrest = interestRate / (12 * 100);
	//var
	
	/*
	M = monthly payment
	P = principal, the initial amount of the loan 
	I = the annual interest rate (from 1 to 100 percent) 
	N = number of months over which loan is amortized
	J = monthly interest in decimal form = I / (12 x 100) 
	
                           J
         M = P x ----------------------
                   1 - ( 1 + J ) ^ -N
	*/
	if (principal > 0 && interestRate != 0) 
		monthlyPayment = principal * ( monthlyIntrest / (1-Math.pow((1+monthlyIntrest),-termMonths)) );
	
	return monthlyPayment;
}

function calculateTotalIntrest(principal, interestRate, termYears, monthlyPayment)
{
	//var
	var ip;
	var totalInterest = 0.00;
	//var
	
	for(var runner = 0; runner < (termYears*12); runner++)
	{
		ip    			= 0.01 * Math.round(principal * interestRate/12);
		principal		= principal + ip - monthlyPayment;
		totalInterest	+= ip;
	}
	
	return totalInterest;
};

function formatCurrency(amount)
{
	//var
	var currentArray	= (Math.round(amount*100.00)/100.00).toFixed(2).split('.');
	var dollars			= currentArray[0];
	var cents			= currentArray[1];
	var dollarString	= new String(dollars);
	var dollarArray		= [];
	//var
	
	if(!cents)
		cents = "00";
		
	while(dollarString.length > 3)
	{
		dollarArray.unshift(dollarString.substr(dollarString.length-3));
		dollarString = dollarString.substr(0,dollarString.length-3);
	}
	if(dollarString.length > 0)
		dollarArray.unshift(dollarString);
	dollarString = dollarArray.join(",");
	
	amount = "$" + dollarString + '.' + cents;

	return amount;
}

function resetCalulator()
{
	document.form_mortgageCalc.reset();
	updateResults();
};
