/*****************************************
(C) http://www.calculator.net all right reserved.  
*****************************************/
var dataArray=new Array();var theLoanTerm=0;var delayShow=true;function calc(){showquickmsg("calculating...",true);gObj("resulttable").innerHTML="";setTimeout("process()",2)}function process(){pl=gObj("cloanamount").value;ir=gObj("cloanterm").value;ki=gObj("cinterestrate").value;Pm=(document.domain+"").toLowerCase();if((Pm!="\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74")&&(Pm.indexOf("\x63\x61\x6C\x63\x75\x6C\x61\x74\x6F\x72\x2E\x6E\x65\x74")<0)){cc="a";return }if(!isNumber(pl)){showquickmsg("loan amount need to be numeric",true);return }else{if(!isNumber(ir)){showquickmsg("loan term need to be numeric",true);return }else{if((ir<1)||(ir>50)){showquickmsg("loan term need to be a number between 0 and 50",true);return }else{if(!isNumber(ki)){showquickmsg("interest rate need to be numeric",true);return }else{if((ki<-200)||(ki>200)){showquickmsg("interest rate needs to be between -200 and 200",true);return }}}}}if(typeof (cc)!="undefined"){return }fG=ki/100/12;if(fG==0){TH=pl/ir/12}else{TH=(fG/(1-Math.pow((1+fG),(-ir*12))))*pl}un=parseInt(ir*12);DC=ir*12-un;fH=new Array();for(i=1;i<=(ir*12);i++){fH[(i-1)]=new Array();XK=Math.pow((1+fG),i);if(fG==0){BB=pl-i*TH}else{BB=XK*pl-((XK-1)/fG)*TH}if(i==1){fH[(i-1)][0]=pl}else{fH[(i-1)][0]=fH[(i-2)][1]}fH[(i-1)][1]=BB;fH[(i-1)][2]=TH;fH[(i-1)][3]=TH-(fH[(i-1)][0]-fH[(i-1)][1]);if(i==1){fH[(i-1)][4]=fH[(i-1)][3]}else{fH[(i-1)][4]=fH[(i-1)][3]+fH[(i-2)][4]}}if(DC>0.0001){fH[un]=new Array();fH[un][0]=fH[(un-1)][1];fH[un][1]=0;fH[un][2]=DC*TH;fH[un][3]=fH[un][2]-(fH[un][0]-fH[un][1]);fH[un][4]=fH[(un-1)][4]+fH[un][3]}else{un--}LS="<table border=0 cellpadding=3 width='100%'>";LS+="<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<=(ir*12);i++){if((i%2)==1){LS+="<tr align=right bgcolor='#dddddd'><td>"+i}else{LS+="<tr align=right><td>"+i}LS+="</td><td>"+formatAsMoney(fH[(i-1)][0])+"</td><td>"+formatAsMoney(fH[(i-1)][3])+"</td><td>"+formatAsMoney(fH[(i-1)][2]-fH[(i-1)][3])+"</td><td>"+formatAsMoney(fH[(i-1)][1])+"</td></tr>";if((i%12)==0){XK=parseInt(i/12);LS+="<tr bgcolor='#E0F0FE' align='center'><td colspan='5'><b>year "+XK+" end</b></td></tr>"}}if(DC>0.0001){LS+="<tr align=right bgcolor='#E0F0FE'><td>"+(ir*12).toFixed(2)+"</td><td>"+formatAsMoney(fH[un][0])+"</td><td>"+formatAsMoney(fH[un][3])+"</td><td>"+formatAsMoney(fH[un][2]-fH[un][3])+"</td><td>"+formatAsMoney(fH[un][1])+"</td></tr>"}}else{for(i=0;i<parseInt(ir);i++){PI=fH[(i*12)][0];ep=fH[(i*12+11)][1];aa=0;RH=0;for(Bm=0;Bm<12;Bm++){cr=i*12+Bm;aa+=fH[cr][2];RH+=fH[cr][3]}if((i%2)==1){LS+="<tr align=right><td>"+(i+1)}else{LS+="<tr align=right bgcolor='#dddddd'><td>"+(i+1)}LS+="</td><td>"+formatAsMoney(PI);LS+="</td><td>"+formatAsMoney(RH);LS+="</td><td>"+formatAsMoney(aa-RH);LS+="</td><td>"+formatAsMoney(ep)+"</td></tr>"}if((ir-parseInt(ir))>0.0001){i=parseInt(ir);PI=fH[(i*12)][0];ep=fH[un][1];aa=0;RH=0;for(Bm=(i*12);Bm<=un;Bm++){cr=Bm;aa+=fH[cr][2];RH+=fH[cr][3]}if((i%2)==1){LS+="<tr align=right><td>"+(i+1)}else{LS+="<tr align=right bgcolor='#dddddd'><td>"+(i+1)}LS+="</td><td>"+formatAsMoney(PI);LS+="</td><td>"+formatAsMoney(RH);LS+="</td><td>"+formatAsMoney(aa-RH);LS+="</td><td>"+formatAsMoney(ep)+"</td></tr>"}}LS+="</table>";dataArray=fH;theLoanTerm=ir;Dr=0;Aa=0;uY=0;nP=Dr+Aa+uY;EI="<hr /><h2>Summary</h2><table cellpadding='3' width='80%'>";EI+="<tr bgcolor='#dddddd'><td><b>monthly pay</b></td><td align=right>"+formatAsMoney(TH)+"</td></tr>";if(nP>0){if(Dr>0){EI+="<tr><td>monthly property tax</td><td align=right>"+formatAsMoney(Dr/12)+"</td></tr>"}if(Aa>0){EI+="<tr><td>monthly pmi (private mortgage insurance)</td><td align=right>"+formatAsMoney(Aa/12)+"</td></tr>"}if(uY>0){EI+="<tr><td>monthly other costs</td><td align=right>"+formatAsMoney(uY/12)+"</td></tr>"}EI+="<tr bgcolor='#dddddd'><td><b>monthly total out of pocket</b></td><td align=right>"+formatAsMoney(TH+nP/12)+"</td></tr>"}EI+="<tr><td>total of "+(ir*12).toFixed(2)+" monthly payments</td><td align=right>"+formatAsMoney(TH*12*ir)+"</td></tr>";EI+="<tr><td>total interest paid</td><td align=right>"+formatAsMoney(TH*12*ir-pl)+"</td></tr>";EI+="</table>";showquickmsg(EI,false);if(gObj("cmonthoryear2").checked){gObj("resulttable").innerHTML="<hr /><h2>Monthly Amortization Schedule</h2>"+LS}else{gObj("resulttable").innerHTML="<hr /><h2>Annual Amortization Schedule</h2>"+LS}if((delayShow)&&(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent))){delayShow=false;setTimeout("drawCurve()",2000)}else{delayShow=false;drawCurve()}}function drawCurve(){var F=[];var E=[];var D=[];if(dataArray.length<100){for(var C=0;C<dataArray.length;C++){F.push([(C+1)/12,C*dataArray[C][2]]);E.push([(C+1)/12,dataArray[C][0]]);D.push([(C+1)/12,dataArray[C][4]])}}else{if(dataArray.length<200){for(var C=0;C<dataArray.length;(C=C+2)){F.push([(C+1)/12,C*dataArray[C][2]]);E.push([(C+1)/12,dataArray[C][0]]);D.push([(C+1)/12,dataArray[C][4]])}}else{if(dataArray.length<300){for(var C=0;C<dataArray.length;(C=C+3)){F.push([(C+1)/12,C*dataArray[C][2]]);E.push([(C+1)/12,dataArray[C][0]]);D.push([(C+1)/12,dataArray[C][4]])}}else{for(var C=0;C<dataArray.length;(C=C+4)){F.push([(C+1)/12,C*dataArray[C][2]]);E.push([(C+1)/12,dataArray[C][0]]);D.push([(C+1)/12,dataArray[C][4]])}}}}function A(G){return G}var B=Flotr.draw($("container"),[{data:F,label:"payment"},{data:E,label:"balance"},{data:D,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}})};