// JavaScript Document

var num=0;
var amt=0;
var per=0;
var months=0;
var nls="";
var rr="\r";
var b="                               ";
var d="-------------------------------------------------------------------";
var s="&euro;";

function iA(){
 this.length=iA.arguments.length;
 for (var i=0;i<this.length;i++){
  this[i]=iA.arguments[i];
 }
}

var pwr=new iA(10);
var dec=new iA(16);
pwr[0]=1;
for (var i=0;i<9;i++){
 pwr[i+1]=pwr[i]*10;
}

dec[0]=.1;
dec[1]=.01;
dec[2]=.001;
dec[3]=.0001;
dec[4]=.00001;
dec[5]=.000001;
dec[6]=.0000001;
dec[7]=.00000001;
dec[8]=.000000001;
dec[9]=.0000000001;
dec[10]=.00000000001;
dec[11]=.000000000001;
dec[12]=.0000000000001;
dec[13]=.00000000000001;
dec[14]=.000000000000001;
dec[15]=.0000000000000001;

var ns="01234567890";
var cr="";
var str="";


function stn(){
 num=0;
 posp=str.indexOf(".");
 posv=str.indexOf(",");
 pos=(posp>posv?posp:posv);
 sfx="";
 if (pos>-1){
  sfx=str.substring(pos+1,str.length);
  str=str.substring(0,pos);
 }
 strl=str.length;
 for (var i=strl-1;i>-1;i--){
  cr=str.substring(i,i+1);
  pos=ns.indexOf(cr);
  num+=pos*pwr[strl-i-1];
 }

 if (sfx!=""&&sfx.length>dp){
   pos=ns.indexOf(sfx.charAt(dp+1));
   if (pos>4){
    pos=ns.indexOf(sfx.charAt(dp));
    sfx=sfx.substring(0,dp-1)+(pos+1);
   }
 }

 if (sfx!=""){
   for (var i=0;i<dp;i++){
    cr=sfx.substring(i,i+1);
    pos=ns.indexOf(cr);
    num+=pos*dec[i];
   }

  }
}



function calcule(form){
 str=document.isn.amt.value;
 fmtIt();
 bl=str.length+3;
 dp=2;
 stn();
 amt=num;
 str=document.isn.per.value;
 dp=4;
 stn();
 per=num;
 str=document.isn.months.value;
 dp=0;
 stn();
 months=num;
 if (months<1||months>999||per<.0001||per>99||amt<1||amt>pwr[9]){
  alrt();
 }
 else{
  document.getElementById('sched').innerHTML = "Nous établissons votre tableau d'amortissement...";
  computeForm();
 }
}



function computeForm(){

 ls="";
 iin=1;
 i=per/12/100;
 fpv=0;

 for (var j=0;j<months;j++)
  iin=iin*(1+i);
  tmp=(amt*iin*i)/(iin-1);
  fpv+=tmp;
  fcalc=((months*fpv)-amt);
  prtSched();
 }


function prtSched(){
 fpv+=.01;
 str=""
 str+=fpv;
 fmtIt();
 dp=2;
 stn();
 fpv=num;
 pct=per/12/100;
 if (bl<14){
  bl=14;
 }

 ls="Estimation pour un remboursement sur "+document.isn.months.value
 +" mois"+rr+"d'un montant initial de "+document.isn.amt.value
 +s+" au taux global de "+document.isn.per.value+"%."+rr+d+rr+rr;
 for (var j=0;j<months;j++){
  ntr=(amt*pct);
  str="";
  str+=ntr;
  fmtIt();
  ntr1=str+s;
  prp=fpv-ntr;
  if (prp>amt){
   prp=amt;
  }
  str="";
  str+=prp;
  fmtIt();
  prp1=str+s;
  amt-=prp;
  str="";
  str+=amt;
  fmtIt();
  amt1=str+s;
  if (fpv>(ntr+prp)){
   fpv=ntr+prp;
  }
  str="";
  str+=fpv;
  fmtIt();
  fpv1=str+s;
  if (j==0)
  {	 ls+="Montant des mensualités : "+fpv+s+rr+"Total des intérêts versés : "+Math.round((fpv*months)-(amt+prp))+s+rr+"Coût total du crédit : "+Math.round(fpv*months)+s+rr+d+rr+rr;
	 ls+="Traite | Mensualité = Intérêts + Capital | Restant dû"+rr+d+rr;
  }
  str="";
  str+=(j+1);
  
  ls+=b.substring(0,2)
  +str+'  |'+b.substring(0,8-str.length)
  +fpv1+'  ='+b.substring(0,14-fpv1.length)
  +ntr1+'  +'+b.substring(0,14-ntr1.length)
  +prp1+'  |'+b.substring(0,14-prp1.length)
  +amt1
  +rr;
 }

 document.getElementById('sched').innerHTML = ls+d+rr;
}

function fmtIt(){
 pos=str.indexOf(".");
 if (pos==0){
  str="0"+str;
  pos++;
 }
 if (pos<0){
  str+=".00";
  pos=str.indexOf(".");
 }
 str+="0000";
 str=str.substring(0,pos+4);
 cr=str.charAt(str.length-1);
 pos=ns.indexOf(cr);
 str=str.substring(0,str.length-1);
 if (pos>5){
  fmtIt1();
 }
}

function fmtIt1(){
  for (var k=str.length-1;k>-1;k--){
   cr=str.charAt(k);
   posn=ns.indexOf(cr);
   if (posn<0){
    k--;
   }
   else{
    str=str.substring(0,k)+ns.substring(posn+1,posn+2)
    +str.substring(k+1,str.length);
    if (posn!=9){
     k=-1;
    }
   }
  }
}


function alrt(){
 alert("Merci de nous indiquer un nombre de mois compris entre 1 et 999, un montant de 1 à "+pwr[9]+"€ et un taux compris entre 0.001 et 99%");
}

