/*****************************************
(C) http://www.calculator.net all right reserved.  
*****************************************/
var dataArray=new Array();var theLoanTerm=0;var delayShow=true;function popMenu(A){NY="";if(A=="fixterm"){NY=NY+'<li id=\'menuon\'><a href="#" onclick="popMenu(\'fixterm\');">Fix Term</a></li> <li><a href="#" onclick="popMenu(\'fixpay\');">Fix Payment</a></li>';gObj("ctype").value="fixterm";gObj("fixtermtable").style.display="block";gObj("fixpaytable").style.display="none"}else{NY=NY+'<li><a href="#" onclick="popMenu(\'fixterm\');">Fix Term</a></li> <li id=\'menuon\'><a href="#" onclick="popMenu(\'fixpay\');">Fix Payment</a></li>';gObj("ctype").value="fixpay";gObj("fixtermtable").style.display="none";gObj("fixpaytable").style.display="block"}NY="<ul>"+NY+"</ul>";gObj("topmenu").innerHTML=NY;calc();}function calc(){showquickmsg("calculating...",true);gObj("resulttable").innerHTML="";setTimeout("process()",2)}function process(){rL=gObj("cloanamount").value;WS=gObj("cloanterm").value;me=gObj("cinterestrate").value;fj=gObj("cmonthlypay").value;RQ=gObj("ctype").value;jq=(document.domain+"").toLowerCase();if((jq!="\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74")&&(jq.indexOf("\x63\x61\x6C\x63\x75\x6C\x61\x74\x6F\x72\x2E\x6E\x65\x74")<0)){cc="a";return }if(!isNumber(rL)){showquickmsg("loan amount need to be numeric",true);return }else{if(!isNumber(me)){showquickmsg("interest rate need to be numeric",true);return }else{if((me<-200)||(me>200)){showquickmsg("interest rate needs to be between -200 and 200",true);return }}}if(typeof (cc)!="undefined"){return }AK=me/100/12;KS=0;wB=0;if(RQ=="fixterm"){if(!isNumber(WS)){showquickmsg("loan term need to be numeric",true);return }if((WS<1)||(WS>50)){showquickmsg("loan term need to be a number between 0 and 50",true);return }if(AK==0){KS=rL/WS/12}else{KS=(AK/(1-Math.pow((1+AK),(-WS*12))))*rL}}else{if(!isNumber(fj)){showquickmsg("monthly pay need to be numeric",true);return }if(fj<=0){showquickmsg("monthly pay need to positive",true);return }if(parseFloat(fj)<=(AK*rL)){showquickmsg("if pay $"+fj+" per month, you will never be able to pay clear your debt. you will need to pay more than "+formatAsMoney(AK*rL)+" per month to pay clear.",false);return }if(AK==0){Jp=rL/fj/12}else{Jp=-1*(Math.log(1-(AK*rL/fj)))/(Math.log(1+AK))/12}KS=parseFloat(fj);WS=Jp}Br=parseInt(WS*12);bq=WS*12-Br;Rt=new Array();for(i=1;i<=(WS*12);i++){Rt[(i-1)]=new Array();Fi=Math.pow((1+AK),i);if(AK==0){mM=rL-i*KS}else{mM=Fi*rL-((Fi-1)/AK)*KS}if(i==1){Rt[(i-1)][0]=rL}else{Rt[(i-1)][0]=Rt[(i-2)][1]}Rt[(i-1)][1]=mM;Rt[(i-1)][2]=KS;Rt[(i-1)][3]=KS-(Rt[(i-1)][0]-Rt[(i-1)][1]);if(i==1){Rt[(i-1)][4]=Rt[(i-1)][3]}else{Rt[(i-1)][4]=Rt[(i-1)][3]+Rt[(i-2)][4]}}if(bq>0.0001){Rt[Br]=new Array();Rt[Br][0]=Rt[(Br-1)][1];Rt[Br][1]=0;Rt[Br][2]=bq*KS;Rt[Br][3]=Rt[Br][2]-(Rt[Br][0]-Rt[Br][1]);Rt[Br][4]=Rt[(Br-1)][4]+Rt[Br][3]}else{Br--}tU="<table border=0 cellpadding=3 width='100%'>";tU+="<tr align=right bgcolor='#E0F0FE'><td>&nbsp;</td><td><b>beginning balance</b></td><td><b>interest</b></td><td><b>principle</b></td><td><b>ending balance</b></td></tr>";if(gObj("cmonthoryear2").checked){for(i=1;i<=(WS*12);i++){if((i%2)==1){tU+="<tr align=right bgcolor='#dddddd'><td>"+i}else{tU+="<tr align=right><td>"+i}tU+="</td><td>"+formatAsMoney(Rt[(i-1)][0])+"</td><td>"+formatAsMoney(Rt[(i-1)][3])+"</td><td>"+formatAsMoney(Rt[(i-1)][2]-Rt[(i-1)][3])+"</td><td>"+formatAsMoney(Rt[(i-1)][1])+"</td></tr>";if((i%12)==0){Fi=parseInt(i/12);tU+="<tr bgcolor='#E0F0FE' align='center'><td colspan='5'><b>year "+Fi+" end</b></td></tr>"}}if(bq>0.0001){tU+="<tr align=right bgcolor='#E0F0FE'><td>"+(WS*12).toFixed(2)+"</td><td>"+formatAsMoney(Rt[Br][0])+"</td><td>"+formatAsMoney(Rt[Br][3])+"</td><td>"+formatAsMoney(Rt[Br][2]-Rt[Br][3])+"</td><td>"+formatAsMoney(Rt[Br][1])+"</td></tr>"}}else{for(i=0;i<parseInt(WS);i++){JT=Rt[(i*12)][0];iS=Rt[(i*12+11)][1];EU=0;TU=0;for(XY=0;XY<12;XY++){DJ=i*12+XY;EU+=Rt[DJ][2];TU+=Rt[DJ][3]}if((i%2)==1){tU+="<tr align=right><td>"+(i+1)}else{tU+="<tr align=right bgcolor='#dddddd'><td>"+(i+1)}tU+="</td><td>"+formatAsMoney(JT);tU+="</td><td>"+formatAsMoney(TU);tU+="</td><td>"+formatAsMoney(EU-TU);tU+="</td><td>"+formatAsMoney(iS)+"</td></tr>"}if((WS-parseInt(WS))>0.0001){i=parseInt(WS);JT=Rt[(i*12)][0];iS=Rt[Br][1];EU=0;TU=0;for(XY=(i*12);XY<=Br;XY++){DJ=XY;EU+=Rt[DJ][2];TU+=Rt[DJ][3]}if((i%2)==1){tU+="<tr align=right><td>"+(i+1)}else{tU+="<tr align=right bgcolor='#dddddd'><td>"+(i+1)}tU+="</td><td>"+formatAsMoney(JT);tU+="</td><td>"+formatAsMoney(TU);tU+="</td><td>"+formatAsMoney(EU-TU);tU+="</td><td>"+formatAsMoney(iS)+"</td></tr>"}}tU+="</table>";dataArray=Rt;theLoanTerm=WS;if(bq>0.0001){theLoanTerm=parseFloat(WS).toFixed(2)}wv=0;qx=0;wd=0;Mg=wv+qx+wd;CV="<hr /><h2>Summary</h2><table cellpadding='3' width='80%'>";if(RQ=="fixterm"){CV+="<tr bgcolor='#dddddd'><td><b>monthly pay</b></td><td align=right>"+formatAsMoney(KS)+"</td></tr>";if(Mg>0){if(wv>0){CV+="<tr><td>monthly property tax</td><td align=right>"+formatAsMoney(wv/12)+"</td></tr>"}if(qx>0){CV+="<tr><td>monthly pmi (private mortgage insurance)</td><td align=right>"+formatAsMoney(qx/12)+"</td></tr>"}if(wd>0){CV+="<tr><td>monthly other costs</td><td align=right>"+formatAsMoney(wd/12)+"</td></tr>"}CV+="<tr bgcolor='#dddddd'><td><b>monthly total out of pocket</b></td><td align=right>"+formatAsMoney(KS+Mg/12)+"</td></tr>"}CV+="<tr><td>total of "+(WS*12).toFixed(2)+" monthly payments</td><td align=right>"+formatAsMoney(KS*12*WS)+"</td></tr>";CV+="<tr><td>total interest paid</td><td align=right>"+formatAsMoney(KS*12*WS-rL)+"</td></tr>"}else{CV+="<tr bgcolor='#dddddd'><td><b>time to pay clear if pay "+fj+" per month</b></td><td align=right><b>"+WS.toFixed(2)+"</b> years or <b>"+(WS*12).toFixed(2)+"</b> months</td></tr>";CV+="<tr><td>total of "+(WS*12).toFixed(2)+" monthly payments</td><td align=right>"+formatAsMoney(KS*12*WS)+"</td></tr>";CV+="<tr><td>total interest paid</td><td align=right>"+formatAsMoney(KS*12*WS-rL)+"</td></tr>"}CV+="</table>";showquickmsg(CV,false);if(gObj("cmonthoryear2").checked){gObj("resulttable").innerHTML="<hr /><h2>Monthly Amortization Schedule</h2>"+tU}else{gObj("resulttable").innerHTML="<hr /><h2>Annual Amortization Schedule</h2>"+tU}if((delayShow)&&(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent))){delayShow=false;setTimeout("drawCurve()",2000)}else{delayShow=false;drawCurve()}}function drawCurve(){var E=[];var D=[];var C=[];if(dataArray.length<100){for(var B=0;B<dataArray.length;B++){E.push([(B+1)/12,B*dataArray[B][2]]);D.push([(B+1)/12,dataArray[B][0]]);C.push([(B+1)/12,dataArray[B][4]])}}else{if(dataArray.length<200){for(var B=0;B<dataArray.length;(B=B+2)){E.push([(B+1)/12,B*dataArray[B][2]]);D.push([(B+1)/12,dataArray[B][0]]);C.push([(B+1)/12,dataArray[B][4]])}}else{if(dataArray.length<300){for(var B=0;B<dataArray.length;(B=B+3)){E.push([(B+1)/12,B*dataArray[B][2]]);D.push([(B+1)/12,dataArray[B][0]]);C.push([(B+1)/12,dataArray[B][4]])}}else{for(var B=0;B<dataArray.length;(B=B+4)){E.push([(B+1)/12,B*dataArray[B][2]]);D.push([(B+1)/12,dataArray[B][0]]);C.push([(B+1)/12,dataArray[B][4]])}}}}function A(G){return G}var F=Flotr.draw($("container"),[{data:E,label:"payment"},{data:D,label:"balance"},{data:C,label:"interest"}],{legend:{position:"ne",labelFormatter:A,backgroundColor:"#D2E8FF"},xaxis:{ticks:[[1/12,""],formatNum(theLoanTerm*0.2),formatNum(theLoanTerm*0.4),formatNum(theLoanTerm*0.6),formatNum(theLoanTerm*0.8),theLoanTerm],max:theLoanTerm}})};