function go(elementName, CodePage)
{
   var bOK = true;
   if(elementName!='CANCEL')
   {
      bOK = valide_pages(CodePage, elementName);
   }

   if (bOK)
   {
      document.FormSRET.CLH_C_.value=elementName;
      document.FormSRET.submit();
   }
}

function valide_pages(CodePage, elementName)
{
   var bOK = true;
   var bTest = false;
   if (elementName.substring(0, 4) == "NAV_")
      bTest = true;

   if (elementName == "NEW")
   {
      bOK = window.confirm("Etes-vous sûr de vouloir réinitialiser l'étude ?");
   }
   else if (CodePage == "DLG_PERIODE_ACTIVITE" && ( elementName=="VALIDE" || elementName=="REVENUS_DETAIL" || elementName=="COURBE_REVENUS" ) )
   {
      bOK = valide_periode(null);
   }
   else if (CodePage == "DLG_RETRAITE_H" || CodePage == "DLG_RETRAITE_H_CONJOINT")
   {
      if (elementName!="PREV" && elementName!="OPEN" && elementName!="NAV_CLIENT")
      {
         bOK = valide_page_hypotheses();
      }
      else //on vérifie la date de début
      {
          var elementDateDebut = getElementForName(document.FormSRET, "PERIODE[1]/DATE_DEB");
          if (elementDateDebut && elementDateDebut.value.length != 10)
          {
             elementDateDebut.value = sDateDebutDefaut;
          }
      }
   }
   else if (CodePage == "DLG_DISPO_FISC" || CodePage == "DLG_EPRG_CONS")
   {
      bOK = Valide_Annee_Souscription(false);
   }
   else if (CodePage == "DLG_RETRAITE_H_LIGHT")
   {
      bOK = valide_page_etat_civil();
   }
   else if (CodePage == "DLG_RECONSTITUTION" && (elementName == "NEXT" || elementName == "AJOUTER" || bTest))
   {
      bOK = valide_page_reconstitution();
   }
   return bOK;
}

function supprime_periode()
{
   var vForm       = document.FormSRET;
   var lLength     = vForm.length;
   var nbreChecked = 0;
   for (var i=0 ; i<lLength ; i++)
   {
      if (vForm[i].name=="MLIST-CARRIERE/PERIODE" && vForm[i].checked)
         nbreChecked++;
   }

   if (nbreChecked > 0)
   {
     var text     = "Vous avez décidé de supprimer " + nbreChecked +  " période";
     if (nbreChecked>1)
        text+= "s";

     text+= " d'activité.  Cliquez sur \"OK\" pour confirmer ?";
     var response = window.confirm(text);
     if (response)
     {
        go("SUPPRIMER","");
     }
   }
}

function Valide_Annee_Souscription(bFirstTime)
{
   var CR = true;
   var vSelect = getElementForName(document.FormSRET, "OPTICAP[1]/AN_SOUSC");

   if (vSelect != null)
   {
      if (vSelect.length != null)
      {
         for (i=0; i < vSelect.length; i++)
         {
            if(vSelect[i].selected==true)
            {
               AnneeSouscription = parseFloat(vSelect[i].value);
               break;
            }
         }
      }
      else
      {
         AnneeSouscription = parseFloat(vSelect.value);
      }
   }

   if (AnneeSouscription < 2004)// encore valide ?
   {
      if (!bFirstTime)
         window.alert("Vous ne pouvez pas adhérer à un PERP avant janvier 2004.");
      CR = false;
   }
   else if (AnneeSouscription > parseFloat(DateDepartRetraite.substring(0,4)))
   {
      if (!bFirstTime)
         window.alert("Vous ne pouvez pas adhérer à un contrat après votre date de départ en retraite.");
      CR = false;
   }
   else if (AnneeSouscription == parseFloat(DateDepartRetraite.substring(0,4)))
   {
      var vSelect = getElementForName(document.FormSRET, "OPTICAP[1]/MOIS_SOUSC");
      var MoisSouscription = null;

      if (vSelect != null)
      {
         if (vSelect.length != null)
         {
            for (i=0; i < vSelect.length; i++)
            {
               if(vSelect[i].selected==true)
               {
                  MoisSouscription = vSelect[i].value;
                  break;
               }
            }
         }
         if (MoisSouscription == null || parseFloat(MoisSouscription) >= parseFloat(DateDepartRetraite.substring(5,7)))
         {
            if (!bFirstTime)
               window.alert("Vous ne pouvez pas adhérer à un contrat après votre date de départ en retraite.");
            CR = false;
         }
      }
   }

   return CR;
}

function valide_periode(AnneeNaissance, DateDepart)
{

   var mvtOK = true;
   var bVersionFlash;
   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }
   var bVersionWeb;
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }

   // Récupération de l'année de naissance
   if (AnneeNaissance==null || AnneeNaissance=="")
   {
      AnneeNaissance = getElementForName(document.FormSRET, "PERS[1]/DATE_NAISS");

      if (AnneeNaissance!=null && AnneeNaissance.value.length == 10)
         AnneeNaissance = parseFloat(AnneeNaissance.value.substr(6,4));
      else
      {
         //window.alert("Un problème est survenu !\nLa date de naissance est incorrecte");
         open("destroy.jsp","_self");
         return;
      }
   }

   // Récupération de la date de départ
   if (DateDepart==null || DateDepart=="")
   {
      var DateDepartTemp = getElementForName(document.FormSRET, "DATE_DEPART");

      mvtOK = false;
      if (DateDepartTemp!=null && DateDepartTemp.value.length == 10)
      {
         DateDepartTemp = DateDepartTemp.value;

         if (DateDepartTemp.indexOf("-") == 4)
         {
            DateDepart = DateDepartTemp.substr(8,2)+"/"+DateDepartTemp.substr(5,2)+"/"+DateDepartTemp.substr(0,4);
            mvtOK = true;
         }
         else if (DateDepartTemp.indexOf("/") == 3)
         {
            DateDepart = DateDepartTemp;
            mvtOK = true;
         }
      }

      if (!mvtOK)
      {
         open("destroy.jsp","_self");
         return;
      }
   }

   var elementDateDebut      = getElementForName(document.FormSRET, "PERIODE[1]/DATE_DEB");
   var elementBoolFinPeriode = getElementForName(document.FormSRET, "PERIODE[1]/RBFINPER");
   var elementDateFin        = getElementForName(document.FormSRET, "PERIODE[1]/DATE_FIN");
   var elementDateDebutFlash = getElementForName(document.FormSRET, "DATE_DEB");
   var elementDateFinFlash   = getElementForName(document.FormSRET, "DATE_FIN");

  if (elementDateDebut && elementBoolFinPeriode && elementDateFin)
   {
      var DateDebut      = elementDateDebut.value;
      var boolFinPeriode = elementBoolFinPeriode.checked;
      var DateFin        = elementDateFin.value;
      var elementAnneeDebut;
      if ((typeof(sModeSaisiePeriodes) != "undefined" && sModeSaisiePeriodes == "MONO") || bVersionFlash || bVersionWeb)
      {
         elementAnneeDebut = getElementForName(document.FormSRET, "ANNEE_DEB");
      }

      // Vérification de la présence d'une date de début et d'une date de fin si on est dans une période bornée
      if (DateDebut == "" || DateDebut.length < 10)
      {
         if (DateFormatAnnee.toUpperCase() == "OUI")
         {
            if ( bVersionWeb )
               window.alert("L'année de début de carrière est obligatoire.");
            else
               window.alert("L'année de début de période est obligatoire.");
         }
         else
         {
         window.alert("La date de début de période est obligatoire.");
         }

         if (elementAnneeDebut)
         {
            if (bVersionFlash) elementDateDebutFlash.focus();
            else elementAnneeDebut.focus();
         }
         else
         {
            if (bVersionFlash) elementDateDebutFlash.focus();
            else elementDateDebut.focus();
         }
         mvtOK = false;
      }
      else if (boolFinPeriode && DateFin=="")
      {
         if (DateFormatAnnee.toUpperCase() == "OUI")
         {
            window.alert("L'année de fin de période est obligatoire.");
         }
         else
         {
         window.alert("La date de fin de période est obligatoire.");
         }
         if (bVersionFlash)
            elementDateFinFlash.focus()
         else
         elementDateFin.focus();
         mvtOK = false;
      }
      // Si les dates de début et de fin de périodes sont OK on continue
      if (mvtOK)
      {
         if (DateFormatAnnee.toUpperCase() == "OUI")
         {
            var msgDebutPeriode         = "L'année de début de période doit être comprise entre le 14ème "
                  + "et le 75ème anniversaire.";
            var msgFinPeriode           = "L'année de fin de période doit être comprise entre le 14ème "
                  + "et le 75ème anniversaire.";
         }
         else
         {
            var msgDebutPeriode         = "La date de début de période doit être comprise entre le 14ème "
               + "et le 75ème anniversaire.";
            var msgFinPeriode           = "La date de fin de période doit être comprise entre le 14ème "
                  + "et le 75ème anniversaire.";
         }
         var AnneeDebut = parseFloat(DateDebut.substr(6,4));
         var limiteInfAnneeNaissance = AnneeNaissance + 14;
         var limiteSupAnneeNaissance = AnneeNaissance + 75;

         // Vérification de la compatibilité entre l'age du client et la date de début de période
         if (AnneeDebut < limiteInfAnneeNaissance || AnneeDebut > AnneeNaissance+75)
         {
            window.alert(msgDebutPeriode);
            // Si la date de début est inférieur à la date minumum, on la remplace par la date limite inférieure
            // Même fonctionnemnt pour la borne supérieur
            if (AnneeDebut < limiteInfAnneeNaissance)
            {
               if (bVersionFlash)
               {
                  elementDateDebutFlash.value = limiteInfAnneeNaissance;
               }
               else if (bVersionWeb)
               {
                  elementAnneeDebut.value = limiteInfAnneeNaissance;
               }
               else
               elementDateDebut.value = DateDebut.substr(0,6) + limiteInfAnneeNaissance;
            }
            else
            {
               if (bVersionFlash)
            {
                  elementDateDebutFlash.value = limiteSupAnneeNaissance;
               }
               else if (bVersionWeb)
               {
                  elementAnneeDebut.value = limiteInfAnneeNaissance;
               }
               else
               elementDateDebut.value = DateDebut.substr(0,6) + limiteSupAnneeNaissance;
            }
            if (bVersionFlash)
            {
               elementDateDebutFlash.focus();
         }
            else if (bVersionWeb)
            {
               elementAnneeDebut.value = limiteInfAnneeNaissance;
            }
            else
         {
            elementDateDebut.focus();
            }
            mvtOK = false;

            // Vérification de l'année de début en mode mono période
            if (elementAnneeDebut)
            {
               if (AnneeDebut < limiteInfAnneeNaissance)
               {
                  elementAnneeDebut.value = limiteInfAnneeNaissance;
               }
               else //AnneeDebut > AnneeNaissance+75
               {
                  elementAnneeDebut.value = limiteSupAnneeNaissance;
               }
               elementAnneeDebut.focus();
            }
         }
         // Si la date de fin est inférieur à la date de début
         else if (boolFinPeriode && isDateInferieurToDate(DateFin, DateDebut))
         {
            if (DateFormatAnnee.toUpperCase() == "OUI")
            {
               window.alert("L'année de début de période doit être antérieure à l'année de fin de période.");
            }
            else
            {
            window.alert("La date de début de période doit être antérieure à la date de fin de période.");
            }
            if (bVersionFlash)
               elementDateFinFlash.focus();
            else
            elementDateFin.focus();
            mvtOK = false;
         }
         // Vérification de la compatibilité entre l'age du client et la date de fin de période
         else if (boolFinPeriode && (parseFloat(DateFin.substr(6,4)) > limiteSupAnneeNaissance))
         {
            window.alert(msgFinPeriode);
            if (bVersionFlash)
            {
               elementDateFinFlash.value = limiteSupAnneeNaissance;
               elementDateFinFlash.focus();
            }
            else
            {
               elementDateFin.value = DateFin.substr(0,6) + limiteSupAnneeNaissance;
            elementDateFin.focus();
            }

            mvtOK = false;
         }
         else if (boolFinPeriode && (parseFloat(DateFin.substr(6,4))< limiteInfAnneeNaissance))
         {
            window.alert(msgFinPeriode);
            if (bVersionFlash)
            {
               elementDateFinFlash.value = DateFin.substr(0,6) + limiteInfAnneeNaissance;
               elementDateFinFlash.focus();
            }

            elementDateFin.value = DateFin.substr(0,6) + limiteInfAnneeNaissance;
            elementDateFin.focus();

            mvtOK = false;
         }
         else
         {
            // Vérification que la date de début de la période est n'est pas postérieur à la date de départ
            if (isDateInferieurToDate(DateDepart, DateDebut))
            {
               if (DateFormatAnnee.toUpperCase() == "OUI")
               {
                  window.alert("L'année de début de période ne peut pas être postérieure à l'année de départ en retraite.");
               }
               else
               {
               window.alert("La date de début de période ne peut pas être postérieure à la date de départ en retraite.");
               }
               if (bVersionFlash) elementDateDebutFlash.focus();
               else elementDateDebut.focus();
               mvtOK = false;
               if (elementAnneeDebut)
               {
                  elementAnneeDebut.focus();
               }
            }
            else if (isDateInferieurStrictToDate(DateDepart, DateFin))
            {
               if (DateFormatAnnee.toUpperCase() == "OUI")
               {
                  window.alert("Pour information, vous avez saisi une année de fin d'activité qui est postérieure à l'année de départ en retraite.");
               }
               else
            {
               window.alert("Pour information, vous avez saisi une date de fin d'activité qui est postérieure à la date de départ en retraite.");
            }
         }
      }
   }
   }
   else  //   if (elementDateDebut && elementBoolFinPeriode && elementDateFin)
   {
      mvtOK = false;
   }

   // Si on a au moins un revenu obligatoire
   if (mvtOK && (Rev1_Periode_Obligatoire == "OUI" || Revn_Periode_Obligatoire == "OUI" || Rev_Actuel_Obligatoire == "OUI"))
   {
      var Profession  = getElementForName(document.FormSRET, "PERIODE[1]/PROF");
      var RevenuDeb   = getElementForName(document.FormSRET, "PERIODE[1]/REV_DEB");
      var RevenuAct   = getElementForName(document.FormSRET, "PERIODE[1]/REV_ACT");
      var RevenuFin   = getElementForName(document.FormSRET, "PERIODE[1]/REV_FIN");

      // Si la profession sélectionnée génère des revenus, on test les revenus
      if (Profession && RevenuDeb && RevenuAct && RevenuFin
         && Profession.value != "P_CHOMAGE"
         && Profession.value != "P_SERVICE_MILITAIRE"
         && Profession.value != "P_INACTSS"
         && Profession.value != "P_INACT"
         && Profession.value != "P_N_ACTIF_EXPLAGR"
         )
      {
         var B_3REV = "0";

         B_3REV = getElementForName(document.FormSRET, "PERIODE[1]/B_3REV").value;

         // Si les revenu de début est obligatoire et qu'il n'est pas renseigné
         if (Rev1_Periode_Obligatoire=="OUI" && RevenuDeb.value=="")
         {
            window.alert(MSG_REV_DEB);
            RevenuDeb.focus();
            mvtOK = false;
         }
         // Si les revenu actuel est obligatoire et qu'il n'est pas renseigné
         else if (B_3REV == "1" && Rev_Actuel_Obligatoire=="OUI" && RevenuAct.value=="")
         {
            window.alert(MSG_REV_ACT);
            RevenuAct.focus();
            mvtOK = false;
         }
         // Si au moins un des revenus est obligatoire et qu'aucun n'est renseigné
         else if ( Revn_Periode_Obligatoire == "OUI"
               && RevenuDeb.value == ""
               && RevenuAct.value==""
               && RevenuFin.value==""
                )
         {
            window.alert(MSG_REV_N);
            RevenuDeb.focus();
            mvtOK = false;
         }
      }
   }

   return mvtOK;
}

/**
Comparaison de deux dates au format DD/MM/YYYY
**/
function isDateInferieurToDate(Date1, Date2)
{
   if (Date1==null || Date2==null || Date1.length<10 || Date2.length<10)
      return false;

   var An1= parseFloat(Date1.substr(6,4));
   var An2= parseFloat(Date2.substr(6,4));

   if ( An1 < An2 )
      return true;
      
   else if ( An1 > An2 )
      return false;
      
   else if ( An1 == An2 )
   {
      var Mois1= parseFloat(Date1.substr(3,2));
      var Mois2= parseFloat(Date2.substr(3,2));

      if ( Mois1 < Mois2 )
      return true;

      else if ( Mois1 > Mois2 )
         return false;
         
      else if ( Mois1 == Mois2 )
      {
         var Jour1= parseFloat(Date1.substr(0,2));
         var Jour2= parseFloat(Date2.substr(0,2));
         
         if ( Jour1 <= Jour2 )
      return true;
         else
            return false;
      }
   }

   return false;
}

/**
Comparaison de deux dates au format DD/MM/YYYY
**/
function isDateInferieurStrictToDate(Date1, Date2)
{
   if (Date1 == null || Date2 == null || Date1.length < 10 || Date2.length < 10)
      return false;

   var An1= parseFloat(Date1.substr(6,4));
   var An2= parseFloat(Date2.substr(6,4));


   if ( An1 < An2 )
      return true;
      
   else if ( An1 > An2 )
      return false;
      
   else if ( An1 == An2 )
   {
      var Mois1= parseFloat(Date1.substr(3,2));
      var Mois2= parseFloat(Date2.substr(3,2));

      if ( Mois1 < Mois2 )
      return true;

      else if ( Mois1 > Mois2 )
         return false;
         
      else if ( Mois1 == Mois2 )
      {
         var Jour1= parseFloat(Date1.substr(0,2));
         var Jour2= parseFloat(Date2.substr(0,2));
         
         if ( Jour1 < Jour2 )
      return true;
         else
            return false;
      }
   }

   return false;
}


function valide_age_depart(sLibelleChampAgeDepart,sLibelleChampMoisDepart)
{
   var mvtOK = true;
   var champAge_Depart = getElementForName(document.FormSRET, sLibelleChampAgeDepart);
   var champMois_Depart = getElementForName(document.FormSRET, sLibelleChampMoisDepart);
   var Age_Depart      = champAge_Depart.value;
   var Mois_Depart      = champMois_Depart.value;
   var bVersionWeb;

   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   // Vérification que l'age de départ est supérieur à l'age de départ mini du fichier de paramétrage
   if (Age_Depart_Mini.length > 0 && Age_Depart < Age_Depart_Mini)
   {
      window.alert("L'âge de départ en retraite doit être supérieur à "
         + Age_Depart_Mini + " ans.");
      mvtOK = false;
      champAge_Depart.value = Age_Depart_Mini;
      champAge_Depart.focus();
   }
   else if (Mois_Depart < 0 || Mois_Depart>11)
   {
      window.alert("Le mois du départ en retraite doit être compris entre 0 et 11 ");
      mvtOK = false;
      champMois_Depart.focus();
   }
   
   // Vérification que l'age de départ est inférieur à l'age de départ maxi du fichier de paramétrage
   else if (Age_Depart_Maxi.length > 0 && Age_Depart > Age_Depart_Maxi)
   {
      window.alert("L'âge de départ en retraite doit être inférieur à "+ Age_Depart_Maxi +  " ans.");
      mvtOK = false;
      champAge_Depart.value = Age_Depart_Maxi;
      champAge_Depart.focus();
   }

   // Vérification que la date de départ est postérieure à la date de l'évaluation
   var ChampDepart = getValueDiv("div_DateDepart");
   if (mvtOK && ChampDepart != null && DateEvaluation != null)
   {
      var index = ChampDepart.indexOf("soit le ");
      var DateDepart = ChampDepart.substring(index+8);
      var DateEvalIso = DateEvaluation.substring(8,10) + "/" + DateEvaluation.substring(5,7) + "/" + DateEvaluation.substring(0,4);

      if (isDateInferieurToDate(DateDepart, DateEvalIso))
      {
         //if (DateFormatAnnee.toUpperCase() == "OUI")
         //{
         //   if (bSaisieAgeDepart)
         //      window.alert("L'année de départ en retraite doit être postérieure à l'année d'évaluation (" + DateEvaluation.substring(0,4) + ").");
         //   else
         //   {
         //      window.alert("Vous devez être âgé de moins de "+Age_Depart_Defaut+" ans pour effectuer cette simulation.");
         //      if (bVersionWeb)
         //      {
         //         var champNaiss = getElementForName(document.FormSRET, "DATE_NAISS");
         //         champNaiss.focus();
         //      }
         //   }
         //}
         //else
         {
            window.alert("La date de départ en retraite doit être postérieure à la date d'évaluation (" + DateEvalIso + ").");
         }
         mvtOK = false;
         if (bSaisieAgeDepart)
         champAge_Depart.focus();
      }
   }

   return mvtOK;
}

function valide_page_hypotheses( )
{
   var bVersionLight = false;
   var bVersionWeb   = false;

   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight = bVersionLightGlobal ;
   }
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   var mvtOK = true;
   var AnneeNaissance = getElementForName(document.FormSRET, "PERS[1]/DATE_NAISS");

   // validation de la date saisie
   if (bVersionWeb)
   {
      mvtOK = valide_date_naissance();
   }

   // date de naissance obligatoire
   if(mvtOK)
   {
   if (AnneeNaissance!=null && AnneeNaissance.value.length == 10)
   {
      AnneeNaissance = parseFloat(AnneeNaissance.value.substr(6,4));
   }
   else
   {
         if (bVersionLight || bVersionWeb)
         {
           window.alert("Vous devez saisir le mois et l'année de naissance.");
           if (bVersionWeb)
           {
                 var champAnnee = getElementForName(document.FormSRET, "DATE_NAISS");
                 champAnnee.focus();
           }
           else
      {
        AnneeNaissance.focus();
      }
        return false;
      }
      else
      {
            open("destroy.jsp","_self");
         return;
      }
   }
   }

   // date de naissance + age depart <=la date de l'évaluation
   if (mvtOK)
   {
   mvtOK = valide_age_depart("HYPO[1]/AGE_DEPART","HYPO[1]/MOIS_DEPART");
   }

   if (mvtOK)
   {
      var DateDepart = getValueDiv("div_DateDepart");
      mvtOK = valide_periode(AnneeNaissance, DateDepart);
   }
   return mvtOK;
}

function valide_page_reconstitution( )
{
   var bVersionLight = false;
   var bVersionWeb   = false;

   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight = bVersionLightGlobal ;
   }
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   var mvtOK = true;
   var AnneeNaissance = getElementForName(document.FormSRET, "PERS[1]/DATE_NAISS");

   if (bVersionLight || bVersionWeb)
   {
      mvtOK = valide_date_naissance();
   }
   else
      mvtOK = valide_page_etat_civil();

   // date de naissance + age depart <=la date de l'évaluation
   if (mvtOK)
   {
       var champAge_Departtmp = getElementForName(document.FormSRET, "CARRIERE[1]/HYPO[1]/AGE_DEPART");
       if  (champAge_Departtmp.type == 'hidden')
        mvtOK = valide_age_depart("HYPO[1]/AGE_DEPART","HYPO[1]/MOIS_DEPART");
       else
        mvtOK = valide_age_depart("CARRIERE[1]/HYPO[1]/AGE_DEPART","CARRIERE[1]/HYPO[1]/MOIS_DEPART");
   }


   return mvtOK;
}

function valide_date_naissance()
{
   var bVersionLight = false;
   var bVersionWeb   = false;

   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight = bVersionLightGlobal ;
   }
   if(typeof(bVersionWebGlobal) != "undefined")
{
      bVersionWeb = bVersionWebGlobal ;
   }

   var mvtOK = true
   var ChampDateNaissance = getElementForName(document.FormSRET, "PERS[1]/DATE_NAISS");
   if (ChampDateNaissance==null || ChampDateNaissance.value.length < 10)
   {
       if (DateFormatAnnee.toUpperCase() == "OUI")
      {
         window.alert("Vous devez saisir le mois et l'année de naissance.");
        }
      else
      {
      window.alert("Vous devez saisir la date de naissance.");
      }
      if (bVersionWeb)
      {
         var champNaiss = getElementForName(document.FormSRET, "DATE_NAISS");
         champNaiss.focus();
      }
      else
      {
      ChampDateNaissance.focus();
      }
      mvtOK = false;
   }

   if (mvtOK)
   {
      var dateDuJour = DateEvaluation.substr(8,2) + "/" + DateEvaluation.substr(5,2) +"/"+ DateEvaluation.substr(0,4);
      IsDate(dateDuJour);
      dateDuJour = rDate;

      var dateNaissance = ChampDateNaissance.value;
      dateNaissance     = ChampDateNaissance.value.substr(0,6) + parseFloat(parseFloat(ChampDateNaissance.value.substr(6,4)) + 18);

      if (isDateInferieurToDate(dateDuJour, dateNaissance))
      {
         window.alert("Vous devez être âgé de plus de 18 ans pour effectuer cette simulation.");
         mvtOK = false;
         if (bVersionWeb)
         {
            getElementForName(document.FormSRET, "DATE_NAISS").focus();
         }
         else
         {
         ChampDateNaissance.focus();
      }
      }
      else
      {
         dateNaissance     = ChampDateNaissance.value.substr(0,6) + parseFloat(parseFloat(ChampDateNaissance.value.substr(6,4)) + 75);

         if (isDateInferieurToDate(dateNaissance, dateDuJour))
         {
            window.alert("Vous devez être âgé de moins de 75 ans pour effectuer cette simulation.");
            mvtOK = false;
            if (bVersionWeb)
            {
               getElementForName(document.FormSRET, "DATE_NAISS").focus();
            }
            else
            {
            ChampDateNaissance.focus();
         }
      }
   }
   }
   return mvtOK;
}

function valide_page_etat_civil()
{
   var mvtOK              = true;

   mvtOK = valide_date_naissance();

   if (mvtOK)
   {
      mvtOK = TestNbreEnfant();
   }

   return mvtOK;
}

function calculDateDepart()
{
   var bVersionFlash;

   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }
   var DateNaissance = getElementForName(document.FormSRET, "PERS[1]/DATE_NAISS");
   if (DateNaissance!=null && DateNaissance.value.length == 10
      && (getElementForName(document.FormSRET, "HYPO[1]/AGE_DEPART") != null
         || getElementForName(document.FormSRET, "CARRIERE[1]/HYPO[1]/AGE_DEPART") != null
         || getElementForName(document.FormSRET, "HYPO[1]/MOIS_DEPART") != null
         || getElementForName(document.FormSRET, "CARRIERE[1]/HYPO[1]/MOIS_DEPART") != null)
       )
   {
      var valueDateNaissance = DateNaissance.value;
      var champAgeDepart = getElementForName(document.FormSRET, "HYPO[1]/AGE_DEPART");
      var champMoisDepart = getElementForName(document.FormSRET, "HYPO[1]/MOIS_DEPART");

      if (!champAgeDepart)
      {
         champAgeDepart = getElementForName(document.FormSRET, "CARRIERE[1]/HYPO[1]/AGE_DEPART");
      }
      if (!champMoisDepart)
      {
         champMoisDepart = getElementForName(document.FormSRET, "CARRIERE[1]/HYPO[1]/MOIS_DEPART");
      }

      var AgeDepart      = 0;
      var MoisDepart      = 0;
      if (champAgeDepart)
      {
         AgeDepart = parseFloat(champAgeDepart.value);
      }
      if (champMoisDepart)
      {
         MoisDepart = parseFloat(champMoisDepart.value);
      }

      if (isNaN(AgeDepart))
      {
         AgeDepart = 0;
      }
      if (isNaN(MoisDepart))
      {
         MoisDepart = 0;
      }
      MoisDepart     = MoisDepart + parseFloat(valueDateNaissance.substr(3,2),10);

      var AnneeNaissance = parseFloat(valueDateNaissance.substr(6,4));
      var JourDepart     = "01";//valueDateNaissance.substr(0,2);
      var AnneeDepart    = AgeDepart + AnneeNaissance;

      //TD3108
      if (valueDateNaissance.substr(0,2) != "01")
      {
         MoisDepart++;
      }

      while ( MoisDepart>12)
      {
         MoisDepart = MoisDepart-12;
         AnneeDepart= AnneeDepart+ 1;
      }

      if (MoisDepart < 10)
      {
         MoisDepart = new String("0") + MoisDepart;
      }

      var DateDepart     = JourDepart + "/" + MoisDepart + "/" + AnneeDepart;

      var champAnneeDepart = getElementForName(document.FormSRET, "DATE_DEPART");
      if (champAnneeDepart)
      {
         champAnneeDepart.value = DateDepart.substr(6,4)+"-"+DateDepart.substr(3,2)+"-"+DateDepart.substr(0,2);
      }
      var champAnneeDepart2 = getElementForName(document.FormSRET, "HYPO[1]/DATE_DEPART");
      if (champAnneeDepart2)
      {
         champAnneeDepart2.value = DateDepart.substr(6,4)+"-"+DateDepart.substr(3,2)+"-"+DateDepart.substr(0,2);
      }

      {
         MajDiv("div_DateDepart", "soit le " + DateDepart);
      }
   }
   else
      MajDiv("div_DateDepart", "");
}

/*
 * Fonction appelée depuis l'IHM (interface externe)
 * quand l'utilisateur clique sur le  bouton
 * radio de fin de carrière ou date de fin de période ou s'il sort du champ "Date_Fin"
 * Elle permet de griser ou non la saisie de la date de fin de période
 * Si un date de fin est saisie, la fonction appelle checkRevenuActuel
 * \param bFinPeriode à true si choix "fin de carrière"
 */
function checkBool(bFinPeriode)
{
   var boolFinPeriode;
   var DateFin        = getElementForName(document.FormSRET, "PERIODE[1]/DATE_FIN");
   var bVersionFlash;

   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }
   if (typeof(DateFin) != "undefined" && DateFin != null)
   {
      if (bFinPeriode)
      {
         boolFinPeriode            = getRadioBoolFinPeriode("1");
         boolFinPeriode.checked    = "true";
         if (!(bVersionFlash))
         {
         DateFin.value             = "";
         DateFin.style.background  = "#BEBEBE";
         DateFin.readOnly          = true;
      }
      else
      {
            var DateF = getElementForName(document.FormSRET, "DATE_FIN");
            DateF.value             = "";
            DateFin.value           = "";
            DateF.style.background  = "#BEBEBE";
            DateF.readOnly          = true;
         }
      }
      else
      {
         boolFinPeriode            = getRadioBoolFinPeriode("0");
         boolFinPeriode.checked    = "true";
         if (!(bVersionFlash))
         {
            DateFin.readOnly          = false;
            DateFin.style.background  = "#FFFFFF";
         }
         else
         {
            var DateF = getElementForName(document.FormSRET, "DATE_FIN");
            DateF.readOnly          = false;
            DateF.style.background  = "#FFFFFF";
         }
      }
      checkRevenuActuel(DateFin);
   }
}

// fonction javascript interne
function changeProfession(champProfession)
{
   var bVersionLight = false;
   var bVersionWeb   = false;
   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight = bVersionLightGlobal ;
   }
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   var bVersionFlash = false;
   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }

   var hanneeDeb,hanneeFin, bDateDeb;

   if (champProfession)
   {
      var i= 0;
      for (i ; i<document.FormSRET.length; i++)
      {
         if (document.FormSRET[i].name==champProfession.name)
            break;
      }

      var s  = document.FormSRET[i].name;
      var re = /DEB/i;
      var r  = s.search(re);

      if (bVersionFlash)
      {
         hanneeDeb = document.FormSRET[i+2].value.substr(6,4);
         hanneeFin = document.FormSRET[i+4].value.substr(6,4);
      }
      else
      {
      hanneeDeb = document.FormSRET[i+1].value.substr(6,4);
      hanneeFin = document.FormSRET[i+3].value.substr(6,4);
      }

      if (bVersionWeb)
      {
         hanneeDeb = getElementForName(document.FormSRET, "PERIODE[1]/DATE_DEB").value.substr(6,4);
         hanneeFin = "";
      }

      var modeAffichage = getModeAffichage(hanneeDeb, hanneeFin);
      changeAffichageRevenu(modeAffichage);
   }
}


/*
 * Fonction appelée depuis l'IHM (interface externe)
 *
 * \param champDate
 */
function checkRevenuActuel(champDate)
{
   var hanneeDeb,hanneeFin, bDateDeb;
   var bVersionFlash = false;
   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }
   var bVersionWeb = false;
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   if(typeof(champDate) != "undefined" && champDate!=null)
   {
      var i= 0;
      for (i ; i<document.FormSRET.length; i++)
      {
         if (document.FormSRET[i].name==champDate.name)
            break;
      }

      var sNomChamp     = document.FormSRET[i].name;
      var expRecherche  = /DEB/i;
      var resRecherche  = sNomChamp.search(expRecherche);
      if (resRecherche > 0)
      {
         bDateDeb=true;
      }

      if (bDateDeb)
      {
         if (bVersionFlash || bVersionWeb)
         {
            hanneeDeb = champDate.value;
         }
         else
         {
         hanneeDeb = champDate.value.substr(6,4);
         }

         hanneeFin = document.FormSRET[i+2].value.substr(6,4);
      }
      else
      {
         hanneeDeb = document.FormSRET[i-2].value.substr(6,4);
         hanneeFin = champDate.value.substr(6,4);
      }

      var modeAffichage = getModeAffichage(hanneeDeb, hanneeFin);
      changeAffichageRevenu(modeAffichage);
   }
}

   /* modeAffichage
   1) Période passée
   2) Début, Actuel, Fin
   3) Période future
   */
function changeAffichageRevenu(modeAffichage)
{
   //alert("changeAffichageRevenu : modeAffichage=" + modeAffichage);
   var LabelRevenus, LabelRevenu1, LabelRevenu2, LabelRevenu3, LabelRevenuQ, LabelRevenuA, LabelRevActuel, LabelRevFin, LabelRevDeb;
   var bSansRevenu = false;
   var bExistQuestCompl = getbExistQuestionComplementaire();
   var bIsCondense   = false;
   if(typeof(bCondense) != "undefined")
   {
      bIsCondense = bCondense ;
   }
   LabelRevenus = getLibelleRevenusProfession(6);

   //Coloration des champs obligatoires
   if (Rev1_Periode_Obligatoire == "OUI")
   {
      classRev1 = "inputNumObligatoire";
   }
   else
   {
      classRev1 = "num";
   }

   if (LabelRevenus == "&nbsp;")
   {
      bSansRevenu = true;
   }

   var inputB_3REV = getElementForName(document.FormSRET, "PERIODE[1]/B_3REV");

   if (inputB_3REV!=null)
   {
      if (modeAffichage==2)
         inputB_3REV.value = "1";
      else
         inputB_3REV.value = "0";
   }

   var rev1 = getElementForName(document.FormSRET, "PERIODE[1]/REV_DEB");
   var rev2 = getElementForName(document.FormSRET, "PERIODE[1]/REV_ACT");
   var rev3 = getElementForName(document.FormSRET, "PERIODE[1]/REV_FIN");
   var rev4 = getElementForName(document.FormSRET, "PERIODE[1]/REVENU_FIN");

   if (rev1)
      rev1 = rev1.value;
   if (rev2)
      rev2 = rev2.value;
   if (rev3)
      rev3 = rev3.value;
   if (rev4)
      rev4 = rev4.value;

   var AnneeDebut = getElementForName(document.FormSRET, "PERIODE[1]/DATE_DEB");

   if (AnneeDebut && AnneeDebut.value.length == 10)
      AnneeDebut = AnneeDebut.value.substr(6,4);

   var AnneeFin   = getValueDateFinPeriode();
   if (AnneeFin && AnneeFin.length == 10)
      AnneeFin = AnneeFin.substr(6,4);

   var Renvoi1  = "";
   var Renvoi2  = "";
   var ImageInfo    = "<img src='" + sRepertoireImages +"/info.gif' border='0' onmouseover=\"doTooltip('";

   //Traitement du contenu des infobulles liées à la saisie des revenus de début et de fin de période
   if (Rev1_Periode_Obligatoire == "OUI")
   {
      Renvoi1 = Note_Renvoi_Revenu_Debut;

      if (modeAffichage == 1 || AvecProfilCarriere != "OUI")
      {
         Renvoi2  = Note_Renvoi_Revenu_Fin2;
      }
   }
   else
   {
      Renvoi1  = Note_Renvoi_Defaut;

      if (modeAffichage == 1 || AvecProfilCarriere != "OUI")
      {
         Renvoi2  = Note_Renvoi_Revenu_Fin2;
      }
   }

   if (Renvoi1 != "")
   {
      Renvoi1 = ImageInfo + repl(Renvoi1, "'", "&acute;") + "',undefined,210,-10,20)\" onmouseout=\"hideTip();\">";
   }

   if (Renvoi2 != "")
   {
      Renvoi2 = ImageInfo + repl(Renvoi2, "'", "&acute;") + "',undefined,210)\" onmouseout=\"hideTip();\">";
   }

   MajDiv("Div_NumNoteRev1", Renvoi1);
   MajDiv("Div_NumNoteRev2", Renvoi2);

   // Périodes d'activité sans revenus : pas de saise des revenus
   if (bSansRevenu)
   {
      MajDiv("Div_NumNoteRev1", "&nbsp;");
      MajDiv("Div_NumNoteRev2", "&nbsp;");

      MajDiv("Div_Libelle_Revenu1", "&nbsp;");
      MajDiv("Div_Revenu1", "<input type='hidden' name='PERIODE[1]/REV_DEB' value='' class='"+classRev1+"'>&nbsp;");
      MajDiv("Div_Devise1", "<input type='hidden' name='PERIODE[1]/DEV_DEB' value='EUR'>&nbsp;");

      MajDiv("Div_Libelle_RevenuA", "&nbsp;");
      MajDiv("Div_RevenuA", "<input type='hidden' name='PERIODE[1]/DEV_ACT' value='EUR'><input type='hidden' name='PERIODE[1]/REV_FIN' value=''>&nbsp;");
      MajDiv("Div_DeviseA", "<input type='hidden' name='PERIODE[1]/REV_ACT' value='' class='inputNumObligatoire'><input type='hidden' name='PERIODE[1]/DEV_FIN' value=''>&nbsp;");

      bSansRevenuActuel = bSansRevenu;
      majProfilEvolutionCarriere(null);
   }
   else //Si on a des revenus à saisir
   {
      //Si on est en mono période
      if (typeof(sModeSaisiePeriodes) != "undefined" && sModeSaisiePeriodes == "MONO")
      {
         LabelRevenu1 = "en début de carrière";
         if (!bIsCondense)
            LabelRevenu1 += " :";
      }
      else
      {
         LabelRevenu1 = "en début de période";
         if (!bIsCondense)
            LabelRevenu1 += " :";
      }

      LabelRevenuA = "";

      //Période passée
      if (modeAffichage == 1)
      {
         //Affichage des DIV relatif aux revenus de fin de période
         LabelRevenuA = "en fin de période : ";
         var sTexte;
         //Date de fin de la période antérieure à 2002
         if (AnneeFin != null && parseFloat(AnneeFin) < 2002)
         {
            var Devise = getElementForName(document.FormSRET, "PERIODE[1]/DEV_FIN").value;
            //Select permettant de sélectionner la devise FRF ou Euros
            var sTexte = "<span class='selectNS'><select name='PERIODE[1]/DEV_FIN'>";
            if (Devise == "FRF")
            {
               sTexte+= "<option selected value='FRF'>F&nbsp;</option>"
                  + "<option value='EUR'>&euro;&nbsp;</option>";
            }
            else
            {
               sTexte+= "<option value='FRF'>F&nbsp;</option>"
                  + "<option selected value='EUR'>&euro;&nbsp;</option>";
            }
            sTexte+= "</select></span>";
         }
         //Fin de période postérieure à 2002
         else
         {
              //On affiche les sigle euros
            sTexte = "<input type='hidden' name='PERIODE[1]/DEV_FIN' value='EUR'>&nbsp;&euro;";
         }
         MajDiv("Div_RevenuA", "<input type='text' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='"+rev3+"' class='num'><input type='hidden' name='PERIODE[1]/REV_ACT' value='' class='inputNumObligatoire'>");
         MajDiv("Div_DeviseA", sTexte+"<input type='hidden' name='PERIODE[1]/DEV_ACT' value=''>");

         MajDiv("Div_NumNoteRev2", Renvoi2);
      }
      //Période actuelle
      else if (modeAffichage == 2)
      {
         //    PB IE 4.0
         versionIE = navigator.appVersion;
         var index = versionIE.indexOf("MSIE");
         versionIE = parseFloat(versionIE.substr(index+4+1));
         if (versionIE < 5.5)
         {
            var champ = getElementForName(document.FormSRET, "PERIODE[1]/REV_DEB");
            champ.focus();
         }

         //Affichage des DIV relatifs aux revenus actuels
         LabelRevenuA = "en " + AnneeEvaluation;
         if (!bIsCondense)
            LabelRevenuA += " :";
         var stext="";
         var textdevise="";

         if (AvecProfilCarriere != "OUI")
         {
            //Sans profil carrière on saisit les revenus de fin de période
            stext="<input type='text' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='"+rev3+"' class='num'>";
            textdevise="<input type='hidden' name='PERIODE[1]/DEV_FIN' value='EUR'>&nbsp;&euro;";
         }
         else
         {
            //Avec profil on n'affiche pas les DIV "*_FIN"
            stext="<input type='hidden' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='"+rev3+"' class='num'>";
            textdevise="<input type='hidden' name='PERIODE[1]/DEV_FIN' value='EUR'>";
         }
         var text_rev2="<input type='text' name='PERIODE[1]/REV_ACT' size='10' maxlength='10' onBlur='CheckNumber(this);majRevenuFin(this.value);' value='"+rev2+"' class='inputNumObligatoire'>"+stext ;
         MajDiv("Div_RevenuA", text_rev2);
         MajDiv("Div_DeviseA", "<input type='hidden' name='PERIODE[1]/DEV_ACT' value='EUR'>&nbsp;&euro;"+textdevise);
         MajDiv("Div_NumNoteRev2", "&nbsp;");
      }
      //Période future
      else
      {
         LabelRevenuA="&nbsp;";
         var stext="";
         var textdevise="";

         if (AvecProfilCarriere != "OUI")
         {
            stext="<input type='text' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='"+rev3+"' class='num'>";
            textdevise="<input type='hidden' name='PERIODE[1]/DEV_FIN' value='EUR'>&nbsp;&euro;";
         }
         else
         {
            stext="<input type='hidden' name='PERIODE[1]/REV_FIN' value=''>&nbsp;";
            textdevise="<input type='hidden' name='PERIODE[1]/DEV_FIN' value='EUR'>";
         }
         var text_rev2="<input type='hidden' name='PERIODE[1]/REV_ACT' value='' class='inputNumObligatoire'>"+stext ;
         MajDiv("Div_RevenuA", text_rev2);
         MajDiv("Div_DeviseA", "<input type='hidden' name='PERIODE[1]/DEV_ACT' value=''>"+textdevise+"&nbsp;");
         MajDiv("Div_NumNoteRev2", "&nbsp;");
      }

      //Mise à jour du libellé de la saisie des revenus en début de période
      MajDiv("Div_Libelle_Revenu1", LabelRevenu1);
      MajDiv("Div_Revenu1", "<input type='text' name='PERIODE[1]/REV_DEB' size='10' maxlength='10' onBlur='CheckNumber(this);majRevenuFin(this.value);' value='"+rev1+"' class='"+classRev1+"'>");
      MajDiv("Div_Libelle_RevenuA", LabelRevenuA);

      //Saisie uniquement en EUR 1er revenu si annee >=2002
      if (parseFloat(AnneeDebut) >= 2002)
      {
         var sTexte = "<input type='hidden' name='PERIODE[1]/DEV_DEB' value='EUR'>&nbsp;&euro;"
      }
      else
      {
         var sTexte = "<span class='selectNS'><select name='PERIODE[1]/DEV_DEB' onChange='majRevenuFin(getElementForName(document.FormSRET, \"PERIODE[1]/REV_DEB\").value);'>";
         var Devise = getElementForName(document.FormSRET, "PERIODE[1]/DEV_DEB").value;
         if (Devise == "FRF")
         {
            sTexte+= "<option selected='true' value='FRF'>F&nbsp;</option>"
               + "<option value='EUR'>&euro;&nbsp;</option>";
         }
         else
         {
            sTexte+= "<option value='FRF'>F&nbsp;</option>"
               + "<option selected='true' value='EUR'>&euro;&nbsp;</option>";
         }
         sTexte+= "</select></span>";
      }
      MajDiv("Div_Devise1", sTexte);
   }// Fin if(bSansRevenus)

   if (bExistQuestCompl && modeAffichage>1 )
   {
      MajDiv("Div_Titre_Quest_Compl", "Questions compl&eacute;mentaires :");
      LabelRevenuQ = "Revenu mensuel net de fin d'activit&eacute; :";
      //Mise à jour du libellé de la questio complémentaire
      MajDiv("Div_Libelle_Quest_Compl", LabelRevenuQ);
      MajDiv("Div_Revenu_Quest_Compl", "<input type='text' name='PERIODE[1]/REVENU_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='"+rev4+"' class='num'>");
      MajDiv("Div_Devise_Quest_Compl", "&nbsp;&euro;");
   }
   else
   {
      MajDiv("Div_Titre_Quest_Compl", "&nbsp;");
      MajDiv("Div_Libelle_Quest_Compl", "&nbsp;");
      MajDiv("Div_Revenu_Quest_Compl", "<input type='hidden' name='PERIODE[1]/REVENU_FIN' value=''>&nbsp;");
      MajDiv("Div_Devise_Quest_Compl", "&nbsp;");
   }

   bSansRevenuActuel=bSansRevenu;
   ModeAffichageActuel=modeAffichage;
   majProfilEvolutionCarriere(rev3);
}

function majProfilEvolutionCarriere(iRevenuFin)
{
   //alert("majProfilEvolutionCarriere : ModeAffichageActuel="+ModeAffichageActuel+" iRevenuFin="+iRevenuFin);
   // soit on a blockTotalChoixProfil ou blockAfficheCourbeIsole ou Aucun
   var blockTotalChoixProfil = document.getElementById("idShowProfil");
   var blockProfilCarriere   = document.getElementById("idProfilCarriere");
   var blockCourbeRevenu       = document.getElementById("idCourbeRevenu");

   var AnneeFin = getValueDateFinPeriode();
   if (AnneeFin)
   {
      AnneeFin = AnneeFin.substr(6,4);
   }

      //|| bSansRevenuActuel
      //|| (AnneeFin != null && AnneeFin <= AnneeEvaluation)

   if ( AvecProfilCarriere != "OUI"
      || ModeAffichageActuel == 1
      || bSansRevenuActuel
      || (AnneeFin != null && AnneeFin <= AnneeEvaluation)
      )//on cache la partie profil
   {
      if (blockCourbeRevenu!=null)
      {
         if (bSansRevenuActuel)
            blockCourbeRevenu.style.display = 'none';
         else
            blockCourbeRevenu.style.display = 'block';
      }

      blockTotalChoixProfil.style.display = 'none';
      blockProfilCarriere.style.display   = 'none';
      //hideRevenusFin(true);
      getElementForName(document.FormSRET, "PERIODE[1]/PROFIL").value = "";
      getElementForName(document.FormSRET, "PERIODE[1]/CHOIX_REV_FIN").value = "";
   }
   else//on affiche la partie profil
   {
      blockTotalChoixProfil.style.display = 'block';
      blockProfilCarriere.style.display   = 'block';
      if (blockCourbeRevenu!=null)
         blockCourbeRevenu.style.display = 'none';
      majRevenuFin(null, iRevenuFin);
   }
}

/**
 * Fonction appelée depuis l'IHM (interface externe)
 *
 * Cette fonction est appelée par l'ihm à chaque mise à jour du revenu de fin de période et de la modification
 * du revenu de début dans le mode avec profil carrière.
 * Elle permet de mettre à jour la variable ChoixRevenuFin en fonction des revenus de début et fin saisie.
 * ChoixRevenuFin permet de déterminer le profil des courbes
   si ChoixRevenuFin == 1  => pente ascendante : saisie revenu fin
   si ChoixRevenuFin == 2  => pas de saisi de revenu de fin
   si ChoixRevenuFin == 0  => debut = fin => pas de pente
   si ChoixRevenuFin == -1 => debut > fin => pente descendante
*/
//function majRevenuFin(iRevenuDeb, iRevenuFin)
function majRevenuFin(iRevenuDeb, iRevenuFin)
{
   //alert("majRevenuFin : iRevenuDeb=" +iRevenuDeb + " iRevenuFin="+iRevenuFin + "ModeAffichageActuel="+ModeAffichageActuel);
   var iTypeMAJRevenuA=0;
   if (AvecProfilCarriere != "OUI")
   {
      return;
   }
   if (typeof(iRevenuDeb) == "undefined" && typeof(iRevenuFin) == "undefined")
   {
      if (isRevenusFinChecked())
      {
         ChoixRevenuFin = 1;
         showRevenuFin(iRevenuFin,iTypeMAJRevenuA);
      }
      else
      {
         ChoixRevenuFin = 2;
         if (ModeAffichageActuel==2)
            iTypeMAJRevenuA=1;
         else if (ModeAffichageActuel==3)
            iTypeMAJRevenuA=2;

         hideRevenusFin(false,iTypeMAJRevenuA);
      }
   }
   else
   {
      if (typeof(iRevenuFin) == "undefined" && ModeAffichageActuel > 1)
      {
         iRevenuFin = getElementForName(document.FormSRET, "TEMP/REV_FIN");
         if (iRevenuFin)
            iRevenuFin = iRevenuFin.value;
      }

      var bRevenuDeb = true;

      if (typeof(iRevenuDeb) == "undefined" || iRevenuDeb == null || ModeAffichageActuel == 2)
      {
         iRevenuDeb = getElementForName(document.FormSRET, "PERIODE[1]/REV_ACT").value;
         bRevenuDeb = false;
         iTypeMAJRevenuA=1;
      }

      if (iRevenuDeb == "")
      {
         iRevenuDeb = getElementForName(document.FormSRET, "PERIODE[1]/REV_DEB").value;
         bRevenuDeb = true;
      }

      if (bRevenuDeb)
      {
         var devise = getElementForName(document.FormSRET, "PERIODE[1]/DEV_DEB").value;

         if (devise == "FRF")
         {
            iRevenuDeb = conversionFRFtoEURO(iRevenuDeb) ;
         }
      }

      if (parseFloat(iRevenuFin) > 0)
      {
         // Si revenu fin < revenu act ou deb, courbe descendante
         if (parseFloat(iRevenuDeb) > parseFloat(iRevenuFin))
         {
            ChoixRevenuFin = -1;
            ChoixProfil = "LINE";
            getElementForName(document.FormSRET, "PERIODE[1]/PROFIL").value = ChoixProfil;
         }
         else if (parseFloat(iRevenuDeb) == parseFloat(iRevenuFin))
         {
            ChoixRevenuFin = 0;
         }
         else
         {
            ChoixRevenuFin = 1;
         }

         if (ModeAffichageActuel==2)
            iTypeMAJRevenuA=1;
         else if (ModeAffichageActuel==3)
            iTypeMAJRevenuA=2;

         showRevenuFin(iRevenuFin,iTypeMAJRevenuA);
      }
      else
      {
         ChoixRevenuFin = 2;
         if (ModeAffichageActuel==2)
            iTypeMAJRevenuA=1;
         else if (ModeAffichageActuel==3)
            iTypeMAJRevenuA=2;

         hideRevenusFin(false,iTypeMAJRevenuA);
      }
   }

   var DateFin = getValueDateFinPeriode();

   if ( DateFin == null || ModeAffichageActuel >=2)
   {
      MajDiv("div_libRevenu", getLibelleRevenusProfession(5));
      MajDiv("div_libDevise", "&nbsp;&euro;");
      MajDiv("div_libTexte", "au départ en retraite");
   }
   else
   {
      MajDiv("div_libRevenu", "Estimation du revenu de fin de période :");
      MajDiv("div_libDevise", "&nbsp;&euro;");
      MajDiv("div_libTexte", "au "+DateFin + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
   }
}

/**
Retourne la valeur de la date de fin de période si présente
sinon retourne null
**/
function getValueDateFinPeriode()
{
   var DateFin        = getElementForName(document.FormSRET, "PERIODE[1]/DATE_FIN");

   if (typeof(DateFin) != "undefined" && DateFin != null && DateFin.value.length == 10)
   {
      return DateFin.value;
   }

   return null;
}

function isRevenusFinChecked()
{
   for (var i=0 ; i<document.FormSRET.length ; i++)
   {
      if (document.FormSRET[i].name == "checkRevenuFin"
      && document.FormSRET[i].value == "1")
      {
         return document.FormSRET[i].checked;
      }
   }
   return false;
}

/**
Méthode appelée par l'ihm dès qu'on clique sur la checkbox checkRevenuFin
*/
function changeCheckRevenuFin()
{
   //alert("changeCheckRevenuFin");
   var isChecked = isRevenusFinChecked();

   if (isChecked)
   {
      ChoixRevenuFin = 1;
   }
   else
   {
      if (ChoixRevenuFin <= 0)
      {
         ChoixRevenuFin = 1;
      }
   }

   majRevenuFin();

   if (isChecked)
   {
      var element = getElementForName(document.FormSRET, "TEMP/REV_FIN");
      if (element)
      {
         element.focus();
      }
   }
}

/*
 * Fonction interne
 * Fonction permettant de griser le champs de revenu de fin de période (si futur)
 * iTypeMAJRevenuA : 0 : MAJ de rien
                     1 : MAJ de REV_ACT(text) et REV_FIN (hidden)
                     2 : MAJ de REV_FIN(hidden) et REV_ACT(hidden)
 */
function hideRevenusFin( bCompletely, iTypeMAJRevenuA)
{
   //alert("hideRevenusFin : " + bCompletely + " : "+iTypeMAJRevenuA);

   for (var i=0 ; i<document.FormSRET.length ; i++)
   {
      if (document.FormSRET[i].name == "checkRevenuFin"
      && document.FormSRET[i].value == "1")
      {
         document.FormSRET[i].checked = false;
      }
   }

   if (bCompletely)
   {
      MajDiv("idRevenuFinInput","&nbsp;");
   }
   else
   {
      if (ModeAffichageActuel>1)
      {
         var oRevenuAct = getElementForName(document.FormSRET, "PERIODE[1]/REV_ACT") ;
         var iRevenuAct = "0";
         if (oRevenuAct)
            iRevenuAct = oRevenuAct.value ;
         MajDiv("idRevenuFinCheck","<input type='checkbox' name='checkRevenuFin' value='1' style='border:0' onClick='changeCheckRevenuFin();'>" );
         MajDiv("idRevenuFinInput","<input type='text' style='background:#BEBEBE' disabled='true' size='10' name='TEMP/REV_FIN' value=''>");
      }
      if ( iTypeMAJRevenuA == 1)
         MajDiv("Div_RevenuA", "<input type='text' name='PERIODE[1]/REV_ACT' size='10' maxlength='10' onBlur='CheckNumber(this);majRevenuFin(this.value);' value='"+iRevenuAct+"' class='inputNumObligatoire'><input type='hidden' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='' class='num'>");
      else if ( iTypeMAJRevenuA == 2)
         MajDiv("Div_RevenuA", "<input type='hidden' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' value='' class='num'><input type='hidden' name='PERIODE[1]/REV_ACT' size='10' maxlength='10' value='"+iRevenuAct+"' class='inputNumObligatoire'>");
   }

   updatePicturesProfil();
}


/*
 * iTypeMAJRevenuA : 0 : MAJ de rien
                     1 : MAJ de REV_ACT(text) et REV_FIN (hidden)
                     2 : MAJ de REV_FIN(hidden) et REV_ACT(hidden)
 */
function showRevenuFin(iRevenuFin, iTypeMAJRevenuA)
{
   //alert("showRevenuFin iRevenuFin=" + iRevenuFin + iTypeMAJRevenuA);
   for (var i=0 ; i<document.FormSRET.length ; i++)
   {
      if (document.FormSRET[i].name == "checkRevenuFin"
      && document.FormSRET[i].value == "1")
      {
         document.FormSRET[i].checked = true;
         break;
      }
   }

   if (typeof(iRevenuFin) == "undefined" || parseFloat(iRevenuFin)<=0)
   {
      iRevenuFin = "";
   }
   var oRevenuAct = getElementForName(document.FormSRET, "PERIODE[1]/REV_ACT") ;
   var iRevenuAct = "0";
   if (oRevenuAct)
      iRevenuAct = oRevenuAct.value ;

   MajDiv("idRevenuFinInput", "<input type='text' style='background:#FFFFFF' name='TEMP/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);majRevenuFin(null, this.value);' value='"+iRevenuFin+"' class='num'>");

   if ( iTypeMAJRevenuA == 1)
      MajDiv("Div_RevenuA", "<input type='text' name='PERIODE[1]/REV_ACT' size='10' maxlength='10' onBlur='CheckNumber(this);majRevenuFin(this.value);' value='"+iRevenuAct+"' class='inputNumObligatoire'><input type='hidden' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='"+iRevenuFin+"' class='num'>");
   else if ( iTypeMAJRevenuA == 2)
   MajDiv("Div_RevenuA", "<input type='hidden' name='PERIODE[1]/REV_FIN' size='10' maxlength='10' onBlur='CheckNumber(this);' value='"+iRevenuFin+"' class='num'><input type='hidden' name='PERIODE[1]/REV_ACT' size='10' maxlength='10' value='"+iRevenuAct+"' class='inputNumObligatoire'>");

   updatePicturesProfil();
}


/**
Fonction appelée pour la perso HSBC pour ne pas mettre le border
**/


function updateProfilBorder()
{
   var names    = new Array("idProfil01", "idProfil02", "idProfil03", "idProfil04");
   for (i = 0; i < 3; i++)
   {
            document.getElementById(names[i]).border = "0";
   }
   
}

/**
 * Met à jour les images des modèles en fonction du ChoixRevenusFin
 */
function updatePicturesProfil(indice)
{
   //alert("updatePicturesProfil : indice="+indice+" ChoixRevenuFin="+ChoixRevenuFin);
   var champVitesse = getElementForName(document.FormSRET, "PERIODE[1]/CHOIX_REV_FIN");
   var bVersionLight = false;
   var bVersionWeb   = false;
   var bVersionFlash = false;

   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight = bVersionLightGlobal ;
   }
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }
   if (ChoixRevenuFin == -1)
   {
      ChoixProfil = "LINE";
   }
   else if (ChoixRevenuFin == 1 && typeof(indice) != "undefined")//revenu de fin > 0
   {
      switch (indice)
      {
         case 0 :
            ChoixProfil = "LINE";
            break;
         case 2 :
            ChoixProfil = "REEL";
            break;
         case 1 :
         default :
            ChoixProfil = "LOGA";
            break;
      }
   }
   else if (ChoixRevenuFin == 2)
   {
      ChoixProfil = "LOGA";
      if (typeof(indice) == "undefined")
      {
         indice = 1;
         var valueVitesse = champVitesse.value;
         if (valueVitesse != "")
         {
            for (var i = 0; i < 4; i++)
            {
               if (valueVitesse == listeProfil[i])
               {
                  indice = i;
                  break;
               }
            }
         }
      }
   }

   var names    = new Array("idProfil01", "idProfil02", "idProfil03", "idProfil04");
   var borders  = new Array("0","0","0","0");
   var selects  = new Array("","","","");

   if (ChoixProfil == 'LINE')
   {
      selects[0] = "_select";
      borders[0] = "1";
   }
   else if (ChoixProfil == 'LOGA')
   {
      if (ChoixRevenuFin == 2)
      {
         selects[indice] = "_select";
         borders[indice] = "1";
      }
      else
      {
         selects[1] = "_select";
         borders[1] = "1";
      }
   }
   else if (ChoixProfil == 'REEL')
   {
      selects[2] = "_select";
      borders[2] = "1";
   }
   else if (ChoixProfil == 'ACTU')
   {
      selects[3] = "_select";
      borders[3] = "1";
   }

   if (AvecProfilCarriere == "OUI" && ModeAffichageActuel > 1)
   {
      getElementForName(document.FormSRET, "PERIODE[1]/PROFIL").value = ChoixProfil;
   }
   else
   {
      getElementForName(document.FormSRET, "PERIODE[1]/PROFIL").value = "";
   }

   for (i = 0; i < 3; i++)
   {
      var profilImage, vitesseImage, libelle;

      /*
      si ChoixRevenuFin == 1  => pente ascendante : revenu de fin
      si ChoixRevenuFin == 2  => pas de saisi de revenu de fin
      si ChoixRevenuFin == 0  => debut = fin => pas de pente
      si ChoixRevenuFin == -1 => debut > fin => pente descendante
      */
      switch (ChoixRevenuFin)
      {
         case -1:
            profilImage  = "9999";
            vitesseImage = "";
            libelle      = "Baisse des revenus";
            break;
         case 1:
            profilImage  = "0" + (i+1) + "_0";
            vitesseImage = 3;
            switch (i)
            {
               case 0 :
                  libelle = "Croissance linéraire";
                  break;
               case 1 :
                  libelle = "Croissance dynamique";
                  break;
               case 2 :
                  libelle = "Profil statistique";
                  vitesseImage++;
                  break;
            }
            break;
         case 2:
            profilImage  = "0" + 2 + "_0";
            vitesseImage = i+2;

            switch (i)
            {
               case 0 :
                  if (bVersionWeb || bVersionFlash)
                  {
                     profilImage = "0" +(i+1) + "_0";
                     vitesseImage = 0;
                     libelle = "Revenu constant";
                  }
                  else
                  {
                  libelle = "Croissance faible";
                  }
                  break;
               case 1 :
                  if (bVersionWeb || bVersionFlash)
                  {
                     vitesseImage = 2;
                     libelle = "Croissance normale";
                  }
                  else
                  {
                  libelle = "Croissance moyenne";
                  }
                  break;
               case 2 :
                  libelle = "Croissance élevée";
                  break;
            }
            break;
         default: //0
            profilImage = "0" +(i+1) + "_0";
            vitesseImage = 0;
            libelle = "Revenu constant";
            break;
      }
      document.getElementById(names[i]).src    = "home/images/profil_"+profilImage+ vitesseImage + selects[i] + ".gif";
      document.getElementById(names[i]).border = borders[i];
      if ( bProfilAvecRadBtn)
         document.getElementById(names[i]).border      = "0";
      document.getElementById(names[i]).onmouseover  = affichageToolTipCourbe;
      if ( !bProfilAvecRadBtn)
         MajDiv("idLibelleCourbe"+(i+1), libelle);
   }
   var vitesse="";
   if (ChoixProfil == "LOGA" && ChoixRevenuFin == 2)
   {
      vitesse = listeProfil[indice];
   }
   champVitesse.value = vitesse;
}

/**
Fonction appelée via l'évènement onmouseover des images des courbes
**/
function affichageToolTipCourbe()
{
   var sNameImage = this.src;
   var bVersionLight = false;
   var bVersionWeb   = false;
   var bVersionFlash = false;

   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight = bVersionLightGlobal ;
   }
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }
   var sTexteSurvol;
   switch (ChoixRevenuFin)
   {
      case 2:
         var pos = sNameImage.lastIndexOf("_0");
         var vitesseImage0= sNameImage.substring(pos-1, pos);
         var vitesseImage = sNameImage.substring(pos+2, pos+3);
         if ((bVersionWeb || bVersionFlash) && vitesseImage0==2 && vitesseImage==2)
            vitesseImage=1;
         else
            vitesseImage     = vitesseImage - 2;

         if ((bVersionWeb || bVersionFlash) && vitesseImage < 0)
         {
            sTexteSurvol     = "Pas de progression réelle des revenus";
         }
         else
         {
         sTexteSurvol = "Taux de croissance réel moyen des revenus de " + listeProfil[vitesseImage]*100 + "%";
         }
         break;
      case 1 :
         var pos = sNameImage.lastIndexOf("/");
         pos = sNameImage.indexOf("_0", pos);
         var profilImage = sNameImage.substring(pos+2, pos+3)

         switch (parseInt(profilImage, 10))
         {
            case 1 :
               sTexteSurvol = "Progression régulière de la rémunération ";
               if (getValueDateFinPeriode() == null)
               {
                  sTexteSurvol += "jusqu\'au départ en retraite";
               }
               else
               {
                  sTexteSurvol += "jusqu\'à la fin de la période";
               }
               break;
            case 2 :
               sTexteSurvol = "Progression rapide de la rémunération, puis stabilisation ";
               if (getValueDateFinPeriode() == null)
               {
                  sTexteSurvol += "en fin de carrière";
               }
               else
               {
                  sTexteSurvol += "en fin de période";
               }
               break;
            default :
               sTexteSurvol = "Progression rapide de la rémunération, puis stabilisation et diminution ";
               if (getValueDateFinPeriode() == null)
               {
                  sTexteSurvol += "en fin de carrière";
               }
               else
               {
                  sTexteSurvol += "en fin de période";
               }
               break;
         }
         break;
       case -1:
          sTexteSurvol = "Baisse des revenus";
         break;
       default: //0
          sTexteSurvol = "Pas de progression réelle des revenus";
         break;
   }

   doTooltip(sTexteSurvol);
}

/**
 * Fonction Interne
 * Retourne le mode d'affichage des revenus en fonction des dates
 * Retourne 1, 2 ou 3.
 *  1 : Période passée
 *  2 : Début, Actuel, Fin
 *  3 : Période future
 */
function getModeAffichage(AnneeDeb, AnneeFin)
{
   var bVersionLight = false;
   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight = bVersionLightGlobal ;
   }
   var bVersionWeb = false;
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb = bVersionWebGlobal ;
   }
   var bVersionFlash = false;
   if(typeof(bVersionFlashGlobal) != "undefined")
   {
      bVersionFlash = bVersionFlashGlobal ;
   }

   if (typeof(sModeSaisiePeriodes) != "undefined"  && sModeSaisiePeriodes == "MONO" && !(bVersionWeb))
    return 2;

   if (AnneeDeb=="" && AnneeFin=="")
   {
    //Changement de l'affichage par défaut pour la version WEB
     if (bVersionWeb)
     {
        return 2;
     }
     else
    return 1;
   }

   /*
   1) Période passée
   2) Début, Actuel, Fin
   3) Période future
   */

  if (AnneeDeb.length ==10)
    AnneeDeb = AnneeDeb.substr(6,4);

  if (AnneeFin.length ==10)
    AnneeFin = AnneeFin.substr(6,4);


  var boolFinPeriode = getRadioBoolFinPeriode("1");

  if (boolFinPeriode)
  {
     boolFinPeriode = boolFinPeriode.checked;
  }
  else
  {
     boolFinPeriode = false;
  }

  if (bVersionWeb)
  {
     boolFinPeriode = true;
  }

  if (AnneeDeb < AnneeEvaluation && (AnneeFin > AnneeEvaluation || (boolFinPeriode && AnneeFin == "")))
     return 2;
  else if (AnneeDeb >= AnneeEvaluation)
     return 3;

  return 1;
}

function getValueDiv(NameDiv, value)
{
   var pNameDiv = null;

   if ( document.getElementById )
   {
      pNameDiv = document.getElementById(NameDiv);

      if (pNameDiv)
      {
         return pNameDiv.innerHTML;
      }
   }
   return null;
}


function MajDiv(NameDiv, value)
{
   var pNameDiv = null;

   if ( document.getElementById )
   {
      pNameDiv = document.getElementById(NameDiv);

      if (pNameDiv)
      {
         pNameDiv.innerHTML = value;
         return true;
      }
   }
   return false;
}

function TestFormatText(p_pChamp)
{
   var strValue = '';
   strValue = p_pChamp.value + '';
   strValue = strValue.R_Format_UpperCaseFirstWord() + '';
   p_pChamp.value = strValue + '';
}

function getElementForName(vForm, vName)
{
   var lLength = vForm.length;

   for (var i=0 ; i<lLength ; i++)
   {
      if (vForm[i].name == vName)
         return vForm[i];
   }
   return null;
}

function getRadioBoolFinPeriode(vValue)
{
   for (var i=0 ; i<document.FormSRET.length ; i++)
   {
      if (document.FormSRET[i].name == "PERIODE[1]/RBFINPER"
      && document.FormSRET[i].value == vValue)
      {
         return document.FormSRET[i];
      }
   }
   return null;
}

function printPage()
{
   window.open('page_centrale.jsp?imprime=true','HVSPrint','width=640,height=480,menubar=yes,scrollbars=yes');
}

/**
 * Code libelle : iCodeLibelle
 * iCodeLibelle = 0 : défaut
 * iCodeLibelle = 1 : version light ou Web //JBL 28/09/06 Pour l'instant pas de différence Light et Web
 * iCodeLibelle = 2 : résultat retraites perçus
 * iCodeLibelle = 3 : résultat retraites estimés
 * iCodeLibelle = 4 : Page Revenus détaillés (titre colonne)
 * iCodeLibelle = 5 : Libelle pour la fin de carrière
 */
function getLibelleRevenusProfession(iCodeLibelle, Profession)
{
   var connu= true;
   if(typeof(iCodeLibelle) == "undefined")
   {
      iCodeLibelle = 0 ;
   }

   var LabelRevenus    = "&nbsp;";
   if(typeof(Profession) == "undefined")
   {
      var champProfession = getElementForName(document.FormSRET, "PERIODE[1]/PROF");
      if (champProfession)
         Profession      = champProfession.value;
   }

   if (Profession=="P_NONCADRE" || Profession=="P_ART36" || Profession=="P_CADRE"
      || Profession=="P_CADRESUP" || Profession=="P_AGENTETAT" || Profession=="P_CCPMA"
      || Profession=="P_CLERC"
      )
   {
      switch (iCodeLibelle)
      {
         case 1 :
            LabelRevenus    = "salaires bruts";
            break;
         case 2 :
            LabelRevenus    = "Salaires bruts perçus";
            break;
         case 3 :
            LabelRevenus    = "Salaires bruts estimés";
            break;
         case 4 :
         case 6 :
            LabelRevenus    = "Salaires bruts annuels";
            break;
         case 5 :
            LabelRevenus    = "Estimez votre revenu brut de fin de carrière :";
            break;
         default :
            LabelRevenus    = "Vos salaires bruts annuels :";
            break;
      }
   }
   else if (Profession=="P_FONCT")
   {
      switch (iCodeLibelle)
      {
         case 1 :
            LabelRevenus    = "traitements bruts";
            break;
         case 2 :
            LabelRevenus    = "Traitements bruts perçus";
            break;
         case 3 :
            LabelRevenus    = "Traitements bruts estimés";
            break;
         case 4 :
         case 6 :
            LabelRevenus    = "Traitements bruts annuels";
            break;
         case 5 :
            LabelRevenus    = "Estimez votre traitement de fin de carrière :";
            break;
         default :
            LabelRevenus    = "Vos traitements bruts annuels :";
            break;
      }
   }
   else if (Profession=="P_EXPLAGR" || Profession=="P_ARTISAN"
      || Profession=="P_COMMERCANT" || Profession=="P_ARCHI"
      || Profession=="P_AUXMED" || Profession=="P_AVOCAT" || Profession=="P_CHIRDEN"
      || Profession=="P_EXPCMPT" || Profession=="P_GEOMETRE" || Profession=="P_MEDECIN"
      || Profession=="P_OFFMIN" || Profession=="P_PHARMA" || Profession=="P_SAGEF"
      || Profession=="P_VETO" || Profession=="P_GERANT_COMMERCANT"
            )
   {
      switch (iCodeLibelle)
      {
         case 1 :
            LabelRevenus    = "revenus nets";
            break;
         case 2 :
            LabelRevenus    = "Revenus nets perçus";
            break;
         case 3 :
            LabelRevenus    = "Revenus nets estimés";
            break;
         case 4 :
         case 6 :
            LabelRevenus    = "Revenus nets annuels";
            break;
         case 5 :
            LabelRevenus    = "Estimez votre revenu net de fin de carrière :";
            break;
         default :
            LabelRevenus    = "Vos revenus nets annuels :";
            break;
      }
   }
   else if (Profession=="P_ARTISTE")
   {
      switch (iCodeLibelle)
      {
         case 1 :
            LabelRevenus    = "droits de reproduction bruts";
            break;
         case 2 :
            LabelRevenus    = "Droits de reproduction bruts perçus";
            break;
         case 3 :
            LabelRevenus    = "Droits de reproduction bruts estimés";
            break;
         case 4 :
         case 6 :
            LabelRevenus    = "Droits de reproduction bruts annuels";
            break;
         case 5 :
            LabelRevenus    = "Estimez vos droits de fin de carrière :";
            break;
         default :
            LabelRevenus    = "Vos droits de reproduction bruts annuels :";
            break;
      }
   }
   else if (Profession=="P_AGASSUR")
   {
      switch (iCodeLibelle)
      {
         case 1 :
            LabelRevenus    = "commissions brutes";
            break;
         case 2 :
            LabelRevenus    = "Commissions brutes perçues";
            break;
         case 3 :
            LabelRevenus    = "Commissions brutes estimées";
            break;
         case 4 :
         case 6 :
            LabelRevenus    = "Commissions brutes annuelles";
            break;
         case 5 :
            LabelRevenus    = "Estimez vos com. brutes de fin de carrière :";
            break;
         default :
            LabelRevenus    = "Vos commissions brutes annuelles :";
            break;
      }
   }
   else if (Profession=="P_NOTAIRE" )
   {
      switch (iCodeLibelle)
      {
         case 1 :
            LabelRevenus    = "produits de l'étude";
            break;
         case 2 :
            LabelRevenus    = "Produits de l'étude perçus";
            break;
         case 3 :
            LabelRevenus    = "Produits de l'étude estimés";
            break;
         case 4 :
         case 6 :
            LabelRevenus    = "Produits de l'étude annuels";
            break;
         case 5 :
            LabelRevenus    = "Estimez vos produits de fin de carrière :";
            break;
         default :
            LabelRevenus    = "Vos produits de l'étude annuels :";
            break;
      }
   }
   else
   {
      connu= false;
   }
   
   if ( connu && iCodeLibelle==6 )
   {
      LabelRevenus+="&nbsp;<img src='" + sRepertoireImages + "/info.gif' border='0' onmouseover='doTooltip(\"Indiquez le montant de revenus annuels m&ecirc;me pour des ann&eacute;es incompl&egrave;tes.\", null, 240);' onmouseout='hideTip()'\/>&nbsp;:";
   }
      
   return LabelRevenus;
}


/**
 * Retourne si présence d'une question complémentaire
 * en 2008.1, seuls les agents d'assurance et notaire ont une question complémentaire
 */
function getbExistQuestionComplementaire(Profession)
{
   var bGestComp    = false;
   if(typeof(Profession) == "undefined")
   {
      var champProfession = getElementForName(document.FormSRET, "PERIODE[1]/PROF");
      if (champProfession)
         Profession      = champProfession.value;
   }
   if ( (Profession=="P_AGASSUR") || (Profession=="P_NOTAIRE") )
   {
      bGestComp=true;
   }
   return bGestComp;
}

/**
 * Fonction appelée depuis l'IHM (interface externe)
 * Fonction appelée en cas de changement de profession
 */
function changeLibelleRevenusProfession()
{
   var LabelRevenus = "";
   var bVersionLight = false;
   var bVersionWeb = false;

   if(typeof(bVersionLightGlobal) != "undefined")
   {
      bVersionLight =  bVersionLightGlobal;
   }
   if(typeof(bVersionWebGlobal) != "undefined")
   {
      bVersionWeb =  bVersionWebGlobal;
   }
   LabelRevenus = getLibelleRevenusProfession(6);
   MajDiv("Div_LabelRevenus", LabelRevenus);

   var champProfession = getElementForName(document.FormSRET, "PERIODE[1]/PROF");
   changeProfession(champProfession);
}

function changeSituationMat(bClient)
{
   return;

   if (!bClient)
      return;

   var champSitMat = getElementForName(document.FormSRET, "PERS[1]/SITM");
   if (champSitMat)
   {
      var radio1 = document.FormSRET.RADIO_SIMUL[0];
      var radio2 = document.FormSRET.RADIO_SIMUL[1];
      var valueSelected = champSitMat.value;

      if (radio1 && radio2)
      {
         if (valueSelected == "M" || valueSelected == "U" || valueSelected == "P")
         {
            radio1.background  = "#BEBEBE";
            radio1.disabled    = false;
            radio2.background  = "#BEBEBE";
            radio2.disabled    = false;
         }
         else
         {
            radio1.background  = "#FFFFFF";
            radio1.disabled    = true;
            radio1.checked     = "true";
            radio2.background  = "#FFFFFF";
            radio2.disabled    = true;

            setSimulationCouple("0");
         }
      }
   }
}

function TestNbreEnfant()
{
   var nbEnf    = getElementForName(document.FormSRET, "CARRIERE[1]/HYPO[1]/NBRE_ENF_ELEVE").value;
   var NbEnfRetr = getElementForName(document.FormSRET, "CARRIERE[1]/HYPO[1]/NBRE_ENF_CHARGE");
   res = true;
   if ( parseInt(nbEnf) < parseInt(NbEnfRetr.value) )
   {
      var res = window.confirm("Le nombre d'enfants à charge à la retraite est supérieur au nombre d'enfants élevés.\nVoulez-vous poursuivre l'étude avec ces données?");

      if (!res)
      {
         NbEnfRetr.value = nbEnf;
         NbEnfRetr.focus();
      }
   }
   return res;
}

function formateDateNaiss()
{
   var champDateNaissance = getElementForName(document.FormSRET, "PERS[1]/DATE_NAISS");
   var champDateNaiss     = getElementForName(document.FormSRET, "DATE_NAISS");

   if (champDateNaiss.value != '')
   {
      if (DateFormatAnnee == "OUI" || DateFormatAnnee == "oui" )
      {
         if (champDateNaiss == null || champDateNaiss.value.length < 7)
         {
            window.alert("Le mois et l'année de naissance sont incorrects.");
            document.FormSRET.DATE_NAISS.focus();
            mvtOK = false;
         }
         else
         {
            champDateNaissance.value = "01/"+champDateNaiss.value;
         }
      }
   }
   else
   {
      champDateNaissance.value = "";
   }
}

function formateDateDebutPeriode()
{
   var champDateDebut = getElementForName(document.FormSRET, "PERS[1]/DATE_NAISS");
   var champDateDeb    = getElementForName(document.FormSRET, "DATE_NAISS");

   if (champDateDeb != '')
   {
      if (DateFormatAnnee == "OUI" || DateFormatAnnee == "oui" )
      {
         if (champDateDeb == null || champDateDeb < 4)
         {
            window.alert("L'année et le mois de naissance sont incorrects.");
            document.FormSRET.DATE_DEB.focus();
            mvtOK = false;
         }
         else
         {
            champDateDebut = "01/01/"+champDateDeb;
         }
      }
   }
   else
   {
      champDateDebut = "";
   }
}

function formateDatesPeriode(type)
{
   if (type == "DEB")
   {
      var champDateDebut = getElementForName(document.FormSRET, "PERIODE[1]/DATE_DEB");
      var champDateDeb    = getElementForName(document.FormSRET, "DATE_DEB");

      if (champDateDeb.value != '')
      {
         if (DateFormatAnnee == "OUI" || DateFormatAnnee == "oui" )
         {
            if (champDateDeb == null || champDateDeb.value.length < 4)
            {
               window.alert("L'année de début de période est incorrecte.");
               document.FormSRET.DATE_DEB.focus();
               mvtOK = false;
            }
            else
            {
               champDateDebut.value = "01/01/"+champDateDeb.value;
            }
         }
      }
   }
   else
   {
      var champDateFin  = getElementForName(document.FormSRET, "PERIODE[1]/DATE_FIN");
      var champDateF    = getElementForName(document.FormSRET, "DATE_FIN");

      if (champDateF.value != '')
      {
         if (DateFormatAnnee == "OUI" || DateFormatAnnee == "oui" )
         {
            if (champDateF == null || champDateF.value.length < 4)
            {
               window.alert("L'année de fin de période est incorrecte.");
               document.FormSRET.DATE_FIN.focus();
               mvtOK = false;
            }
            else
            {
               var DateDepartTemp = getElementForName(document.FormSRET, "DATE_DEPART");
               if (DateDepartTemp != null && DateDepartTemp.value.length == 10)
               {
                  DateDepartTemp = DateDepartTemp.value;

                  if (DateDepartTemp.indexOf("-") == 4)
                  {
                     DateDepart = DateDepartTemp.substr(8,2)+"/"+DateDepartTemp.substr(5,2)+"/"+DateDepartTemp.substr(0,4);
                  }
                  else if (DateDepartTemp.indexOf("/") == 3)
                  {
                     DateDepart = DateDepartTemp;
                  }
               }
               var anneeDepart = DateDepartTemp.substr(0,4);
               if (anneeDepart == champDateF.value)
               {
                  champDateFin.value = DateDepart;
               }
               else
               {
                  champDateFin.value = "31/12/"+champDateF.value;
               }
            }
         }
      }
   }
}

var newWin = null;
function closeWin()
{
   if (newWin != null)
   {
      if(!newWin.closed)
         newWin.close();
   }
}

function popUp(strURL,vWidth,vHeight)
{
   closeWin();
     var paramWin= "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,"
     paramWin   += "width="+vWidth+",height="+vHeight;
   newWin = window.open(strURL, 'newWin', paramWin);
   newWin.focus();
}

function valide_accesSaisieDetaillee(bAvecSaisieDetailRev, CodePage, iAnneeEvaluation)
{
//Soient P l'année de début de période, M l'année de fin de période et A, l'année actuelle.
//Si P+1<min(M,A) alors on activera un accès à la saisie détaillée des revenus annuels passés pour les années allant de P+1 à min(M-1,A-1) comprises.
   var texte = "&nbsp;";
   var bAvecRevenu=true;
   var LabelRevenus = getLibelleRevenusProfession(6);
   if (LabelRevenus == "&nbsp;")
   {
      bAvecRevenu = false;
   }
   if ( bAvecSaisieDetailRev && bAvecRevenu )
   {
      var AnneeDebut = 0;
      var AnneeFin = 0 ;

      var champDateFin = getElementForName(document.FormSRET, "PERIODE[1]/DATE_FIN");
      var champDateDeb = getElementForName(document.FormSRET, "PERIODE[1]/DATE_DEB");
      var radioDateFin = getElementForName(document.FormSRET, "PERIODE[1]/RBFINPER");
      
      if ( (champDateDeb != null) && (champDateDeb.value != '') )
      {
         if (DateFormatAnnee != "OUI" && DateFormatAnnee != "oui" )
         {
            if (champDateDeb.value.length == 10)
            {
               AnneeDebut= champDateDeb.value.substr(6,4);
            }
         }
         else
         {
            if (champDateDeb.value.length == 4)
            {
               AnneeDebut= champDateDeb.value;
            }
            else
            {
               champDateDeb = getElementForName(document.FormSRET, "DATE_DEB");
               if (champDateDeb!=null && champDateDeb.value.length == 4)
                  AnneeDebut= champDateDeb.value;
            }
         }
      }
      if ( (champDateFin!=null) && (champDateFin.value != '') )
      {
         if (DateFormatAnnee != "OUI" && DateFormatAnnee != "oui" )
         {
            if ( champDateFin.value.length == 10)
            {
               AnneeFin= champDateFin.value.substr(6,4);
            }
         }
         else
         {
            if (champDateFin.value.length == 4)
            {
               AnneeFin= champDateFin.value;
            }
            else
            {
               champDateFin = getElementForName(document.FormSRET, "DATE_FIN");
               if (champDateFin!=null && champDateFin.value.length == 4)
                  AnneeFin= champDateFin.value;
            }
         }
      }
      if (AnneeFin==0)
         AnneeFin = AnneeEvaluation ;

      AnneeDebut= parseFloat(AnneeDebut);
      AnneeFin= Math.min( AnneeFin, AnneeEvaluation);
      if ( (AnneeDebut<iAnneeEvaluation) && ( (AnneeDebut +1 < AnneeFin) || !radioDateFin.checked) )
      {
         texte = "Saisir <a class='TexteNM' href=\"javascript:go('REVENUS_DETAIL','"+CodePage+"');\">ann&eacute;e par ann&eacute;e ...</a>";
      }
   }
   MajDiv("AccesSaisieDetaillee", texte);
}

/*
 * conversion d'un monatant de Devise 1 en devise2
 * Les devises gérées sont : "EUR" ou "FRF"
*/
function conversionDevise1toDevise2(iMontant,devise1,devise2)
{
   var iRetour=iMontant;
   if ( iRetour!="" )
   {
      var dTaux = 6.55957 ;
   
      var iRetour=iMontant;
      if (devise1=="FRF" && devise2=="EUR") 
      {
         iRetour= Math.round( parseFloat(iRetour)/dTaux) ;
      }
      else if (devise1=="EUR" && devise2=="FRF") 
      {
         iRetour= Math.round( parseFloat(iRetour)*dTaux) ;
      }
   }
   return iRetour ;
}

/*
 * Conversion d'un montant de Franc en Euro
*/
function conversionFRFtoEURO(iMontant)
{
   return conversionDevise1toDevise2(iMontant,"FRF","EUR") ;
}

/*
 * Conversion d'un montant de Euro en Franc
*/
function conversionEUROToFRF(iMontant)
{
   return conversionDevise1toDevise2(iMontant,"EUR","FRF") ;
}

/*
 * Convertir la valeur du champs en devise1
 * fonction à utiliser pour passer de Franc à Euro et inversement
 * Champs : correspond à l'ID du champs de formulaire à traiter
*/
function conversionChangeDevise(Champs,devise1)
{
   var eltChamps = getElementForName(document.FormSRET, Champs) ;
   var iRetour=eltChamps.value;
   if (devise1.value=="EUR" )
   {
      iRetour=conversionFRFtoEURO(eltChamps.value) ;
   }
   else if (devise1.value=="FRF" )
   {
      iRetour=conversionEUROToFRF(eltChamps.value) ;
   }

   eltChamps.value=iRetour;
}

function MAJDateModifie()
{
   var champDateModifie = getElementForName(document.FormSRET, "DATEPERIODE_MODIFIEE");
   if (champDateModifie && champDateModifie.value!="1")
   {
      champDateModifie.value="1";
   }
}
function MAJCondParticReformes2010(sChamp1, sChamp2)
{
	if (getElementForName(document.FormSRET, sChamp1).checked == true) 
	{
		getElementForName(document.FormSRET, 'PERS[1]/'+ sChamp1).value = '1';
		getElementForName(document.FormSRET, sChamp2).disabled=true; 
	}
	else 
	{
		getElementForName(document.FormSRET, 'PERS[1]/'+ sChamp1).value = '0';
		getElementForName(document.FormSRET, sChamp2).disabled=false;
	}
}

function MAJCondReformes2010(sChamp1, sChamp2)
{
	if (getElementForName(document.FormSRET, sChamp1).value == '1') 
		getElementForName(document.FormSRET, sChamp2).disabled=true; 
	else 
		if (getElementForName(document.FormSRET, sChamp2).value == '1') 
			getElementForName(document.FormSRET, sChamp1).disabled=true;
}

function MAJMoisSiAgeSup(sChampAN, sChampMOIS)
{
   var age= parseFloat(getElementForName(document.FormSRET, sChampAN).value);
   var elementMois= getElementForName(document.FormSRET, sChampMOIS);
   if (age>=75)
   {
      elementMois.value="";
      elementMois.style.background  = "#BEBEBE";
      elementMois.disabled=true;
   }
   else
   {
      elementMois.style.background  = "#FFFFFF";
      elementMois.disabled=false;
   }
}

