public function gereAffichageAdresses($identifiantUniqueImage = 0, $idImage = 0, $modeRecuperationDonnees = 'ajout')
 {
     $nbAdressesEnregistrees = 0;
     // renseigné si mode = modif
     $adresse = new archiAdresse();
     $retourAdresses = array();
     // *************************************************************************
     // GESTION DU NOMBRE D'ADRESSES
     // recuperation du nombre d'adresses
     // *************************************************************************
     $nbAdressesAffichees = 1;
     if (isset($this->variablesPost['nbAdressesAffichees' . $identifiantUniqueImage]) && $this->variablesPost['nbAdressesAffichees' . $identifiantUniqueImage] != '0') {
         $nbAdressesAffichees = $this->variablesPost['nbAdressesAffichees' . $identifiantUniqueImage];
     }
     // gestion de l'affichage des champs d'adresses
     if (isset($this->variablesPost['ajouterAdresse' . $identifiantUniqueImage])) {
         $nbAdressesAffichees = $nbAdressesAffichees + 1;
         //$t->assign_vars(array('nbAdressesAffichees'=>$nbAdressesAffichees));
     } elseif (isset($this->variablesPost['enleverAdresse' . $identifiantUniqueImage])) {
         $nbAdressesAffichees = $nbAdressesAffichees - 1;
         //$t->assign_vars(array('nbAdressesAffichees'.$identifiantUniqueImage=>$nbAdressesAffichees));
     } else {
         //$t->assign_vars(array('nbAdressesAffichees'.$identifiantUniqueImage=>1));
     }
     // *************************************************************************
     // *************************************************************************
     // SI ON EDITE DES IMAGES VENANT D'ETRE UPLOADEES
     // on recupere les donnees en POST
     // *************************************************************************
     if ($modeRecuperationDonnees == 'ajout') {
         $ville = 0;
         if (isset($this->variablesPost['ville' . $identifiantUniqueImage]) && $this->variablesPost['ville' . $identifiantUniqueImage] != '0' && $this->variablesPost['ville' . $identifiantUniqueImage] != '') {
             $ville = $this->variablesPost['ville' . $identifiantUniqueImage];
         }
         $retourVille = array();
         // gestion du favori de la ville
         if ($ville == '0') {
             $reqVilleTxt = "select nom from ville where idVille = '" . $this->session->getFromSession('idVilleFavoris') . "'";
             $resVilleTxt = $this->connexionBdd->requete($reqVilleTxt);
             $fetchVilleTxt = mysql_fetch_assoc($resVilleTxt);
             //$t->assign_vars(array('ville'=>$this->session->getFromSession('idVilleFavoris'),  'villetxt'=>$fetchVilleTxt['nom']));
             $ville = $this->session->getFromSession('idVilleFavoris');
             $retourVille = array('ville' => $this->session->getFromSession('idVilleFavoris'), 'villetxt' => $fetchVilleTxt['nom']);
         }
         $retourQuartiers = array();
         // ***********************************************************************************
         // si un idVille existe sur le formulaire ,  on affiche les quartiers correspondants
         if ($ville != '0') {
             $retourVille = array();
             // recherche de la ville et de son identifiant
             $reqVille = "select idVille, nom from ville where idVille='" . $ville . "'";
             $resVille = $this->connexionBdd->requete($reqVille);
             $fetchVille = mysql_fetch_assoc($resVille);
             $retourVille = array('ville' => $fetchVille['idVille'], 'villetxt' => $fetchVille['nom']);
             // recherche des quartiers de la ville
             $resQuartiers = $this->connexionBdd->requete("select idQuartier,  nom from quartier where idVille = '" . $ville . "'");
             while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                 $selected = "";
                 if (isset($this->variablesPost['quartiers' . $identifiantUniqueImage]) && $this->variablesPost['quartiers' . $identifiantUniqueImage] != '0' && $fetchQuartiers['idQuartier'] == $this->variablesPost['quartiers' . $identifiantUniqueImage]) {
                     $selected = " selected";
                 }
                 /*$t->assign_block_vars("quartiers",  array(
                                                               'id'        =>    $fetchQuartiers['idQuartier'],
                                                               'nom'        =>    $fetchQuartiers['nom'],
                                                               'selected'    =>    $selected
                                                           ));
                   */
                 $retourQuartiers[] = array('id' => $fetchQuartiers['idQuartier'], 'nom' => $fetchQuartiers['nom'], 'selected' => $selected);
             }
         }
         $retourSousQuartiers = array();
         // ***********************************************************************************
         // si un idQuartier existe sur le formulaire on affiche les sous quartier correspondants
         if (isset($this->variablesPost['quartiers' . $identifiantUniqueImage]) && $this->variablesPost['quartiers' . $identifiantUniqueImage] != '') {
             $resSousQuartiers = $this->connexionBdd->requete("select idSousQuartier,  nom from sousQuartier where idQuartier = '" . $this->variablesPost['quartiers' . $identifiantUniqueImage] . "'");
             while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                 $selected = "";
                 if (isset($this->variablesPost['sousQuartiers' . $identifiantUniqueImage]) && $this->variablesPost['sousQuartiers' . $identifiantUniqueImage] != '0' && $fetchSousQuartiers['idSousQuartier'] == $this->variablesPost['sousQuartiers' . $identifiantUniqueImage]) {
                     $selected = " selected";
                 }
                 /*$t->assign_block_vars("sousQuartiers",  array(
                                                               'id'        =>    $fetchSousQuartiers['idSousQuartier'],
                                                               'nom'        =>    $fetchSousQuartiers['nom'],
                                                               'selected'    =>    $selected
                                                           ));
                   */
                 $retourSousQuartiers[] = array('id' => $fetchSousQuartiers['idSousQuartier'], 'nom' => $fetchSousQuartiers['nom'], 'selected' => $selected);
             }
         }
     }
     if ($modeRecuperationDonnees == 'modif') {
         // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         // RECUPERATION DES DONNEES DES ADRESSES A PARTIR DE LA BASE DE DONNEES
         // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         // parcours des adresses recuperées de la base de données pour voir si certaines viennent d'autres quartier ,  ville ou sousquartier ==> si c'est le cas il faudra gerer l'affichage plusieurs formulaire ,  un par groupe de sousquartier identiques
         // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         // recuperation des adresses liees à l'image
         $adresses = new archiAdresse();
         $resAdresses = $adresses->getAdressesFromImage($idImage);
         // recuperation du nombre d'adresses
         $nbAdressesEnregistrees = mysql_num_rows($resAdresses);
         if ($nbAdressesEnregistrees > $nbAdressesAffichees && !isset($this->variablesPost['enleverAdresse' . $identifiantUniqueImage])) {
             $nbAdressesAffichees = $nbAdressesEnregistrees;
         }
         if ($nbAdressesEnregistrees > 0) {
             mysql_data_seek($resAdresses, 0);
         }
         $arrayVilles = array();
         $arrayQuartiers = array();
         $arraySousQuartiers = array();
         while ($fetchAdressesVerif = mysql_fetch_assoc($resAdresses)) {
             $arrayVilles[] = $fetchAdressesVerif['idVille'];
             $arrayQuartiers[] = $fetchAdressesVerif['idQuartier'];
             $arraySousQuartiers[] = $fetchAdressesVerif['idSousQuartier'];
         }
         $arrayVilles = array_unique($arrayVilles);
         $arrayQuartiers = array_unique($arrayQuartiers);
         $arraySousQuartiers = array_unique($arraySousQuartiers);
         if (count($arrayVilles) > 1 || count($arrayQuartiers) > 1 || count($arraySousQuartiers) > 1) {
             echo "Attention il y a des adresses qui ne font pas partie du même quartier.<br>";
             // affichage de plusieurs formulaires pour chaque adresse de rue qui n'appartient pas au meme ensemble
             // a faire ?? ou limiter les groupes d'adresses au adresses appartenant à la meme rue
         } else {
             // toutes les adresses appartiennent au meme quartier,  sousQuartier, ville
             // on reprend le premier enregistrement de la requete pour chercher les infos ville,  quartier,  sousquartier a assigner au formulaire
             if ($nbAdressesEnregistrees > 0) {
                 mysql_data_seek($resAdresses, 0);
             }
             $fetchInfosAdresse = mysql_fetch_assoc($resAdresses);
             // l'adresse concerne t elle une rue,  un quartier ,  un sous quartier,  une ville ...
             // pour l'instant on considere que cela concerne une rue avec son numero
             $retourQuartiers = array();
             $retourSousQuartiers = array();
             if ($fetchInfosAdresse['idRue'] != '0') {
                 // recherche de la ville,  du quartier et sous quartier
                 $infosNomsAdresse = $adresse->getAdresseComplete($fetchInfosAdresse['idRue'], 'rue');
                 $infosIds = $adresse->getArrayAdresseFrom($fetchInfosAdresse['idRue'], 'rue');
                 /*$t->assign_vars(array(
                                           'ville'=>$infosIds['ville'],
                                           'villetxt'=>$infosNomsAdresse['ville']
                   ));*/
                 $retourVille = array('ville' => $infosIds['ville'], 'villetxt' => $infosNomsAdresse['ville']);
                 // assignation du quartier
                 $resQuartiers = $this->connexionBdd->requete("SELECT idQuartier, nom FROM quartier WHERE idVille = '" . $infosIds['ville'] . "'");
                 while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                     $selected = "";
                     if ($infosIds['quartier'] == $fetchQuartiers['idQuartier']) {
                         $selected = " selected";
                     }
                     /*$t->assign_block_vars("quartiers",  array(
                                                                   'nom'=>$fetchQuartiers['nom'],
                                                                   'id'=>$fetchQuartiers['idQuartier'],
                                                                   'selected'=>$selected
                                                           ));
                       */
                     $retourQuartiers[] = array('nom' => $fetchQuartiers['nom'], 'id' => $fetchQuartiers['idQuartier'], 'selected' => $selected);
                 }
                 /*$t->assign_vars(array('onChangeListeQuartier'=>"appelAjax('".$this->creerUrl('',  'afficheSelectSousQuartier',  array('noHeaderNoFooter'=>1))."&archiIdQuartier='+document.getElementById('quartiers').value,  'listeSousQuartier')"));*/
                 // assignation du sousQuartier
                 $resSousQuartiers = $this->connexionBdd->requete("SELECT idSousQuartier, nom FROM sousQuartier WHERE idQuartier = '" . $infosIds['quartier'] . "'");
                 while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                     $selected = "";
                     if ($infosIds['sousQuartier'] == $fetchSousQuartiers['idSousQuartier']) {
                         $selected = " selected";
                     }
                     /*$t->assign_block_vars("sousQuartiers",  array(
                                                                   'nom'=>$fetchSousQuartiers['nom'],
                                                                   'id'=>$fetchSousQuartiers['idSousQuartier'],
                                                                   'selected'=>$selected
                                                           ));
                       */
                     $retourSousQuartiers[] = array('nom' => $fetchSousQuartiers['nom'], 'id' => $fetchSousQuartiers['idSousQuartier'], 'selected' => $selected);
                 }
             } elseif ($fetchInfosAdresse['idSousQuartier'] != '0') {
                 echo "archiAdresse::afficheAjoutAdressesMultiple : ajout d'une localisation sur un sous quartier entier désactivée. Contactez l'administrateur.";
             } elseif ($fetchInfosAdresse['idQuartier'] != '0') {
                 echo "archiAdresse::afficheAjoutAdressesMultiple : ajout d'une localisation sur un quartier entier désactivée. Contactez l'administrateur.";
             } elseif ($fetchInfosAdresse['idVille'] != '0') {
                 echo "archiAdresse::afficheAjoutAdressesMultiple : ajout d'une localisation sur une ville entière désactivée. Contactez l'administrateur.";
             }
         }
     }
     // fin boucle sur la partie 'modif'
     $retourAdresses = array();
     // parcours des adresses
     for ($i = 0; $i < $nbAdressesAffichees; $i++) {
         if ($modeRecuperationDonnees == 'ajout' && isset($this->variablesPost['rue' . $i . '_' . $identifiantUniqueImage])) {
             $arrayAdresse[$i]['txt'] = $this->variablesPost['rue' . $i . '_' . $identifiantUniqueImage . "txt"];
             $arrayAdresse[$i]['id'] = $this->variablesPost['rue' . $i . '_' . $identifiantUniqueImage];
             $arrayAdresse[$i]['numero'] = $this->variablesPost['numero' . $i . '_' . $identifiantUniqueImage];
             $arrayAdresse[$i]['indicatif'] = $this->variablesPost['indicatif' . $i . '_' . $identifiantUniqueImage];
         } else {
             if ($modeRecuperationDonnees == 'modif' && $i < $nbAdressesEnregistrees) {
                 mysql_data_seek($resAdresses, $i);
                 $fetchAdresses = mysql_fetch_assoc($resAdresses);
                 $arrayAdresse[$i]['txt'] = $fetchAdresses['nomRue'];
                 $arrayAdresse[$i]['id'] = $fetchAdresses['idRue'];
                 $arrayAdresse[$i]['numero'] = $fetchAdresses['numero'];
                 $arrayAdresse[$i]['indicatif'] = $fetchAdresses['idIndicatif'];
             } else {
                 $arrayAdresse[$i]['txt'] = "";
                 $arrayAdresse[$i]['id'] = "";
                 $arrayAdresse[$i]['numero'] = "";
                 $arrayAdresse[$i]['indicatif'] = "";
             }
         }
         // affichage des indicatifs pour chaque adresse
         /*$t->assign_block_vars("adresses",  array(
                                                             'idUnique'                    => $i,
         
                                                             'onClickBoutonChoixRue'     => "document.getElementById('paramChampAppelantRue').value= 'rue".$i."';document.getElementById('iFrameRue').src='".$this->creerUrl('',  'afficheChoixRue',  array('noHeaderNoFooter'=>1))."&archiIdVille='+document.getElementById('ville').value+'&archiIdQuartier='+document.getElementById('quartiers').value+'&archiIdSousQuartier='+document.getElementById('sousQuartiers').value;document.getElementById('calqueRue').style.display='block';",
         
                                                             "nomRue"                => $arrayAdresse[$i]["txt"],
                                                             "rue"                    => $arrayAdresse[$i]["id"],
                                                             "numero"                => $arrayAdresse[$i]["numero"]
                                                         ));
                     */
         $retourIndicatifsAdresses = array();
         // gestion des indicatifs de chaque adresse
         $reqIndicatif = "select idIndicatif,  nom from indicatif";
         $resIndicatif = $this->connexionBdd->requete($reqIndicatif);
         while ($fetchIndicatif = mysql_fetch_assoc($resIndicatif)) {
             $selected = "";
             if (isset($this->variablesPost['indicatif' . $i]) && $this->variablesPost['indicatif' . $i] != '' && $this->variablesPost['indicatif' . $i] == $fetchIndicatif['idIndicatif'] || $arrayAdresse[$i]['indicatif'] == $fetchIndicatif['idIndicatif']) {
                 $selected = " selected";
             }
             /*$t->assign_block_vars("adresses.indicatifs",  array(
                                               "id"        =>    $fetchIndicatif['idIndicatif'],
                                               "nom"        =>    $fetchIndicatif['nom'],
                                               "selected"    =>    $selected
               ));
               */
             $retourIndicatifsAdresses[] = array("id" => $fetchIndicatif['idIndicatif'], "nom" => $fetchIndicatif['nom'], "selected" => $selected);
         }
         $retourAdresses[] = array('idUnique' => $i, 'onClickBoutonChoixRue' => "document.getElementById('calqueRue').style.top=(getScrollHeight()+150)+'px';document.getElementById('paramChampAppelantRue').value= 'rue" . $i . "_" . $identifiantUniqueImage . "';document.getElementById('iFrameRue').src='" . $this->creerUrl('', 'afficheChoixRue', array('noHeaderNoFooter' => 1)) . "&archiIdVille='+document.getElementById('ville" . $identifiantUniqueImage . "').value+'&archiIdQuartier='+document.getElementById('quartiers" . $identifiantUniqueImage . "').value+'&archiIdSousQuartier='+document.getElementById('sousQuartiers" . $identifiantUniqueImage . "').value;document.getElementById('calqueRue').style.display='block';", "nomRue" => $arrayAdresse[$i]["txt"], "rue" => $arrayAdresse[$i]["id"], "numero" => $arrayAdresse[$i]["numero"], "indicatifs" => $retourIndicatifsAdresses);
     }
     //fin boucle sur les adresses
     $retour = array('nbAdressesAffichees' => $nbAdressesAffichees, 'nbAdressesEnregistrees' => $nbAdressesEnregistrees, 'quartiers' => $retourQuartiers, 'sousQuartiers' => $retourSousQuartiers, 'adresses' => $retourAdresses, 'ville' => $retourVille);
     return $retour;
 }