var map = null;
var centreurl = null; 
function Remplace(expr,a,b) 
{
 var i=0
    while (i!=-1) 
 {
     i=expr.indexOf(a,i);
        if (i>=0) 
  {
            expr=expr.substring(0,i)+b+expr.substring(i+a.length);
            i+=b.length;
         }
      }
      return expr
}

function aproximiteV2 (obj, urlxml)
{	

	urlxml = Remplace(urlxml,"&amp;","&")

	map.clearOverlays();

	//on prend toutes les cat selectionne
	var Scategories = "";
	var ActiverProx = false
	var Tcategories  = document.getElementsByName("cat");
	for (var i=0;i<Tcategories.length;i++)
	{
		if (Tcategories[i].checked == true)
		{
			ActiverProx = true;
			if (Scategories!="")
				Scategories = Scategories + ",";
				
			Scategories = Scategories + Tcategories[i].value;
		}
	}
	
	urlxml = urlxml + "&mode=proxi&coord=" + centreurl + "&cat=" + Scategories + "&aprox=" + ActiverProx;

	
	
	//document.getElementById("requete").innerHTML =  urlxml;
	
	
	PositionnePointsV2 (urlxml, 2, "");
	
	
}
 
function loadcartoV2(urlxml, modecarto) 
{



	if (GBrowserIsCompatible()) { 
	
		map = new GMap2(document.getElementById("map")); 

		//map.addControl(new GScaleControl());	
	    map.enableDoubleClickZoom();
		map.enableContinuousZoom(); 			
 		//map.removeOverlay(marker);
		PositionnePointsV2 (urlxml, 1, modecarto);
	}
}


//Recuperation des coordonnees et des infos
function PositionnePointsV2 (urlxml, setcenter, modecarto)
{	

	urlxml = Remplace(urlxml,"&amp;","&")
	
	//var urlxml = "/fr/GetXMLGoogleMapV2.asp?" + param; 
	
	GDownloadUrl(urlxml, function(data, responseCode) 
	{		
		var xml = GXml.parse(data); 
	
		if (setcenter==1)
		{
			var infos = xml.documentElement.getElementsByTagName("markers"); 
			var val_maptype = eval(xml.documentElement.getAttribute("maptype"));
			var val_GLargeMapControl = xml.documentElement.getAttribute("GLargeMapControl");
			var val_GMapTypeControl = xml.documentElement.getAttribute("GMapTypeControl");
			var val_GOverviewMapControl = xml.documentElement.getAttribute("GOverviewMapControl");
			var zoom = xml.documentElement.getAttribute("zoom");		
			
			//if (val_GLargeMapControl=="1")
				//map.addControl(new GLargeMapControl());		
				
				map.addControl(new GSmallMapControl());		
		
			if (val_GMapTypeControl=="1")
				map.addControl(new GMapTypeControl());
			
			//if (val_GOverviewMapControl=="1")
			//    map.addControl(new GOverviewMapControl());	   						
				
			
		}	
		
		var bounds = new GLatLngBounds;
						
		var markers = xml.documentElement.getElementsByTagName("marker"); 

					
		var mespoints = new Array(markers.length);			
		
		
		if (markers.length==0)
		{
			
			document.getElementById("map").style.display="none";
			if (document.getElementById("carteGoogleMap"))
			{
				document.getElementById("carteGoogleMap").style.display="none";
			}
			
		}
		else
		{
			document.getElementById("map").style.display="block";
			if (document.getElementById("carteGoogleMap"))
			{
				document.getElementById("carteGoogleMap").style.display="block";
			}		
		}
			
			
		for (var i = 0; i < markers.length; i++) 
		  {			  	 		  	  
 			  picto = markers[i].getAttribute("picto");	 

			  texte = markers[i].textContent;	  			  

			  //Bug IE - il ne connait pas textContent
			  if (!texte)
			  {			  
				  texte = markers[i].xml;
				  texte = texte.replace("]]>", "");				
			  }
			  
			  
	
			   texte = "<div class='Googlemapinfospoints'>" + texte + "<br/></div>"
			
	  		  var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),  parseFloat(markers[i].getAttribute("lng")));
		  
			  bounds.extend(point);		  
			  mespoints[i] = point;
			  
			  if (i==0)
			  {
			  	 var pointcentre = point;
				 centreurl = point.toUrlValue();
			  }
			  
			  //on charge la carte et centre si necessaire sur le premier point
			  if (i==0 && setcenter==1)
			  {
				  map.setCenter(point, parseInt(zoom), val_maptype);				  
			  }
			  
			  //positonnement du point courant
			  map.addOverlay(createMarker(point, texte, picto));
		  }		 
		  
		  //si plusieurs points - zoom auto et recentrage (que en mode liste ?)
		  //if (markers.length>1 && setcenter!=2)
		  if (markers.length>1)
		  {			   		  
			  //on determine le zoom en fonction des points a afficher
			  var newzoom = map.getBoundsZoomLevel(bounds);		  
		  	 
		  	  map.setZoom(newzoom);
			   
			  //on recentre par rapport a ces points que en mode liste !
			  var centre = bounds.getCenter();
			  map.setCenter(centre);
			 // map.panTo(centre);

		  }
		  		 
	}); 

}


// placement un point sur la carto + layer sur mouseover
function createMarker(point, texte, picto) 
{        
    // Create our "tiny" marker icon
    var icon = new GIcon();
	
	if (picto=="") 
	    icon.image = "/design/pictos/icones_standard.png";
	else
	    icon.image = "/design/pictos/" + picto;	
	if(picto =="beffroi.gif")
	{
		icon.iconSize = new GSize(25, 50);
	}
	else
	{
		icon.iconSize = new GSize(25, 25);
	}
	
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);
		
    icon.shadow = "/design/mm_20_shadow.png";

    var marker = new GMarker(point, icon);
	
    GEvent.addListener(marker, "mouseover", function() {marker.openInfoWindowHtml(texte); });  
    return marker;
}  




