var map = null;
var centreurl = null; 
 
function aproximite2 (dep)
{	

	
	if (document.getElementById("chargementEnCours"))
		document.getElementById("chargementEnCours").style.display = "block";	
	map.clearOverlays();

	var geoXml = new GGeoXml("http://crta.systonic.com/fr/aquitaine.kml");
	map.addOverlay(geoXml);  	

	//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;
		}
	}
	if(Scategories != ""){
		var param = dep + "&cat=" + Scategories;
		PositionnePoints (param, 1, '');
	}else{
		var param = dep;
		PositionnePoints (param, 1, '');
		document.getElementById("chargementEnCours").style.display = "none";
	}


	
	//document.getElementById("requete").innerHTML = "http://crta/fr//GetXMLGoogleMapV2.asp?" + param;	
	//PositionnePoints (param, 2);
	
	//positonnement du point courant
    //map.addOverlay(createMarker(point, texte, picto));	
	
} 
 
function aproximite (obj, query)
{	
	
	if (document.getElementById("chargementEnCours"))
		document.getElementById("chargementEnCours").style.display = "block";	
		
	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;

	//document.getElementById("requete").innerHTML = "<span style=color:white;width:200px>http://www.tourisme-aquitaine.fr/fr/GetXMLGoogleMapV2.asp?" + param + " </span>";	
	PositionnePoints (param, 1, 'approx');
	
	//positonnement du point courant
    //map.addOverlay(createMarker(point, texte, picto));	
	
}

//function loadcarto(param, modecarto,DescriptifFlux,Photo1Flux) 
function loadcarto(param, modecarto) 
{

	
	if (GBrowserIsCompatible()) { 	
		map = new GMap2(document.getElementById("map")); 
		//map.addControl(new GScaleControl());	
	    map.enableDoubleClickZoom();
		map.enableContinuousZoom();
		PositionnePoints (param, 1, modecarto);
	}
}



//function loadcarto(param, modecarto,DescriptifFlux,Photo1Flux) 
function loadcartodep(param, modecarto) 
{
	if (GBrowserIsCompatible()) { 
		map = new GMap2(document.getElementById("map")); 
		//map.addControl(new GScaleControl());	
	    map.enableDoubleClickZoom();
		map.enableContinuousZoom(); 			
        var center = new GLatLng(44.833333, -0.566667);
        map.setCenter(center, 10);
		PositionnePoints (param, 1, modecarto);
	}
}


function loadcartoPE (kml, centre, typec, nav, zoom, affichetype)
{
	if (GBrowserIsCompatible()) { 
			
		map = new GMap2(document.getElementById("map")); 
		//map.addControl(new GScaleControl());	

		if (nav=="1")
		{
		    map.enableDoubleClickZoom();
			map.enableContinuousZoom(); 	
			map.addControl(new GLargeMapControl());			
		}
		else
		{
			map.disableDoubleClickZoom();
			map.disableContinuousZoom();
			map.disableScrollWheelZoom();			
			map.disableDragging();						
		}
		
		if (affichetype=="1")
			map.addControl(new GMapTypeControl());

		
		//map.addControl(new GOverviewMapControl());		
		//map.addControl(new GMapTypeControl());
		
		var geoXml = new GGeoXml(kml);
		map.addOverlay(geoXml);  
		
		
		if (zoom=="") zoom = 11;
		if (typec=="") typec = "G_NORMAL_MAP";

		var tp = centre.split(",")
		
		var pt = new GLatLng(parseFloat(tp[0]),parseFloat(tp[1]))

		map.setCenter(pt, eval(zoom), eval(typec)); 	
		
		if (document.getElementById("chargementEnCours"))
			document.getElementById("chargementEnCours").style.display = "none";		
	}
}


//Recuperation des coordonnees et des infos
function PositionnePoints (param, setcenter, modecarto)
{	
	var urlxml = "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 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"); 

	//alert (markers.length)
		var mespoints = new Array(markers.length);			

		if (markers.length==0 && modecarto != "approx")
		{		
			if ($("zonecarte"))
				$("zonecarte").hide();		
			$("map").hide();
		}

		if (markers.length==0)
		{		
			$("map").hide();
		}

		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='infospoints' >" + 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
			  
			  var ov =  createMarker(point, texte, picto)
			  map.addOverlay(ov);
  
		  }		
		  
		   
		  //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 (document.getElementById("chargementEnCours") != null)   document.getElementById("chargementEnCours").style.display = "none";		
	}); 
	
}


// 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;	
	
	icon.iconSize = new GSize(20, 20);
	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;
}  




