    //<![CDATA[
	function addLoadEvent(laFonction) { 
        var oldonload = window.onload; 
        if (typeof window.onload != 'function'){ 
                window.onload = laFonction ;
        } else { 
                window.onload = function() { 
                        oldonload(); 
                        laFonction(); 
                } 
        } 
	} 
	
	addLoadEvent(loadMap);  //chargement de la carte sur le onload de la page
	
    var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon(); 
    iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
    iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);
	
	var iconYellow = new GIcon(); 
    iconYellow.image = 'http://labs.google.com/ridefinder/images/mm_20_yellow.png';
    iconYellow.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconYellow.iconSize = new GSize(12, 20);
    iconYellow.shadowSize = new GSize(22, 20);
    iconYellow.iconAnchor = new GPoint(6, 20);
    iconYellow.infoWindowAnchor = new GPoint(5, 1);
	
	var iconPeach = new GIcon(); 
    iconPeach.image = 'http://labs.google.com/ridefinder/images/mm_20_purple.png';
    iconPeach.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconPeach.iconSize = new GSize(12, 20);
    iconPeach.shadowSize = new GSize(22, 20);
    iconPeach.iconAnchor = new GPoint(6, 20);
    iconPeach.infoWindowAnchor = new GPoint(5, 1);

	var iconGreen = new GIcon(); 
    iconGreen.image = 'http://labs.google.com/ridefinder/images/mm_20_green.png';
    iconGreen.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconGreen.iconSize = new GSize(12, 20);
    iconGreen.shadowSize = new GSize(22, 20);
    iconGreen.iconAnchor = new GPoint(6, 20);
    iconGreen.infoWindowAnchor = new GPoint(5, 1);
	
	var iconPhoto = new GIcon(); 
    iconPhoto.image = 'http://www.photographierlabretagne.com/images/figure.png';
    iconPhoto.shadow = 'http://www.photographierlabretagne.com/images/figure_ombre.png';
    iconPhoto.iconSize = new GSize(32, 32);
    iconPhoto.shadowSize = new GSize(59, 32);
    iconPhoto.iconAnchor = new GPoint(6, 32);
    iconPhoto.infoWindowAnchor = new GPoint(5, 1);
	
    var customIcons = [];
    customIcons["maritime"] = iconBlue;
    customIcons["folklore"] = iconRed;
	customIcons["sport"] = iconYellow;
	customIcons["tradition"] = iconPeach;
	customIcons["divers"] = iconGreen;
	customIcons["sortie"] = iconPhoto;
	var markerGroups = { "maritime": [], "folklore": [], "sport": [], "tradition": [], "divers": [], "sortie": []};
	
	// arrays to hold copies of the markers and html used by the side_bar
	// because the function closure trick doesnt work there
	var gmarkers = [];
	var k = 0;		
	
    function toggleGroup(type) {
      for (var i = 0; i < markerGroups[type].length; i++) {
        var marker = markerGroups[type][i];
        if (marker.isHidden()) {
          marker.show();
        } else {
          marker.hide();
        }
      } 
    }
	
	function decodeStr(chaine) {
		chaine = chaine.replace(/&#150;/g, '€');		
		chaine = chaine.replace(/&#139;/g, '<');
		chaine = chaine.replace(/&#155;/g, '>');
		chaine = chaine.replace(/&#233;/g, 'é');
		return chaine;
	}

    function loadMap() {
      if (GBrowserIsCompatible()) {
          var map = new GMap2(document.getElementById("map"));

		  var request = GXmlHttp.create(); 
		  request.open("GET", "genMarkersEvt.php", true); 
		  request.onreadystatechange = function() { 
			if (request.readyState == 4) { 
			  document.getElementById('waitImage').innerHTML = "";  //on cache l'image d'attente
			  document.getElementById('map').style.visibility="visible";	//et on affiche la carte
			
			  map.addControl(new GSmallMapControl());
			  //map.addControl(new GMapTypeControl());
	
			  //carte centrée de la Bretagne
			  map.setCenter(new GLatLng(48.09275716032735, -3.087158203125), 8);
		
			  // Autorise le double click permettant de zoomer
			  map.enableDoubleClickZoom() ;
			  //Zoom progressif 
			  map.enableContinuousZoom(); 
			
			  var xmlDoc = request.responseXML; 
			  // obtain the array of markers and loop through it 
			  var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 
			  for (var i = 0; i < markers.length; i++) {
				var evt = markers[i].getAttribute("evt");
				var lieu = markers[i].getAttribute("lieu");
				var type = markers[i].getAttribute("type");
				var affiche = markers[i].getAttribute("affiche");
				var dateEvt = markers[i].getAttribute("date");
				var description = decodeStr(markers[i].getAttribute("description"));
				var details = decodeStr(markers[i].getAttribute("details"));
				var conseils = decodeStr(markers[i].getAttribute("conseils"));
				var ne_pas_louper = decodeStr(markers[i].getAttribute("ne_pas_louper"));
				var url = markers[i].getAttribute("url");
				var payant_txt = "";
				if(markers[i].getAttribute("payant") == "0") {
					payant_txt = "non";
				}else{
					if(markers[i].getAttribute("payant") == "1") { payant_txt = "oui (" + decodeStr(markers[i].getAttribute("payant_detail")) + ")"; }
					if(markers[i].getAttribute("payant") == "2") { payant_txt = "selon (" + decodeStr(markers[i].getAttribute("payant_detail")) + ")"; }
				}
				var auteur = markers[i].getAttribute("auteur");
				var auteur_email = markers[i].getAttribute("auteur_email");	
				var photos = markers[i].getAttribute("photos");
				var docs = decodeStr(markers[i].getAttribute("documents"));
				var mot_cle = markers[i].getAttribute("mot_cle");
				var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
										parseFloat(markers[i].getAttribute("longitude")));
	
				var marker = createMarker(point, evt, lieu, type, affiche, dateEvt, description, details, conseils, ne_pas_louper, url, payant_txt, photos, mot_cle, docs, auteur, auteur_email);
				map.addOverlay(marker);
			  }
			  
			//décodage des paramètres passés en url pour afficher une info-bulle particulière
			var query = window.location.search.substring(1); 
			var pairs = query.split(","); 
			for (var i=0; i<pairs.length; i++) { 
			  var pos = pairs[i].indexOf("="); 
			  var argname = pairs[i].substring(0,pos); 
			  var value = pairs[i].substring(pos+1); 
			  if (argname == "evt_id") { 
				var mymarker = parseInt(unescape(value)); 
				myclick(mymarker); 
			  } 
			} 
			
		} else{
			document.getElementById('waitImage').innerHTML = "<span class='titreBleu'><b>Veuillez patienter pendant le chargement de la carte...</b><br/><br/><img src='images/ajax-loader.gif'>";
			document.getElementById('map').style.visibility="hidden";
		}
      } 
      request.send(null); 
     }
    }

    function createMarker(point, evt, lieu, type, affiche, dateEvt, description, details, conseils, ne_pas_louper, url, payant_txt, photos, mot_cle, docs, auteur, auteur_email) {
      var marker = new GMarker(point, customIcons[type]);
      markerGroups[type].push(marker);
		var strEvt1 = "<table width='350' border=0 cellspacing=0 cellpadding=0>";
		strEvt1 += "<tr><td colspan=3 align='left'><span class='linkretour'>"+evt+"</span></td></tr>";
		if(affiche != '') {
			strEvt1 += "<tr><td width='100' valign='top'><img align='left' src='documents/affiches/evenements/"+affiche+"' border=0 class=imgInfoWindow></td>";
			strEvt1 += "<td width='5'><img src='images/blank.gif' width='5'></td>";
		}else{
			strEvt1 += "<tr>";
		}
		strEvt1 += "<td width='350' align='left' valign='top' class='descriptionBulle'><b>"+lieu+"</b><br>"+dateEvt+"<br><br>";
		strEvt1 += description;
		if(auteur != '' && auteur != 'vero') {
			strEvt1 += "<br><br>(<i>proposé par <b><a href='mailto:" + auteur_email + "'>" + auteur + "</a></b></i>)";
		}
		strEvt1 += "</td></tr>";
		//strEvt1 += "</td></tr>"; //temp
		strEvt1 += "</table>";	  
	    
		var strEvt2 = "<table width=350 border=0 cellspacing=0 cellpadding=0><td class='linkretour' align='left'>" + evt + "</td></tr></table>";
		strEvt2 += "<hr size=1 width=350 align=left><table width=300 border=0 cellspacing=3 cellpadding=0><tr>";
		if(photos != '') {
			var temp = new Array();
			temp = photos.split('#');
			var cpt = 0;
			for (var i=0; i < temp.length; i++) {
				cpt += 1;
				if(cpt > 3) {
					strEvt2 += "</tr></table><table width=300 border=0 cellspacing=3 cellpadding=0><tr>";
					cpt = 0;
				} 
				strEvt2 +=  "<td valign='middle' align='left' width='95'><a href='http://www.atraverslobjectif.com/photos/" + temp[i] + "_gde.jpg' class='highslide' onclick='return hs.expand(this);'><img src='http://www.atraverslobjectif.com/photos/" + temp[i] + ".jpg' border='0' valign='middle'></a><img src='images/espace.gif' width=5 height=1></td>";
				if(cpt < 3) {
					strEvt2 +=	"<td width='95' colspan='2'>&nbsp;</td>";
				}
			}
			strEvt2 += "</tr></table>";
			if(mot_cle != '') {
				strEvt2 += "<table width=350 border=0 cellspacing=3 cellpadding=0><tr><td align='left' colspan='5'><a class='liensrubrique' href='http://www.atraverslobjectif.com/resultats.php?motCle=" + mot_cle + "' target=\"_blank\">Voir d'autres photos</a></td></tr></table>";
			}
		}	

		var strEvt3 = "<table width=350 border=0 cellspacing=0 cellpadding=0><td class='linkretour' align='left'>" + evt + "</td></tr>";
		strEvt3 += "<tr><td><hr size=1 width=350 align=left></td></tr>";
		strEvt3 += "<tr><td align='left' class='descriptionBulle'><a class='liensrubrique'>D&eacute;tails</a> : " + details + "</td></tr>";
		strEvt3 += "<tr><td><img src='images/blank.gif' height=5></td></tr>";		
		if(ne_pas_louper != '') { 
			strEvt3 += "<tr><td align='left' class='descriptionBulle'><a class='liensrubrique'>A ne pas louper</a> : " + ne_pas_louper + "</td></tr>";
			strEvt3 += "<tr><td><img src='images/blank.gif' height=5></td></tr>";
		}		
		if(conseils != '') {
			strEvt3 += "<tr><td align='left' class='descriptionBulle'><a class='liensrubrique'>Conseils</a> : " + conseils + "</td></tr>";
			strEvt3 += "<tr><td><img src='images/blank.gif' height=5></td></tr>";
		}
		strEvt3 += "<tr><td align='left' class='descriptionBulle'><a class='liensrubrique'>Payant</a> : " + payant_txt + "</td></tr>";
		strEvt3 += "<tr><td><img src='images/blank.gif' height=5></td></tr>";
		if(docs != '') {
			strEvt3 += "<tr><td align='left' class='descriptionBulle'><a class='liensrubrique'>Documents</a> : ";
			var temp = new Array();
			temp = docs.split('#');
			var cpt = 0;
			for (var i=0; i < temp.length; i++) {
				var doc = temp[i].split('$')[0];
				var titre = temp[i].split('$')[1];
				strEvt3 +=  "<a href='documents/docs/" + doc + "' target='_blank'>"+ titre + "</a><img src='images/espace.gif' width=5 height=1>&nbsp;&nbsp;&nbsp;";
			}		
			strEvt3 += "</td></tr>";
		}
		if(url != '') {
			strEvt3 += "<tr><td align='left' class='descriptionBulle'><a class='liensrubrique'>Plus d'infos</a> : <a  href='" + url + "' target=\"_blank\">" + url + "</a></td></tr>";
		}
		strEvt3 += "</table>";	

	  
      GEvent.addListener(marker, 'click', function() {
	   	if(photos == '') {
	  		var infoTabs = [new GInfoWindowTab("Evènement",strEvt1),new GInfoWindowTab("Infos", strEvt3)];
		}else{
			var infoTabs = [new GInfoWindowTab("Evènement",strEvt1),new GInfoWindowTab("Photos", strEvt2), new GInfoWindowTab("Infos", strEvt3)];
		}
		marker.openInfoWindowTabsHtml(infoTabs);
        //marker.openInfoWindowHtml(strEvt1);
      });
	  
	  // save the info we need to use later for the side_bar
      gmarkers[k] = marker;
      // add a line to the side_bar html
      //side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
	  //alert(k);
      k++;
	  	  
      return marker;
    }
	
    // This function picks up the click and opens the corresponding info window
    function myclick(k) {
		if(gmarkers[k]) {
	  		GEvent.trigger(gmarkers[k], 'click');
		}
    }	
    //]]>

