/*****************************************
(C) http://www.calculator.net all right reserved.  
*****************************************/
var dataArray=new Array();var theLoanTerm=0;var cagenow;var cretirementage;var clifeexpectancy;var delayShow=true;function calc(){showquickmsg("calculating...",true);gObj("resulttable").innerHTML="";setTimeout("process()",2)}function process(){De=trimAll(gObj("cstartingprinciple").value+"");IL=trimAll(gObj("cyearstopayout").value+"");Js=trimAll(gObj("cinterestrate").value+"");Mj=trimAll(gObj("cinflationrate").value+"");Wp=(gObj("cmonthoryear2").checked)?"month":"year";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(De)){showquickmsg("starting principal need to be numeric",true);return }else{if(!isNumber(IL)){showquickmsg("years to pay out need to be numeric",true);return }else{if(!isNumber(Js)){showquickmsg("interest return / rate need to be numeric",true);return }else{if(!isNumber(Mj)){showquickmsg("inflation rate need to be numeric",true);return }else{if((parseFloat(IL)-parseInt(IL))>0.000001||(parseFloat(IL)<0)){showquickmsg("years to pay out need to be a positive integer",true);return }}}}}if(typeof (cc)!="undefined"){return }De=parseFloat(De);IL=parseInt(IL);Js=parseFloat(Js);Mj=parseFloat(Mj);Ac=IL;Na=Js/100;theLoanTerm=IL;Bc=0;oh=0;YL=Js/100/12;if(Na==0){Bc=De/IL/12}else{Bc=(YL/(1-Math.pow((1+YL),(-IL*12))))*De}QP=Js/100;if(Na==0){oh=De/IL}else{oh=(QP/(1-Math.pow((1+QP),(-IL))))*De}fm=new Array();qJ=0;MR=0;Il=0;for(j=1;j<=(IL*12);j++){i=Il*12+j;fm[(i-1)]=new Array();eK=Math.pow((1+YL),j);if(YL==0){Zi=De-j*Bc}else{Zi=eK*De-((eK-1)/YL)*Bc}if(i==(Il*12+1)){fm[(i-1)][0]=De}else{fm[(i-1)][0]=fm[(i-2)][1]}fm[(i-1)][1]=Zi;fm[(i-1)][2]=Bc;fm[(i-1)][3]=Bc-(fm[(i-1)][0]-fm[(i-1)][1]);if(i==1){fm[(i-1)][4]=fm[(i-1)][3]}else{fm[(i-1)][4]=fm[(i-1)][3]+fm[(i-2)][4]}}CX=new Array();ru=new Array();CX[0]=De;ru[0]=De;for(i=1;i<=(Il*12);i++){if((i%12)==0){WI=parseInt(i/12);CX[WI]=fm[(i-1)][2];ru[WI]=CX[WI]/(Math.pow((1+Mj/100),WI))}}for(i=(Il*12+1);i<=((Il+IL)*12);i++){if((i%12)==0){WI=parseInt(i/12);CX[WI]=fm[(i-1)][1];ru[WI]=CX[WI]/(Math.pow((1+Mj/100),WI))}}Nk="<table border=0 cellpadding=3 width='100%'>";Nk+="<tr align=right bgcolor='#E0F0FE'><td><b>year</b></td><td><b>beginning balance</b></td><td><b>beginning balance with inflation adjustment</b></td></tr>";for(i=0;i<=(Il+IL);i++){il=i;if((i%2)==1){Nk+="<tr align=right bgcolor='#dddddd'><td>"+(il+1)}else{Nk+="<tr align=right><td>"+(il+1)}Nk+="</td><td>"+formatAsMoney(Math.abs(CX[i]))+"</td><td>"+formatAsMoney(Math.abs(ru[i]))+"</td></tr>"}Nk+="</table>";kQ="<h2>Summary</h2><table cellpadding='3'>";if(Wp=="year"){kQ+="<tr bgcolor='#dddddd'><td><b>the amount you can retrieve every year</b></td><td align=right><b>"+formatAsMoney(oh)+"</b></td></tr>";if(Mj!=0){ot=oh/Math.pow((1+Mj/100),(IL));kQ+="<tr><td>after "+IL+" years with inflation adjustment, it is equivalent to current money of</td><td align=right>"+formatAsMoney(ot)+"</td></tr>"}}else{kQ+="<tr bgcolor='#dddddd'><td><b>the amount you can retrieve every month</b></td><td align=right><b>"+formatAsMoney(Bc)+"</b></td></tr>";if(Mj!=0){ot=Bc/Math.pow((1+Mj/100),(IL));kQ+="<tr><td>after "+IL+" years with inflation adjustment, it is equivalent to current money of</td><td align=right>"+formatAsMoney(ot)+"</td></tr>"}}kQ+="</table>";dataArray=CX;showquickmsg(kQ,false);gObj("resulttable").innerHTML="<hr /><h2>Annual Balance Schedule</h2>"+Nk;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=[];for(var B=0;B<dataArray.length;B++){F.push([(B),parseFloat(dataArray[B].toFixed(2))])}function A(G){return G}var E=Flotr.draw($("container"),[{data:F,label:"balance"}],{legend:{position:"ne",labelFormatter:A,backgroundColor:"#D2E8FF"},xaxis:{ticks:[0,formatNum(theLoanTerm*0.25),formatNum(theLoanTerm*0.5),formatNum(theLoanTerm*0.75),theLoanTerm],max:clifeexpectancy}})};
