      if (GBrowserIsCompatible()) {

	  var side_bar_html = "";
      var gmarkers = [];
      var htmls = [];
      var i = 0;
      
      var Icon = new GIcon();
      Icon.image = "http://maps.google.com/mapfiles/ms/micons/ltblue-dot.png";
      Icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
      Icon.iconSize = new GSize(20, 24);
      Icon.shadowSize = new GSize(27, 24);
      Icon.iconAnchor = new GPoint(5, 30);
      Icon.infoWindowAnchor = new GPoint(10, 10);
      Icon.infoShadowAnchor = new GPoint(18, 25);

      var IconAssoc = new GIcon();
      IconAssoc.image = "http://maps.google.com/mapfiles/ms/micons/blue-dot.png";
      IconAssoc.shadow = "http://www.google.com/mapfiles/shadow50.png";
      IconAssoc.iconSize = new GSize(20, 24);
      IconAssoc.shadowSize = new GSize(27, 24);
      IconAssoc.iconAnchor = new GPoint(5, 30);
      IconAssoc.infoWindowAnchor = new GPoint(10, 10);
      IconAssoc.infoShadowAnchor = new GPoint(18, 25);

      
      var clusterIcon = new GIcon();
      clusterIcon.image = 'http://maps.google.com/mapfiles/ms/micons/red-dot.png';
      clusterIcon.shadow = 'http://www.google.com/mapfiles/shadow50.png';
      clusterIcon.iconSize = new GSize( 30, 34 );
      clusterIcon.shadowSize = new GSize( 37, 34 );
      clusterIcon.iconAnchor = new GPoint( 9, 34 );
      clusterIcon.infoWindowAnchor = new GPoint( 9, 2 );
      clusterIcon.infoShadowAnchor = new GPoint( 18, 25 );

      var IconCPEQ = new GIcon();
      IconCPEQ.image = "http://maps.google.com/mapfiles/ms/micons/green-dot.png";
      IconCPEQ.shadow = "http://www.google.com/mapfiles/shadow50.png";
      IconCPEQ.iconSize = new GSize(20, 24);
      IconCPEQ.shadowSize = new GSize(27, 24);
      IconCPEQ.iconAnchor = new GPoint(5, 30);
      IconCPEQ.infoWindowAnchor = new GPoint(10, 10);
      IconCPEQ.infoShadowAnchor = new GPoint(18, 25);


      // A function to create the marker and set up the event window
      function createMarker(point,name,fondateur,html) {
        var marker = new GMarker(point,Icon);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        // save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        htmls[i] = html;
        // add a line to the side_bar html
		if(point=="(NaN, NaN)")
		{
        side_bar_html += '<img border="0" width="15px" src="assets/images/pixel.gif" style="vertical-align:middle;">'+liensidebar + fondateur + '<br>';
		}
		else{
        side_bar_html += '<img border="0" width="15px" src="http://maps.google.com/mapfiles/ms/micons/ltblue-dot.png" style="vertical-align:middle;"><a href="javascript:myclick(' + i + ')">' + name + '</a> ' + fondateur + '<br>';
		}
        i++;
        return marker;
      }
      

      function createMarkerAssoc(point,name,fondateur,html) {
        var marker = new GMarker(point,IconAssoc);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        // save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        htmls[i] = html;
        // add a line to the side_bar html
		if(point=="(NaN, NaN)")
		{
        side_bar_html += '<img border="0" width="15px" src="assets/images/pixel.gif" style="vertical-align:middle;">'+liensidebar + fondateur + '<br>';
		}
		else{
        side_bar_html += '<img border="0" width="15px" src="http://maps.google.com/mapfiles/ms/micons/blue-dot.png" style="vertical-align:middle;"><a href="javascript:myclick(' + i + ')">' + name + '</a> ' + fondateur + '<br>';
		}
        i++;
        return marker;
      }

      // This function picks up the click and opens the corresponding info window
      function myclick(i) {
        gmarkers[i].openInfoWindowHtml(htmls[i]);
		map.setZoom(15);
		document.location="#Carte"; 
      }


      // create the map
      var map = new GMap(document.getElementById("map"));
	  map.addControl(new GLargeMapControl3D());
	  //map.addControl(new GScaleControl());
	  map.enableScrollWheelZoom();
	  map.enableContinuousZoom();
	  map.addControl(new GMenuMapTypeControl());
      map.setMapType(G_HYBRID_MAP);
      map.centerAndZoom(new GPoint(-99, 50), 14);
      
      
      // create the clusterer
      var clusterer = new Clusterer(map);
      
      // set the clusterer parameters if you dont like the defaults
      clusterer.icon = clusterIcon;      
      clusterer.maxVisibleMarkers = 5;
      clusterer.gridSize = 20;
      clusterer.minMarkersPerClusterer = 8;
      clusterer.maxLinesPerInfoBox = 8;

        // Download the data in data.xml and load it on the map. The format we
		
        GDownloadUrl("assets/snippets/google/membres_cpeq.xml", function(data) {
          var xml = GXml.parse(data);
		      //alert(data); 
          var info = xml.documentElement.getElementsByTagName("info");
          var date = info[0].getAttribute("date");

		  	  if (langue=="Fr"){
				side_bar_html +=  "<p style='font-size:14px;font-weight:bold'>Le CPEQ compte " + count_membres + "  entreprises et " + count_assoc + " associations (" + date + ")";
				var plus_info = "Plus d'informations";
				}
				else {
				side_bar_html +=  "<p style='font-size:14px;font-weight:bold'>CPEQ have " + count_membres + "  enterprises and " + count_assoc + " associations (" + date + ")";
				var plus_info = "More informations";
				}
				side_bar_html += "<p style='font-size:12px'>";
		  
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("long")));
									
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("long"));
		    var point = new GPoint(lng,lat);
            var lien = markers[i].getAttribute("lien");
			
            var nom = markers[i].getAttribute("name");
            var type = markers[i].getAttribute("type");
            var fondateurs = markers[i].getAttribute("fondateur");
			if (lien==""){
			lieninfo="";
			liensidebar=  "<font color='#446e5b'>"+nom+"</font>" ;
			}
			else{
			lieninfo="<br><br><a style='font-size:10px'  href="+lien+" style='text-underline:none' target='_blank'>" + plus_info + "</a>";
			liensidebar="<a href="+lien+" target='_blank'>" + nom + "</a> ";
			}
			
			if(fondateurs=="oui"){fondateur="*";}else{fondateur="";}
			if(type==1){
            var marker = createMarkerAssoc(point,nom,fondateur,"<span style='font-style:Verdana; font-size:12px;'>"+nom+lieninfo);
			}
			else{
            var marker = createMarker(point,nom,fondateur,"<span style='font-style:Verdana; font-size:12px;'>"+nom + lieninfo);
			}
			// create clusterer object
            clusterer.AddMarker(marker,nom,lien);
          }
          // put the assembled side_bar_html contents into the side_bar div
		  if (langue=="Fr"){
          document.getElementById("side_bar").innerHTML = side_bar_html+"<p>(*Membres fondateurs)</p>";
		  }
		  else{
          document.getElementById("side_bar").innerHTML = side_bar_html+"<p>(*Founding members)</p>";
		  }
		  
          // AJOUT CPEQ
		  	var point = new GPoint(-73.5578232,45.4995412);
			var marker = new GMarker(point, IconCPEQ);
			GEvent.addListener(marker, "click", function() {
			  marker.openInfoWindowHtml("CPEQ");
			});

			map.addOverlay(marker);
			
          // Clear the "please wait" message
          document.getElementById("message").innerHTML = "";
        }
	)
	}
