public function supprimer($idEvenement, $idHistoriqueEvenement = '')
 {
     $html = '';
     $idEvenementGroupeAdresse = 0;
     if ($idHistoriqueEvenement != '') {
         $adresse = new archiAdresse();
         $reqRecupIdEvenementGroupeAdresse = "\n\t\t\t\t\tSELECT DISTINCT ee.idEvenement as idEvenementGroupeAdresse\n\t\t\t\t\tFROM evenements he\n\t\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = he.idEvenement\n\t\t\t\t\tWHERE idEvenement ='" . $idHistoriqueEvenement . "'";
         //debug($reqRecupIdEvenementGroupeAdresse);
         $resRecupIdEvenementGroupeAdresse = $this->connexionBdd->requete($reqRecupIdEvenementGroupeAdresse);
         $fetchRecupIdEvenementGroupeAdresse = mysql_fetch_assoc($resRecupIdEvenementGroupeAdresse);
         $idEvenementGroupeAdresse = $fetchRecupIdEvenementGroupeAdresse['idEvenementGroupeAdresse'];
         // recup d'idAdresse pour l'affichage du detail de l'adresse a la fin de la suppression
         $reqSuppHistorique = "DELETE FROM evenements WHERE idEvenement = '" . idEvenement . "'";
         //debug($reqSuppHistorique);
         $resSupprHistorique = $this->connexionBdd->requete($reqSuppHistorique);
         // maj des position au cas ou , meme si dans ce cas en principe ce n'est pas la peine (a moins que ce ne soit le dernier historique du groupe d'adresse
         $this->majPositionsEvenements(array('idEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'refreshAfterDelete' => true));
         $idAdresse = $adresse->getIdAdresseFromIdEvenementGroupeAdresse($idEvenementGroupeAdresse);
     } else {
         $image = new archiImage();
         $personne = new archiPersonne();
         $courant = new archiCourantArchitectural();
         $adresse = new archiAdresse();
         // suppression d'un evenement
         // verification que l'evenement est le seul ou pas lié au groupe d'adresse
         $idEvenementGroupeAdresse = $this->getParent($idEvenement);
         foreach ($_SESSION['lastVisited'] as $key => $lastVisit) {
             if ($lastVisit['idEvenementGroupeAdresse'] == $idEvenementGroupeAdresse) {
                 unset($_SESSION['lastVisited'][$key]);
             }
         }
         //debug($idEvenementGroupeAdresse);
         // on verifie que l'evenement n'a qu'un seul parent
         $reqVerifParent = "\n\t\t\t\t\tSELECT idEvenement\n\t\t\t\t\tFROM _evenementEvenement\n\t\t\t\t\tWHERE idEvenementAssocie = '" . $idEvenement . "'\n\t\t\t\t\t\t\t";
         //debug($reqVerifParent);
         $resVerifParent = $this->connexionBdd->requete($reqVerifParent);
         if (mysql_num_rows($resVerifParent) == 1) {
             // on verifie que l'evenement parent est bien un groupe d'adresse ( pour le jour ou on ajoutera les sous sous evenements)
             if ($this->isEvenementGroupeAdresse($idEvenementGroupeAdresse)) {
                 // comptage du nombre d'elements du groupe d'adresse
                 $req = "select idEvenementAssocie from _evenementEvenement where idEvenement = '" . $idEvenementGroupeAdresse . "'";
                 //debug($req);
                 $res = $this->connexionBdd->requete($req);
                 if (mysql_num_rows($res) == 1) {
                     // un seul element a supprimer , on supprime aussi le groupe d'adresse dans un deuxieme temps , voir plus bas, et donc les commentaires lies a ce groupe d'adresse
                     // evenement images
                     $image->deleteImagesFromIdEvenement($idEvenement);
                     // personnes
                     $personne->deleteLiaisonsPersonneFromIdEvenement($idEvenement);
                     // courant architectural
                     $courant->deleteLiaisonsCourantFromIdEvenement($idEvenement);
                     // commentaires
                     $adresse->deleteCommentairesFromIdEvenement($idEvenementGroupeAdresse);
                     // adresses liees à l'evenement , on supprime la liaison
                     $this->deleteLiaisonsAdressesLieesSurEvenement($idEvenement);
                     // quand il y aura des sous sous evenements , il faudra aussi les supprimer
                     // ...
                     $reqDeleteEvenement = "DELETE FROM evenements WHERE idEvenement = '" . $idEvenement . "'";
                     //debug($reqDeleteEvenement);
                     $resDeleteEvenement = $this->connexionBdd->requete($reqDeleteEvenement);
                     $reqDeleteEvenementGroupeEvenement = "DELETE FROM evenements WHERE idEvenement = ( SELECT idEvenement FROM _evenementEvenement WHERE idEvenementAssocie = '" . $idEvenement . "' )";
                     $reqDeleteEvenementEvenement = "DELETE FROM _evenementEvenement WHERE idEvenementAssocie = '" . $idEvenement . "'";
                     //debug($reqDeleteEvenementEvenement);
                     $resDeleteEvenementEvenement = $this->connexionBdd->requete($reqDeleteEvenementEvenement);
                     // maj des position
                     $this->majPositionsEvenements(array('idEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'refreshAfterDelete' => true));
                     // dans ce cas la fonction va se charger de supprimer les positions des evenements du groupe d'adresse supprimé
                 } elseif (mysql_num_rows($res) > 1) {
                     $image = new archiImage();
                     $personne = new archiPersonne();
                     $courant = new archiCourantArchitectural();
                     // plusieurs elements , on supprime simplement l'evenement passé en parametre de la fonction
                     // evenement images
                     $image->deleteImagesFromIdEvenement($idEvenement);
                     // personnes
                     $personne->deleteLiaisonsPersonneFromIdEvenement($idEvenement);
                     // courant architectural
                     $courant->deleteLiaisonsCourantFromIdEvenement($idEvenement);
                     // quand il y aura des sous sous evenements , il faudra aussi les supprimer
                     // ...
                     // adresses liees à l'evenement , on supprime la liaison
                     $this->deleteLiaisonsAdressesLieesSurEvenement($idEvenement);
                     $reqDeleteEvenementEvenement = "DELETE FROM _evenementEvenement WHERE idEvenementAssocie = '" . $idEvenement . "'";
                     //debug($reqDeleteEvenementEvenement);
                     $resDeleteEvenementEvenement = $this->connexionBdd->requete($reqDeleteEvenementEvenement);
                     //supression de l'evenement
                     $reqDeleteEvenement = "DELETE FROM evenements WHERE idEvenement = '" . $idEvenement . "'";
                     //debug($reqDeleteEvenement);
                     $resDeleteEvenement = $this->connexionBdd->requete($reqDeleteEvenement);
                     $this->majPositionsEvenements(array('idEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'refreshAfterDelete' => true));
                     // dans ce cas la fonction va mettre a jour les positions des evenements pour que ceux ci se suivent, et supprimera la liaison vers l'evenement qui n'existe plus
                 } elseif (mysql_num_rows($res) == 0) {
                     // probleme , il n'y a pas d'evenements fils correspondant a l'idEvenementGroupeAdresse
                     echo "l'événement n'existe plus. Veuillez contacter l'administrateur.<br>";
                 }
             } else {
                 echo "L'événement parent n'est pas de type groupe d'adresse : veuillez contactez l'administrateur.<br>";
             }
         } elseif (mysql_num_rows($resVerifParent) > 1) {
             echo "Erreur : l'evenement appartient a plusieurs groupes d'adresses : contactez l'administrateur<br>";
         } else {
             echo "Erreur : l'evenement n'appartient a aucun groupe d'adresse : contactez l'administrateur<br>";
         }
         // pour l'affichage de retour : on recupere l'adresse
         $idAdresse = $adresse->getIdAdresseFromIdEvenementGroupeAdresse($idEvenementGroupeAdresse);
         // attention si l'evenement groupe adresse a ete supprimé precedemment
         $nbEvenementLiesAuGroupeAdresse = $this->getNbEvenementsFromGroupeAdresse($idEvenementGroupeAdresse);
         if ($nbEvenementLiesAuGroupeAdresse == 0 && $idEvenementGroupeAdresse != '' && $idEvenementGroupeAdresse != '0') {
             // s'il n'y a aucun evenement lié au groupe d'adresses , on peut supprimer le groupe d'adresse et les liaisons vers celui ci
             $reqDeleteGroupeAdresseHistorique = "DELETE FROM evenements WHERE idEvenement = '" . $idEvenementGroupeAdresse . "'";
             //debug($reqDeleteGroupeAdresseHistorique);
             $resDeleteGroupeAdresseHistorique = $this->connexionBdd->requete($reqDeleteGroupeAdresseHistorique);
             $reqDeleteAdresseGroupeAdresse = "DELETE FROM _adresseEvenement WHERE idEvenement = '" . $idEvenementGroupeAdresse . "'";
             //debug($reqDeleteAdresseGroupeAdresse);
             $resDeleteAdresseGroupeAdresse = $this->connexionBdd->requete($reqDeleteAdresseGroupeAdresse);
             // on supprime aussi les liaisons vers le groupe d'adresse dans les adresses liés
             $reqDeleteLiaisonsAdressesLiees = "DELETE FROM _evenementAdresseLiee WHERE idEvenementGroupeAdresse='" . $idEvenementGroupeAdresse . "'";
             //debug($reqDeleteLiaisonsAdressesLiees);
             $resDeleteAdresseGroupeAdresse = $this->connexionBdd->requete($reqDeleteLiaisonsAdressesLiees);
             // supprimons aussi les liaisons vueSur et prisDepuis sur le groupe d'adresse
             $reqDeleteVueSurPrisDepuis = "DELETE FROM _adresseImage WHERE idEvenementGroupeAdresse = '" . $idEvenementGroupeAdresse . "' AND (vueSur='1' OR prisDepuis='1')";
             //debug($reqDeleteVueSurPrisDepuis);
             $resDeleteVueSurPrisDepuis = $this->connexionBdd->requete($reqDeleteVueSurPrisDepuis);
             // suppression des liaisons entre evenement et evenement groupe d'adresse
             $reqDeleteEvenementGAEvenementAssocie = "DELETE FROM _evenementEvenement WHERE idEvenement='" . $idEvenementGroupeAdresse . "'";
             //debug($reqDeleteEvenementGAEvenementAssocie);
             $resDeleteEvenementGAEvenementAssocie = $this->connexionBdd->requete($reqDeleteEvenementGAEvenementAssocie);
             $idEvenementGroupeAdresse = 0;
         }
     }
     if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
         header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson), false, false));
     }
     if ($idEvenementGroupeAdresse == 0) {
         header("Location: index.php");
     } else {
         header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse), false, false));
     }
 }