/*****************************************
(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(){mH=trimAll(gObj("cstartingprinciple").value+"");vc=trimAll(gObj("cinterestrate").value+"");es=trimAll(gObj("cyears").value+"");VH=trimAll(gObj("cmonths").value+"");jC=trimAll(gObj("ctaxtrate").value+"");BH=trimAll(gObj("cinflationrate").value+"");lf=gObj("ccompound").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(mH)){showquickmsg("deposit amount need to be numeric",true);return }else{if(!isNumber(vc)){showquickmsg("interest rate need to be numeric",true);return }else{if((vc<-200)||(vc>200)){showquickmsg("interest rate needs to be between -200 and 200",true);return }else{if(!isNumber(es)){showquickmsg("deposit years need to be numeric",true);return }else{if(!isNumber(VH)){showquickmsg("deposit month need to be numeric",true);return }else{if(!isNumber(jC)){showquickmsg("marginal tax rate need to be numeric",true);return }else{if(!isNumber(BH)){showquickmsg("inflation rate need to be numeric",true);return }}}}}}}if(typeof (cc)!="undefined"){return }mH=parseFloat(mH);vc=parseFloat(vc);VH=parseFloat(VH);es=parseFloat(es);jC=parseFloat(jC);BH=parseFloat(BH);es=es+VH/12;rX=0;Se=parseInt(es*12);theLoanTerm=es;if(lf=="annually"){rX=Math.log(vc/100+1)}else{if(lf=="semiannually"){rX=Math.log(Math.pow((vc/200+1),2))}else{if(lf=="quarterly"){rX=Math.log(Math.pow((vc/400+1),4))}else{if(lf=="monthly"){rX=Math.log(Math.pow((vc/1200+1),12))}else{rX=vc/100}}}}vr=((Math.pow(Math.E,rX)-1)*100).toFixed(3);TL=new Array();FT=0;Ws=0;for(i=1;i<=(es*12);i++){TL[(i-1)]=new Array();if(i==1){TL[(i-1)][0]=mH;TL[(i-1)][1]=TL[(i-1)][0]}else{TL[(i-1)][0]=TL[(i-2)][4];TL[(i-1)][1]=TL[(i-2)][2]}TL[(i-1)][2]=TL[(i-1)][1]*Math.pow(Math.E,(rX/12));TL[(i-1)][3]=TL[(i-1)][2]-TL[(i-1)][1];TL[(i-1)][6]=TL[(i-1)][3]*jC/100;TL[(i-1)][2]=TL[(i-1)][2]-TL[(i-1)][6];TL[(i-1)][4]=TL[(i-1)][0];FT+=TL[(i-1)][3];Ws+=TL[(i-1)][6];TL[(i-1)][5]=FT;TL[(i-1)][7]=Ws}Bb=parseInt(es*12);QD=es*12-Bb;if(QD>0.0001){Se++;TL[Bb]=new Array();TL[Bb][0]=TL[(Bb-1)][4];TL[Bb][1]=TL[(Bb-1)][2];TL[Bb][2]=TL[Bb][1]*Math.pow(Math.E,(rX*QD/12));TL[Bb][3]=TL[Bb][2]-TL[Bb][1];TL[Bb][6]=TL[Bb][3]*jC/100;TL[Bb][2]=TL[Bb][2]-TL[Bb][6];TL[Bb][4]=TL[Bb][0];FT+=TL[Bb][3];Ws+=TL[Bb][6];TL[Bb][5]=FT;TL[Bb][7]=Ws}Vv="<table border=0 cellpadding=3 width='100%'>";Vv+="<tr align=right bgcolor='#E0F0FE'><td>&nbsp;</td><td><b>start balance</b></td><td><b>interest</b></td><td><b>tax</b></td><td><b>end balance</b></td></tr>";for(i=1;i<=(es*12);i++){if((i%2)==1){Vv+="<tr align=right bgcolor='#dddddd'><td>"+i}else{Vv+="<tr align=right><td>"+i}Vv+="</td><td>"+formatAsMoney(TL[(i-1)][1])+"</td><td>"+formatAsMoney(TL[(i-1)][3])+"</td><td>"+formatAsMoney(TL[(i-1)][6])+"</td><td>"+formatAsMoney(TL[(i-1)][2])+"</td></tr>";if((i%12)==0){vO=parseInt(i/12);Vv+="<tr bgcolor='#E0F0FE' align='center'><td colspan='6'><b>year "+vO+" end</b></td></tr>"}}if(QD>0.0001){IN=(Bb+QD).toFixed(3);Vv+="<tr align=right><td>"+IN+"</td><td>"+formatAsMoney(TL[Bb][1])+"</td><td>"+formatAsMoney(TL[Bb][3])+"</td><td>"+formatAsMoney(TL[Bb][6])+"</td><td>"+formatAsMoney(TL[Bb][2])+"</td></tr>"}Vv+="</table>";WZ="<h2>Summary</h2><table cellpadding='3' width='90%'>";WZ+="<tr bgcolor='#dddddd'><td><b>end balance</b></td><td align=right><b>"+formatAsMoney(TL[(Se-1)][2])+"</b></td></tr>";if(BH!=0){fB=TL[(Se-1)][2]/Math.pow((1+BH/100),es);WZ+="<tr bgcolor='#dddddd'><td>after inflation adjustment, Equivalent to current purchase power of</td><td align=right>"+formatAsMoney(fB)+"</td></tr>"}WZ+="<tr bgcolor='#dddddd'><td>total principal</td><td align=right>"+formatAsMoney(TL[(Se-1)][4])+"</td></tr>";WZ+="<tr bgcolor='#dddddd'><td>total interest</td><td align=right>"+formatAsMoney(TL[(Se-1)][5])+"</td></tr>";if(jC>0.0001){WZ+="<tr bgcolor='#dddddd'><td>total tax</td><td align=right>"+formatAsMoney(TL[(Se-1)][7])+"</td></tr>"}if(lf!="annually"){WZ+="<tr><td colspan='2'>* interest rate of "+vc+"% compound "+lf+" is equivalent to annual rate of "+vr+"%</td></tr>"}WZ+="</table>";dataArray=TL;showquickmsg(WZ,false);gObj("resulttable").innerHTML="<hr /><h2>Monthly Schedule</h2>"+Vv;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 D=[];var C=[];if(dataArray.length<100){for(var B=0;B<dataArray.length;B++){F.push([(B+1)/12,dataArray[B][4]]);D.push([(B+1)/12,dataArray[B][2]]);C.push([(B+1)/12,dataArray[B][5]])}}else{if(dataArray.length<200){for(var B=0;B<dataArray.length;(B=B+2)){F.push([(B+1)/12,dataArray[B][4]]);D.push([(B+1)/12,dataArray[B][2]]);C.push([(B+1)/12,dataArray[B][5]])}}else{if(dataArray.length<300){for(var B=0;B<dataArray.length;(B=B+3)){F.push([(B+1)/12,dataArray[B][4]]);D.push([(B+1)/12,dataArray[B][2]]);C.push([(B+1)/12,dataArray[B][5]])}}else{for(var B=0;B<dataArray.length;(B=B+4)){F.push([(B+1)/12,dataArray[B][4]]);D.push([(B+1)/12,dataArray[B][2]]);C.push([(B+1)/12,dataArray[B][5]])}}}}function A(G){return G}var E=Flotr.draw($("container"),[{data:F,label:"principal"},{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}})};
