// Google Maps API
function reloadMapTrier(){
var type = document.getElementById('typePatrimoine').value;
var commune = document.getElementById('communePatrimoine').value;

GoogleMapsLoad(type,commune);	
}


function Xhr(){
   var objRequete = null;
   try { objRequete = new ActiveXObject("Microsoft.XMLHTTP");}
	 catch(Error) { try { objRequete = new ActiveXObject("MSXML2.XMLHTTP");}
	   catch(Error) { try { objRequete = new XMLHttpRequest();
										 // pour éviter un bogue du navigateur Safari
										 if (objRequete.overrideMimeType){
											 objRequete.overrideMimeType("text/xml")
										 }
							  }
		  catch(Error) { alert(' Impossible de créer l\'objet XMLHttpRequest')}
					}
				  }
   return  objRequete;
}

function getCommuneTrier(){
	var xhr = Xhr();//  création d'une instance de la classe XMLHttpRequest en fonction du navigateur
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			var option = xhr.responseText; 
			
			var select = '<label for="communePatrimoine">Trier par commune</label>';
			select  +=   '<select onChange="reloadMapTrier();" name="communePatrimoine" id="communePatrimoine">';
            //select 	+=	 '<option value="">Toutes les communes</option>';
			select  +=   option;
            select 	+=   '</select>';
			
			document.getElementById('selectCommune').innerHTML = select;
				//alert(option);
				//document.getElementById('communePatrimoine').innerHTML = option;
				//document.write(getElementById('communePatrimoine'));selectCommune
				
		}
		else
		if (xhr.readyState == 4) alert(" Probleme de connexion au serveur")
	}

	xhr.open("GET","../_inc/CPN_getCommune.asp",true);
	xhr.send(null);
}



/*
Fonction Google
*/

function GoogleMapsLoad(type,commune)
{
	// Tableau des points à afficher
	var tabGoogleMapPoint = new Array();
	var tabGoogleMapPointGrouped = new Array();
	
	if (GBrowserIsCompatible())
	{
		var zoom = 9;
		var map = new GMap2(document.getElementById("map"));
		

		map.addControl(new GLargeMapControl());
		//map.addControl(new GMapTypeControl());
		//map.addControl(new GOverviewMapControl());
		
		map.setCenter(new GLatLng(45.2626549,3.8600811),zoom);
		//map.enableScrollWheelZoom();
		var geocoder = new GClientGeocoder();



				// Fonction récursive de recherche des coordonnées GPS
		function rechCoords(id, name, address, town, GPS,F1,F2,F3,F4,F5,F6,F7,Pavillon, etape) {
		
			// sinon on les recherche
			var search = ''
			var lattitude = 0;
			var longitude = 0;
			var coordonnee = 0;
		
			switch (etape) {			
				case '1':
					search = address + " " + town + " FRANCE";
					break;
				case '2':
					search = GPS;
					break;
				case '3':
					search = town + " FRANCE";
					break;
				default :
					search = town+" FRANCE";
			}
				//alert(search);
				
			geocoder.getLatLng(search, 
				function(point) {
					if (!point) {						
						switch (etape) {
						
							case '1':
								rechCoords (id, address,town, GPS,F1,F2,F3,F4,F5,F6,F7,Pavillon,'2');
								break;
							case '2':
								rechCoords (id, address,town, GPS,F1,F2,F3,F4,F5,F6,F7,Pavillon,'3');
								break;
							case '3':
							default :
								if (address !='' || town !='') {									
									//alert(id);
								}									
						}
					} else {		

						// Stockage des coordonnées manquantes
						if(window.XMLHttpRequest) 
						{
							oXmlHttp = new XMLHttpRequest();
							oXmlHttp.open("POST", "../_inc/CPN_SetLatLngPatrim.asp", false);
							oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
							var data = "id="+id+"&lng="+point.x+"&lat="+point.y;
							//alert(point.x + " " + point.y);
							oXmlHttp.send(data);			
						}
			
						map.addOverlay(createMarker(point,id,name,address,town,F1,F2,F3,F4,F5,F6,F7,Pavillon));	
						alert('creationMarker');
					}
				}				
			 );	
			 //alert(coordonnee);
			 //return coordonnee;
		}
		
		function markerStyle()
		{
			var MonPointeur = new GIcon(G_DEFAULT_ICON);
					
			MonPointeur.image = "../images/_charte/fvellave-marker-site.png";
			MonPointeur.shadow = "";

			return MonPointeur;
		}

		
		function createMarker(point,id,nom,adresse,ville,F1,F2,F3,F4,F5,F6,F7,Pavillon)
		{
			
			var marker = new GMarker(point,markerStyle());
			//markerStyle(type) pour définir le type de marqueur sur la carte
			
			
			var codeHtml = "<font color='#000000'><br>";
			
			if (nom != "")
			{
				//codeHtml += nom + "<br>";	
			}
			
			if ( adresse != "")
			{
				codeHtml +=	adresse + "<br>";
			}
			
			if( F1 != "" || F1 != 0)
				codeHtml +=	"F1 : " + F1 + "  |  ";
			if( F2 != "" || F2 != 0)
				codeHtml +=	"F2 : " + F2 + "  |  ";
			if( F3 != "" || F3 != 0)
				codeHtml +=	"F3 : " + F3 + "  |  ";
			if( F4 != "" || F4 != 0)
				codeHtml +=	"F4 : " + F4 + "  |  ";
			if( F5 != "" || F5 != 0)
				codeHtml +=	"F5 : " + F5 + "  |  ";
			if( F6 != "" || F6 != 0)
				codeHtml +=	"F6 : " + F6 + "  |  ";
			if( F7 != "" || F7 != 0)
				codeHtml +=	"F7 : " + F7 + "  |  ";
			if( Pavillon != "" || Pavillon != 0 )
				codeHtml +=	"Pavillon : " + Pavillon + "  |  ";
			
			codeHtml += "</font>";
		
			/*if (id == Ident)
			{
				map.addOverlay(marker);
				marker.openInfoWindowHtml("<strong style='color:#940506;'>" + nom + "</strong>"+codeHtml);
			}*/
			
			GEvent.addListener (marker, "click", 
					function() { marker.openInfoWindowHtml("<strong style='color:#940506;'>" + nom + "</strong>"+codeHtml);});
			
			return marker;
		}

	
		
	


		GDownloadUrl("../_inc/CPN_GoogleMapData.asp?typePatrimoine="+type+"&communePatrimoine="+commune+"", function(data, responseCode)															
		{		
//alert ('pass --' + data +'--');			

			//var xml = GXml.parse(trim(data));	
			
			if(data == null || data == "")
			{
				alert("Aucun résultat ne correspond à vos critères !");
				patrimoines = [];
			}
			else{
				var xml = GXml.parse(data);		
				var patrimoines = xml.documentElement.getElementsByTagName("patrimoine");
			}
			
			
			//if(patrimoines.length == 0)
			//	alert("Aucun résultat ne correspond à vos critères !");
			
			//alert ('taille ' + patrimoines.length);
			
			for (var i=0 ; i < patrimoines.length ; i++)
			{
				 var id = new String(patrimoines[i].getAttribute("id"));		
				 var nom = new String(patrimoines[i].getAttribute("name"));		
				 var adresse = new String (patrimoines[i].getAttribute("address"));		
				 var F1 = new String (patrimoines[i].getAttribute("F1"));
 				 var F2 = new String (patrimoines[i].getAttribute("F2"));
				 var F3 = new String (patrimoines[i].getAttribute("F3"));
				 var F4 = new String (patrimoines[i].getAttribute("F4"));
				 var F5 = new String (patrimoines[i].getAttribute("F5"));
				 var F6 = new String (patrimoines[i].getAttribute("F6"));
				 var F7 = new String (patrimoines[i].getAttribute("F7"));
				 var Pavillon = new String (patrimoines[i].getAttribute("Pavillon"));
				 var lat = new String (patrimoines[i].getAttribute("lat"));
				 var lng = new String (patrimoines[i].getAttribute("lng"));
				 var GPS = "";
						
				 var sville = nom.split("/");
				 var ville = sville[0];
				 
				 //alert(id  +' '+ nom +' '+ adresse +' '+ ville);
				 //alert('GPS:' + GPS + '\n ville:' + ville);
				
				
 				 if ((lat != "") && (lng != ""))
				 {								
	 				 var point = new GLatLng(parseFloat(lat), parseFloat(lng));

					 // var point = new GLatLng(lat, lng);
					  
					 map.addOverlay(createMarker(point,id,nom,adresse,ville,F1,F2,F3,F4,F5,F6,F7,Pavillon));	
					 // alert( adresse +" "+ cp +" "+ ville); 
				 }
				 else
				 {	
				 		
					rechCoords(id, nom, adresse, ville,GPS,F1,F2,F3,F4,F5,F6,F7,Pavillon, '1');
	
					//map.addOverlay(createMarker(rechCoords(id, adresse, cp, ville, '1'),id,nom,adresse,cp,ville));					

				 }

			}
			
				
		})
		
		
	}
}
