var map = null;
var centreurl = null; 
var Markers = new Array();
var texte_VoirFiche = "Voir la fiche d&eacute;taill&eacute;e";
 
function aproximite (obj, query)
{	
	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;
		}
	}

	var param = "mode=proxi&coord=" + centreurl + "&cat=" + Scategories + "&aprox=" + ActiverProx + "&" + query;

	//alert(param)
	//document.write (param);
	//document.getElementById("requete").innerHTML = "/fr/GetXMLGoogleMap.asp?" + param;
	PositionnePoints (param, 2);
}

function loadcarto(param, modecarto) 
{
	if (GBrowserIsCompatible()) {
	
		map = new GMap2(document.getElementById("map"));

		map.addControl(new GScaleControl());	
	    map.enableDoubleClickZoom();
		map.enableContinuousZoom();
 		//map.removeOverlay(marker);
		PositionnePoints (param, 1, modecarto);
	}
}

//Recuperation des coordonnees et des infos
function PositionnePoints (param, setcenter, modecarto)
{	
	var urlxml = "GetXMLGoogleMapV2.asp?" + param; 
//	alert (urlxml);
	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());
		    
			if (val_GMapTypeControl=="1")
				map.addControl(new GMapTypeControl());
			
			if (val_GOverviewMapControl=="1")
			    map.addControl(new GOverviewMapControl());
		}	
		
		var bounds = new GLatLngBounds;

		markers = xml.documentElement.getElementsByTagName("marker"); 

		var mespoints = new Array(markers.length);			
			
		map.setCenter(new GLatLng(44.838805, -0.589447), 11, val_maptype);
		for (var i = 0; i < markers.length; i++) 
		  {	  
 			  picto = markers[i].getAttribute("picto");
			  texte = markers[i].textContent;
			  var id = "marker_" + markers[i].getAttribute('identifiant') ;

			  //Bug IE - il ne connait pas textContent
			  if (!texte)
			  {
				  texte = markers[i].xml;
				  texte = texte.replace("]]>", "");
			  }
			  
			   texte = "<div class='infospoints'>" + texte + "<br/> <a style='float:right;' href='residence.asp?id=" + markers[i].getAttribute('identifiant') + "'>" + texte_VoirFiche + "</a> </div>";

	  		  var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),  parseFloat(markers[i].getAttribute("lng")));
				//alert(markers[i].getAttribute("lat")+" / "+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));
			  var n = parseInt(markers[i].getAttribute('identifiant'))
			  Markers[n]=createMarker(point, texte, '', id);
			  map.addOverlay(Markers[n]);
		  }		   	 
		  
		  //si plusieurs points - zoom auto et recentrage (que en mode liste ?)
		  if (markers.length>1 && setcenter!=2)
		  {		  	 
			  //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);
		  }
		  
		  if(Need_MAJ == 1)
		  {
			MAJ();
		  }
		  else if (Need_MAJ == -1)
		  {
			for(i=0; i<Markers.length; i++)
			{
				if (Markers[i] != null && i != MarkToShow)
				{
					Markers[i].hide();
				}
				
				if (i == MarkToShow)
				{
					map.setCenter(Markers[i].getPoint(), 16);
					Markers[i].setImage('/design/pictos/maisong.png');
				}
			}
		  }
	});
}

// placement un point sur la carto + layer sur mouseover
function createMarker(point, texte, picto, id) 
{        
    // Create our "tiny" marker icon
    var icon = new GIcon();
	
	if (picto=="") 
	    icon.image = "/design/pictos/maison.png";//"/design/pictos/icones_standard.png";
	else
	    icon.image = "/upload/" + picto;	
	
	icon.iconSize = new GSize(25, 25);
	icon.iconAnchor = new GPoint(15, 20);
	icon.infoWindowAnchor = new GPoint(10, 5);
    //icon.shadowSize = new GSize(22, 20);
    //icon.shadow = "/design/pictos/mm_20_shadow.png";

    var marker = new GMarker(point, icon);
	
	if(Need_MAJ == 1)
	{
		
	  GEvent.addListener(marker, "mouseover", function () 
		{
			document.getElementById(id).setAttribute('style', 'background:#BEC5C6;');
			if (document.all) 
				document.getElementById(id).style.background = "#BEC5C6";
			
			marker.setImage('/design/pictos/maisong.png');
		});  
    
    GEvent.addListener(marker, "click", function() 
		{
		  marker.openInfoWindowHtml(texte);
    });
			
    GEvent.addListener(marker, "mouseout", function()
		{  
			document.getElementById(id).setAttribute('style', 'background:#E7F0F3;');
			if (document.all) 
				document.getElementById(id).style.background = "#E7F0F3";
			
			marker.setImage('/design/pictos/maison.png');
		});
	}

    return marker;
}  


