// Créé le 04/03/08
	// Crée un marqueur sur une gmap
	function creerMarker(longitude, latitude, description) {
		var point = new GPoint(longitude, latitude);
		var marker = new GMarker(point, description);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(description);
		} );
		map.addOverlay(marker);
	}

	// Fonctions AJAX
		function creerRequete() {
			var requeteHttp;
			if(window.XMLHttpRequest) { // Opéra, Safari, IE7
				requeteHttp=new XMLHttpRequest();
				if (requeteHttp.overrideMimeType) {
					// problème firefox
					requeteHttp.overrideMimeType('text/xml');
				}
			}
			else if (window.ActiveXObject) { // IE6
				try {
					requeteHttp = new ActiveXObject("Msxml2.XMLHTTP")
				}
				catch (exception) {
					try {
						requeteHttp = new ActiveXObject("Microsoft.XMLHTTP");
					}
					catch (exception) {
						requeteHttp = null;
					}
				}
			}
			return requeteHttp;	
		}

		function recevoirReponse(requeteHttp) {
			if (requeteHttp.readyState==4) {
				if (requeteHttp.status==200) {
					traiterReponse(requeteHttp.responseXML);
				}
				else {
					alert("La requête ne s'est pas correctement exécutée");
				}
			}
		}

		function recevoirReponseChercher(requeteHttp) {
		
			if (requeteHttp.readyState==4) {
				if (requeteHttp.status==200) {
					traiterReponseChercher(requeteHttp.responseXML);
				}
				else {
					alert("La requête ne s'est pas correctement exécutée");
				}
			}
		}

		function envoyerRequete(url) {
			var requeteHttp = creerRequete();
			
			if (requeteHttp == null) {
				alert("Impossible d'utiliser Ajax sur ce navigateur.");
			}
			else {
				requeteHttp.onreadystatechange= function(){recevoirReponse(requeteHttp);};
				requeteHttp.open('GET', url, true);
				requeteHttp.send(null);
			}
			return;
		}

		function envoyerRequeteChercher(url) {
			var requeteHttp = creerRequete();
			if (requeteHttp == null) {
				alert("Impossible d'utiliser Ajax sur ce navigateur.");
			}
			else {
				requeteHttp.onreadystatechange= function(){recevoirReponseChercher(requeteHttp);};
				requeteHttp.open('GET', url, true);
				requeteHttp.send(null);
			}
			return;
		}
		
		// Calcule les coordonnées GPS de l'adresse (libelle) et les inclut dans le formulaire
		function inserrer(libelle) {
			var geocoder = new GClientGeocoder();
			geocoder.getLatLng(libelle, function(point) {
				if (!point) {
					alert("Adresse introuvable");
				} else {
					envoyerRequeteChercher("../web-services.php5?name=ajouter&lng="+point.x+"&lat="+point.y);
					// envoyerRequeteChercher('f.xml');
				}		
			} );		
		}

		// Cherche les marqueurs les plus proches de l'adresse
		function chercher(adresse) {
			var geocoder = new GClientGeocoder();
			geocoder.getLatLng(adresse, function(point) {
				if (!point) {
					alert("Adresse introuvable");
				} else {
					envoyerRequete("web-services.php5?name=chercher&lng="+point.x+"&lat="+point.y+"&libelle="+adresse);
				}		
			} );		
		}
	
		function traiterReponse(reponse) {

			 var barycentre=reponse.getElementsByTagName("barycentre");
			 var zoom = reponse.getElementsByTagName("zoom");
			 var points = reponse.getElementsByTagName("point");
			 var lngBary = barycentre.item(0).childNodes.item(0).firstChild.nodeValue;
			 var latBary = barycentre.item(0).childNodes.item(1).firstChild.nodeValue;
			 var zoom = zoom.item(0). firstChild.nodeValue;
			 var listeResultats = '';
			 
			// On affiche la nouvelle carte
			map.setCenter(new GLatLng(latBary, lngBary), parseInt(zoom));
			 
			 // On place les marqueurs
			 var i;
			 for (i=0;i<points.length;i++) {
				var point = points.item(i);
				var nom = point.childNodes.item(0).firstChild.nodeValue;
				var adresse = point.childNodes.item(1).firstChild.nodeValue;
				var ville = point.childNodes.item(2).firstChild.nodeValue;
				var codepostal = point.childNodes.item(3).firstChild.nodeValue;
				var pays = point.childNodes.item(4).firstChild.nodeValue;
				var lngPt = point.childNodes.item(5).firstChild.nodeValue;
				var latPt = point.childNodes.item(6).firstChild.nodeValue;
				var telephone = point.childNodes.item(7).firstChild.nodeValue;
	
				var libelle = '<h4>'+nom+'</h4>'+adresse+'<br />'+codepostal+'&nbsp;' +ville+'<br />'+pays+'<br />'+telephone;
	
				creerMarker(lngPt, latPt, libelle);	
	
				listeResultats += libelle;
				document.getElementById("resultat").innerHTML=listeResultats;
			 }
		}

		function traiterReponseChercher(reponse) {
			var points = reponse.getElementsByTagName("point");
			var point = points.item(0);
			var lng = point.childNodes.item(0).firstChild.nodeValue;
			var lat = point.childNodes.item(1).firstChild.nodeValue;
			document.getElementById('idLongitude').value = lng;
			document.getElementById('idLatitude').value = lat;
			
		}
		
		

