public function afficheAjoutAdressesMultiple($idEvenementGroupeAdresse = 0)
 {
     $html = "";
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('ajoutAdressesMultiple' => 'nouveauDossier.tpl'));
     // initialisation de l'objet googlemap pour la recuperation des coordonnees
     $paramsGoogleMap = array('googleMapKey' => $this->googleMapKey);
     $googleMap = new googleMap($paramsGoogleMap);
     $html .= $googleMap->getJsFunctions();
     $html .= $googleMap->getJSInitGeoCoder();
     /*$jsToExecute="document.getElementById('formAjoutDossier').action='".$this->creerUrl('enregistreGroupeAdresses','',array('archiIdEvenementGroupeAdresses'=>$idEvenementGroupeAdresse))."';testAdresseValideAndSubmit('formAjoutDossier');";
     
     		$arrayJsCoordonneesFromGoogleMap = $googleMap->getJSRetriveCoordonnees(array(
     				'nomChampLatitudeRetour'=>'latitude',
     				'nomChampLongitudeRetour'=>'longitude',
     				'getAdresseFromElementById'=>true,
     				'jsAdresseValue'=>"document.getElementById('numero0').value+' '+document.getElementById('rue0txt').value+' '+document.getElementById('villetxt').value",
     				'jsToExecuteIfOK'=>$jsToExecute,
     				'jsToExecuteIfNoAddressFound'=>"document.getElementById('latitude').value='';document.getElementById('longitude').value='';".$jsToExecute
     		));
     
     		$html.= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];
     		*/
     // recapitulatif de(s) l'adresse(s) deja liee(s)
     $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
     $t->assign_vars(array('recapitulatifAdresse' => $this->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
     // affichage du block d'adresses
     $t->assign_block_vars('isNotAjoutSousEvenement', array());
     // recuperation des adresses de l'evenement groupe d'adresse
     $resAdresses = $this->getAdressesFromEvenementGroupeAdresses($idEvenementGroupeAdresse);
     $authentification = new archiAuthentification();
     if ($authentification->estAdmin()) {
         $t->assign_vars(array('displayQuartiers' => 'table-row'));
         $t->assign_vars(array('displaySousQuartiers' => 'table-row'));
     } else {
         $t->assign_vars(array('displayQuartiers' => 'none'));
         $t->assign_vars(array('displaySousQuartiers' => 'none'));
     }
     // 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
     if (mysql_num_rows($resAdresses) > 0) {
         mysql_data_seek($resAdresses, 0);
     }
     $arrayVilles = array();
     $arrayQuartiers = array();
     $arraySousQuartiers = array();
     $i = 0;
     while ($fetchAdressesVerif = mysql_fetch_assoc($resAdresses)) {
         $arrayVilles[] = $fetchAdressesVerif['idVille'];
         $arrayQuartiers[] = $fetchAdressesVerif['idQuartier'];
         $arraySousQuartiers[] = $fetchAdressesVerif['idSousQuartier'];
         // on en profite pour recuperer les coordonnées longitudes et latitudes
         if ($i == 0) {
             $longitude = $fetchAdressesVerif['longitude'];
             $latitude = $fetchAdressesVerif['latitude'];
             // on les renseigne dans le formulaire
             $t->assign_vars(array('longitude' => $longitude, 'latitude' => $latitude));
         }
         $i++;
     }
     $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 (mysql_num_rows($resAdresses) > 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
         if ($fetchInfosAdresse['idRue'] != '0') {
             // recherche de la ville, du quartier et sous quartier
             $infosNomsAdresse = $this->getAdresseComplete($fetchInfosAdresse['idRue'], 'rue');
             $infosIds = $this->getArrayAdresseFrom($fetchInfosAdresse['idRue'], 'rue');
             $t->assign_vars(array('ville' => $infosIds['ville'], 'villetxt' => $infosNomsAdresse['ville']));
             // assignation du quartier
             $resQuartiers = $this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '" . $infosIds['ville'] . "' order by nom");
             while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                 $selected = "";
                 if ($infosIds['quartier'] == $fetchQuartiers['idQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", 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'] . "' order by nom");
             while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                 $selected = "";
                 if ($infosIds['sousQuartier'] == $fetchSousQuartiers['idSousQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchSousQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array('nom' => $fetchSousQuartiers['nom'], 'id' => $fetchSousQuartiers['idSousQuartier'], 'selected' => $selected));
                 }
             }
         } elseif ($fetchInfosAdresse['idSousQuartier'] != '0') {
             // recherche de la ville, du quartier et sous quartier
             $infosNomsAdresse = $this->getAdresseComplete($fetchInfosAdresse['idSousQuartier'], 'sousQuartier');
             $infosIds = $this->getArrayAdresseFrom($fetchInfosAdresse['idSousQuartier'], 'sousQuartier');
             $t->assign_vars(array('ville' => $infosIds['ville'], 'villetxt' => $infosNomsAdresse['ville']));
             // assignation du quartier
             $resQuartiers = $this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '" . $infosIds['ville'] . "' order by nom");
             while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                 $selected = "";
                 if ($infosIds['quartier'] == $fetchQuartiers['idQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", 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'] . "' order by nom");
             while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                 $selected = "";
                 if ($infosIds['sousQuartier'] == $fetchSousQuartiers['idSousQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchSousQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array('nom' => $fetchSousQuartiers['nom'], 'id' => $fetchSousQuartiers['idSousQuartier'], 'selected' => $selected));
                 }
             }
         } elseif ($fetchInfosAdresse['idQuartier'] != '0') {
             // recherche de la ville, du quartier et sous quartier
             $infosNomsAdresse = $this->getAdresseComplete($fetchInfosAdresse['idQuartier'], 'quartier');
             $infosIds = $this->getArrayAdresseFrom($fetchInfosAdresse['idQuartier'], 'quartier');
             $t->assign_vars(array('ville' => $infosIds['ville'], 'villetxt' => $infosNomsAdresse['ville']));
             // assignation du quartier
             $resQuartiers = $this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '" . $infosIds['ville'] . "' order by nom");
             while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                 $selected = "";
                 if ($infosIds['quartier'] == $fetchQuartiers['idQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", 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'] . "' order by nom");
             while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                 $selected = "";
                 if ($infosIds['sousQuartier'] == $fetchSousQuartiers['idSousQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchSousQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array('nom' => $fetchSousQuartiers['nom'], 'id' => $fetchSousQuartiers['idSousQuartier'], 'selected' => $selected));
                 }
             }
         } elseif ($fetchInfosAdresse['idVille'] != '0') {
             $infosNomsAdresse = $this->getAdresseComplete($fetchInfosAdresse['idVille'], 'ville');
             $infosIds = $this->getArrayAdresseFrom($fetchInfosAdresse['idVille'], 'ville');
             $t->assign_vars(array('ville' => $infosIds['ville'], 'villetxt' => $infosNomsAdresse['ville']));
             // assignation du quartier
             $resQuartiers = $this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '" . $infosIds['ville'] . "' order by nom");
             while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                 $selected = "";
                 if ($infosIds['quartier'] == $fetchQuartiers['idQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", 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'] . "' order by nom");
             while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                 $selected = "";
                 if ($infosIds['sousQuartier'] == $fetchSousQuartiers['idSousQuartier']) {
                     $selected = " selected";
                 }
                 if ($fetchSousQuartiers['nom'] != 'autre') {
                     $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array('nom' => $fetchSousQuartiers['nom'], 'id' => $fetchSousQuartiers['idSousQuartier'], 'selected' => $selected));
                 }
             }
         }
     }
     // parcours des adresses
     $numLigne = 0;
     if (isset($this->variablesPost['idUnique'])) {
         foreach ($this->variablesPost['idUnique'] as $indice => $valueIdUnique) {
             if (isset($this->variablesGet['supprAdresse']) && $this->variablesGet['supprAdresse'] == $valueIdUnique) {
                 //
             } else {
                 $arrayAdresse[$numLigne]['idAdresse'] = 0;
                 $arrayAdresse[$numLigne]['txt'] = $this->variablesPost['ruetxt'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['id'] = $this->variablesPost['rue'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['numero'] = $this->variablesPost['numero'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['indicatif'] = $this->variablesPost['indicatif'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['longitude'] = $this->variablesPost['longitude'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['latitude'] = $this->variablesPost['latitude'][$valueIdUnique];
                 $numLigne++;
             }
         }
         if (isset($this->variablesPost['ajouterAdresse'])) {
             $arrayAdresse[$numLigne]['idAdresse'] = 0;
             $arrayAdresse[$numLigne]['txt'] = "";
             $arrayAdresse[$numLigne]['id'] = "";
             $arrayAdresse[$numLigne]['numero'] = "";
             $arrayAdresse[$numLigne]['indicatif'] = "";
             $arrayAdresse[$numLigne]['longitude'] = "";
             $arrayAdresse[$numLigne]['latitude'] = "";
             $numLigne++;
         }
         if (count($this->variablesPost['idUnique']) == 1 && isset($this->variablesPost['enleverAdresse'])) {
             $arrayAdresse[$numLigne]['idAdresse'] = 0;
             $arrayAdresse[$numLigne]['txt'] = "";
             $arrayAdresse[$numLigne]['id'] = "";
             $arrayAdresse[$numLigne]['numero'] = "";
             $arrayAdresse[$numLigne]['indicatif'] = "";
             $arrayAdresse[$numLigne]['longitude'] = "";
             $arrayAdresse[$numLigne]['latitude'] = "";
             $numLigne++;
         }
     } else {
         $resAdresses = $this->getAdressesFromEvenementGroupeAdresses($idEvenementGroupeAdresse);
         if (mysql_num_rows($resAdresses) > 0 && !isset($this->variablesPost['ajouterAdresse'])) {
             mysql_data_seek($resAdresses, 0);
             while ($fetchAdresses = mysql_fetch_assoc($resAdresses)) {
                 $arrayAdresse[$numLigne]['idAdresse'] = $fetchAdresses['idAdresse'];
                 $arrayAdresse[$numLigne]['txt'] = $fetchAdresses['nomRue'];
                 $arrayAdresse[$numLigne]['id'] = $fetchAdresses['idRue'];
                 $arrayAdresse[$numLigne]['numero'] = $fetchAdresses['numero'];
                 $arrayAdresse[$numLigne]['indicatif'] = $fetchAdresses['idIndicatif'];
                 $arrayAdresse[$numLigne]['prefixe'] = $fetchAdresses['prefixeRue'];
                 $arrayAdresse[$numLigne]['longitude'] = $fetchAdresses['longitude'];
                 $arrayAdresse[$numLigne]['latitude'] = $fetchAdresses['latitude'];
                 $numLigne++;
             }
         } else {
             $arrayAdresse[$numLigne]['idAdresse'] = 0;
             $arrayAdresse[$numLigne]['txt'] = "";
             $arrayAdresse[$numLigne]['id'] = "";
             $arrayAdresse[$numLigne]['numero'] = "";
             $arrayAdresse[$numLigne]['indicatif'] = "";
             $arrayAdresse[$numLigne]['prefixe'] = "";
             $arrayAdresse[$numLigne]['longitude'] = "";
             $arrayAdresse[$numLigne]['latitude'] = "";
             $numLigne++;
         }
     }
     $configArrayRetrieveCoordonneesGoogleMap = array();
     for ($i = 0; $i < $numLigne; $i++) {
         // affichage des indicatifs pour chaque adresse
         $nomRue = $arrayAdresse[$i]["txt"];
         if (isset($arrayAdresse[$i]['prefixe']) && $arrayAdresse[$i]['prefixe'] != '') {
             $nomRue = $arrayAdresse[$i]['prefixe'] . ' ' . $arrayAdresse[$i]["txt"];
         }
         $coordonnees = $this->getCoordonneesFrom($arrayAdresse[$i]['idAdresse'], 'idAdresse');
         $t->assign_block_vars("isNotAjoutSousEvenement.adresses", array('idUnique' => $i, 'idAdresse' => $arrayAdresse[$i]['idAdresse'], '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';document.getElementById('calqueRue').style.top=(getScrollHeight()+50)+'px'", "onClickBoutonSupprAdresse" => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses' => $idEvenementGroupeAdresse, 'supprAdresse' => $i)) . "'", "nomRue" => $nomRue, "rue" => $arrayAdresse[$i]["id"], "numero" => $arrayAdresse[$i]["numero"], "longitude" => $coordonnees['longitude'], "latitude" => $coordonnees['latitude']));
         // gestion des indicatifs de chaque adresse
         $reqIndicatif = "select idIndicatif, nom from indicatif";
         $resIndicatif = $this->connexionBdd->requete($reqIndicatif);
         while ($fetchIndicatif = mysql_fetch_assoc($resIndicatif)) {
             $selected = "";
             //(isset($this->variablesPost['indicatif'.$i]) && $this->variablesPost['indicatif'.$i]!='' && $this->variablesPost['indicatif'.$i]==$fetchIndicatif['idIndicatif'])     ||
             if ($arrayAdresse[$i]['indicatif'] == $fetchIndicatif['idIndicatif']) {
                 $selected = " selected";
             }
             $t->assign_block_vars("isNotAjoutSousEvenement.adresses.indicatifs", array("id" => $fetchIndicatif['idIndicatif'], "nom" => $fetchIndicatif['nom'], "selected" => $selected));
         }
         $configArrayRetrieveCoordonneesGoogleMap[$i] = array('nomChampLatitudeRetour' => 'latitude_' . $i, 'nomChampLongitudeRetour' => 'longitude_' . $i, 'getAdresseFromElementById' => true, 'jsAdresseValue' => "document.getElementById('numero" . $i . "').value+' '+document.getElementById('rue" . $i . "txt').value+' '+document.getElementById('villetxt').value", 'jsToExecuteIfNoAddressFound' => "");
     }
     $jsToExecute = "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('enregistreGroupeAdresses', '', array('archiIdEvenementGroupeAdresses' => $idEvenementGroupeAdresse), false, false) . "';testAdresseValideAndSubmit('formAjoutDossier');";
     $arrayJsCoordonneesFromGoogleMap = $googleMap->getJSMultipleRetriveCoordonnees(array('jsToExecuteIfOK' => $jsToExecute, 'jsCodeForWaitingWhileLocalization' => "document.getElementById('popupAttente').style.top=(getScrollHeight()+200)+'px';document.getElementById('popupAttente').style.display='block';"), $configArrayRetrieveCoordonneesGoogleMap);
     $html .= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];
     // ***********************************************************************************
     // assignation des boutons
     $t->assign_vars(array('formAction' => $this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses' => $idEvenementGroupeAdresse)), 'popupVilles' => $this->getPopupChoixVille('nouveauDossier'), 'popupRues' => $this->getPopupChoixRue('nouveauDossier'), 'onClickBoutonAjouterAdresse' => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses' => $idEvenementGroupeAdresse)) . "'", 'onClickBoutonEnleverAdresse' => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses' => $idEvenementGroupeAdresse)) . "'", 'onClickBoutonValider' => $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'], 'typeBoutonValidation' => "button", 'onClickBoutonChoixVille' => "document.getElementById('paramChampAppelantVille').value='ville';document.getElementById('calqueVille').style.display='block';", 'onChangeListeQuartier' => "appelAjax('" . $this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter' => 1)) . "&archiIdQuartier='+document.getElementById('listeQuartier').value,'listeSousQuartiers')", 'popupAttente' => $this->getPopupAttente()));
     // ***********************************************************************************
     // messages d'aide contextuelle
     $helpMessages = $this->getHelpMessages('helpAdresse');
     foreach ($helpMessages as $fieldName => $message) {
         $t->assign_vars(array($fieldName => $message));
     }
     // ***********************************************************************************
     ob_start();
     $t->pparse('ajoutAdressesMultiple');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * Affichage du formulaire d'ajout d'un nouveau dossier (groupe d'adresse + evenement construction)
  * 
  * @param array  $parametres Paramètres
  * @param string $type       Type (adresse ou personne)
  * 
  * @return void
  * */
 public function afficheFormulaireNouveauDossier($parametres = array(), $type = "adresse")
 {
     $html = "";
     // initialisation de l'objet googlemap pour la recuperation des coordonnees
     $paramsGoogleMap = array('googleMapKey' => $this->googleMapKey);
     $googleMap = new googleMap($paramsGoogleMap);
     $html .= $googleMap->getJsFunctions();
     $html .= $googleMap->getJSInitGeoCoder();
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('nouveauDossier' => 'nouveauDossier.tpl'));
     if ($type == "personne") {
         $formAction = "ajoutNouvelPersonne";
         $t->assign_block_vars("ajoutPersonne", array());
         $resJobs = $this->connexionBdd->requete("SELECT * FROM `metier`");
         $jobList = "";
         while ($job = mysql_fetch_assoc($resJobs)) {
             if (!empty($job["nom"])) {
                 $jobList .= "<option value='" . $job["idMetier"] . "'";
                 if (isset($_POST["metier"]) && $job["idMetier"] == $_POST["metier"]) {
                     $jobList .= " selected='selected' ";
                 }
                 $jobList .= ">" . $job["nom"] . "</option>";
             }
         }
         $t->assign_vars(array('titrePage' => _("Ajout d'une nouvelle personne (physique ou morale)"), "jobList" => $jobList, "typeBoutonValidation" => "submit"));
         if (!empty($_POST) && !isset($_POST["archiLogin"])) {
             $t->assign_vars(array("firstname" => $_POST["prenom"], "name" => $_POST["nom"], "birth" => $_POST["dateNaissance"], "death" => $_POST["dateDeces"], "desc" => $_POST["descriptionPerson"]));
         }
     } else {
         $formAction = "ajoutNouveauDossier";
         if (!isset($arrayJsCoordonneesFromGoogleMap['jsFunctionCall'])) {
             $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'] = 0;
         }
         // assignation du titre de la page
         $t->assign_vars(array('titrePage' => _("Ajout d'une nouvelle adresse"), 'typeBoutonValidation' => "submit"));
         // ********
         // on affiche la partie ajout d'une adresse
         $t->assign_block_vars('isNotAjoutSousEvenement', array());
         // ********
     }
     // ********
     // on affiche la partie "ajout d'un evenement"
     $t->assign_block_vars('afficheAjoutEvenement', array());
     // *******
     // ******
     // si la personne n'est pas admin elle verra une version simplifiée du formulaire
     $authentification = new archiAuthentification();
     $u = new archiUtilisateur();
     if ($authentification->estConnecte() && ($authentification->estAdmin() || $u->canAddWithoutStreet(array('idUtilisateur' => $authentification->getIdUtilisateur())))) {
         $t->assign_block_vars('afficheAjoutEvenement.isAdmin', array());
         $t->assign_vars(array("displayQuartiers" => 'table-row'));
         $t->assign_vars(array("displaySousQuartiers" => 'table-row'));
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotAdmin', array());
         $t->assign_vars(array("displayQuartiers" => 'none'));
         $t->assign_vars(array("displaySousQuartiers" => 'none'));
     }
     // ******
     $typeStructure = 0;
     if (isset($this->variablesPost['typeStructure']) && $this->variablesPost['typeStructure'] != '') {
         $typeStructure = $this->variablesPost['typeStructure'];
     }
     $groupeTypeEvenement = 2;
     // par defaut on selectionne les evenement de type 'travaux'
     if (isset($this->variablesPost['typeGroupeEvenement']) && $this->variablesPost['typeGroupeEvenement'] != '') {
         $groupeTypeEvenement = $this->variablesPost['typeGroupeEvenement'];
     }
     $typeEvenement = 0;
     if (isset($this->variablesPost['typeEvenement']) && $this->variablesPost['typeEvenement'] != '') {
         $typeEvenement = $this->variablesPost['typeEvenement'];
     }
     if (!(isset($this->variablesPost['typeEvenement']) && $this->variablesPost['typeEvenement'] != '') && isset($this->variablesGet['archiOptionAjoutDossier']) && $this->variablesGet["archiOptionAjoutDossier"] == "nouvelleDemolition") {
         $groupeTypeEvenement = 2;
         // travaux
         $typeEvenement = 6;
     }
     if (!(isset($this->variablesPost['typeEvenement']) && $this->variablesPost['typeEvenement'] != '') && isset($this->variablesGet['archiOptionAjoutDossier']) && $this->variablesGet["archiOptionAjoutDossier"] == "nouvelEvenementCulturel") {
         $groupeTypeEvenement = 1;
         // travaux
         $typeEvenement = 0;
     }
     $ISMH = false;
     if (isset($this->variablesPost['ISMH'])) {
         $ISMH = true;
     }
     $MH = false;
     if (isset($this->variablesPost['MH'])) {
         $MH = true;
     }
     $isDateDebutEnviron = false;
     if (isset($this->variablesPost['isDateDebutEnviron'])) {
         $isDateDebutEnviron = true;
     }
     $personnes = array();
     if (isset($this->variablesPost['personnes']) && count($this->variablesPost['personnes']) > 0) {
         $personnes = $this->variablesPost['personnes'];
     }
     $ville = 0;
     if (isset($this->variablesPost['ville']) && $this->variablesPost['ville'] != '0' && $this->variablesPost['ville'] != '') {
         $ville = $this->variablesPost['ville'];
     }
     // ***********************************************************************************
     // recuperation des valeurs des champs textes du formulaire validé,  les autres champs sont mis en place individuellement
     $listeChamps = array('titre', 'source', 'sourcetxt', 'dateDebut', 'dateFin', 'nbEtages', 'description', 'ville', 'villetxt');
     foreach ($listeChamps as $indice => $fieldName) {
         if (isset($this->variablesPost[$fieldName]) && $this->variablesPost[$fieldName] != '') {
             $t->assign_vars(array($fieldName => $this->variablesPost[$fieldName]));
         }
     }
     // gestion du favori de la ville ou si on a une ville generale courante
     if ($ville == '0' && !isset($this->variablesGet['archiIdVilleGeneral'])) {
         $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');
     } elseif (isset($this->variablesGet['archiIdVilleGeneral'])) {
         $reqVilleTxt = "select nom from ville where idVille = '" . $this->variablesGet['archiIdVilleGeneral'] . "'";
         $resVilleTxt = $this->connexionBdd->requete($reqVilleTxt);
         $fetchVilleTxt = mysql_fetch_assoc($resVilleTxt);
         $t->assign_vars(array('ville' => $this->variablesGet['archiIdVilleGeneral'], 'villetxt' => $fetchVilleTxt['nom']));
         $ville = $this->variablesGet['archiIdVilleGeneral'];
     }
     // ***********************************************************************************
     // si un idVille existe sur le formulaire ,  on affiche les quartiers correspondants
     if ($ville != 0) {
         $resQuartiers = $this->connexionBdd->requete("select idQuartier,  nom from quartier where idVille = '" . $ville . "' order by nom");
         while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
             $selected = "";
             if (isset($this->variablesPost['quartiers']) && $this->variablesPost['quartiers'] != '0' && $fetchQuartiers['idQuartier'] == $this->variablesPost['quartiers']) {
                 $selected = " selected";
             }
             if ($fetchQuartiers['nom'] != 'autre') {
                 if ($type == "personne") {
                 } else {
                     $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", array('id' => $fetchQuartiers['idQuartier'], 'nom' => $fetchQuartiers['nom'], 'selected' => $selected));
                 }
             }
         }
     }
     // ***********************************************************************************
     // si on a des personnes selectionnees ,  on les ajoute
     $d = new droitsObject();
     $u = new archiUtilisateur();
     if ($d->isAuthorized('personne_sur_evenement_ajouter', $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur()))) {
         $t->assign_vars(array("affichePersonnesBlock" => "table-row"));
     } else {
         $t->assign_vars(array("affichePersonnesBlock" => "none"));
     }
     if ($d->isAuthorized('affiche_selection_source', $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.isDisplaySource', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotDisplaySource', array());
     }
     if (count($personnes) > 0) {
         $listePersonnes = implode("', '", $personnes);
         $reqPersonnes = "select idPersonne,  nom,  prenom from personne where idPersonne in ('" . $listePersonnes . "')";
         $resPersonnes = $this->connexionBdd->requete($reqPersonnes);
         while ($fetchPersonnes = mysql_fetch_assoc($resPersonnes)) {
             $t->assign_block_vars('personnes', array('id' => $fetchPersonnes['idPersonne'], 'nom' => $fetchPersonnes['nom'] . ' ' . $fetchPersonnes['prenom'], 'selected' => " selected"));
         }
     }
     // ***********************************************************************************
     // si un idQuartier existe sur le formulaire on affiche les sous quartier correspondants
     if (isset($this->variablesPost['quartiers']) && $this->variablesPost['quartiers'] != '') {
         $resSousQuartiers = $this->connexionBdd->requete("select idSousQuartier,  nom from sousQuartier where idQuartier = '" . $this->variablesPost['quartiers'] . "' order by nom");
         while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
             $selected = "";
             if (isset($this->variablesPost['sousQuartiers']) && $this->variablesPost['sousQuartiers'] != '0' && $fetchSousQuartiers['idSousQuartier'] == $this->variablesPost['sousQuartiers']) {
                 $selected = " selected";
             }
             if ($fetchSousQuartiers['nom'] != 'autre') {
                 if ($type == "personne") {
                 } else {
                     $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array('id' => $fetchSousQuartiers['idSousQuartier'], 'nom' => $fetchSousQuartiers['nom'], 'selected' => $selected));
                 }
             }
         }
     }
     $numLigne = 0;
     if (isset($this->variablesPost['idUnique'])) {
         foreach ($this->variablesPost['idUnique'] as $indice => $valueIdUnique) {
             if (isset($this->variablesGet['supprAdresse']) && $this->variablesGet['supprAdresse'] == $valueIdUnique) {
                 //
             } else {
                 $arrayAdresse[$numLigne]['idAdresse'] = 0;
                 $arrayAdresse[$numLigne]['txt'] = $this->variablesPost['ruetxt'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['id'] = $this->variablesPost['rue'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['numero'] = $this->variablesPost['numero'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['indicatif'] = $this->variablesPost['indicatif'][$valueIdUnique];
                 $numLigne++;
             }
         }
         if (isset($this->variablesPost['ajouterAdresse'])) {
             $arrayAdresse[$numLigne]['idAdresse'] = 0;
             $arrayAdresse[$numLigne]['txt'] = "";
             $arrayAdresse[$numLigne]['id'] = "";
             $arrayAdresse[$numLigne]['numero'] = "";
             $arrayAdresse[$numLigne]['indicatif'] = "";
             $numLigne++;
         }
         if (count($this->variablesPost['idUnique']) == 1 && isset($this->variablesPost['enleverAdresse'])) {
             $arrayAdresse[$numLigne]['idAdresse'] = 0;
             $arrayAdresse[$numLigne]['txt'] = "";
             $arrayAdresse[$numLigne]['id'] = "";
             $arrayAdresse[$numLigne]['numero'] = "";
             $arrayAdresse[$numLigne]['indicatif'] = "";
             $numLigne++;
         }
     } else {
         $arrayAdresse[$numLigne]['idAdresse'] = 0;
         $arrayAdresse[$numLigne]['txt'] = "";
         $arrayAdresse[$numLigne]['id'] = "";
         $arrayAdresse[$numLigne]['numero'] = "";
         $arrayAdresse[$numLigne]['indicatif'] = "";
         $numLigne++;
     }
     $configArrayRetrieveCoordonneesGoogleMap = array();
     for ($i = 0; $i < $numLigne; $i++) {
         // affichage des indicatifs pour chaque adresse
         if ($type == "personne") {
         } else {
             $t->assign_block_vars("isNotAjoutSousEvenement.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.top=(getScrollHeight()+150)+'px';document.getElementById('calqueRue').style.display='block';", "nomRue" => $arrayAdresse[$i]["txt"], "rue" => $arrayAdresse[$i]["id"], "numero" => $arrayAdresse[$i]["numero"], "onClickBoutonSupprAdresse" => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'ajoutNouveauDossier', array('supprAdresse' => $i)) . "'"));
         }
         // 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']) {
                 $selected = " selected";
             }
             if ($type == "personne") {
             } else {
                 $t->assign_block_vars("isNotAjoutSousEvenement.adresses.indicatifs", array("id" => $fetchIndicatif['idIndicatif'], "nom" => $fetchIndicatif['nom'], "selected" => $selected));
             }
         }
         $configArrayRetrieveCoordonneesGoogleMap[$i] = array('nomChampLatitudeRetour' => 'latitude_' . $i, 'nomChampLongitudeRetour' => 'longitude_' . $i, 'getAdresseFromElementById' => true, 'jsAdresseValue' => "document.getElementById('numero" . $i . "').value+' '+document.getElementById('rue" . $i . "txt').value+' '+document.getElementById('villetxt').value", 'jsToExecuteIfNoAddressFound' => "document.getElementById('latitude_" . $i . "').value='';document.getElementById('longitude_" . $i . "').value='';");
     }
     $jsToExecute = "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('ajoutNouveauDossier', '') . "';testAdresseValideAndSubmit('formAjoutDossier');";
     $arrayJsCoordonneesFromGoogleMap = $googleMap->getJSMultipleRetriveCoordonnees(array('jsToExecuteIfOK' => $jsToExecute), $configArrayRetrieveCoordonneesGoogleMap);
     $html .= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];
     // **************************************************************************************
     // ***********************************************************************************
     // liste des courants architecturaux
     $resCourants = $this->connexionBdd->requete("select idCourantArchitectural, nom from courantArchitectural order by nom");
     $tableauHtml = new tableau();
     while ($fetchCourants = mysql_fetch_assoc($resCourants)) {
         $checked = "";
         if (isset($this->variablesPost["courantArchitectural"]) && in_array($fetchCourants["idCourantArchitectural"], $this->variablesPost["courantArchitectural"])) {
             $checked = " checked";
         }
         $tableauHtml->addValue("<input type='checkbox' name='courantArchitectural[]' value='" . $fetchCourants["idCourantArchitectural"] . "' " . $checked . ">&nbsp;" . $fetchCourants['nom']);
     }
     $t->assign_vars(array('listeCourantsArchitecturaux' => $tableauHtml->createHtmlTableFromArray(3, 'white-space:nowrap;border:1px solid #000000;', 'listeCourantsArchitecturaux')));
     if ($type == "adresse") {
         $t->assign_block_vars("afficheAjoutEvenement.isAddress", array());
         // ***********************************************************************************
         // les des types de structures
         $resTypeStructure = $this->connexionBdd->requete("SELECT idTypeStructure,  nom FROM typeStructure order by nom");
         while ($fetchTypeStructure = mysql_fetch_assoc($resTypeStructure)) {
             $selected = "";
             if ($typeStructure != '' && $typeStructure == $fetchTypeStructure["idTypeStructure"] || $typeStructure == "" && $fetchTypeStructure["idTypeStructure"] == $this->getIdTypeStructureImmeuble()) {
                 $selected = " selected";
             }
             if ($fetchTypeStructure["idTypeStructure"] > 0) {
                 $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesStructure', array('id' => $fetchTypeStructure["idTypeStructure"], 'nom' => $fetchTypeStructure["nom"], 'selected' => $selected));
             }
         }
     }
     // ***********************************************************************************
     // le type de groupe d'evenement
     // 1 - culturel
     // 2 - travaux
     if ($groupeTypeEvenement == '2') {
         $t->assign_vars(array('checkedTypeEvenement2' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:none;", 'styleChampsSupplementaireTravaux' => "display:block;"));
     } elseif ($groupeTypeEvenement == '1') {
         $t->assign_vars(array('checkedTypeEvenement1' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:table-row;", 'styleChampsSupplementaireTravaux' => "display:none;"));
     }
     $t->assign_vars(array('onClickTypeEvenement1' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '1')) . "', 'typeEvenement');document.getElementById('afficheChampsSupplementairesCulturel').style.display='block';document.getElementById('afficheChampsSupplementairesTravaux').style.display='none';"));
     $t->assign_vars(array('onClickTypeEvenement2' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '2')) . "', 'typeEvenement');document.getElementById('afficheChampsSupplementairesTravaux').style.display='block';document.getElementById('afficheChampsSupplementairesCulturel').style.display='none';"));
     if ($type == "adresse") {
         // ***********************************************************************************
         // les type d'evenements
         // par defaut on selectionne le typeEvenement=2 (travaux)
         $resTypeEvenement = $this->connexionBdd->requete("SELECT idTypeEvenement, nom FROM typeEvenement where groupe = '" . $groupeTypeEvenement . "'");
         while ($fetchTypeEvenement = mysql_fetch_assoc($resTypeEvenement)) {
             $selected = "";
             if ($typeEvenement != "" && $typeEvenement == $fetchTypeEvenement["idTypeEvenement"]) {
                 $selected = "selected";
             }
             $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesEvenement', array('id' => $fetchTypeEvenement['idTypeEvenement'], 'nom' => $fetchTypeEvenement['nom'], 'selected' => $selected));
         }
     }
     // ***********************************************************************************
     // ISMH   (inscrit au s des monuments historiques)
     // MH (monument historique)
     if ($ISMH) {
         $t->assign_vars(array('ISMHchecked' => ' checked'));
     }
     if ($MH) {
         $t->assign_vars(array('MHchecked' => ' checked'));
     }
     // ***********************************************************************************
     // ***********************************************************************************
     // autre cas pour l'affichage du champ numeroArchive ,  il faut que l'utilisateur soit autorisé à l'afficher => table utilisateur
     $utilisateur = new archiUtilisateur();
     if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeNumeroArchive', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeNumeroArchive', array());
     }
     // ***********************************************************************************
     // idem champ dateFin
     if ($utilisateur->canChangeDateFinField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeDateFin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeDateFin', array());
     }
     $recherche = new archiRecherche();
     $source = new archiSource();
     $onClickBoutonValider = $type == "adresse" ? "affichePopupAttente();" . $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'] : "";
     $typeBoutonValidation = $type == "adresse" ? "button" : "submit";
     $t->assign_vars(array('formAction' => $this->creerUrl($formAction), 'popupCalendrier' => $this->getPopupCalendrier(), 'popupVilles' => $this->getPopupChoixVille('nouveauDossier'), 'popupRues' => $this->getPopupChoixRue('nouveauDossier'), 'popupSources' => $recherche->getPopupChoixSource('nouveauDossier'), 'popupPersonnes' => $recherche->getPopupChoixPersonne('nouveauDossier'), 'onClickBoutonAjouterAdresse' => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'ajoutNouveauDossier') . "'", 'onClickBoutonEnleverAdresse' => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'ajoutNouveauDossier') . "'", 'onClickBoutonValider' => $onClickBoutonValider, 'typeBoutonValidation' => $typeBoutonValidation, 'onClickBoutonChoixVille' => "document.getElementById('paramChampAppelantVille').value='ville';document.getElementById('calqueVille').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueVille').style.display='block';", 'onChangeListeQuartier' => "appelAjax('" . $this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter' => 1)) . "&archiIdQuartier='+document.getElementById('quartiers').value, 'listeSousQuartier')", 'onClickBoutonChoisirSource' => "document.getElementById('paramChampsAppelantSource').value='source';document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';", 'onClickChoixPersonne' => "document.getElementById('paramChampsAppelantPersonne').value='personnes';document.getElementById('calquePersonne').style.top=(getScrollHeight()+150)+'px';document.getElementById('calquePersonne').style.display='block';", 'onClickDateDebut' => "document.getElementById('paramChampAppelantDate').value='dateDebut';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'onClickDateFin' => "document.getElementById('paramChampAppelantDate').value='dateDebut';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('paramChampAppelantDate').value='dateFin';document.getElementById('calqueDate').style.display='block';", 'popupAttente' => $this->getPopupAttente()));
     //document.getElementById('formAjoutDossier').action='".$this->creerUrl('ajoutNouveauDossier', '')."';testAdresseValideAndSubmit('formAjoutDossier');
     // ******************************************************************************************************************************
     // on recupere les messages d'aide contextuelle et on les affiche :
     $helpMessages = $this->getHelpMessages("helpEvenement");
     foreach ($helpMessages as $fieldName => $helpMessage) {
         $t->assign_vars(array($fieldName => $helpMessage));
     }
     // ******************************************************************************************************************************
     ob_start();
     $t->pparse('nouveauDossier');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }