/*****************************************
(C) http://www.calculator.net all right reserved.  
*****************************************/
var dataArray=new Array();var theLoanTerm=0;var delayShow=true;function gDate(B,C,D,A){B=Math.floor(B);C=Math.floor(C);if(A==1){B+=(D-1);C+=Math.floor(B/12);B=B%12;if(B==0){B=12;C-=1}return B+"/"+C}else{kc=Math.ceil(B+11+(D-1)*12);mW=C;mW+=Math.floor(kc/12);kc=kc%12;if(kc==0){kc=12;mW-=1}mW=(mW+"").substring(2);if((D-parseInt(D))>0.0001){D=Math.ceil(D)}B+=(D-1)*12;C+=Math.floor(B/12);B=B%12;if(B==0){B=12;C-=1}C=(C+"").substring(2);return B+"/"+C+" - "+kc+"/"+mW}}function calc(){showquickmsg("calculating...",true);gObj("resulttable").innerHTML="";setTimeout("process()",2)}function process(){Jq=gObj("cloanamount").value;GN=gObj("cloanterm").value;mj=gObj("cinterestrate").value;eP=gObj("cpropertytaxes").value;nB=gObj("cpmi").value;Np=gObj("cothercost").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(Jq)){showquickmsg("loan amount need to be numeric",true);return }else{if(!isNumber(GN)){showquickmsg("loan term need to be numeric",true);return }else{if((GN<1)||(GN>500)){showquickmsg("loan term need to be a number between 0 and 500",true);return }else{if(!isNumber(mj)){showquickmsg("interest rate need to be numeric",true);return }else{if((mj<-200)||(mj>200)){showquickmsg("interest rate needs to be between -200 and 200",true);return }else{if(!isNumber(eP)){showquickmsg("property taxes need to be numeric",true);return }else{if(!isNumber(nB)){showquickmsg("private mortgage insurance need to be numeric",true);return }else{if(!isNumber(Np)){showquickmsg("other insurance and costs need to be numeric",true);return }}}}}}}}if(typeof (cc)!="undefined"){return }Tx=mj/100/12;if(Tx==0){wq=Jq/GN/12}else{wq=(Tx/(1-Math.pow((1+Tx),(-GN*12))))*Jq}Wx=parseInt(GN*12);GC=GN*12-Wx;qB=new Array();for(i=1;i<=(GN*12);i++){qB[(i-1)]=new Array();uv=Math.pow((1+Tx),i);if(Tx==0){lr=Jq-i*wq}else{lr=uv*Jq-((uv-1)/Tx)*wq}if(i==1){qB[(i-1)][0]=Jq}else{qB[(i-1)][0]=qB[(i-2)][1]}qB[(i-1)][1]=lr;qB[(i-1)][2]=wq;qB[(i-1)][3]=wq-(qB[(i-1)][0]-qB[(i-1)][1]);if(i==1){qB[(i-1)][4]=qB[(i-1)][3]}else{qB[(i-1)][4]=qB[(i-1)][3]+qB[(i-2)][4]}}if(GC>0.0001){qB[Wx]=new Array();qB[Wx][0]=qB[(Wx-1)][1];qB[Wx][1]=0;qB[Wx][2]=GC*wq;qB[Wx][3]=qB[Wx][2]-(qB[Wx][0]-qB[Wx][1]);qB[Wx][4]=qB[(Wx-1)][4]+qB[Wx][3]}else{Wx--}var A=[];A.push("<table border=0 cellpadding=3 width='100%'>");A.push("<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<=(GN*12);i++){if((i%2)==1){A.push("<tr align=right bgcolor='#dddddd'><td>"+i)}else{A.push("<tr align=right><td>"+i)}A.push("</td><td>"+formatAsMoney(qB[(i-1)][0])+"</td><td>"+formatAsMoney(qB[(i-1)][3])+"</td><td>"+formatAsMoney(qB[(i-1)][2]-qB[(i-1)][3])+"</td><td>"+formatAsMoney(qB[(i-1)][1])+"</td></tr>");if((i%12)==0){uv=parseInt(i/12);A.push("<tr bgcolor='#E0F0FE' align='center'><td colspan='6'><b>year "+uv+" end</b></td></tr>")}}if(GC>0.0001){A.push("<tr align=right bgcolor='#E0F0FE'><td>"+(GN*12).toFixed(2)+"</td><td>"+formatAsMoney(qB[Wx][0])+"</td><td>"+formatAsMoney(qB[Wx][3])+"</td><td>"+formatAsMoney(qB[Wx][2]-qB[Wx][3])+"</td><td>"+formatAsMoney(qB[Wx][1])+"</td></tr>")}}else{for(i=0;i<parseInt(GN);i++){tData0=qB[(i*12)][0];tData1=qB[(i*12+11)][1];tData2=0;tData3=0;for(j=0;j<12;j++){idN=i*12+j;tData2+=qB[idN][2];tData3+=qB[idN][3]}if((i%2)==1){A.push("<tr align=right><td>"+(i+1))}else{A.push("<tr align=right bgcolor='#dddddd'><td>"+(i+1))}A.push("</td><td>"+formatAsMoney(tData0));A.push("</td><td>"+formatAsMoney(tData3));A.push("</td><td>"+formatAsMoney(tData2-tData3));A.push("</td><td>"+formatAsMoney(tData1)+"</td></tr>")}if((GN-parseInt(GN))>0.0001){i=parseInt(GN);tData0=qB[(i*12)][0];tData1=qB[Wx][1];tData2=0;tData3=0;for(j=(i*12);j<=Wx;j++){idN=j;tData2+=qB[idN][2];tData3+=qB[idN][3]}if((i%2)==1){A.push("<tr align=right><td>"+(i+1))}else{A.push("<tr align=right bgcolor='#dddddd'><td>"+(i+1))}A.push("</td><td>"+formatAsMoney(tData0));A.push("</td><td>"+formatAsMoney(tData3));A.push("</td><td>"+formatAsMoney(tData2-tData3));A.push("</td><td>"+formatAsMoney(tData1)+"</td></tr>")}}A.push("</table>");uT=A.join("");dataArray=qB;theLoanTerm=GN;eP=parseFloat(eP);nB=parseFloat(nB);Np=parseFloat(Np);ob=eP+nB+Np;wD="<hr /><h2>Summary</h2><table cellpadding='3' width='80%'>";wD+="<tr bgcolor='#dddddd'><td><b>monthly pay</b></td><td align=right>"+formatAsMoney(wq)+"</td></tr>";if(ob>0){if(eP>0){wD+="<tr><td>monthly property tax</td><td align=right>"+formatAsMoney(eP/12)+"</td></tr>"}if(nB>0){wD+="<tr><td>monthly pmi (private mortgage insurance)</td><td align=right>"+formatAsMoney(nB/12)+"</td></tr>"}if(Np>0){wD+="<tr><td>monthly other costs</td><td align=right>"+formatAsMoney(Np/12)+"</td></tr>"}wD+="<tr bgcolor='#dddddd'><td><b>monthly total out of pocket</b></td><td align=right>"+formatAsMoney(wq+ob/12)+"</td></tr>"}wD+="<tr><td>total of "+(GN*12).toFixed(2)+" monthly payments</td><td align=right>"+formatAsMoney(wq*12*GN)+"</td></tr>";wD+="<tr><td>total interest paid</td><td align=right>"+formatAsMoney(wq*12*GN-Jq)+"</td></tr>";wD+="</table>";showquickmsg(wD,false);if(gObj("cmonthoryear2").checked){gObj("resulttable").innerHTML="<hr /><h2>Monthly Amortization Schedule</h2>"+uT}else{gObj("resulttable").innerHTML="<hr /><h2>Annual Amortization Schedule</h2>"+uT}if((delayShow)&&(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent))){delayShow=false;setTimeout("drawCurve()",1500)}else{delayShow=false;drawCurve()}}function drawCurve(){var F=[];var D=[];var C=[];if(dataArray.length<100){for(var B=0;B<dataArray.length;B++){F.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)){F.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)){F.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)){F.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 E=Flotr.draw($("container"),[{data:F,label:"total payment"},{data:D,label:"remaining balance"},{data:C,label:"total interest paid"}],{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}})};
 