/**
     * Display html details of a single event
     *
     * @param unknown $idEvenement : id of the event to display
     * @return string : html of the detail event
     */
    public function getEventInfos($idEvenement, $params = array())
    {
        $authentification = new archiAuthentification();
        $evenements = array();
        /*
         * Data processing
         */
        $requete = 'SELECT

				hE.idEvenement,
				hE.titre,
				hE.idSource,
				hE.idTypeStructure,
				hE.idTypeEvenement,
				hE.description,
				hE.dateDebut,
				hE.dateFin,
				hE.dateDebut,
				hE.dateFin,
				tE.nom AS nomTypeEvenement,
				tS.nom AS nomTypeStructure,
				s.nom AS nomSource,
				u.nom AS nomUtilisateur,
				u.prenom as prenomUtilisateur,
				tE.groupe,
				hE.ISMH ,
				hE.MH,
				date_format(hE.dateCreationEvenement,"' . _("%e/%m/%Y à %kh%i") . '") as dateCreationEvenement,
				hE.isDateDebutEnviron as isDateDebutEnviron,
				u.idUtilisateur as idUtilisateur,
				hE.numeroArchive as numeroArchive,
				ae.idAdresse,
				ha.idVille,
				ee.idEvenement as idEvenementGroupeAdresse

				FROM evenements hE
				LEFT JOIN source s      ON s.idSource = hE.idSource
				LEFT JOIN typeStructure tS  ON tS.idTypeStructure = hE.idTypeStructure
				LEFT JOIN typeEvenement tE  ON tE.idTypeEvenement = hE.idTypeEvenement
				LEFT JOIN utilisateur u     ON u.idUtilisateur = hE.idUtilisateur

				LEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie =' . $idEvenement . '
				LEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement
				LEFT JOIN historiqueAdresse ha on ha.idAdresse= ae.idAdresse

				WHERE hE.idEvenement=' . $idEvenement . '
				ORDER BY hE.idEvenement DESC
				LIMIT 1';
        if ($params['type'] == 'historique') {
            $requete = 'SELECT

				hE.idEvenement,
				hE.titre,
				hE.idSource,
				hE.idTypeStructure,
				hE.idTypeEvenement,
				hE.description,
				hE.dateDebut,
				hE.dateFin,
				hE.dateDebut,
				hE.dateFin,
				tE.nom AS nomTypeEvenement,
				tS.nom AS nomTypeStructure,
				s.nom AS nomSource,
				s.description as descriptionSource,
				u.nom AS nomUtilisateur,
				u.prenom as prenomUtilisateur,
				tE.groupe,
				hE.ISMH ,
				hE.MH,
				date_format(hE.dateCreationEvenement,"' . _("%e/%m/%Y à %kh%i") . '") as dateCreationEvenement,
				hE.isDateDebutEnviron as isDateDebutEnviron,
				u.idUtilisateur as idUtilisateur,
				hE.numeroArchive as numeroArchive,
				ae.idAdresse,
				ha.idVille,
				ee.idEvenement as idEvenementGroupeAdresse

				FROM historiqueEvenement hE
				LEFT JOIN source s      ON s.idSource = hE.idSource
				LEFT JOIN typeStructure tS  ON tS.idTypeStructure = hE.idTypeStructure
				LEFT JOIN typeEvenement tE  ON tE.idTypeEvenement = hE.idTypeEvenement
				LEFT JOIN utilisateur u     ON u.idUtilisateur = hE.idUtilisateur

				LEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = hE.idEvenement
				LEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement
				LEFT JOIN historiqueAdresse ha on ha.idAdresse= ae.idAdresse

				WHERE hE.idHistoriqueEvenement=' . $idEvenement . '
				ORDER BY hE.idHistoriqueEvenement DESC';
        }
        $result = $this->connexionBdd->requete($requete);
        $fetch = mysql_fetch_assoc($result);
        $idEvenementGroupeAdresse = $fetch['idEvenementGroupeAdresse'];
        //History processing
        $requeteHistory = "SELECT idHistoriqueEvenement from historiqueEvenement where idEvenement = " . $idEvenement;
        $resultHistory = $this->connexionBdd->requete($requeteHistory);
        if (mysql_num_rows($resultHistory) > 1) {
            $txtEnvoi = "modifié";
        } else {
            $txtEnvoi = "envoyé";
        }
        $lienHistoriqueEvenementCourant = $this->creerUrl('', 'consultationHistoriqueEvenement', array('archiIdEvenement' => $idEvenement));
        $labelHistoriqueEvenement = '(Consulter l\'historique)';
        //Image processing
        $images = new archiImage();
        $arrayImagesVuesSurByDate = array();
        $imagesHTML = $images->afficherFromEvenement($idEvenement, array('withoutImagesVuesSurPrisesDepuis' => true, 'imagesVuesSurLinkedByDate' => $arrayImagesVuesSurByDate, 'idGroupeAdresseEvenementAffiche' => $idEvenementGroupeAdresse));
        if ($params['type'] == 'historique') {
            $req = "\n\t\t\t\t\t\t\t\tSELECT e.dateDebut, ae1.idAdresse\n\t\t\t\t\t\t\t\tFROM _adresseEvenement ae1,_adresseEvenement ae2\n\t\t\t\t\t\t\t\tLEFT JOIN historiqueEvenement e on e.idEvenement= ae2.idEvenement\n\t\t\t\t\t\t\t\tWHERE ae1.idAdresse= ae2.idAdresse\n\t\t\t\t\t\t\t\tAND e.idHistoriqueEvenement =" . $idEvenement . "\n\t\t\t\t\t\t\t\t\t\tORDER BY e.idEvenement DESC LIMIT 1\n\t\t\t\t\t\t\t\t\t";
        } else {
            $req = "\n\t\t\t\t\t\t\t\tSELECT e.dateDebut, ae1.idAdresse\n\t\t\t\t\t\t\t\tFROM _adresseEvenement ae1,_adresseEvenement ae2\n\t\t\t\t\t\t\t\tLEFT JOIN evenements e on e.idEvenement= ae2.idEvenement\n\t\t\t\t\t\t\t\tWHERE ae1.idAdresse= ae2.idAdresse\n\t\t\t\t\t\t\t\tAND ae1.idEvenement =" . $idEvenement . "\n\t\t\t\t\t\t\t\t\t\tORDER BY e.idEvenement DESC LIMIT 1\n\t\t\t\t\t\t\t\t\t";
        }
        $res = $this->connexionBdd->requete($req);
        $date2 = mysql_fetch_object($res);
        $idAdresse = $fetch['idAdresse'];
        $linkedEventsHTML = archiPersonne::displayEvenementsLies($idPerson, $dateDebut, $date2->dateDebut);
        //Personne processing
        if ($params['type'] == 'historique') {
            $rep = $this->connexionBdd->requete('
						SELECT  p.idPersonne, m.nom as metier, p.nom, p.prenom
						FROM _evenementPersonne _eP
						LEFT JOIN personne p ON p.idPersonne = _eP.idPersonne
						LEFT JOIN metier m ON m.idMetier = p.idMetier
						LEFT JOIN historiqueEvenement he on he.idEvenement = _eP.idEvenement
						WHERE he.idHistoriqueEvenement=' . $idEvenement . '
						ORDER BY p.nom DESC');
        } else {
            $rep = $this->connexionBdd->requete('
						SELECT  p.idPersonne, m.nom as metier, p.nom, p.prenom
						FROM _evenementPersonne _eP
						LEFT JOIN personne p ON p.idPersonne = _eP.idPersonne
						LEFT JOIN metier m ON m.idMetier = p.idMetier
						WHERE _eP.idEvenement=' . $idEvenement . '
						ORDER BY p.nom DESC');
        }
        $metier = "";
        $arrayPersonne = array();
        while ($res = mysql_fetch_object($rep)) {
            $personne = array();
            if (isset($res->metier) && $res->metier != '') {
                $metier = $res->metier . ' : ';
            }
            $arrayPersonne[] = array('evenement.pers', array('urlDetail' => $this->creerUrl('', 'personne', array('idPersonne' => $res->idPersonne)), 'urlEvenement' => $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $res->idPersonne)), 'nom' => ucfirst(stripslashes($res->nom)), 'prenom' => ucfirst(stripslashes($res->prenom)), 'metier' => ucfirst(stripslashes($metier)), 'idPerson' => $res->idPersonne, 'idEvent' => $idEvenement));
        }
        /*
         *  COURANTS ARCHI
         */
        $rep = $this->connexionBdd->requete('
						SELECT  cA.idCourantArchitectural, cA.nom
						FROM _evenementCourantArchitectural _eA
						LEFT JOIN courantArchitectural cA  ON cA.idCourantArchitectural  = _eA.idCourantArchitectural
						WHERE _eA.idEvenement=' . $idEvenement . '
						ORDER BY cA.nom ASC');
        $arrayCourantArchi = array();
        if (mysql_num_rows($rep) > 0) {
            $arrayCourantArchi[] = array('evenement.isCourantArchi', array());
            while ($res = mysql_fetch_object($rep)) {
                $arrayCourantArchi[] = array('evenement.isCourantArchi.archi', array('url' => $this->creerUrl('', 'evenementListe', array('selection' => 'courant', 'id' => $res->idCourantArchitectural)), 'nom' => $res->nom));
            }
        }
        //Commentaires
        $formulaireCommentaire = $this->getFormComment($idEvenement, $this->getCommentairesFields('evenement'), 'evenement');
        $listeCommentaires = $this->getListCommentairesEvenements($idEvenement);
        //Adresses liees processing
        $adressesLieesHTML = $this->getAdressesLieesAEvenement(array('modeRetour' => 'affichageSurDetailEvenement', 'idEvenement' => $idEvenementGroupeAdresse));
        if ($adressesLieesHTML != '') {
            $adressesLieesHTML = "<b>" . _("Liste des adresses liées :") . "</b> <br>" . $adressesLieesHTML;
        }
        //Date processing
        $dateTxt = $this->getDateAsString($fetch);
        if (!empty($fetch['description']) && $fetch['description'] != '') {
            //Description processing : BBCode parsing
            $bbCode = new bbCodeObject();
            $description = $bbCode->convertToDisplay(array('text' => $fetch['description'], 'idEvenement' => $idEvenement));
            $description = empty($description) ? "" : "<div itemprop='description' class='desc'>" . $description . "</div>";
        }
        //User
        $idUtilisateur = $fetch['idUtilisateur'];
        $utilisateur = "<a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $idUtilisateur, 'archiIdEvenementGroupeAdresseOrigine' => $idEvenementGroupeAdresse)) . "'>" . $fetch['prenomUtilisateur'] . " " . $fetch['nomUtilisateur'] . "</a>";
        //Event type
        $urlTypeEvenement = $this->creerUrl('', 'evenementListe', array('selection' => 'typeEvenement', 'id' => $fetch['idTypeEvenement']));
        $nomTypeEvenement = $fetch['nomTypeEvenement'];
        $lienTypeEvenement = "<a href={$urlTypeEvenement}>{$nomTypeEvenement}</a>";
        //Structure type
        $urlTypeStructure = $this->creerUrl('', 'listeStructure', array('idTypeStructure' => $fetch['idTypeStructure']));
        $nomTypeStructure = $fetch['nomTypeStructure'];
        $typeStructure = "<a href=\"{$urlTypeStructure}\">{$nomTypeStructure}</a> ";
        //Source
        $source = "";
        if (isset($fetch['nomSource']) && $fetch['nomSource'] != '') {
            $source = "Source : <a href='" . $this->creerUrl('', 'listeAdressesFromSource', array('source' => $fetch['idSource'], 'submit' => 'Rechercher')) . "' onmouseover=\"document.getElementById('calqueDescriptionSource').style.top=(getScrollHeight()+150)+'px';\n\t\t\t\t\t\t\tdocument.getElementById('calqueDescriptionSource').style.display='block';\n\t\t\t\t\t\t\tdocument.getElementById('iframe').src='" . $this->creerUrl('', 'descriptionSource', array('archiIdSource' => $fetch['idSource'], 'noHeaderNoFooter' => 1)) . "';\"\n\t\t\t\t\t\t\t\t\t>" . stripslashes($fetch['nomSource']) . "\n\t\t\t\t\t</a><br>";
        }
        //Info used for menu display
        $cityId = $fetch['idVille'];
        $isModerateur = true;
        $isAdmin = true;
        $u = new archiUtilisateur();
        $userId = $authentification->getIdUtilisateur();
        $urlProfilPic = $u->getImageAvatar(array('idUtilisateur' => $idUtilisateur));
        $isModerateur = $u->isModerateurFromVille($userId, $cityId, 'idVille');
        $isAdmin = $u->getIdProfil($userId) == '4';
        $urlMenuAction = array('ajouterImage' => $this->creerUrl('', 'ajoutImageEvenement', array('archiIdEvenement' => $idEvenement)), 'modifierImage' => $this->creerUrl('', 'modifierImageEvenement', array('archiIdEvenement' => $idEvenement)), 'modifierEvenement' => $this->creerUrl('', 'modifierEvenement', array('archiIdEvenement' => $idEvenement, 'archiIdEvenementGroupeAdresse' => $fetch['idEvenementGroupeAdresse'], 'archiIdAdresse' => $fetch['idAdresse'])), 'supprimerEvenement' => $this->creerUrl('supprimerEvenement', '', array('archiIdEvenement' => $idEvenement)), 'urlImporterImage' => "#", 'onClickImporterImage' => "document.getElementById('formulaireEvenement').action='" . $this->creerUrl('deplacerImagesSelectionnees', 'evenement', array('idEvenement' => $idEvenement)) . "&deplacerVersIdEvenement=" . $res->idEvenement . "';document.getElementById('actionFormulaireEvenement').value='deplacerImages';if(confirm('Voulez-vous vraiment déplacer ces images ?')){document.getElementById('formulaireEvenement').submit();}", 'onClickSupprimerImage' => "document.getElementById('formulaireEvenement').action='" . $this->creerUrl('supprimerImagesSelectionnees', 'evenement', array('idEvenement' => $idEvenement)) . "';document.getElementById('actionFormulaireEvenement').value='supprimerImages';if(confirm('Voulez-vous vraiment supprimer ces images ?')){document.getElementById('formulaireEvenement').submit();}", 'lierAdresse' => $this->creerUrl('', 'afficheFormulaireEvenementAdresseLiee', array('idEvenement' => $idEvenement)), 'versAdresse' => $this->creerUrl('deplacerEvenementVersNouveauGA', 'evenement', array('idEvenement' => $idEvenement)), 'plusCreer' => $this->creerUrl('deplacerEvenementVersNouveauGA', 'evenement', array('idEvenement' => $idEvenement)));
        $numeroArchive = "";
        if ($fetch['numeroArchive'] != '') {
            // modif fabien du 15/04/2011 suite mail directrice Archives de Strasbourg Mme Perry Laurence
            $numeroArchive = "Cote Archives de Strasbourg : " . $fetch['numeroArchive'] . "";
        }
        // si on est en mode de deplacement d'image
        // ou de selection de titre
        // on rajoute le formulaire sur la page
        if ($authentification->estConnecte() && (isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1' || isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1')) {
            $arrayFormEvenement = array('formEvenement', array());
        }
        /*
         * Template filling
         */
        //Unset some stuff for historic
        if ($params['type'] == 'historique') {
            unset($listeCommentaires);
            unset($formulaireCommentaire);
            unset($lienHistoriqueEvenementCourant);
            unset($labelHistoriqueEvenement);
        }
        $evenementData = array('titre' => stripslashes($fetch['titre']), 'infoTitre' => $utilisateur . " a " . $txtEnvoi . " un événement", 'txtEnvoi' => $txtEnvoi . " le", 'utilisateur' => $fetch['prenomUtilisateur'] . ' ' . $fetch['nomUtilisateur'], 'urlProfilPic' => $urlProfilPic, 'dateEnvoi' => $fetch['dateCreationEvenement'], 'lienHistoriqueEvenementCourant' => $lienHistoriqueEvenementCourant, 'labelLienHistorique' => $labelHistoriqueEvenement, 'dates' => $dateTxt, 'source' => $source, 'labelStructure' => "Structure  : ", 'typeStructure' => $typeStructure, 'labelTypeEvenement' => 'Type d\'Événement : ', 'urlTypeEvenement' => $this->creerUrl('', 'evenementListe', array('selection' => 'typeEvenement', 'id' => $fetch['idTypeEvenement'])), 'lienTypeEvenement' => $lienTypeEvenement, 'typeEvenement' => $fetch['nomTypeEvenement'], 'numeroArchive' => $numeroArchive, 'description' => $description, 'imagesLiees' => $imagesHTML, 'evenementsParents' => '', 'listeAdressesLiees' => $adressesLieesHTML, 'evenementsLiesPersonne' => $linkedEventsHTML, 'idEvenement' => $idEvenement, 'listeCommentaireEvenement' => $listeCommentaires, 'formulaireCommentaireEvenement' => $formulaireCommentaire);
        //}//End while($fetch = mysql_fetch_assoc($result))
        $evenements[] = $evenementData;
        /*
         * Useless now, but might be need futher if
         *	this function is reused and should not display menu action
         */
        $afficherMenu = $authentification->estConnecte();
        $allowSuppressImage = false;
        //Set to false now, image suppression isn't implemented
        if ($params['type'] == 'historique') {
            $afficherMenu = false;
        }
        $menuArray = array();
        if ($afficherMenu) {
            $menuArray[] = array('evenement.menuAction', array());
            $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Ajouter', 'urlAction' => $urlMenuAction['ajouterImage'], 'actionTarget' => 'Image'));
            $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Modifier', 'urlAction' => $urlMenuAction['modifierImage'], 'actionTarget' => 'Image'));
            $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => $urlMenuAction['modifierEvenement'], 'actionTarget' => 'Événement'));
        }
        if ($isModerateur || $isAdmin) {
            $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Supprimer', 'urlAction' => '#', 'actionTarget' => 'Événement'));
            $menuArray[] = array('evenement.menuAction.rowName.confirmMessage', array('message' => 'Voulez vous vraiment supprimer cet événement ?', 'url' => $urlMenuAction['supprimerEvenement']));
            if ($isAdmin && $allowSuppressImage) {
                $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => '#', 'actionTarget' => 'Image'));
                $menuArray[] = array('evenement.menuAction.rowName.secondAction.confirmMessage', array('message' => 'Voulez vous vraiment supprimer cette image ?', 'url' => $urlMenuAction['onClickSupprimerImage']));
            }
            if ($isAdmin) {
                $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Lier', 'urlAction' => $urlMenuAction['lierAdresse'], 'actionTarget' => 'Adresses'));
                $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Déplacer', 'urlAction' => $urlMenuAction['versAdresse'], 'actionTarget' => 'Vers adresse'));
                $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => $urlMenuAction['plusCreer'], 'actionTarget' => '+Créer'));
            }
        }
        return array('evenementData' => $evenementData, 'menuArray' => $menuArray, 'arrayPersonne' => $arrayPersonne, 'arrayFormEvent' => $arrayFormEvenement, 'arrayCourantArchi' => $arrayCourantArchi);
    }
 public function getGoogleMapIframe($params = array())
 {
     $html = '<link href="css/default.css" rel="stylesheet" type="text/css" />
 ';
     if (isset($this->variablesGet['longitude']) && $this->variablesGet['longitude'] != '' && isset($this->variablesGet['latitude']) && $this->variablesGet['latitude'] != '') {
         $ajax = new ajaxObject();
         $html .= $ajax->getAjaxFunctions();
         $longitude = $this->variablesGet['longitude'];
         $latitude = $this->variablesGet['latitude'];
         $listeCoords = array();
         // si archiIdAdresse est précisé , on remplace les coordonnées par celle de l'adresse ( car celle envoyée sont celle de la premiere du groupe d'adresse)
         $isCoordonneesAdresseCouranteValide = true;
         $isCoordonneesGroupeAdresseOK = false;
         if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
             // s'il existe des coordonnées pour le groupe d'adresse dans la table _adresseEvenement, on prend celles ci
             $reqCoordonneesGroupeAdresse = "SELECT longitudeGroupeAdresse,latitudeGroupeAdresse FROM _adresseEvenement WHERE idAdresse='" . $this->variablesGet['archiIdAdresse'] . "' AND idEvenement='" . $this->variablesGet['archiIdEvenementGroupeAdresse'] . "' AND longitudeGroupeAdresse<>'0' AND latitudeGroupeAdresse<>'0'";
             $resCoordonneesGroupeAdresse = $this->connexionBdd->requete($reqCoordonneesGroupeAdresse);
             if (mysql_num_rows($resCoordonneesGroupeAdresse) > 0) {
                 $fetchCoordonneesGroupeAdresse = mysql_fetch_assoc($resCoordonneesGroupeAdresse);
                 $longitude = $fetchCoordonneesGroupeAdresse['longitudeGroupeAdresse'];
                 $latitude = $fetchCoordonneesGroupeAdresse['latitudeGroupeAdresse'];
                 $isCoordonneesGroupeAdresseOK = true;
             }
         }
         if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && $this->variablesGet['archiIdAdresse'] != '0' && !$isCoordonneesGroupeAdresseOK) {
             $reqCoordonnees = "\n                    SELECT ha1.longitude as longitude, ha1.latitude as latitude\n                    FROM historiqueAdresse ha2, historiqueAdresse ha1\n                    WHERE ha2.idAdresse = ha1.idAdresse\n                    AND ha1.idAdresse = '" . $this->variablesGet['archiIdAdresse'] . "'\n                    GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse\n                    HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n                ";
             $resCoordonnees = $this->connexionBdd->requete($reqCoordonnees);
             if (mysql_num_rows($resCoordonnees) == 1) {
                 $fetchCoordonnees = mysql_fetch_assoc($resCoordonnees);
                 if ($fetchCoordonnees['longitude'] != '' && $fetchCoordonnees['latitude'] != '' && $fetchCoordonnees['longitude'] != '0' && $fetchCoordonnees['latitude'] != '0') {
                     $longitude = $fetchCoordonnees['longitude'];
                     $latitude = $fetchCoordonnees['latitude'];
                 } else {
                     $isCoordonneesAdresseCouranteValide = false;
                 }
             }
         }
         $affichageCoordonneesVille = false;
         if ($longitude < 0 || $latitude < 0 || $longitude == 0 || $latitude == 0 || !$isCoordonneesAdresseCouranteValide) {
             // on detection une longitude ou latitude negative : il doit y avoir eu une erreur de detection des parametres
             // on va centrer la carte sur la ville
             if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && $this->variablesGet['archiIdAdresse'] != '0') {
                 // recuperation de l'idville de l'adresse courante
                 $idVille = $this->getIdVilleFrom($this->variablesGet['archiIdAdresse'], 'idAdresse');
                 // coordonnees de la ville
                 $reqCoordonneesVille = "SELECT longitude,latitude,nom FROM ville WHERE idVille = '" . $idVille . "'";
                 $resCoordonneesVille = $this->connexionBdd->requete($reqCoordonneesVille);
                 $fetchCoordonneesVille = mysql_fetch_assoc($resCoordonneesVille);
                 $longitude = $fetchCoordonneesVille['longitude'];
                 $latitude = $fetchCoordonneesVille['latitude'];
                 $affichageCoordonneesVille = true;
             }
         }
         // rayon en metres
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             // dans le cas de l'affichage de la popup sur le detail de l'adresse on prend un rayon plus grand, donc plus d'adresses affichées
             $rayon = 200;
         } else {
             $rayon = 200;
         }
         $arrayGoogleMapCoord = $this->getArrayGoogleMapConfigCoordonneesFromCenter(array('longitude' => $longitude, 'latitude' => $latitude, 'rayon' => $rayon));
         $listeCoords = $arrayGoogleMapCoord['arrayConfigCoordonnees'];
         // verification des droits
         $isAuthorizedToDrag = false;
         $widthGoogleMapModePopup = 650;
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
                 $idAdresseCentree = $this->variablesGet['archiIdAdresse'];
                 $idEvenementGroupeAdresseCentre = $this->variablesGet['archiIdEvenementGroupeAdresse'];
                 $utilisateur = new archiUtilisateur();
                 $authentification = new archiAuthentification();
                 // verification des droits
                 if ($utilisateur->isAuthorized('googlemap_change_coordonnees', $authentification->getIdUtilisateur())) {
                     if ($utilisateur->getIdProfil($authentification->getIdUtilisateur()) == 4 || $utilisateur->getIdProfil($authentification->getIdUtilisateur()) == 3 && $utilisateur->isModerateurFromVille($authentification->getIdUtilisateur(), $idAdresseCentree, 'idAdresse')) {
                         $isAuthorizedToDrag = true;
                         $widthGoogleMapModePopup = 650;
                     }
                 }
             }
         }
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             // affichage pour la popup sur le detail d'une adresse
             if ($affichageCoordonneesVille) {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => $widthGoogleMapModePopup, 'height' => 500, 'zoom' => 11, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => false, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             } else {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => $widthGoogleMapModePopup, 'height' => 500, 'zoom' => 17, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => false, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             }
         } else {
             if ($affichageCoordonneesVille) {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 275, 'height' => 275, 'zoom' => 10, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => true, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             } else {
                 // affichage par defaut , s'affichage en haut de la page detail d'une adresse , a gauche de l'encars
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 275, 'height' => 275, 'zoom' => 16, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => true, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
                 //,'divStyle'=>'margin-top:-17px;'
             }
         }
         $html .= $gm->getJsFunctions();
         //$html.="<script  >".$gm->setFunctionAddPointsCallableFromChild()."</script>";
         $html .= $gm->getMap(array('listeCoordonnees' => $listeCoords, 'urlImageIcon' => $this->getUrlImage() . "pointGM.png", 'pathImageIcon' => $this->getCheminPhysique() . "images/pointGM.png"));
         // on ajoute le markeur central a la main
         $html .= "<script  >\n                var iconHome = new GIcon();\n                iconHome.image = \"" . $this->getUrlImage() . "placeMarker.png\";\n                //iconHome.shadow = \"https://labs.google.com/ridefinder/images/mm_20_shadow.png\";\n                iconHome.iconSize = new GSize(19, 32);\n                iconHome.shadowSize = new GSize(22, 20);\n                iconHome.iconAnchor = new GPoint(5, 26);\n                iconHome.infoWindowAnchor = new GPoint(5, 1);\n\n                //var iconMarkerHome = new GIcon(iconHome);\n                ";
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "markerHome = new GMarker(new GLatLng(" . $latitude . "," . $longitude . "),{icon:iconHome, draggable: true});";
         } else {
             $html .= "markerHome = new GMarker(new GLatLng(" . $latitude . "," . $longitude . "),{icon:iconHome});";
         }
         $html .= "map.addOverlay(markerHome);";
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "markerHome.enableDragging();";
         }
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "GEvent.addListener(markerHome,'drag',function(){parent.window.document.getElementById('latitudeUser').value=markerHome.getPoint().lat();parent.window.document.getElementById('longitudeUser').value=markerHome.getPoint().lng();parent.window.document.getElementById('validationCoordonnees').style.display='';});\n                ";
             $html .= "GEvent.addListener(\n                            map,\n                            'dragend',\n                            function(){appelAjaxReturnJs('" . html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noRefresh' => 1, 'noHTMLHeaderFooter' => 1, 'noHeaderNoFooter' => 1, 'latitudeHome' => $latitude, 'longitudeHome' => $longitude))) . "&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}\n                            );";
         } else {
             $html .= "GEvent.addListener(\n                            map,\n                            'dragend',\n                            function(){appelAjaxReturnJs('" . html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noHTMLHeaderFooter' => 1, 'noHeaderNoFooter' => 1, 'latitudeHome' => $latitude, 'longitudeHome' => $longitude))) . "&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}\n                            );";
             //$html.="GEvent.addListener(map,'dragend',function(){document.getElementById('iFrameMajCenter').src='".$this->creerUrl('','majGoogleMapNewCenter',array('noHeaderNoFooter'=>1,'latitudeHome'=>$latitude,'longitudeHome'=>$longitude))."&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat();});";
         }
         //$html.=$gm->setFunctionAddPointsCallableFromChild(array());
         $html .= "</script>";
         //$html.="<div id='jsMiseAJourCenter' ><iframe id='iFrameMajCenter' src=''></iframe></div>";//style='position:absolute;left:0px;top:0px;'
     }
     return $html;
 }
 /**
  * Fonction supprimant physiquement et dans la bdd une image donnée
  *
  * @param int   $idImage ID de l'image
  * @param array $params  Paramètres
  *
  * @return void
  * */
 public function deleteImage($idImage = 0, $params = array())
 {
     $a = new archiAdresse();
     $erreurObj = new objetErreur();
     // recuperation du groupe d'adresse de l'image pour l'affichage au retour
     if ($idPerson = archiPersonne::isPerson($this->getIdEvenementGroupeAdresseFromImage(array("idImage" => $idImage, "type" => "personne")))) {
         $type = "personne";
     } else {
         $type = null;
     }
     $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImage, "type" => $type));
     $u = new archiUtilisateur();
     $authentification = new archiAuthentification();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $d = new droitsObject();
     if ($d->isAuthorized('image_supprimer', $idProfilUtilisateur) && ($u->isModerateurFromVille($authentification->getIdUtilisateur(), $idImage, 'idImage') || $idProfilUtilisateur == '4')) {
         $reqInfosImage = "\n                            SELECT idHistoriqueImage ,  idImage ,  dateUpload\n                            FROM historiqueImage\n                            WHERE idImage = '" . $idImage . "'\n            ";
         $resInfosImage = $this->connexionBdd->requete($reqInfosImage);
         while ($fetchInfosImage = mysql_fetch_assoc($resInfosImage)) {
             if (unlink($this->getCheminPhysiqueImage("originaux") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." originale... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " originale.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("mini") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." mini... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " mini.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("moyen") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." moyen... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " moyen.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("grand") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." grand... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " grand.<br>");
             }
             $reqDeleteHistorique = "DELETE FROM historiqueImage WHERE idHistoriqueImage = '" . $fetchInfosImage['idHistoriqueImage'] . "'";
             $resDeleteHistorique = $this->connexionBdd->requete($reqDeleteHistorique);
             // suppression de l'image dans la table des fichiers uploades
             $reqDeleteUpload = "DELETE FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetchInfosImage['idHistoriqueImage'] . "'";
             $resDeleteUpload = $this->connexionBdd->requete($reqDeleteUpload);
             //echo "image ".$fetchInfosImage['idHistoriqueImage']." supprimée. <br>";
         }
         $reqDeleteImageAdresseImage = "DELETE FROM _adresseImage WHERE idImage = '" . $idImage . "'";
         $resDeteleImageAdresseImage = $this->connexionBdd->requete($reqDeleteImageAdresseImage);
         $reqDeleteImageEvenementImage = "DELETE FROM _evenementImage WHERE idImage ='" . $idImage . "'";
         $resDeleteImageEvenementImage = $this->connexionBdd->requete($reqDeleteImageEvenementImage);
     }
     if ($idPerson) {
         header("Location: " . $this->creerUrl("", "evenementListe", array("selection" => "personne", "id" => $idPerson), false, false));
     }
     if ($erreurObj->getNbErreurs() > 0) {
         echo $erreurObj->afficher();
     } else {
         echo "image supprimée.<br>";
     }
     if (isset($params['retourSurGroupeAdresse']) && $params['retourSurGroupeAdresse'] == true) {
         echo $a->afficherDetail(0, $idEvenementGroupeAdresse);
     }
 }