var _StrTeg="";var _StrCoutCredit="";var gNbLigne=0;var gTblNbMois=new Array(301);var gTblCrd=new Array(301);var gTblAmort=new Array(301);var gTblInteret=new Array(301);var gTblEcheance=new Array(301);var gTblAdi1=new Array(301);var gTblAdi2=new Array(301);var _PretMontant=0;var _PretTaux=0;var _PretNbMois=0;var _PretDiffa=0;var _PretDifft=0;var _PretAstm=4;var _AdiTaux1=0;var _AdiTaux2=0;var _AdiMode1=1;var _AdiMode2=1;var _FraisDossier=0;var _FraisGarant=0;function GetNbMoisAstm(B){var A;A=(B==4)?1:(B==3)?3:(B==2)?6:(B==1)?12:0;return(A)}function TesteData(){var A;var B;if(_PretMontant<=0||_PretNbMois<=0||_PretNbMois>300||_PretDiffa<0||_PretDifft<0||_PretTaux<=0||_PretTaux>=25||_PretAstm<=0||_FraisDossier<0||_FraisGarant<0){return(-1)}A=GetNbMoisAstm(_PretAstm);if(!A){return(-2)}B=_PretNbMois-(_PretDiffa+_PretDifft);if(B<=0){return(-3)}if(B%A){return(-4)}if(_PretDiffa%A){return(-5)}return(0)}function PretCoutCredit(){var D;var A=0;var E=0;var C=0;var B;_StrCoutCredit="";if(gNbLigne<=0){return(-1)}for(D=0;D<gNbLigne;D++){A+=gTblEcheance[D];E+=gTblAdi1[D];C+=gTblAdi2[D]}B=(A-_PretMontant)+E+_FraisDossier;B+=_FraisGarant;_StrCoutCredit=FormateVal(B,2)+" €";return(0)}function PretCalculTotaux(){var E=0;var B=0;var A=0;var D=0;var C=0;if(gNbLigne<=0){return(-1)}for(i=0;i<gNbLigne;i++){E+=gTblAmort[i];B+=gTblInteret[i];A+=gTblEcheance[i];D+=gTblAdi1[i];C+=gTblAdi2[i]}gTblAmort[gNbLigne]=E;gTblInteret[gNbLigne]=B;gTblEcheance[gNbLigne]=A;gTblAdi1[gNbLigne]=D;gTblAdi2[gNbLigne]=C;return(0)}function FillTblAmort(){var G;var C;var F;var E;var D;var H;var S;var B;var J;var N;var O;var T;var I;var P;var L;var Q;var K;var M;var R;G=0;I=_PretMontant;E=GetNbMoisAstm(_PretAstm);D=12/E;C=(_PretTaux/100)/D;Q=0;K=0;P=I;L=I;M=0;if(_AdiTaux1&&_AdiMode1){Q=(_AdiTaux1/100);if(_AdiMode1!=3){Q/=D}if(_AdiMode1==2){M+=Q}}if(_AdiTaux2&&_AdiMode2){K=(_AdiTaux2/100);if(_AdiMode2!=3){K/=D}if(_AdiMode2==2){M+=K}}G=0;var A=_PretDifft;for(J=_PretDifft+_PretDiffa;J>0;J-=E){F=C;if(J<E){F*=J/E}N=I*F;T=(A>0)?0:N;if(J<E){gTblNbMois[G]=(_PretDifft+_PretDiffa)}else{gTblNbMois[G]=(_PretDifft+_PretDiffa)-J+E}gTblAmort[G]=0;gTblInteret[G]=N;gTblEcheance[G]=T;if(Q){if(_AdiMode1==2){P=I}else{if(_AdiMode1==3){P=T}}R=P*Q;if(J<E){R*=J/E}gTblAdi1[G]=R}else{gTblAdi1[G]=0}if(K){if(_AdiMode2==2){L=I}else{if(_AdiMode2==3){L=T}}R=L*K;if(J<E){R*=J/E}gTblAdi2[G]=R}else{gTblAdi2[G]=0}if(A>0){I+=N;A-=E;if(A<0){A=0}}gTblCrd[G]=I;G++}S=(_PretNbMois-(_PretDifft+_PretDiffa))/E;R=C+M;T=I*(R/(1-Math.pow(1+R,-S)));for(B=0;B<S;B++){N=I*C;O=T-(N+(I*M));gTblNbMois[G]=(_PretDifft+_PretDiffa)+(B+1)*E;gTblAmort[G]=O;gTblInteret[G]=N;gTblEcheance[G]=O+N;if(Q){if(_AdiMode1==2){P=I}else{if(_AdiMode1==3){P=O+N}}gTblAdi1[G]=P*Q}else{gTblAdi1[G]=0}if(K){if(_AdiMode2==2){L=I}else{if(_AdiMode2==3){L=O+N}}gTblAdi2[G]=L*K}else{gTblAdi2[G]=0}I-=O;gTblCrd[G]=I;G++}gNbLigne=G;return(G)}function PretCalculTeg(){var B=0;var E;var D;var A;var C;_StrTeg="";if(gNbLigne<=0){return(-1)}for(D=0,A=40;;){E=D+(A-D)/2;if(A-D<0.001){B=1;break}C=PretCalculVan(gNbLigne,E);if(C==0){B=1;break}if(C<0){A=E}else{D=E}}if(B){_StrTeg=FormateVal(E,2)+"%"}return(0)}function PretCalculVan(C,E){var B;var D;var A;var F;D=-_PretMontant;D+=_FraisDossier;D+=_FraisGarant;F=Math.pow(1+E/100,-1/12);for(B=0;B<C;B++){A=gTblEcheance[B]+gTblAdi1[B];D+=A*Math.pow(F,gTblNbMois[B])}return(D)}var gIsChange1=0;var gIsChange2=0;function ffff_OC(A){gIsChange1=1}function BeforeSubmit(C,A){var B=0;if(GetNum(C.PretMontant.value,70)<=0){B=101}else{if(TestNum(C.PretTaux.value,22)<=0){B=102}else{if(GetNum(C.PretNbMois.value,30)<=0){B=103}else{if(TestNum(C.PretDiffa.value,30)<0){B=104}else{if(TestNum(C.PretDifft.value,30)<0){B=105}else{if(TestNum(C.AdiTaux1.value,14)<0){B=201}else{if(TestNum(C.AdiTaux2.value,14)<0){B=202}else{if(TestNum(C.FraisDossier.value,50)<0){B=301}else{if(TestNum(C.FraisGarant.value,50)<0){B=302}}}}}}}}}if(!B){var E=parseInt(C.PretAstm.options[C.PretAstm.selectedIndex].value);var H=GetNum(C.PretNbMois.value,30);var G=GetNum(C.PretDifft.value,30);var F=GetNum(C.PretDiffa.value,30);var D=(E==1)?12:(E==2)?6:(E==3)?3:1;if(H<=0||G<0||F<0){B=501}else{if(H<G+F+D){B=502}else{if((H-(G+F))%D){B=503}else{if(F%D){B=504}}}}}if(!B&&!gIsChange1){B=(gIsChange2)?1001:1000}if(B&&A==1){var I=(B==1000)?"Répondez au questionnaire !":(B==1001)?"Le prêt est déjà calculé !":"Saisie insuffisante ou incorrecte !";self.alert(I)}return((B)?false:true)}function OnBtnSubmit(B){var A=BeforeSubmit(B,1);if(A==true){CalculTAmort(B)}}function CalculTAmort(D){_PretMontant=(D.PretMontant.value)?GetNum(D.PretMontant.value,82):0;_PretTaux=(D.PretTaux.value)?GetNum(D.PretTaux.value,84):0;_PretNbMois=(D.PretNbMois.value)?GetNum(D.PretNbMois.value,30):0;_PretDiffa=(D.PretDiffa.value)?GetNum(D.PretDiffa.value,30):0;_PretDifft=(D.PretDifft.value)?GetNum(D.PretDifft.value,30):0;_PretAstm=(D.PretAstm.value)?parseInt(D.PretAstm.value):0;_AdiTaux1=(D.AdiTaux1.value)?GetNum(D.AdiTaux1.value,84):0;_AdiTaux2=(D.AdiTaux2.value)?GetNum(D.AdiTaux2.value,84):0;_AdiMode1=(D.AdiMode1.value)?parseInt(D.AdiMode1.value):0;_AdiMode2=(D.AdiMode2.value)?parseInt(D.AdiMode2.value):0;_FraisDossier=(D.FraisDossier.value)?GetNum(D.FraisDossier.value,82):0;_FraisGarant=(D.FraisGarant.value)?GetNum(D.FraisGarant.value,82):0;if(TesteData()==0){FillTblAmort();PretCalculTotaux();PretCoutCredit();PretCalculTeg()}if(gNbLigne>0){var C="";C+='<table width="100%" border="1" cellpadding="2" bgcolor="#FFFFFF"    bordercolorlight="#E0E2F9" cellspacing="0" bordercolordark="#808080">  <tr>    <td nowrap align="center" bgcolor="#80A0DD">Coût total du crédit<br>	  </td>    <td nowrap align="center" bgcolor="#80A0DD">TEG<br>    (taux effectif global)</td>  </tr>  <tr>    <td nowrap align="center">&nbsp;<br>'+_StrCoutCredit+'	 <br>    &nbsp;</td>    <td nowrap align="center">&nbsp;<br>'+_StrTeg+'	  <br>    &nbsp;</td>  </tr></table><p>&nbsp;</p><table width="100%" border="1" cellpadding="2" bgcolor="#FFFFFF"bordercolorlight="#E0E2F9" cellspacing="0" bordercolordark="#808080">  <tr>    <td nowrap width="12%" bgcolor="#80A0DD"><p align="center">Numéro <br>    d&#146;échéance</td>    <td nowrap width="12%" bgcolor="#80A0DD" align="center">Dette<br>    restante</td>    <td nowrap width="12%" bgcolor="#80A0DD" align="center">Amortis-<br>    sement</td>    <td nowrap width="12%" bgcolor="#80A0DD" align="center">Intérêts</td>    <td nowrap width="12%" bgcolor="#80A0DD" align="center">Assurance<br>    obligatoire</td>    <td nowrap width="12%" bgcolor="#80A0DD" align="center">Assurance<br>    facultative</td>    <td nowrap width="12%" bgcolor="#80A0DD" align="center">Echéance<br>    Hors assur.</td>    <td nowrap width="12%" bgcolor="#80A0DD" align="center">Echéance<br>    Avec assur.</td>  </tr>  <tr>    <td nowrap align="center">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=FormateVal(A+1,0);if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>    <td nowrap align="right">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=FormateVal(gTblCrd[A],2);if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>    <td nowrap align="right">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=FormateVal(gTblAmort[A],2);if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>    <td nowrap align="right">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=FormateVal(gTblInteret[A],2);if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>    <td nowrap align="right">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=(gTblAdi1[A])?FormateVal(gTblAdi1[A],2):"-";if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>    <td nowrap align="right">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=(gTblAdi2[A])?FormateVal(gTblAdi2[A],2):"-";if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>    <td nowrap align="right">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=FormateVal(gTblEcheance[A],2);if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>    <td nowrap align="right">';var A;var B="";for(A=0;A<gNbLigne;A++){B+=FormateVal(gTblEcheance[A]+gTblAdi1[A]+gTblAdi2[A],2);if(A+1<gNbLigne){B+="<br>"}}C+=B;C+='</td>  </tr>  <tr>    <td nowrap align="center">Totaux</td>    <td nowrap align="center">-</td>    <td nowrap align="right">'+((gNbLigne>0)?FormateVal(gTblAmort[gNbLigne],2):"&nbsp;")+'</td>    <td nowrap align="right">'+((gNbLigne>0)?FormateVal(gTblInteret[gNbLigne],2):"&nbsp;")+'    </td>    <td nowrap align="right">'+((gNbLigne>0)?FormateVal(gTblAdi1[gNbLigne],2):"&nbsp;")+'    </td>    <td nowrap align="right">'+((gNbLigne>0)?FormateVal(gTblAdi2[gNbLigne],2):"&nbsp;")+'    </td>    <td nowrap align="right">'+((gNbLigne>0)?FormateVal(gTblEcheance[gNbLigne],2):"&nbsp;")+'    </td>    <td nowrap align="right">'+((gNbLigne>0)?FormateVal(gTblEcheance[gNbLigne]+gTblAdi1[gNbLigne]+gTblAdi2[gNbLigne],2):"&nbsp;")+"    </td>  </tr></table>";document.getElementById("IdTAmort").innerHTML=C}}function BodyOnLoad(){var A=document.ffff;A.PretMontant.value="100000";A.PretTaux.value="4,5";A.PretNbMois.value="180";A.AdiTaux1.value="0,35";gIsChange1=1;gIsChange2=1};
