//<!--

function mort_addSeparatorsNF(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 mort_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 mort_xdelay(value) {

	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, d=z.textD.value, x=z.resultbox.value;

	if (value == 'a'){str = a;}
	if (value == 'b'){str = b;}
	if (value == 'c'){str = c;}
	if (value == 'd'){str = d;}	
	if (value == 'x'){str = x;}	
	
	str = mort_stripcomma(str);

	if (value == 'a'){	z.textA.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'b'){	z.textB.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'c'){	z.textC.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'd'){	z.textD.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'x'){	z.resultbox.value = mort_addSeparatorsNF(str, '.', '.', ',');}

	if(value == 'x'){		setTimeout("mort_revcall()",200);	}
	else			{		setTimeout("mort_call()",200);		}

	//alert("eer");
}
function mort_call() {
	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, d=z.textD.value;
  
	as = mort_stripcomma(a);	z.textA.value = mort_addSeparatorsNF(as, '.', '.', ',');
	bs = mort_stripcomma(b);	z.textB.value = mort_addSeparatorsNF(bs, '.', '.', ',');
	cs = mort_stripcomma(c);	z.textC.value = mort_addSeparatorsNF(cs, '.', '.', ',');
	ds = mort_stripcomma(d);	z.textD.value = mort_addSeparatorsNF(ds, '.', '.', ',');
	//alert (as +"  "+ bs+"  "+cs+"  "+ds);
	mort_calc(as,bs,cs,ds);
}

function mort_revcall() {
	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, d=z.textD.value, x=z.resultbox.value;
  
	bs = mort_stripcomma(b);	z.textB.value = mort_addSeparatorsNF(bs, '.', '.', ',');
	cs = mort_stripcomma(c);	z.textC.value = mort_addSeparatorsNF(cs, '.', '.', ',');
	ds = mort_stripcomma(d);	z.textD.value = mort_addSeparatorsNF(ds, '.', '.', ',');
	xs = mort_stripcomma(x);	z.resultbox.value = mort_addSeparatorsNF(xs, '.', '.', ',');
    //alert (xs +"  "+ bs+"  "+cs+"  "+ds);
    mort_revcalc(xs,bs,cs,ds);
}

function mort_calc(a, b, c, d) {
//alert (a +"  "+ b+"  "+c+"  "+d);
	var loan = a;
	var i = b/(12 * 100);  //interest_rate
	var years = c;
	var down_payment = d;

	var loan = loan - down_payment;
	var n = years * 12;
	var one = ( i * Math.pow((1 + i), n) );
	var two = ( Math.pow((1 + i), n) - 1 );
	var result = (loan * one / two);
	    result = mort_roundNumber(result, 2);

	var z=document.getElementById("mortgageCalc");
		z.resultbox.value = mort_addSeparatorsNF(result, '.', '.', ',');
	if(z.resultbox.value == "NaN"){	z.resultbox.value = "";	}
	//alert (result +"  "+ monthly);

}

function mort_revcalc(x, b, c, d) {
//alert (x +"  "+ b+"  "+c+"  "+d);
	var monthly = x;
	var i = b/(12 * 100);  //interest_rate
	var years = c;
	var down_payment = parseFloat(d);	
	
	var n = years * 12;
	var one = ( i * Math.pow((1 + i), n) );
	var two = ( Math.pow((1 + i), n) - 1 );
	var loan = 0;
	loan = down_payment + (monthly * two / one);
    loan = mort_roundNumber(loan, 2);

	var z=document.getElementById("mortgageCalc");
		z.textA.value = mort_addSeparatorsNF(loan, '.', '.', ',');
	if(z.textA.value == "NaN"){	z.textA.value = "";	}
	//alert (result +"  "+ monthly);
}

function mort_roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);	return result;
}

function mort_xdelay1(value) {

	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, x=z.resultbox.value;

	if (value == 'a'){str = a;}
	if (value == 'b'){str = b;}
	if (value == 'c'){str = c;}
	if (value == 'x'){str = x;}	
	
	str = mort_stripcomma(str);

	if (value == 'a'){	z.textA.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'b'){	z.textB.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'c'){	z.textC.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'x'){	z.resultbox.value = mort_addSeparatorsNF(str, '.', '.', ',');}

	if(value == 'x'){		setTimeout("mort_revcall1()",200);	}
	else			{		setTimeout("mort_call1()",200);		}

	//alert("eer");
}
function mort_call1() {
	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value;
  
	as = mort_stripcomma(a);	z.textA.value = mort_addSeparatorsNF(as, '.', '.', ',');
	bs = mort_stripcomma(b);	z.textB.value = mort_addSeparatorsNF(bs, '.', '.', ',');
	cs = mort_stripcomma(c);	z.textC.value = mort_addSeparatorsNF(cs, '.', '.', ',');
	//alert (as +"  "+ bs+"  "+cs+"  "+ds);
	mort_calc1(as,bs,cs);
}

function mort_revcall1() {
	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, x=z.resultbox.value;
  
	bs = mort_stripcomma(b);	z.textB.value = mort_addSeparatorsNF(bs, '.', '.', ',');
	cs = mort_stripcomma(c);	z.textC.value = mort_addSeparatorsNF(cs, '.', '.', ',');
	xs = mort_stripcomma(x);	z.resultbox.value = mort_addSeparatorsNF(xs, '.', '.', ',');
    //alert (xs +"  "+ bs+"  "+cs+"  "+ds);
    mort_revcalc1(xs,bs,cs);
}

function mort_calc1(a, b, c) {
//alert (a +"  "+ b+"  "+c+"  "+d);
	var loan = a;
	var i = b/(12 * 100);  //interest_rate
	var down_payment = 0;

	var loan = loan - down_payment;
	var n = c;
	var one = ( i * Math.pow((1 + i), n) );
	var two = ( Math.pow((1 + i), n) - 1 );
	var result = (loan * one / two);
	    result = mort_roundNumber(result, 2);

	var z=document.getElementById("mortgageCalc");
		z.resultbox.value = mort_addSeparatorsNF(result, '.', '.', ',');
	if(z.resultbox.value == "NaN"){	z.resultbox.value = "";	}
	//alert (result +"  "+ monthly);

}

function mort_revcalc1(x, b, c) {
//alert (x +"  "+ b+"  "+c+"  "+d);
	var monthly = x;
	var i = b/(12 * 100);  //interest_rate
	var down_payment = 0;
	
	var n = c;
	var one = ( i * Math.pow((1 + i), n) );
	var two = ( Math.pow((1 + i), n) - 1 );
	var loan = (monthly * two / one) + down_payment;
	    loan = mort_roundNumber(loan, 2);

	var z=document.getElementById("mortgageCalc");
		z.textA.value = mort_addSeparatorsNF(loan, '.', '.', ',');
	if(z.textA.value == "NaN"){	z.textA.value = "";	}
	//alert (result +"  "+ monthly);
}
function mort_xdelay2(value) {

	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, x=z.resultbox.value;

	if (value == 'a'){str = a;}
	if (value == 'b'){str = b;}
	if (value == 'c'){str = c;}
	if (value == 'x'){str = x;}	
	
	str = mort_stripcomma(str);

	if (value == 'a'){	z.textA.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'b'){	z.textB.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'c'){	z.textC.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'x'){	z.resultbox.value = mort_addSeparatorsNF(str, '.', '.', ',');}

	if(value == 'x'){		setTimeout("mort_revcall2()",200);	}
	else			{		setTimeout("mort_call2()",200);		}

	//alert("eer");
}
function mort_call2() {
	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value;
  
	as = mort_stripcomma(a);	z.textA.value = mort_addSeparatorsNF(as, '.', '.', ',');
	bs = mort_stripcomma(b);	z.textB.value = mort_addSeparatorsNF(bs, '.', '.', ',');
	cs = mort_stripcomma(c);	z.textC.value = mort_addSeparatorsNF(cs, '.', '.', ',');
	//alert (as +"  "+ bs+"  "+cs+"  "+ds);
	mort_calc2(as,bs,cs);
}

function mort_revcall2() {
	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, x=z.resultbox.value;
  
	bs = mort_stripcomma(b);	z.textB.value = mort_addSeparatorsNF(bs, '.', '.', ',');
	cs = mort_stripcomma(c);	z.textC.value = mort_addSeparatorsNF(cs, '.', '.', ',');
	xs = mort_stripcomma(x);	z.resultbox.value = mort_addSeparatorsNF(xs, '.', '.', ',');
    //alert (xs +"  "+ bs+"  "+cs+"  "+ds);
    mort_revcalc2(xs,bs,cs);
}

function mort_calc2(a, b, c) {
//alert (a +"  "+ b+"  "+c+"  "+d);
	var loan = a;
	var i = b/(12 * 100);  //interest_rate
	var years = c;
	var down_payment = 0;

	var loan = loan - down_payment;
	var n = years * 12;
	var one = ( i * Math.pow((1 + i), n) );
	var two = ( Math.pow((1 + i), n) - 1 );
	var result = (loan * one / two);
	    result = mort_roundNumber(result, 2);

	var z=document.getElementById("mortgageCalc");
		z.resultbox.value = mort_addSeparatorsNF(result, '.', '.', ',');
	if(z.resultbox.value == "NaN"){	z.resultbox.value = "";	}
	//alert (result +"  "+ monthly);

}

function mort_revcalc2(x, b, c) {
//alert (x +"  "+ b+"  "+c+"  "+d);
	var monthly = x;
	var i = b/(12 * 100);  //interest_rate
	var years = c;
	var down_payment = 0;
	
	var n = years * 12;
	var one = ( i * Math.pow((1 + i), n) );
	var two = ( Math.pow((1 + i), n) - 1 );
	var loan = (monthly * two / one) + down_payment;
	    loan = mort_roundNumber(loan, 2);

	var z=document.getElementById("mortgageCalc");
		z.textA.value = mort_addSeparatorsNF(loan, '.', '.', ',');
	if(z.textA.value == "NaN"){	z.textA.value = "";	}
	//alert (result +"  "+ monthly);
}
function mort_xdelay3(value) {

	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, d=z.textD.value, x=z.resultbox.value;

	if (value == 'a'){str = a;}
	if (value == 'b'){str = b;}
	if (value == 'c'){str = c;}
	if (value == 'd'){str = d;}
	if (value == 'x'){str = x;}	
	
	str = mort_stripcomma(str);

	if (value == 'a'){	z.textA.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'b'){	z.textB.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'c'){	z.textC.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'd'){	z.textD.value = mort_addSeparatorsNF(str, '.', '.', ',');}
	if (value == 'x'){	z.resultbox.value = mort_addSeparatorsNF(str, '.', '.', ',');}

	if(value != 'a'){		setTimeout("mort_revcall3()",200);	}
}


function mort_revcall3() {
	var z=document.getElementById("mortgageCalc"), a=z.textA.value, b=z.textB.value, c=z.textC.value, d=z.textD.value, x=z.resultbox.value;
  
	bs = mort_stripcomma(b);	z.textB.value = mort_addSeparatorsNF(bs, '.', '.', ',');
	cs = mort_stripcomma(c);	z.textC.value = mort_addSeparatorsNF(cs, '.', '.', ',');
	ds = mort_stripcomma(d);	z.textD.value = mort_addSeparatorsNF(ds, '.', '.', ',');
	xs = mort_stripcomma(x);	z.resultbox.value = mort_addSeparatorsNF(xs, '.', '.', ',');
    //alert (xs +"  "+ bs+"  "+cs);
    mort_revcalc3(xs,bs,cs,ds);
}

function mort_revcalc3(x, b, c, d) {
//alert (x +"  "+ b+"  "+c+"  "+d);
	var monthly = x;
	var i = b/1200;  //interest_rate
	var years = c;
	var down_payment = parseFloat(d);	
	var n = years * 12;

    //var loan = monthly*((Math.pow((1+i),n)-1)/i);
    var PV = 0;
    PV = down_payment + monthly*((1-(1/Math.pow((1+i),n)))/i);
    //alert (down_payment + " " + PV);
    var loan = PV*Math.pow((1+i),n);
    loan = mort_roundNumber(loan, 2);
	    
	var z=document.getElementById("mortgageCalc");
		z.textA.value = mort_addSeparatorsNF(loan, '.', '.', ',');
	if(z.textA.value == "NaN"){	z.textA.value = "";	}
}
//-->