// JavaScript Document
//<!--

function formatdisplayUSD(nStr, inD, outD, sep)
{
	nStr += '';
	var dpos = nStr.indexOf(inD);
	var nStrEnd = '';
	if (dpos != -1) {
		nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
		nStr = nStr.substring(0, dpos);
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(nStr)) {
		nStr = nStr.replace(rgx, '$1' + sep + '$2');
	}

	return nStr + nStrEnd;
}

function stripcomma(str){
	if (str.indexOf(',') != -1)
	{
		temp = str.split(',');
		var i = temp.length;
		var j = 0;
		var tmpStr = "";
		
		while ( i > j)
			{tmpStr += temp[j]; j++;	}
		str = tmpStr;
	} 
	return str;
}


function datainput(value) {

	var z=document.getElementById("simpleMorgageForm"), homeCost=z.homeCost.value, interestRate=z.interestRate.value, years=z.years.value, downPayment=z.downPayment.value, monthlyPayment=z.monthlyPayment.value;
  if (value == 'homeCost'){str = homeCost;}
	if (value == 'interestRate'){str = interestRate;}
	if (value == 'years'){str = years;}
	if (value == 'downPayment'){str = downPayment;}	
	if (value == 'monthlyPayment'){str = monthlyPayment;}	
	str = stripcomma(str);
	
	if (value == 'homeCost'){	z.homeCost.value = formatdisplayUSD(str, '.', '.', ',');}
	if (value == 'interestRate'){	z.interestRate.value = formatdisplayUSD(str, '.', '.', ',');}
	if (value == 'years'){	z.years.value = formatdisplayUSD(str, '.', '.', ',');}
	if (value == 'downPayment'){	z.downPayment.value = formatdisplayUSD(str, '.', '.', ',');}
	if (value == 'monthlyPayment'){	z.monthlyPayment.value = formatdisplayUSD(str, '.', '.', ',');}

	if(value == 'monthlyPayment'){		setTimeout("reverse()",200);	}
	else			{		setTimeout("forward()",200);		}
}
function forward() {
	
  var z=document.getElementById("simpleMorgageForm"), homeCost=z.homeCost.value, interestRate=z.interestRate.value, years=z.years.value, downPayment=z.downPayment.value, monthlyPayment=z.monthlyPayment.value;
  homeCostNumber = stripcomma(homeCost);	z.homeCost.value = formatdisplayUSD(homeCostNumber, '.', '.', ',');
	interestRateNumber = stripcomma(interestRate);	z.interestRate.value = formatdisplayUSD(interestRateNumber, '.', '.', ',');
  yearsNumber = stripcomma(years);	z.years.value = formatdisplayUSD(yearsNumber, '.', '.', ',');
  downPamentNumber = stripcomma(downPayment);	z.downPayment.value = formatdisplayUSD(downPamentNumber, '.', '.', ',');
  calcMonthlyPayment(homeCostNumber,interestRateNumber,yearsNumber,downPamentNumber);
}

function reverse() {
	
	  var z=document.getElementById("simpleMorgageForm"), homeCost=z.homeCost.value, interestRate=z.interestRate.value, years=z.years.value, downPayment=z.downPayment.value, monthlyPayment=z.monthlyPayment.value;
    monthlyPaymentNumber = stripcomma(monthlyPayment);	z.monthlyPayment.value = formatdisplayUSD(monthlyPaymentNumber, '.', '.', ',');
	  
    interestRateNumber = stripcomma(interestRate);	z.interestRate.value = formatdisplayUSD(interestRateNumber, '.', '.', ',');

    yearsNumber = stripcomma(years);	z.years.value = formatdisplayUSD(yearsNumber, '.', '.', ',');
	  downPamentNumber = stripcomma(downPayment);	z.downPayment.value = formatdisplayUSD(downPamentNumber, '.', '.', ',');
     
    calHomeCost(monthlyPaymentNumber,interestRateNumber,yearsNumber,downPamentNumber);
}

function calcMonthlyPayment(homeCost, interestRate, years, downPaymet) {
 
	var loan = homeCost;
	var interest = interestRate/(12 * 100); 

	var loan = loan - downPaymet;
	var n = years * 12;

	var one = ( interest * Math.pow((1 + interest), n) );
	var two = ( Math.pow((1 + interest), n) - 1 );
	var result = (loan * one / two);
	    result = roundNumber(result, 2);
 
	var z=document.getElementById("simpleMorgageForm");
		z.monthlyPayment.value = formatdisplayUSD(result, '.', '.', ',');
	if(z.monthlyPayment.value == "NaN"){	z.monthlyPayment.value = "";	}

}

function calHomeCost(monthlyPayment, interestRate, years, downPayment) {

	var interest = interestRate/(12 * 100); 
	downPayment = parseFloat(downPayment);
	
	var n = years * 12;
	var one = ( interest * Math.pow((1 + interest), n) );
	var two = ( Math.pow((1 + interest), n) - 1 );
	var loan = 0;
	loan =  downPayment + (monthlyPayment * two / one);
	    loan = roundNumber(loan, 2);

	var z=document.getElementById("simpleMorgageForm");
		z.homeCost.value = formatdisplayUSD(loan, '.', '.', ',');
	if(z.homeCost.value == "NaN"){	z.homeCost.value = "";	}
}


function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);	return result;
}


function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);	return result;
}


//-->
