//---------------------------------------------------------------------
//---Auteur: ALTO Informatique - www.alto-informatique.com-------------
//---1998 - 2010 - Tous droits déposés---------------------------------
//---------------------------------------------------------------------

//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
function GetBaremePtz()
{
//---bareme au 27/10/2010----------------------------

var b =
  { PrixMax:
    [[[156000, 218000, 265000, 312000, 359000] // NeufAncien/AB1B2C/NbPers
     ,[117000, 164000, 199000, 234000, 269000]
     ,[ 86000, 120000, 146000, 172000, 198000]
     ,[ 79000, 111000, 134000, 158000, 182000]
     ]
    ,[[124000, 174000, 211000, 248000, 285000]
     ,[ 93000, 130000, 158000, 186000, 214000]
     ,[ 86000, 120000, 146000, 172000, 198000]
     ,[ 79000, 111000, 134000, 158000, 182000]
     ]
    ]
   ,QuotiteMax:
   [[38,33,29,24] // Neuf BBC
   ,[26,21,16,14] // Neuf Non BBC
   ,[10,10,10,10] // ancien HLM
   ]
   ,CoeffMenage: [1, 1.4, 1.7, 2, 2.3, 2.6, 2.9, 3.2]
   ,TRgiMax: [43500, 30500, 26500, 26500] // AB1B2C
   ,NbTranche:6
   ,tmr:
    [[{RgiMax: [23000,18000,14000,11500], NbMoisP1: 276, NbMoisP2:  24, PCentAmortP2 : 15}
     ,{RgiMax: [25500,19500,15000,13000], NbMoisP1: 276, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [28500,21500,16500,14000], NbMoisP1: 240, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [31000,23500,18000,15000], NbMoisP1: 192, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [36000,26000,20000,18500], NbMoisP1: 144, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [43500,30500,26500,26500], NbMoisP1:  96, NbMoisP2:   0, PCentAmortP2 :  0}
     ]
    ,[{RgiMax: [20500,16000,12500,11500], NbMoisP1: 276, NbMoisP2:  24, PCentAmortP2 : 15}
     ,{RgiMax: [23000,18000,14000,13000], NbMoisP1: 276, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [25500,19500,15000,14000], NbMoisP1: 240, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [28500,21500,16500,15000], NbMoisP1: 192, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [31000,23500,18000,16500], NbMoisP1: 144, NbMoisP2:   0, PCentAmortP2 :  0}
     ,{RgiMax: [43500,30500,26500,26500], NbMoisP1:  96, NbMoisP2:   0, PCentAmortP2 :  0}
     ]
    ]
    ,codif:
    {
      ZONE_A  :1,
      ZONE_B1 :12,
      ZONE_B2 :22,
      ZONE_C  :3,

      TACHAT_NEUF_BBC  :1,
      TACHAT_NEUF_NBBC :2,
      TACHAT_ANCIEN_HLM:21,
      TACHAT_AUTRE     :99,

      //---PrixMax[][i][], QuotiteMax[][i], tmr[].RgiMax[i]----
      RGLPTZP_IZ_A  :0, // en zone A
      RGLPTZP_IZ_B1 :1, // en zone B1
      RGLPTZP_IZ_B2 :2, // en zone B2
      RGLPTZP_IZ_C  :3, // en zone C

      //---PrixMax[i][][]-------------------
      RGLPTZP_I1_NEUF   :0,
      RGLPTZP_I1_ANCIEN :1,

      //---PrixMax[][][i], CoeffMenage[i]---
      RGLPTZP_IP_1PERSO :0,
      RGLPTZP_IP_2PERSO :1,
      RGLPTZP_IP_3PERSO :2,
      RGLPTZP_IP_4PERSO :3,
      RGLPTZP_IP_5PLUS  :4,

      TACHAT_I_NEUF_BBC  :0,
      TACHAT_I_NEUF_NBBC :1,
      TACHAT_I_ANCIEN_HLM:2
    }
  };

return(b);
}


//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
function FormateAnMois(nMois)
{
var s="";
var NbMois=(nMois%12);
var NbAn  =Math.floor(nMois/12);

if(NbAn>0)
    { s+=""+NbAn+" an";
      if(NbAn>1) s+="s";
    }
if(NbMois>0)
    { if(NbAn>0) s+=" et ";
      s+=""+NbMois+" mois";
    }

return(s);
}


function FormateVal(val, NbDeci, flag)
{
var s="";

if(val!=null && !isNaN(val))
    {
      var l,i,tmp,signe;

      var separe=" ";
      if(flag!=null)
          { if(flag & 0x0001) separe="&nbsp;"; else
            if(flag & 0x0002) separe="."; else
            if(flag & 0x0004) separe="";
          }

      if(NbDeci==2) { val=val*100.0; } else
      if(NbDeci>0) { for(i=0; i<NbDeci; i++) { val=val*10; } }
      else{ NbDeci=0; }

      val=Math.round(val);

      if(val<0) { val=-val; signe=1; } else{ signe=0; }
      s=val.toString();

      l=s.length;
      for(i=NbDeci+1-l; i>0; i--) s="0"+s;

      tmp=l-NbDeci;
      if(tmp>3 && separe.length>0)
          { for(i=0; i<5; i++)
                { if (tmp<4) break;
                  tmp-=3;
                  s=s.substring(0, tmp)+separe+s.substring(tmp, l);
                  l+=separe.length;
                }
          }
      if(NbDeci>0)
          { l=s.length;
            s=s.substring(0, l-NbDeci)+","+s.substring(l-NbDeci, l);
          }
      if(signe) s="-"+s;
    }

return(s);
}



var _tn=0;
var _ttn=0;

function GetNum(champ, fmt, flag)
{ _ttn=TestNum(champ,fmt, flag); return(_tn);
}

function TestNum(champ, fmt, flag)
{
var ret=0;
var s=""+champ;
var i1,i2,c;

_tn=0;
i1=0;
i2=s.length;
//for(; i1<i2; i1++) { c=s.charAt(i1); if(c!=' ' && c!='\t') { break; } }
//for(; i2>i1; i2--) { c=s.charAt(i2-1); if(c!=' ' && c!='\t') { break; } }

if(i1<i2)
  {
    var MaxEntier,MaxDeci,NegOK=0,NbEntier=0,NbDeci=0,iVirg=0,i,s2="";

    if(fmt<0)
        { NegOK=1;
          fmt=-fmt;
        }
    MaxEntier=fmt/10;
    MaxDeci  =fmt%10;

    for(i=i1; i<i2; i++)
        { c=s.charAt(i);
          if(c==' ' && flag!=null && (flag & 0x0001))
              { continue;
              }
          if(c>='0' && c<='9')
              { if(iVirg) { NbDeci++; if(NbDeci>MaxDeci) { ret=-3; break; } }
                else { NbEntier++; if(NbEntier>MaxEntier) { ret=-2; break; } }
              }
          else
          if(c=='.' || c==',')
              { if(iVirg) { ret=-1; break; }
                iVirg=i+1;
                c='.';
              }
          else
          if(c=='-')
              { if(!NegOK || i>i1) { ret=-4; break; }
              }
          else{ ret=-1;
                break;
              }
          s2+=c;
        }
    if(!ret)
        { _tn=(iVirg) ? parseFloat(s2) : parseInt(s2,10);
          ret=1;
        }
  }
return(ret);
}


//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
var gIsChange1=0;

function ffff_OC(r)
{
if(r=="IsShowBrm" || r=="NbPersonne")
    {
      var v=(document.ffff.IsShowBrm.checked) ? 1:0;

      if(document.ffff.NbPersonne.value==0)
          {
            self.alert("Précisez au préalable le nombre de personnes qui habiteront le logement.");
            document.ffff.IsShowBrm.checked = 0;
          }
      else{
            if(v)
                {
                  MajFicheBareme(parseInt(document.ffff.NbPersonne.value));
                }
            document.getElementById("IsShowBrm1").style.display=(v) ? "" : "none";
          }
    }

if(r=="IsShowRgl")
    {
      var v=(document.ffff.IsShowRgl.checked) ? 1:0;
      document.getElementById("IsShowRgl1").style.display=(v) ? "" : "none";
    }

gIsChange1=1;
}


//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
function BeforeSubmit(f, IsAlert)
{
var s="";
var t  =parseInt(f.TypeAchat.options[f.TypeAchat.selectedIndex].value);
var z  =parseInt(f.ZoneABC.options[f.ZoneABC.selectedIndex].value);
var pri=GetNum(f.PrixLogement.value,80);
var rn2=GetNum(f.RevenuN1N2.value,80);
var nbp=TestNum(f.NbPersonne.value,20);

var codif=GetBaremePtz().codif;

if(t!=codif.TACHAT_NEUF_BBC &&
   t!=codif.TACHAT_NEUF_NBBC &&
   t!=codif.TACHAT_ANCIEN_HLM &&
   t!=codif.TACHAT_AUTRE)
    { s="Indiquez si le programme est labellisé BBC ou non !";
    }
else
if(z!=codif.ZONE_A &&
   z!=codif.ZONE_B1 &&
   z!=codif.ZONE_B2 &&
   z!=codif.ZONE_C)
    { s="Indiquez la localisation du logement (zone A, B1, B2 ou C) !";
    }
else
if(pri<=0)
    { s="Indiquez le prix du logement !";
    }
else
if(rn2<=0)
    { s="Indiquez votre revenu fiscal de référence !";
    }
else
if(nbp<=0)
    { s="Indiquez le nombre de personnes qui habiteront le logement !"
    }
else{ if(!gIsChange1) s="Résultats déjà calculés !";
    }

if(s!="")
    { self.alert(s);
    }

return((s!="") ? false : true);
}


function OnBtnZonier()
{
// brancher ici une popup sur la carte des zones A,B1,B2,C
window.open("ptz_ab1b2c.htm", "ptz_ab1b2c", "width=615px,height=600px");
}


function OnBtnSubmit(f)
{
if(BeforeSubmit(f,1)==true)
    { ///f.submit();
      BodyOnLoad();
    }
}


//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
function GetResultPtzPlus(fdata)
{
var r=new Object();

r.IsRevenuExcessif=0;
r.IsPrixExcessif  =0;

r.PretMax     =0;
r.NbMoisTotal =0;
r.NbMoisP1    =0;
r.NbMoisP2    =0;
r.PCentAmortP1=0;
r.PCentAmortP2=0;
r.EchDiff     =0;
r.EchAmort    =0;

//------------------------------------------

var brm=GetBaremePtz();
var codif=brm.codif;

var IsAncien=-1;
var iTypeAchat=-1;
var iZone=-1;
var NbPerso=-1;

switch(fdata.TypeAchat)
{ case codif.TACHAT_NEUF_BBC   : iTypeAchat= codif.TACHAT_I_NEUF_BBC  ; IsAncien=0; break;
  case codif.TACHAT_NEUF_NBBC  : iTypeAchat= codif.TACHAT_I_NEUF_NBBC ; IsAncien=0; break;
  case codif.TACHAT_ANCIEN_HLM : iTypeAchat= codif.TACHAT_I_ANCIEN_HLM; IsAncien=1; break;
}

switch(fdata.ZoneABC)
{ case codif.ZONE_A : iZone = codif.RGLPTZP_IZ_A ; break;
  case codif.ZONE_B1: iZone = codif.RGLPTZP_IZ_B1; break;
  case codif.ZONE_B2: iZone = codif.RGLPTZP_IZ_B2; break;
  case codif.ZONE_C : iZone = codif.RGLPTZP_IZ_C ; break;
}

if(fdata.NbPersonne>0)
    { NbPerso=(fdata.NbPersonne<8) ? fdata.NbPersonne : 8;
    }

//------------------------------------------

if(IsAncien!=-1 &&
   iTypeAchat!=-1 &&
   iZone!=-1 &&
   NbPerso!=-1 &&
   fdata.PrixLogement>0 &&
   fdata.RevFiscRef>=0)
    {
      var CoutHorsFN=fdata.PrixLogement;
      var PrixMax =brm.PrixMax[IsAncien][iZone][(NbPerso<5) ? (NbPerso-1) : 4];
      var quotite =brm.QuotiteMax[iTypeAchat][iZone];

      var tmp=(CoutHorsFN<PrixMax) ? CoutHorsFN : PrixMax;
      var PretMax= tmp * (quotite / 100);

      if(PretMax>CoutHorsFN/2)
          {
            PretMax=CoutHorsFN/2;
          }

      var cout10=Math.floor(CoutHorsFN/10+0.5);
      var revenu=(cout10 > fdata.RevFiscRef) ? cout10 : fdata.RevFiscRef;
      var CoeffMenage=brm.CoeffMenage[NbPerso-1];
      var tranche=null;

      for(var iTranche=0; iTranche<brm.NbTranche; iTranche++)
          {
            var t=brm.tmr[IsAncien][iTranche];
            var RgiMax=t.RgiMax[iZone]*CoeffMenage;
            var ErrArrondi=0.005;

            if(iTranche+1==brm.NbTranche)
                {
                  // FGAS : <=, malgre R31-10-3-1
                  if(revenu <= RgiMax+ErrArrondi)
                      {
                        tranche=t;
                        break;
                      }

                  if(fdata.RevFiscRef>RgiMax+ErrArrondi)
                      { r.IsRevenuExcessif=1;
                      }
                  if(cout10>RgiMax+ErrArrondi)
                      { r.IsPrixExcessif=1;
                      }
                }
            else{ if(revenu <= RgiMax+ErrArrondi) // R31-10-11 : <=
                      {
                        tranche=t;
                        break;
                      }
                }
          }

      if(tranche!=null)
          {
            r.PretMax=Math.round(PretMax);

            r.NbMoisP1     =tranche.NbMoisP1;
            r.NbMoisP2     =tranche.NbMoisP2;
            r.PCentAmortP2 =tranche.PCentAmortP2;
            r.PCentAmortP1 =100-r.PCentAmortP2;

            r.EchP1=(PretMax*(r.PCentAmortP1/100))/r.NbMoisP1;
            r.EchP2=(r.NbMoisP2>0) ? (r.PretMax*(r.PCentAmortP2/100))/r.NbMoisP2 : 0;

            r.EchP1=Math.round(r.EchP1*100)/100;
            r.EchP2=Math.round(r.EchP2*100)/100;

            r.NbMoisTotal=r.NbMoisP1+r.NbMoisP2;
          }
    }

return(r);
}


//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
function GetStrBrm(tbl, mode)
{
var s="";

for(var i=0; i<tbl.length; i++)
    {
      if(s.length) s+="<br/>";

      if(mode==2)
          { s+=FormateAnMois(FormateVal(tbl[i], 0));///+"&nbspmois";
          }
      else
      if(mode==1)
          {
            s+="&#8804; "+FormateVal(tbl[i], 0, 0x0001)+"&nbsp;&euro;";
          }
      else{ s+=FormateVal(tbl[i], 0, 0x0001)+"&nbsp;&euro;";
          }
    }

return(s);
}


//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
function GetStrBrmRembours(RembD1, RembD2, RembPC)
{
var sRet="";

for(var i=0; i<RembD1.length; i++)
    {
      var s;
      var pcent=RembPC[i];
      var sAnMoisAmort=FormateAnMois(RembD2[i]);


      if(pcent>0)
          { s=""+(100-pcent)+"% du pr&ecirc;t sur "
             +FormateAnMois(RembD1[i])
             +" maxi, solde  sur "+sAnMoisAmort;
          }
      else{ s="Pr&ecirc;t amorti sur "+FormateAnMois(RembD1[i]);
          }

      if(i>0) sRet+="<br/>";
      sRet+=s;
    }

return(sRet);
}


//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
/*function MajFicheBareme(NbPersonne)
{
var brm=GetBaremePtz();
var brm2=new Object();

if(NbPersonne>8) NbPersonne=8;

//---fill brm2----------------------------------

brm2.TRgiMax        = new Array();
brm2.TPretMax       = new Array();
brm2.TPretMax       = new Array();
brm2.TModRembNeuf   = new Array();
brm2.TModRembAncien = new Array();


for(var iZone=0; iZone<4; iZone++)
    {
      brm2.TRgiMax[iZone]=brm.TRgiMax[iZone]
                         *brm.CoeffMenage[NbPersonne-1];
    }

for(var iTypeAchat=0; iTypeAchat<3; iTypeAchat++)
    {
      brm2.TPretMax[iTypeAchat] = new Array();

      var iNbPers=(NbPersonne<=5) ? (NbPersonne-1) : 4;

      for(var iZone=0; iZone<4; iZone++)
          {
            var iPrixMax=(iTypeAchat==brm.codif.TACHAT_I_NEUF_BBC ||
                          iTypeAchat==brm.codif.TACHAT_I_NEUF_NBBC) ? 0 : 1;

            brm2.TPretMax[iTypeAchat][iZone]
              = brm.PrixMax[iPrixMax][iZone][iNbPers]
              * (brm.QuotiteMax[iTypeAchat][iZone]/100);
          }
    }

for(var IsAncien=0; IsAncien<=1; IsAncien++)
    {
      for(var iTranche=0; iTranche<brm.NbTranche; iTranche++)
          {
            var tranche =brm.tmr[IsAncien][iTranche];
            var tranche2=new Object();

            tranche2.RgiMax      = new Array();
            tranche2.NbMoisP1    = tranche.NbMoisP1;
            tranche2.NbMoisP2    = tranche.NbMoisP2;
            tranche2.PCentAmortP2= tranche.PCentAmortP2;

            for(var iZone=0; iZone<4; iZone++)
                {
                  tranche2.RgiMax[iZone]=tranche.RgiMax[iZone]
                                        *brm.CoeffMenage[NbPersonne-1];
                }

            if(IsAncien)
                { brm2.TModRembAncien[iTranche] = tranche2;
                }
            else{ brm2.TModRembNeuf[iTranche] = tranche2;
                }
          }
    }

//-----------------------------------------

var TExcluA=[],TExcluB1=[],TExcluB2=[],TExcluC=[];
var TPretMaxA=[],TPretMaxB1=[],TPretMaxB2=[],TPretMaxC=[];
var TRembRgiA=[],TRembRgiB1=[],TRembRgiB2=[],TRembRgiC=[]; // neuf
var TRembRgiAA=[],TRembRgiAB1=[],TRembRgiAB2=[],TRembRgiAC=[]; // ancien
var TNbMoisTot=[];
var TNbMoisP1=[];
var TNbMoisP2=[];
var TPCAmortP2=[];

    {
      var tab=brm2.TRgiMax;
      TExcluA.push( tab[0]);
      TExcluA.push( tab[0]*10);

      TExcluB1.push(tab[1]);
      TExcluB1.push(tab[1]*10);

      TExcluB2.push(tab[2]);
      TExcluB2.push(tab[2]*10);

      TExcluC.push( tab[3]);
      TExcluC.push( tab[3]*10);
    }

for(var i=0; i<brm2.TPretMax.length; i++)
    {
      var tab = brm2.TPretMax[i];
      TPretMaxA.push( tab[0]);
      TPretMaxB1.push(tab[1]);
      TPretMaxB2.push(tab[2]);
      TPretMaxC.push( tab[3]);
    }

for(var i=0; i<brm2.TModRembNeuf.length; i++)
    {
      var tab = brm2.TModRembNeuf[i].RgiMax;
      var obj = brm2.TModRembNeuf[i];

      TRembRgiA.push( tab[0]);
      TRembRgiB1.push(tab[1]);
      TRembRgiB2.push(tab[2]);
      TRembRgiC.push( tab[3]);

      TNbMoisTot.push(obj.NbMoisP1+obj.NbMoisP2);
      TNbMoisP1.push(obj.NbMoisP1);
      TNbMoisP2.push(obj.NbMoisP2);
      TPCAmortP2.push(obj.PCentAmortP2);
    }

for(var i=0; i<brm2.TModRembAncien.length; i++)
    {
      var tab = brm2.TModRembAncien[i].RgiMax;
      var obj = brm2.TModRembAncien[i];

      TRembRgiAA.push( tab[0]);
      TRembRgiAB1.push(tab[1]);
      TRembRgiAB2.push(tab[2]);
      TRembRgiAC.push( tab[3]);
    }

//-----affiche les baremes-------------------------------------

var cNbPers = document.ffff.NbPersonne;

document.getElementById("IdNbPersMenage" ).innerHTML=cNbPers.options[cNbPers.selectedIndex].text;

document.getElementById("brm_sExcluA" ).innerHTML=GetStrBrm(TExcluA, 0);
document.getElementById("brm_sExcluB1").innerHTML=GetStrBrm(TExcluB1, 0);
document.getElementById("brm_sExcluB2").innerHTML=GetStrBrm(TExcluB2, 0);
document.getElementById("brm_sExcluC" ).innerHTML=GetStrBrm(TExcluC, 0);

document.getElementById("brm_sPretMaxA" ).innerHTML=GetStrBrm(TPretMaxA, 0);
document.getElementById("brm_sPretMaxB1").innerHTML=GetStrBrm(TPretMaxB1, 0);
document.getElementById("brm_sPretMaxB2").innerHTML=GetStrBrm(TPretMaxB2, 0);
document.getElementById("brm_sPretMaxC" ).innerHTML=GetStrBrm(TPretMaxC, 0);

document.getElementById("brm_sRembRgiA" ).innerHTML=GetStrBrm(TRembRgiA , 1);
document.getElementById("brm_sRembRgiB1").innerHTML=GetStrBrm(TRembRgiB1, 1);
document.getElementById("brm_sRembRgiB2").innerHTML=GetStrBrm(TRembRgiB2, 1);
document.getElementById("brm_sRembRgiC" ).innerHTML=GetStrBrm(TRembRgiC , 1);
document.getElementById("brm_sRembD1"   ).innerHTML=GetStrBrm(TNbMoisTot, 2);
document.getElementById("brm_sRembD2"   ).innerHTML=GetStrBrmRembours(TNbMoisP1, TNbMoisP2, TPCAmortP2);

document.getElementById("brm_sRembRgiAA" ).innerHTML=GetStrBrm(TRembRgiAA , 1);
document.getElementById("brm_sRembRgiAB1").innerHTML=GetStrBrm(TRembRgiAB1, 1);
document.getElementById("brm_sRembRgiAB2").innerHTML=GetStrBrm(TRembRgiAB2, 1);
document.getElementById("brm_sRembRgiAC" ).innerHTML=GetStrBrm(TRembRgiC , 1);
document.getElementById("brm_sRembD1A"   ).innerHTML=GetStrBrm(TNbMoisTot, 2);
document.getElementById("brm_sRembD2A"   ).innerHTML=GetStrBrmRembours(TNbMoisP1, TNbMoisP2, TPCAmortP2);
}
*/


//---------------------------------------------------------------
//---------------------------------------------------------------
//---------------------------------------------------------------
function MainGetForm()
{
var fd=new Object();
var f=document.ffff;

fd.IsShowBrm  =(f.IsShowBrm.checked) ? 1:0;
fd.IsShowRgl  =(f.IsShowRgl.checked) ? 1:0;

fd.Is1erAchat   = parseInt(f.Is1erAchat.value); // [ajout dec2011]

fd.ZoneABC      = parseInt(f.ZoneABC.options[f.ZoneABC.selectedIndex].value);
fd.TypeAchat    = parseInt(f.TypeAchat.options[f.TypeAchat.selectedIndex].value);
fd.NbPersonne   = GetNum(f.NbPersonne.value, 20);
fd.RevFiscRef   = GetNum(f.RevenuN1N2.value, 80);
fd.PrixLogement = GetNum(f.PrixLogement.value, 80);
///fd.Apport       = GetNum(f.Apport, 80);

return(fd);
}



//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
function BodyOnLoad()
{
var fdata;
var ORes=new Object();
var f=document.ffff;
gIsChange1=0;


fdata =MainGetForm();

if(fdata.NbPersonne &&
   fdata.Is1erAchat==1 &&
   fdata.TypeAchat!=99)
    {
      ORes=GetResultPtzPlus(fdata);
    }

if(ORes.PretMax)
    {
      ORes.S_NbMois         =""+FormateAnMois(ORes.NbMoisP1+ORes.NbMoisP2);
      ORes.S_DureePeriode1  =""+FormateAnMois(ORes.NbMoisP1);
      ORes.S_DureePeriode2  =""+FormateAnMois(ORes.NbMoisP2);
      ORes.S_Pcent1         =""+(100-ORes.PCentAmortP2)+"%";

      ORes.S_Pret           =FormateVal(ORes.PretMax   , 0)+" &euro;";
      ORes.S_EchPeriode1    =FormateVal(ORes.EchP1     , 2)+" &euro;";
      ORes.S_EchPeriode2    =FormateVal(ORes.EchP2     , 2)+" &euro;";
    }
else{ ORes.S_NbMois         ="";
      ORes.S_DureePeriode1  ="";
      ORes.S_DureePeriode2  ="";
      ORes.S_Pcent1         ="";

      ORes.S_Pret           ="";
      ORes.S_EchPeriode1    ="";
      ORes.S_EchPeriode2    ="";
    }

var MsgErr=null;

if(fdata.Is1erAchat!=1)
    {
      MsgErr = "Le PTZ n'est pas possible si vous êtes déjà propriétaire "
             + "de votre résidence principale.";
    }
else
if(fdata.TypeAchat==99)
    {
      MsgErr = "Le PTZ n'est possible que s'il s'agit "
             + "d'un achat ou d'une construction d'un logement neuf "
             + "ou le rachat d'un logement HLM par son locataire.";
    }
else
if(ORes.IsRevenuExcessif)
    { MsgErr = "Le PTZ est exclu car votre revenu fiscal de référence "
             + "excède le plafond de revenu applicable.";
    }
else
if(ORes.IsPrixExcessif)
    {
      MsgErr = "Le PTZ est exclu car le coût du logement excède "
             + "10 fois le plafond de revenu applicable.";
    }

if(MsgErr!=null)
    {
      document.getElementById("IfRevSup0" ).style.display="none";
      document.getElementById("IfQuestion").style.display="none";

      document.getElementById("IfRevSup1").innerHTML = MsgErr;
      document.getElementById("IfRevSup1").style.display="";
    }
else{ document.getElementById("IfRevSup1").style.display="none";

      if(!ORes.PretMax)
          { document.getElementById("IfRevSup0" ).style.display="none";
            document.getElementById("IfQuestion").style.display="";
          }
      else{ document.getElementById("IfQuestion").style.display="none";
            document.getElementById("IfRevSup0" ).style.display="";
          }
    }

document.getElementById("IsShowBrm1").style.display=(fdata.IsShowBrm==1) ? "":"none";
document.getElementById("IsShowRgl1").style.display=(fdata.IsShowRgl==1) ? "":"none";

/*if(fdata.NbPersonne)
    {
      MajFicheBareme(fdata.NbPersonne);
    }
*/
document.getElementById("result_S_Pret"         ).innerHTML=ORes.S_Pret         ;
document.getElementById("result_S_NbMois"       ).innerHTML=ORes.S_NbMois       ;
document.getElementById("result_S_DureePeriode1").innerHTML=ORes.S_DureePeriode1;
document.getElementById("result_S_DureePeriode2").innerHTML=ORes.S_DureePeriode2;
document.getElementById("result_S_EchPeriode1"  ).innerHTML=ORes.S_EchPeriode1  ;
document.getElementById("result_S_EchPeriode2"  ).innerHTML=ORes.S_EchPeriode2  ;
document.getElementById("result_S_EchTotal"     ).innerHTML=ORes.S_EchPeriode1  ;

document.getElementById("result_diff_partiel").innerHTML=
  "Durée de la p&eacute;riode 1"+
  ((ORes.PCentAmortP2) ? " ("+ORes.S_Pcent1+")" : "......")+"..:";


if(ORes.PCentAmortP2)
    { document.getElementById("IfTypeDiff1_duree").style.display="";
    }
else{ document.getElementById("IfTypeDiff1_duree").style.display="none";
    }

if(ORes.PCentAmortP2)
    { document.getElementById("IfTypeDiff0_ech").style.display="none";
      document.getElementById("IfTypeDiff1_ech").style.display="";
    }
else{ document.getElementById("IfTypeDiff1_ech").style.display="none";
      document.getElementById("IfTypeDiff0_ech").style.display="";
    }
}

