public function getUrlImageFromAdresse($idAdresse = 0, $format = 'mini', $params = array())
 {
     $url = "";
     $dateUpload = "";
     $idHistoriqueImage = "";
     $string = new stringObject();
     switch ($format) {
         case 'mini':
             $chemin = $this->getUrlImage("mini");
             break;
         case 'moyen':
             $chemin = $this->getUrlImage("moyen");
             break;
         case 'grand':
             $chemin = $this->getUrlImage("grand");
             break;
     }
     // requete desactivée (limit 0) : on n'affiche pas les images reliee a l'adresse par la table _adresseimage
     $queryAdresse = "\n\t\t\t\tSELECT hi.idHistoriqueImage as idHistoriqueImage , hi.idImage as idImage, hi.nom as nom , hi.dateUpload as dateUpload , hi.dateCliche as dateCliche\n\t\t\t\tFROM historiqueImage hi2, historiqueImage hi\n\t\t\t\tRIGHT JOIN _adresseImage ai ON ai.idImage = hi.idImage\n\t\t\t\tWHERE ai.idAdresse = '" . $idAdresse . "'\n\t\t\t\t\t\tAND hi2.idImage = hi.idImage\n\t\t\t\t\t\tGROUP BY hi.idImage, hi.idHistoriqueImage\n\t\t\t\t\t\tHAVING hi.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\t\t\t\t\t\tLIMIT 0\n\t\t\t\t\t\t";
     $resAdresse = $this->connexionBdd->requete($queryAdresse);
     if (mysql_num_rows($resAdresse) == 1) {
         // toujours 0
         $fetchAdresse = mysql_fetch_assoc($resAdresse);
         $url = $chemin . $fetchAdresse['dateUpload'] . '/' . $fetchAdresse['idHistoriqueImage'] . ".jpg";
         $dateUpload = $fetchAdresse['dateUpload'];
         $idHistoriqueImage = $fetchAdresse['idHistoriqueImage'];
     } else {
         // on recherche une image appartenant a un evenement de l'adresse
         // recherche des evenements de l'adresse:
         $arrayListeEvenementsGroupeAdresse = array();
         $arrayImagePrincipale = array();
         $affichageListeAdresseFromSourceTrouvee = false;
         // l'affichage contextuel sur l'ecran des sources est desactive...
         /*if(isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage']=='listeAdressesFromSource' && isset($this->variablesGet['source']) && $this->variablesGet['source']!='')
         			 {
         			$reqImagesSource = "
         			SELECT hi1.idHistoriqueImage as idHistoriqueImage, hi1.idImage as idImage, hi1.dateUpload as dateUpload
         			FROM historiqueImage hi2, historiqueImage hi1
         			LEFT JOIN _evenementImage ei ON ei.idImage = hi1.idImage
         			LEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = ei.idEvenement
         			WHERE hi2.idImage = hi1.idImage
         			AND hi1.idSource='".$this->variablesGet['source']."'
         			AND ee.idEvenement='".$params['idEvenementGroupeAdresse']."'
         			GROUP BY hi1.idImage , hi1.idHistoriqueImage
         			HAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)
         			LIMIT 1
         			";
         
         			$resImagesSource = $this->connexionBdd->requete($reqImagesSource);
         
         			if(mysql_num_rows($resImagesSource)==1)
         			{
         			$fetchImagesSource = mysql_fetch_assoc($resImagesSource);
         			$dateUpload = $fetchImagesSource['dateUpload'];
         			$idHistoriqueImage = $fetchImagesSource['idHistoriqueImage'];
         			$url = $chemin.$dateUpload."/".$idHistoriqueImage.".jpg";
         			$affichageListeAdresseFromSourceTrouvee = true;
         			}
         
         			}
         			*/
         $affichageListeAdressesPersonneImageTrouvee = false;
         if (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] == 'evenementListe' && isset($this->variablesGet['selection']) && $this->variablesGet['selection'] == 'personne' && isset($this->variablesGet['id']) && $this->variablesGet['id'] != '' && isset($params['idEvenementGroupeAdresse']) && $params['idEvenementGroupeAdresse'] != '' && !$affichageListeAdresseFromSourceTrouvee) {
             // si on est sur l'affichage de la liste des adresses d'un architecte par exemple , on va chercher les photos sur les evenements concernant l'architecte
             // verifions s'il y a au moins une photo sur l'evenement concerné
             // ajout 29/07/2010
             // si l'image principale se situe sur l'evenement concerné , on affiche l'image principale , sinon une image de l'evenement
             $image = new archiImage();
             $arrayImagePrincipale = $image->getArrayInfosImagePrincipaleFromIdGroupeAdresse(array('idEvenementGroupeAdresse' => $params['idEvenementGroupeAdresse'], 'format' => $format));
             if ($arrayImagePrincipale['trouve']) {
                 $affichageListeAdressesPersonneImageTrouvee = true;
                 $dateUpload = $arrayImagePrincipale['dateUpload'];
                 $idHistoriqueImage = $arrayImagePrincipale['idHistoriqueImage'];
                 $url = $chemin . $dateUpload . "/" . $idHistoriqueImage . ".jpg";
             } else {
                 $reqPersonneEvenement = "\n\t\t\t\t\t\t\tSELECT hi1.idHistoriqueImage as idHistoriqueImage, hi1.idImage as idImage, hi1.dateUpload as dateUpload\n\t\t\t\t\t\t\tFROM historiqueImage hi2,historiqueImage hi1\n\t\t\t\t\t\t\tLEFT JOIN _evenementPersonne ep ON ep.idPersonne = " . mysql_real_escape_string($this->variablesGet['id']) . "\n\t\t\t\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie=ep.idEvenement\n\t\t\t\t\t\t\t\t\tLEFT JOIN _evenementImage ei ON ei.idEvenement = ee.idEvenementAssocie\n\t\t\t\t\t\t\t\t\tWHERE ee.idEvenement=" . mysql_real_escape_string($params['idEvenementGroupeAdresse']) . "\n\t\t\t\t\t\t\t\t\t\t\tAND hi1.idImage = ei.idImage\n\t\t\t\t\t\t\t\t\t\t\tAND hi2.idImage = hi1.idImage\n\t\t\t\t\t\t\t\t\t\t\tGROUP BY hi1.idImage, hi1.idHistoriqueImage\n\t\t\t\t\t\t\t\t\t\t\tHAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\t\t\t\t\t\t\t\t\t\t\tORDER BY ei.position DESC,hi1.idHistoriqueImage ASC\n\t\t\t\t\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t\t\t\t\t\t";
                 $resPersonneEvenement = $this->connexionBdd->requete($reqPersonneEvenement);
                 if (mysql_num_rows($resPersonneEvenement) == 1) {
                     $fetchPersonneEvenement = mysql_fetch_assoc($resPersonneEvenement);
                     $affichageListeAdressesPersonneImageTrouvee = true;
                     $dateUpload = $fetchPersonneEvenement['dateUpload'];
                     $idHistoriqueImage = $fetchPersonneEvenement['idHistoriqueImage'];
                     $url = $chemin . $dateUpload . "/" . $idHistoriqueImage . ".jpg";
                 }
             }
         }
         if (isset($params['idEvenementGroupeAdresse']) && $params['idEvenementGroupeAdresse'] != '' && $params['idEvenementGroupeAdresse'] != '0' && !$affichageListeAdressesPersonneImageTrouvee && !$affichageListeAdresseFromSourceTrouvee) {
             $image = new archiImage();
             $arrayListeEvenementsGroupeAdresse[] = $params['idEvenementGroupeAdresse'];
             // si un groupe d'adresse est precisé on va d'abord regarder s'il une image principale est selectionnee
             $arrayImagePrincipale = $image->getArrayInfosImagePrincipaleFromIdGroupeAdresse(array('idEvenementGroupeAdresse' => $params['idEvenementGroupeAdresse'], 'format' => $format));
         } elseif (!$affichageListeAdressesPersonneImageTrouvee && !$affichageListeAdresseFromSourceTrouvee) {
             $queryEvenements = "SELECT idEvenement FROM _adresseEvenement WHERE idAdresse = '" . $idAdresse . "'";
             $resEvenements = $this->connexionBdd->requete($queryEvenements);
             while ($fetchEvenement = mysql_fetch_assoc($resEvenements)) {
                 $arrayListeEvenementsGroupeAdresse[] = $fetchEvenement['idEvenement'];
             }
         }
         if (isset($arrayImagePrincipale['trouve']) && $arrayImagePrincipale['trouve'] == true && !$affichageListeAdressesPersonneImageTrouvee && !$affichageListeAdresseFromSourceTrouvee) {
             // on a trouve une photo principale sur l'evenement groupe adresse
             $url = $arrayImagePrincipale['url'];
             $dateUpload = $arrayImagePrincipale['dateUpload'];
             $idHistoriqueImage = $arrayImagePrincipale['idHistoriqueImage'];
         } elseif (count($arrayListeEvenementsGroupeAdresse) > 0 && !$affichageListeAdressesPersonneImageTrouvee && !$affichageListeAdresseFromSourceTrouvee) {
             // si on est sur l'affichage des adresses concernant une personne (architecte etc ...)
             // on affiche une photo de l'evenement concerné par cette personne si il y a des photos , sinon on ne met pas ce critere dans la requete de recherche de photo
             $arrayCritereListeIdEvenementPersonne = array();
             if (isset($this->variablesGet['selection']) && $this->variablesGet['selection'] == 'personne') {
                 // voyons d'abord s'il y a des photos sur l'evenement concerné par l'architect , sinon ce n'est pas la peine d'ajouter ce critere a la recherche de la photo
                 $reqIsPhotoSurEvenement = "\n\t\t\t\t\t\t\tSELECT idEvenementAssocie as idEvenementPhotoPersonne\n\t\t\t\t\t\t\tFROM _evenementEvenement ee\n\t\t\t\t\t\t\tLEFT JOIN _evenementImage ei ON ei.idEvenement = ee.idEvenementAssocie\n\t\t\t\t\t\t\tLEFT JOIN _evenementPersonne ep ON ep.idEvenement = ee.idEvenementAssocie\n\t\t\t\t\t\t\tWHERE ee.idEvenement IN (" . implode(",", $arrayListeEvenementsGroupeAdresse) . ")\n\t\t\t\t\t\t\t\t\tAND ep.idPersonne = '" . $this->variablesGet['id'] . "'\n\t\t\t\t\t\t\t\t\t\t\tGROUP BY ei.idEvenement\n\t\t\t\t\t\t\t\t\t\t\tHAVING count(ei.idImage)>0\n\t\t\t\t\t\t\t\t\t\t\t";
                 $resIsPhotoSurEvenement = $this->connexionBdd->requete($reqIsPhotoSurEvenement);
                 if (mysql_num_rows($resIsPhotoSurEvenement) > 0) {
                     while ($fetchIsPhotoSurEvenement = mysql_fetch_assoc($resIsPhotoSurEvenement)) {
                         $arrayCritereListeIdEvenementPersonne[] = $fetchIsPhotoSurEvenement['idEvenementPhotoPersonne'];
                     }
                     $listeEvenementsAssocies = implode("','", $arrayCritereListeIdEvenementPersonne);
                 }
             }
             // si la recherche ne concerne pas un personne on fait une recherche plus generale
             if (count($arrayCritereListeIdEvenementPersonne) == 0) {
                 // on recherche les evenements du groupe d'adresses
                 $listeEvenementsGroupeAdresse = implode("','", $arrayListeEvenementsGroupeAdresse);
                 $queryEvenementAssocies = "\n\t\t\t\t\t\t\tSELECT idEvenementAssocie FROM _evenementEvenement WHERE idEvenement in ('" . $listeEvenementsGroupeAdresse . "')\n\t\t\t\t\t\t\t\t\t";
                 $resEvenementsAssocies = $this->connexionBdd->requete($queryEvenementAssocies);
                 $arrayListeEvenementsAssocies = array();
                 while ($fetchEvenementsAssocies = mysql_fetch_assoc($resEvenementsAssocies)) {
                     $arrayListeEvenementsAssocies[] = $fetchEvenementsAssocies['idEvenementAssocie'];
                 }
                 $listeEvenementsAssocies = implode("','", $arrayListeEvenementsAssocies);
             }
             $queryImage = " SELECT hi.idImage as idImage , hi.idHistoriqueImage as idHistoriqueImage, hi.dateUpload as dateUpload,ha1.numero as numero,\n\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\t\tha1.numero as numeroAdresse,\n\t\t\t\t\t\tha1.idRue,\n\t\t\t\t\t\tr.prefixe as prefixeRue,\n\t\t\t\t\t\tIF (ha1.idSousQuartier != 0, ha1.idSousQuartier, r.idSousQuartier) AS idSousQuartier,\n\t\t\t\t\t\tIF (ha1.idQuartier != 0, ha1.idQuartier, sq.idQuartier) AS idQuartier,\n\t\t\t\t\t\tIF (ha1.idVille != 0, ha1.idVille, q.idVille) AS idVille,\n\t\t\t\t\t\tIF (ha1.idPays != 0, ha1.idPays, v.idPays) AS idPays\n\n\t\t\t\t\t\tFROM historiqueImage hi2, historiqueImage hi\n\n\t\t\t\t\t\tRIGHT JOIN _evenementImage ei ON ei.idImage = hi.idImage\n\t\t\t\t\t\tRIGHT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = ei.idEvenement\n\t\t\t\t\t\tRIGHT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\t\t\t\t\t\tRIGHT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t\t\t\t\t\tRIGHT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq   ON sq.idSousQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier!='0' ,ha1.idSousQuartier ,r.idSousQuartier )\n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' ,ha1.idQuartier ,sq.idQuartier )\n\t\t\t\t\t\tLEFT JOIN ville v       ON v.idVille = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille!='0' ,ha1.idVille ,q.idVille )\n\t\t\t\t\t\tLEFT JOIN pays p        ON p.idPays = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille='0' and ha1.idPays!='0' ,ha1.idPays ,v.idPays )\n\n\t\t\t\t\t\tLEFT JOIN _adresseImage ai ON hi.idImage = ai.idImage\n\n\t\t\t\t\t\tWHERE ei.idEvenement in ('" . $listeEvenementsAssocies . "')\n\t\t\t\t\t\t\t\tAND hi2.idImage = hi.idImage\n\t\t\t\t\t\t\t\tAND ai.idImage IS NULL\n\t\t\t\t\t\t\t\tGROUP BY hi.idImage , hi.idHistoriqueImage,ha1.idAdresse,ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\tHAVING hi.idHistoriqueImage = max(hi2.idHistoriqueImage) AND ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\tORDER BY ei.position ASC,hi.idHistoriqueImage\n\t\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t\t\t";
             // on limit a 1 sinon cela peut prendre du temps
             $resImage = $this->connexionBdd->requete($queryImage);
             if (mysql_num_rows($resImage) > 0) {
                 $fetchImage = mysql_fetch_assoc($resImage);
                 //$url = $chemin.$fetchImage['dateUpload'].'/'.$fetchImage['idHistoriqueImage'].".jpg";
                 $url = 'photos-' . $string->convertStringToUrlRewrite($this->getIntituleAdresse($fetchImage)) . '-' . $fetchImage['dateUpload'] . '-' . $fetchImage['idHistoriqueImage'] . '-' . $format . '.jpg';
                 $dateUpload = $fetchImage['dateUpload'];
                 $idHistoriqueImage = $fetchImage['idHistoriqueImage'];
             }
         }
     }
     // pas d'url trouvé , on va chercher dans les images vues sur l'adresse courante
     if (!$affichageListeAdressesPersonneImageTrouvee && !$affichageListeAdresseFromSourceTrouvee && $url == '' && isset($params['idEvenementGroupeAdresse']) && $params['idEvenementGroupeAdresse'] != '') {
         $reqVueSur = "\n\t\t\t\t\tSELECT hi1.idImage as idImage , hi1.idHistoriqueImage as idHistoriqueImage, hi1.dateUpload as dateUpload,ha1.numero as numero,\n\n\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\tha1.numero as numeroAdresse,\n\t\t\t\t\tha1.idRue,\n\t\t\t\t\tr.prefixe as prefixeRue,\n\t\t\t\t\tIF (ha1.idSousQuartier != 0, ha1.idSousQuartier, r.idSousQuartier) AS idSousQuartier,\n\t\t\t\t\tIF (ha1.idQuartier != 0, ha1.idQuartier, sq.idQuartier) AS idQuartier,\n\t\t\t\t\tIF (ha1.idVille != 0, ha1.idVille, q.idVille) AS idVille,\n\t\t\t\t\tIF (ha1.idPays != 0, ha1.idPays, v.idPays) AS idPays\n\n\t\t\t\t\tFROM _adresseImage ai\n\t\t\t\t\tLEFT JOIN historiqueImage hi1 ON hi1.idImage = ai.idImage\n\t\t\t\t\tLEFT JOIN historiqueImage hi2 ON hi2.idImage = hi1.idImage\n\t\t\t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ai.idAdresse\n\t\t\t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\n\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\tLEFT JOIN sousQuartier sq   ON sq.idSousQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier!='0' ,ha1.idSousQuartier ,r.idSousQuartier )\n\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' ,ha1.idQuartier ,sq.idQuartier )\n\t\t\t\t\tLEFT JOIN ville v       ON v.idVille = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille!='0' ,ha1.idVille ,q.idVille )\n\t\t\t\t\tLEFT JOIN pays p        ON p.idPays = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille='0' and ha1.idPays!='0' ,ha1.idPays ,v.idPays )\n\n\t\t\t\t\tWHERE ai.idEvenementGroupeAdresse='" . $params['idEvenementGroupeAdresse'] . "'\n\t\t\t\t\tAND ai.vueSur='1'\n\t\t\t\t\tAND ai.idAdresse<>'' AND ai.idAdresse<>'0'\n\n\t\t\t\t\tGROUP BY hi1.idImage , hi1.idHistoriqueImage,ha1.idAdresse,ha1.idHistoriqueAdresse\n\n\n\t\t\t\t\t\t\t";
         $resVueSur = $this->connexionBdd->requete($reqVueSur);
         if (mysql_num_rows($resVueSur) > 0) {
             $fetchVueSur = mysql_fetch_assoc($resVueSur);
             $url = 'photos-' . $string->convertStringToUrlRewrite($this->getIntituleAdresse($fetchVueSur)) . '-' . $fetchVueSur['dateUpload'] . '-' . $fetchVueSur['idHistoriqueImage'] . '-' . $format . '.jpg';
             $dateUpload = $fetchVueSur['dateUpload'];
             $idHistoriqueImage = $fetchVueSur['idHistoriqueImage'];
         }
     }
     $trouveImage = true;
     if ($url == '') {
         if (isset($params['placeholder']) && $params['placeholder'] != "") {
             $url = $params['placeholder'];
             $trouveImage = false;
         } else {
             $url = $this->getUrlImage() . 'transparent.gif';
             $trouveImage = false;
         }
     }
     return array('url' => $url, 'dateUpload' => $dateUpload, 'idHistoriqueImage' => $idHistoriqueImage, 'trouve' => $trouveImage);
 }