/*****************************************
(C) http://www.calculator.net all right reserved.  
*****************************************/
var currentbgcolor="#dddddd";function getNextBg(){if(currentbgcolor=="#ffffff"){currentbgcolor="#dddddd"}else{currentbgcolor="#ffffff"}return currentbgcolor}var dataArray=new Array();var theLoanTerm=0;var delayShow=true;function calc(){showquickmsg("calculating...",true);currentbgcolor="#dddddd";rE=gObj("cloanamount").value;je=gObj("cloanterm").value;PX=gObj("cinterestrate").value;bK=gObj("cyears").value;Mh=gObj("cmonths").value;PZ=gObj("cnyears").value;AM=gObj("cnmonths").value;KT=gObj("cninterestrate").value;sF=gObj("cpoints").value;bl=gObj("ccashout").value;CW=gObj("ccosts").value;dd=(document.domain+"").toLowerCase();if((dd!="\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74")&&(dd.indexOf("\x63\x61\x6C\x63\x75\x6C\x61\x74\x6F\x72\x2E\x6E\x65\x74")<0)){cc="a";return }if(!isNumber(rE)){showquickmsg("annual income need to be numeric",true);return }else{if(!isNumber(je)){showquickmsg("loan term need to be numeric",true);return }else{if((je<1)||(je>50)){showquickmsg("loan term need to be a number between 0 and 50",true);return }else{if(!isNumber(PX)){showquickmsg("interest rate need to be numeric",true);return }else{if((PX<-200)||(PX>200)){showquickmsg("interest rate needs to be between -200 and 200",true);return }else{if(!isNumber(bK)){showquickmsg("remaining year need to be numeric",true);return }else{if((bK<0)||(bK>50)){showquickmsg("remaining year needs to be between 0 and 50",true);return }else{if(!isNumber(Mh)){showquickmsg("remaining month need to be numeric",true);return }else{if((Mh<0)||(Mh>11)){showquickmsg("remaining month needs to be between 0 and 11",true);return }else{if(!isNumber(PZ)){showquickmsg("new loan term year need to be numeric",true);return }else{if((PZ<0)||(PZ>50)){showquickmsg("new loan term year needs to be between 0 and 50",true);return }else{if(!isNumber(AM)){showquickmsg("new loan term month need to be numeric",true);return }else{if((AM<0)||(AM>11)){showquickmsg("new loan term month needs to be between 0 and 11",true);return }else{if(!isNumber(KT)){showquickmsg("interest rate need to be numeric",true);return }else{if((KT<-200)||(KT>200)){showquickmsg("interest rate needs to be between -200 and 200",true);return }else{if(!isNumber(sF)){showquickmsg("point need to be numeric",true);return }else{if((sF<0)||(sF>100)){showquickmsg("point needs to be between 0 and 100",true);return }else{if(!isNumber(bl)){showquickmsg("cash out amount need to be numeric",true);return }else{if(!isNumber(CW)){showquickmsg("cost need to be numeric",true);return }}}}}}}}}}}}}}}}}}}if(typeof (cc)!="undefined"){return }rE=parseFloat(rE);je=parseFloat(je);PX=parseFloat(PX);bK=parseFloat(bK);Mh=parseFloat(Mh);PZ=parseFloat(PZ);AM=parseFloat(AM);KT=parseFloat(KT);sF=parseFloat(sF);bl=parseFloat(bl);CW=parseFloat(CW);if(je<=(bK+Mh/12)){showquickmsg("time remaining should be shorter than loan term",true);return }Oe=parseInt(je*12-bK*12-Mh);JB=PX/100/12;if(JB==0){XA=rE/je/12}else{XA=(JB/(1-Math.pow((1+JB),(-je*12))))*rE}GD=parseInt(je*12);XF=je*12-GD;JI=new Array();for(uw=1;uw<=(je*12);uw++){JI[(uw-1)]=new Array();Nr=Math.pow((1+JB),uw);if(JB==0){LF=rE-uw*XA}else{LF=Nr*rE-((Nr-1)/JB)*XA}if(uw==1){JI[(uw-1)][0]=rE}else{JI[(uw-1)][0]=JI[(uw-2)][1]}JI[(uw-1)][1]=LF;JI[(uw-1)][2]=XA;JI[(uw-1)][3]=XA-(JI[(uw-1)][0]-JI[(uw-1)][1]);if(uw==1){JI[(uw-1)][4]=JI[(uw-1)][3]}else{JI[(uw-1)][4]=JI[(uw-1)][3]+JI[(uw-2)][4]}}if(XF>0.0001){JI[GD]=new Array();JI[GD][0]=JI[(GD-1)][1];JI[GD][1]=0;JI[GD][2]=XF*XA;JI[GD][3]=JI[GD][2]-(JI[GD][0]-JI[GD][1]);JI[GD][4]=JI[(GD-1)][4]+JI[GD][3]}else{GD--}ma=JI[(Oe-1)][1];sY=ma+bl;FQ=sY*(1-sF*0.01);bD=sY*sF*0.01+CW;ws=parseInt(PZ*12+AM);OV=KT/100/12;if(OV==0){rV=FQ/ws}else{rV=(OV/(1-Math.pow((1+OV),(-ws))))*FQ}YO=new Array();for(uw=1;uw<=ws;uw++){YO[(uw-1)]=new Array();Nr=Math.pow((1+OV),uw);if(OV==0){LF=sY-uw*rV}else{LF=Nr*sY-((Nr-1)/OV)*rV}if(uw==1){YO[(uw-1)][0]=sY}else{YO[(uw-1)][0]=YO[(uw-2)][1]}YO[(uw-1)][1]=LF;YO[(uw-1)][2]=rV;YO[(uw-1)][3]=rV-(YO[(uw-1)][0]-YO[(uw-1)][1]);if(uw==1){YO[(uw-1)][4]=YO[(uw-1)][3]}else{YO[(uw-1)][4]=YO[(uw-1)][3]+YO[(uw-2)][4]}}dataArray=JI;theLoanTerm=je;if(Math.abs(bl)<0.01){kh=bD/(XA-rV)}else{kh=-1}hw="<h2>Results</h2><table width='100%'><tr bgcolor='#e0f0fe'><td>&nbsp;</td><td align='right'><b>remaining of <br>the current loan</b></td><td align='right' valign='bottom'><b>new loan</b></td><td align='right' valign='bottom'><b>difference</b></td></tr>";hw+="<tr bgcolor='"+getNextBg()+"'><td>remaining principal/loan amount</td><td align='right'>"+formatAsMoney(ma)+"</td><td align='right'>"+formatAsMoney(FQ)+"</td><td align='right'>"+formatAsMoney(FQ-ma)+"</td></tr>";hw+="<tr bgcolor='"+getNextBg()+"'><td>length</td><td align='right'>"+parseInt(bK*12+Mh)+" months</td><td align='right'>"+ws+" months</td><td align='right'>"+(ws-parseInt(bK*12+Mh))+" months</td></tr>";hw+="<tr bgcolor='"+getNextBg()+"'><td>interest rate</td><td align='right'>"+PX+"%</td><td align='right'>"+KT+"%</td><td align='right'>"+(KT-PX)+"%</td></tr>";hw+="<tr bgcolor='"+getNextBg()+"'><td>monthly pay</td><td align='right'>"+formatAsMoney(XA)+"</td><td align='right'>"+formatAsMoney(rV)+"</td><td align='right'>"+formatAsMoney(rV-XA)+"</td></tr>";hw+="<tr bgcolor='"+getNextBg()+"'><td>total payment</td><td align='right'>"+formatAsMoney(XA*parseInt(bK*12+Mh))+"</td><td align='right'>"+formatAsMoney(rV*ws)+"</td><td align='right'>"+formatAsMoney(rV*ws-XA*parseInt(bK*12+Mh))+"</td></tr>";hw+="<tr bgcolor='"+getNextBg()+"'><td>total interest</td><td align='right'>"+formatAsMoney(XA*parseInt(bK*12+Mh)-ma)+"</td><td align='right'>"+formatAsMoney(rV*ws-FQ)+"</td><td align='right'>"+formatAsMoney(rV*ws-FQ-(XA*parseInt(bK*12+Mh)-ma))+"</td></tr>";if(sF>0.001){hw+="<tr bgcolor='"+getNextBg()+"'><td>points equivalent to </td><td align='right'>NA</td><td align='right'>"+formatAsMoney(sY*sF*0.01)+"</td><td align='right'>&nbsp;</td></tr>"}hw+="<tr bgcolor='"+getNextBg()+"'><td>amount to pay at <br>the refinance day (cost + points)</td><td align='right'>$0</td><td align='right'>"+formatAsMoney(bD)+"</td><td align='right'>&nbsp;</td></tr>";if(Math.abs(bl)>0.01){hw+="<tr bgcolor='"+getNextBg()+"'><td>cash out</td><td align='right'>$0</td><td align='right'>"+formatAsMoney(bl)+"</td><td align='right'>&nbsp;</td></tr>";hw+="<tr bgcolor='"+getNextBg()+"'><td>bring home amount after <br>the cost and point at the refinance day</td><td align='right'>$0</td><td align='right'>"+formatAsMoney(bl-bD)+"</td><td align='right'>&nbsp;</td></tr>"}if(kh>0){hw+="<tr bgcolor='"+getNextBg()+"'><td>time to recover the cost <br>and point of refinancing</td><td align='right'>NA</td><td align='right'>"+kh.toFixed(2)+" months</td><td align='right'>&nbsp;</td></tr>"}hw+="<tr bgcolor='#e0f0fe' height='5'><td colspan='4'></td></tr></table>";showquickmsg(hw,false)};
