
        //<![CDATA[
        
/* Chargement du module "maps" dans sa version "2.x" */
	google.load("maps", "2.x",{"other_params":"sensor=false"});
	/* Déclaration des variables globales */
	var contenuListe = "";
	var tableauMarqueurs = [];
	var tableauInfoBulle = [];
	var i = 0;
	var miniIconeVert;
	var maCarte;
	/* Déclaration explicite de la variable "urlXml" : Elle contient le chemin et le nom du fichier XML contenant les données des sociétés, nécessaire à  la construction de la carte.   */
	/* Il est impératif que le document qui execute ce code soit sur le même serveur que le fichier contenant les données (data.xml). */
	/* Veuillez IMPÃ‰RATIVEMENT modifier l'Url ci-dessous afin qu'elle pointe vers votre fichier data.xml */
	
        var urlXml = "http://www.agencefavoli-orpi.com/xml/donnees.xml";
	/* Fonction initialize() */
	function initialize() {
	/* Si le navigateur est compatible avec l'API de Google Maps ... */
	if (google.maps.BrowserIsCompatible()) {
	/* ... ParamÃ©trage du mini icÃ´ne vert nommÃ© "miniIconeVert" ... */
	    miniIconeVert = new google.maps.Icon();
    miniIconeVert.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	    miniIconeVert.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	    miniIconeVert.iconSize = new google.maps.Size(12, 20);
	    miniIconeVert.shadowSize = new google.maps.Size(22, 20);
	    miniIconeVert.iconAnchor = new google.maps.Point(6, 20);
	    miniIconeVert.infoWindowAnchor = new google.maps.Point(5, 1);
	/* ... CrÃ©ation d'une nouvelle carte nommÃ©e "maCarte" qui s'affichera Ã  l'intÃ©rieur de la balise div ayant pour identifiant id="EmplacementDeMaCarte" ... */
	    maCarte = new google.maps.Map2(document.getElementById("EmplacementDeCarteGlobale"));
	/* ... La carte nommÃ©e "maCarte" est centrÃ©e sur la Latitude 47.341571, la Longitude 0.514233, avec un niveau de zoom Ã©gal Ã  13 ... */
	    maCarte.setCenter(new google.maps.LatLng(43.13672,6.00625), 9);
	/* ... Ajout Ã  la carte nommÃ©e "maCarte" du bouton "SmallMapControl" : DÃ©placement et Zoom ... */
	    maCarte.addControl(new google.maps.SmallMapControl());
	/* ... Ajout Ã  la carte nommÃ©e "maCarte" du bouton "MenuMapTypeControl" : Menu Type de carte ... */
	    maCarte.addControl(new google.maps.MenuMapTypeControl());
	/* ... A l'aide de google.maps.XmlHttp on construit, puis on envoie une requÃªte, de type GET, pour charger les donnÃ©es contenues dans ... */
	/* ... "http://www.votreserveur.fr/votrerepertoire/data.xml" et rÃ©cupÃ©rer les caractÃ©ristiques de ... */
	/* ... chaque marqueur (lat, lng, point, type, nom) nÃ©cessaire Ã  sa construction ... */
	    var requete = google.maps.XmlHttp.create();
	    requete.open("GET", urlXml, true);
	/* ... SpÃ©cifie la fonction Ã  appeler lorsque la propriÃ©tÃ© readyState varie ... */
	    requete.onreadystatechange = function() {
	/* ... Si l'Ã©tat d'avancement de la requÃªte est Ã©gal Ã  4 : autrement dit si la requÃªte Ã  parfaitement fonctionnÃ©, ... */
	/* ... que les donnÃ©es ont Ã©tÃ© correctement tÃ©lÃ©chargÃ©es et  que celles-ci sont disponibles pour Ãªtre exploitÃ©es ... */
	        if (requete.readyState == 4) {
	/* ... "xmlDoc" contient la rÃ©ponse de la requÃªte au format XML ... */
	            var xmlDoc = requete.responseXML;
	/* ... "marqueurs" : est un tableau contenant toutes les balises  du fichier "data.xml" ... */
	            var marqueurs = xmlDoc.documentElement.getElementsByTagName("marker");
	/* ... Construction de la liste de sociÃ©tÃ©s : DÃ©but ... */
	            contenuListe += '<ol>';
	/* ... On fait une boucle sur "marqueurs" pour extraire les caractÃ©ristiques de chaque marqueur ... */
	/* ... et permettre l'affichage de ceux-ci sur la carte ainsi que la construction de la liste . ... */
	            for (var i = 0; i < marqueurs.length; i++) {
	/* ... lat : Latitude du marqueur ... */
	                var lat = parseFloat(marqueurs[i].getAttribute("lat"));
	/* ... lng : Longitude du marqueur ... */
	                var lng = parseFloat(marqueurs[i].getAttribute("lng"));
	/* ... pointSoc : point d'ancrage du marqueur, aux coordonnÃ©es "lat" et "lng" ... */
	                var pointSoc = new GLatLng(lat,lng);
	/* ... typeSoc : CatÃ©gorie d'appartenance du marqueur ... */
	                var typeSoc = marqueurs[i].getAttribute("type");
	/* ... nomSoc : Nom de la sociÃ©tÃ© correspondant au marqueur ... */
	                var nomSoc = marqueurs[i].getAttribute("nom");
	/* ... adresseSoc : Adresse postale de la sociÃ©tÃ© correspondant au marqueur ... */
	                var adresseSoc = marqueurs[i].getAttribute("adresse");
	/* ... codepostalSoc : Code postal de la sociÃ©tÃ© correspondant au marqueur ... */
	                var codepostalSoc = marqueurs[i].getAttribute("codepostal");
	/* ... villeSoc : Ville de la sociÃ©tÃ© correspondant au marqueur ... */
	                var villeSoc = marqueurs[i].getAttribute("ville");
	/* ... CrÃ©ation du marqueur nommÃ© "marqueur" par appel de la fonction "creationMarqueur()" ... */
	/* ... en lui transmettant les donnÃ©es : lat, lng, pointSoc, typeSoc, nomSoc ... */
	                var marqueur = creationMarqueur(lat,lng,pointSoc,typeSoc,nomSoc,adresseSoc,codepostalSoc,villeSoc);
	/* ... Affiche sur la carte nommÃ©e "maCarte", le marqueur nommÃ© "marqueur" ... */
	                maCarte.addOverlay(marqueur);
	            }
	            contenuListe += '</ol>';
	            document.getElementById("EmplacementDeLaListe").innerHTML = contenuListe;
	        }
	    }
	    requete.send(null);
	  
	/* Si le navigateur n'est pas compatible avec l'API de Google Maps ... */
	}else{
	/* ... affichage du message "DÃ©solÃ©, mais votre navigateur n'est pas compatible avec Google Maps". */
	alert('DÃ©solÃ©, mais votre navigateur n\'est pas compatible avec Google Maps');
	}
	}
	  
	/* Fonction creationMarqueur() */
	function creationMarqueur(lat,lng,pointSoc,typeSoc,nomSoc,adresseSoc,codepostalSoc,villeSoc) {
	/* ... CrÃ©ation d'un marqueur nommÃ© marqueur" ancrÃ© sur "point" et reprÃ©sentÃ© par l'icÃ´ne nommÃ© "miniIconeVert" ... */
	    var marqueur = new google.maps.Marker(pointSoc,miniIconeVert);
	/* ... contenuInfoBulle : construction du code HTML destinÃ© Ã  s'afficher dans l'info-bulle du marqueur ... */
	    var contenuInfoBulle =   '<b>SociÃ©tÃ©</b> : '+nomSoc+'<br />'
	                            /*+'<b>CatÃ©gorie</b> : '+typeSoc+'<br />'*/
	                            +'<b>Adresse</b> : '+adresseSoc+'<br />'
	                            +'<b>Code postal</b> : '+codepostalSoc+'<br />'
	                            +'<b>Ville</b> : '+villeSoc+'<br />'
	                           /* +'<b>Latitude</b> : '+lat+'<br />'
	                            +'<b>Longitude</b> : '+lng;*/
	/* ... Ajout d'un observateur d'Ã©vÃ©nement au marqueur nommÃ© marqueur"    ... */
/* ... L'Ã©vÃ©nement observÃ© est le "click". Quant un "click" sera dÃ©tectÃ© ... */
	/* ... sur le marqueur nommÃ© "marqueur" alors ... */
	    google.maps.Event.addListener(marqueur, "click", function() {
	/* ... Ouverture de l'info-bulle liÃ©e au marqueur nommÃ© "marqueur" et  ... */
	/* ... affichage Ã  l'intÃ©rieur de celle-ci du code HTML "contenuInfoBulle" ... */
	        marqueur.openInfoWindowHtml(contenuInfoBulle);
	    });
	/* ... InsÃ¨re le marqueur nommÃ© "marqueur" dans le tableau nommÃ© "tableauMarqueurs" Ã  l'indice "i" ... */
	    tableauMarqueurs[i] = marqueur;
	/* ... InsÃ¨re le code HTML "contenuInfoBulle" dans le tableau nommÃ© "tableauInfoBulle" Ã  l'indice "i" ... */
	    tableauInfoBulle[i] = contenuInfoBulle;
	/* ... Ajout Ã  "contenuListe" du lien javascript correspondant Ã  la sociÃ©tÃ© ... */
	    contenuListe += '<li><a href="javascript:clickLien(' + i + ')">' + nomSoc + '</a></li>';
	/* ... IncrÃ©mente "i" ... */

	    i++;
	    return marqueur;
	}
	  
	/* Fonction clickLien() */
	function clickLien(i) {
	/* ... Tout click sur le lien ayant pour indice "i", va dÃ©clencher l'ouverture de l'info-bulle ... */
	/* ... liÃ©e au marqueur d'indice "i" contenu dans le tableau "tableauMarqueurs[i]" et afficher ... */
	/* ... Ã  l'intÃ©rieur de celle-ci, le code HTML d'indice "i" contenu dans le tableau tableauInfoBulle[i] ... */
	    tableauMarqueurs[i].openInfoWindowHtml(tableauInfoBulle[i]);
	}
	  
	/* Appelle la fonction "initialize" lorsque la page web sera chargÃ©e. */
	google.setOnLoadCallback(initialize);
	//]]>
	
