/*****************************************
(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{YS=Math.ceil(B+11+(D-1)*12);ar=C;ar+=Math.floor(YS/12);YS=YS%12;if(YS==0){YS=12;ar-=1}ar=(ar+"").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+" - "+YS+"/"+ar}}function calc(){showquickmsg("calculating...",true);gObj("resulttable").innerHTML="";setTimeout("process()",2)}function process(){wj=gObj("cloanamount").value;YN=gObj("cloanterm").value;QF=gObj("cinterestrate").value;NM=gObj("cstartmonth").value;OH=gObj("cstartyear").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(wj)){showquickmsg("loan amount need to be numeric",true);return }else{if(!isNumber(YN)){showquickmsg("loan term need to be numeric",true);return }else{if(!isNumber(NM)){showquickmsg("please select start month",true);return }else{if(!isNumber(OH)){showquickmsg("start year need to be numeric",true);return }else{if((YN<1)||(YN>500)){showquickmsg("loan term need to be a number between 0 and 500",true);return }else{if(!isNumber(QF)){showquickmsg("interest rate need to be numeric",true);return }else{if((QF<-200)||(QF>200)){showquickmsg("interest rate needs to be between -200 and 200",true);return }}}}}}}if(typeof (cc)!="undefined"){return }Im=QF/100/12;if(Im==0){iH=wj/YN/12}else{iH=(Im/(1-Math.pow((1+Im),(-YN*12))))*wj}SX=parseInt(YN*12);Jo=YN*12-SX;gS=new Array();for(i=1;i<=(YN*12);i++){gS[(i-1)]=new Array();hG=Math.pow((1+Im),i);if(Im==0){mX=wj-i*iH}else{mX=hG*wj-((hG-1)/Im)*iH}if(i==1){gS[(i-1)][0]=wj}else{gS[(i-1)][0]=gS[(i-2)][1]}gS[(i-1)][1]=mX;gS[(i-1)][2]=iH;gS[(i-1)][3]=iH-(gS[(i-1)][0]-gS[(i-1)][1]);if(i==1){gS[(i-1)][4]=gS[(i-1)][3]}else{gS[(i-1)][4]=gS[(i-1)][3]+gS[(i-2)][4]}}if(Jo>0.0001){gS[SX]=new Array();gS[SX][0]=gS[(SX-1)][1];gS[SX][1]=0;gS[SX][2]=Jo*iH;gS[SX][3]=gS[SX][2]-(gS[SX][0]-gS[SX][1]);gS[SX][4]=gS[(SX-1)][4]+gS[SX][3]}else{SX--}var A=[];A.push("<table border=0 cellpadding=3 width='100%'>");A.push("<tr align=right bgcolor='#E0F0FE'><td>&nbsp;</td><td><b>date</b></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<=(YN*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>"+gDate(NM,OH,i,1)+"</td><td>"+formatAsMoney(gS[(i-1)][0])+"</td><td>"+formatAsMoney(gS[(i-1)][3])+"</td><td>"+formatAsMoney(gS[(i-1)][2]-gS[(i-1)][3])+"</td><td>"+formatAsMoney(gS[(i-1)][1])+"</td></tr>");if((i%12)==0){hG=parseInt(i/12);A.push("<tr bgcolor='#E0F0FE' align='center'><td colspan='6'><b>year "+hG+" end</b></td></tr>")}}if(Jo>0.0001){A.push("<tr align=right bgcolor='#E0F0FE'><td>"+(YN*12).toFixed(2)+"</td><td>"+gDate(NM,OH,i,1)+"</td><td>"+formatAsMoney(gS[SX][0])+"</td><td>"+formatAsMoney(gS[SX][3])+"</td><td>"+formatAsMoney(gS[SX][2]-gS[SX][3])+"</td><td>"+formatAsMoney(gS[SX][1])+"</td></tr>")}}else{for(i=0;i<parseInt(YN);i++){tData0=gS[(i*12)][0];tData1=gS[(i*12+11)][1];tData2=0;tData3=0;for(j=0;j<12;j++){idN=i*12+j;tData2+=gS[idN][2];tData3+=gS[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>"+gDate(NM,OH,(i+1),0)+"</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((YN-parseInt(YN))>0.0001){i=parseInt(YN);tData0=gS[(i*12)][0];tData1=gS[SX][1];tData2=0;tData3=0;for(j=(i*12);j<=SX;j++){idN=j;tData2+=gS[idN][2];tData3+=gS[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>"+gDate(NM,OH,YN,0)+"</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>");Md=A.join("");dataArray=gS;theLoanTerm=YN;XI=0;jQ="<hr /><h2>Summary</h2><table cellpadding='3' width='80%'>";jQ+="<tr bgcolor='#dddddd'><td><b>monthly pay</b></td><td align=right>"+formatAsMoney(iH)+"</td></tr>";jQ+="<tr><td>total of "+(YN*12).toFixed(2)+" monthly payments</td><td align=right>"+formatAsMoney(iH*12*YN)+"</td></tr>";jQ+="<tr><td>total interest paid</td><td align=right>"+formatAsMoney(iH*12*YN-wj)+"</td></tr>";jQ+="</table>";showquickmsg(jQ,false);if(gObj("cmonthoryear2").checked){gObj("resulttable").innerHTML="<hr /><h2>Monthly Amortization Schedule</h2>"+Md}else{gObj("resulttable").innerHTML="<hr /><h2>Annual Amortization Schedule</h2>"+Md}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:"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}})};