    //Variables globales pour déterminer l'état de la carte
	var layer3G=false;
	var layer3GP=false;
	var layerVoix=false;
	var layerEdge=false;
	/*Ajout MBO*/
	var layerHS=false;
	//Fin ajout MBO
	/* Ajout MBO*/
    var niveauZoom; 
    /* fin ajout MBO*/

	var map = null;
	var Xmap = 2.3507308959960938;
	var Ymap = 48.86664857504023;
	var zoom = 13;
	var XSearch;
	var YSearch;
	var markerSearch;
	
	var pointClick = null;
	
	/** recharger la carte selon le choix de l'utilisateur
    *  @init : = 1 lors du premier appel
    */
	function loadCou(init)
    {
        layerEdge = document.getElementById('edge').checked;
        layerVoix = document.getElementById('voix').checked;
        layer3G = document.getElementById('rd3g').checked;
        layer3GP = document.getElementById('prevision3G').checked;
        //Ajout NHA
        layerHS = document.getElementById('HotSpot').checked;
	    //Fin ajout NHA
        var loadLayerList = buildLayers();
        return loadMap(loadLayerList, init);
    }   
    
    
	/** Traitement du choix de l'utilisateur et création de la carte avec les différentes couches
    *  @init : = 1 lors du premier appel
    *  @list : La liste des numéros des couches à afficher
    */
    
    

    function loadMap(list, init)
    {
        var bc = window.GBrowserIsCompatible;
        var mapTypeUsed = null;
//        /* Ajout MBO*/
//        var niveauZoom; 
//        /* fin ajout MBO*/
        if (bc)
        {
            if (GBrowserIsCompatible()) 
            {
                // Ajout des options: on ne récupère aucune des fenêtres par défaut
                // var options ={size : new GSize(514,340), mapTypes:[]};
                // Ajout des options: on ne récupère aucune des fenêtres par défaut
                //var options ={size : new GSize(514,340), mapTypes:[]};
               
                var options ={size : new GSize(514,340)};
                
                // Fin des options de la carte
	            if ( init && init == '1' )
                     ;
                else
                {
                    zoom = map.getZoom();
                    pointXYNow = map.getCenter();
                    Xmap = pointXYNow.x;
                    Ymap = pointXYNow.y;
                    mapTypeUsed = map.getCurrentMapType();
                }
                map = new GMap2(document.getElementById("map"),options);
               
                
                //map = new GMap2(document.getElementById("map"));
           
	            // Ajout Copyright  
                var copyright = new GCopyright(1,
                                                new GLatLngBounds(new GLatLng(-90, -180), 
                                                new GLatLng(90, 180)),
                                                0,
                                                "Bouygues Telecom");

                var copyrightCollection = new GCopyrightCollection('');
                copyrightCollection.addCopyright(copyright);
                    
                var tileBT= new GTileLayer(copyrightCollection,10,17);
        	        
                tileBT.myLayers = list;
                tileBT.myFormat = 'image/png';
                tileBT.myBaseURL = document.getElementById('UrlPage').value;
                tileBT.getTileUrl = CustomGetTileUrl;
                       
                //tileBT.getOpacity = function() {return 0.25;}
                tileBT.getOpacity = function() {return 0.4;}
                    
                var opts ={maxResolution : 17, minResolution :12};
                
                 
                var layer1=[G_NORMAL_MAP.getTileLayers()[0],tileBT]; 
                var custommap1 = new GMapType(layer1, G_NORMAL_MAP.getProjection(), "Carte", opts);
                map.addMapType(custommap1);

                var layer2=[G_SATELLITE_MAP.getTileLayers()[0],tileBT]; 
                var custommap2 = new GMapType(layer2, G_SATELLITE_MAP.getProjection(), "Satellite",opts);
                map.addMapType(custommap2);
                                   
                var layer3=[G_HYBRID_MAP.getTileLayers()[0],G_HYBRID_MAP.getTileLayers()[1],tileBT]; 
                var custommap3 = new GMapType(layer3, G_HYBRID_MAP.getProjection(), "Mixte",opts);
                map.addMapType(custommap3);
                    
                map.addControl(new GLargeMapControl());
                map.addControl(new GMapTypeControl());
                map.addControl(new GScaleControl());

                map.removeMapType(G_SATELLITE_MAP);
                map.removeMapType(G_NORMAL_MAP);
                map.removeMapType(G_HYBRID_MAP);       

                
                map.setCenter(new GLatLng(Ymap,Xmap), zoom); 
                
                
                /* Ajout MBO*/
				/* ... Un observateur d'événement est ajouté à la carte nommée "map"... */ 
				/* ... L'évenement détecté est "zoomend" (Détecte la fin du zoom sur la carte)... */ 
				/* ... Lorsque la fin du zoom est détectée, la fonction située entre les {} sera alors executée ... */ 
				google.maps.Event.addListener(map, "zoomend", function(){ 
				/* ... La variable "niveauZoom" prend la valeur actuelle du niveau de zoom de la carte nommée "maCarte" ... */ 
				niveauZoom = map.getZoom(); 
				if(niveauZoom<16){
				   document.getElementById("HotSpot").disabled=false;
				   //document.getElementById("HotSpot").checked=true;
				   document.getElementById("labelHotSpot").disabled=false;
				   
				}
				else
				{
					document.getElementById("HotSpot").disabled=true;
//					document.getElementById("HotSpot").checked=false;
//					layerHS=false;
					document.getElementById("labelHotSpot").disabled=true;
				}
				
				}); 

				/* fin ajout MBO*/
				
                if ( mapTypeUsed != null)
                {
									var name = mapTypeUsed.getName();
									if (name != null)
										if (name == "Carte")
											map.setMapType(custommap1);
											else
												if (name == "Satellite")
													map.setMapType(custommap2);	
												else
													map.setMapType(custommap3);	
				}
				// Ajout MBO
				else
				{
					 //
					 //map.setMapType(custommap1);
					
				}
				// Fin ajout MBO
            }
            else
            {
                document.getElementById('map').innerHTML = "<img src='images/map.JPG' alt='carte' />";
                document.getElementById('OK').disabled = true;
                alert('service Google Maps indisponible');
            }
        }
        else 
        {
            document.getElementById('map').innerHTML = "<img src='images/map.JPG' alt='carte' />";
            document.getElementById('OK').disabled = true;
            alert('service Google Maps indisponible');
        }
}
        
	/** Cette méthode construit la liste des couches selon choix de l'utilisateur
    *   Sans arguments
    *   retourne la liste des couches
    */
    function buildLayers()
    {
        var sLayer="10,11";
        
        if (layerVoix)
        {
            sLayer = "3,4,5,10,11";
        }
        
        if (layerEdge)
        {
            sLayer = "3,4,5,9,10,11";
        }
                
        if (layer3G)
        {
            sLayer = "6,7,8,10,11";
        }
        
        if (layer3GP)
        {
			sLayer = "0,1,2,10,11";
        }
        
        //Ajout NHA
        if (layerHS)
		{
			sLayer = sLayer + ",12";
		}
		//Fin ajout NHA
        return sLayer;
    }
    
    /** Recherche des différents résultats qui répondent aux critères de l'utilisateur
    *  ne prend pas de paramètres
    */
    function showAddressDetails()
    {
        var divResult = document.getElementById('searchResult');
        divResult.innerHTML = "";
        var geocoder = new GClientGeocoder();
        
        var adresse = document.getElementById('rue').value;
        
        adresse += ', ' + document.getElementById('ville').value;
        
        adresse += ', ' + document.getElementById('codePostal').value;
        
        geocoder.getLocations(adresse + ',fr', function (coordonnees) 
        {
            if (coordonnees.Placemark)
            {
                var nbrPlacemarks = coordonnees.Placemark.length;
                var iPlacemark;
                var placemark;
                for (iPlacemark=0 ; iPlacemark<nbrPlacemarks ; iPlacemark++)
                {
                    placemark = coordonnees.Placemark[iPlacemark];
                    createMarkerOnPlacemark(map, placemark);
                    
                    if (iPlacemark == 0)
                    {
                        centerMap(placemark.Point.coordinates[1], placemark.Point.coordinates[0]);
                    }
                }
            }
            else
            {
                alert('pas de résultats pour cette adresse');
            }
        });
     }
 
    function MyException (message)
    {
        this.name = "Erreur";
        this.message = message;
    }
       
    var createMarkerOnPlacemark = function (map, placemark)
    {
        var coord = placemark.Point.coordinates;
        var marker = new GMarker(new GLatLng(coord[1], coord[0]));
        
        GEvent.addListener(marker, "click", function() {
            var html = placemark.address;
            html += '<p>';
            if (placemark.AddressDetails.Country.AdministrativeArea)
            {
                var administrativeArea = placemark.AddressDetails.Country.AdministrativeArea;
                html += administrativeArea.AdministrativeAreaName;
                if (administrativeArea.SubAdministrativeArea)
                {
                    var subAdministrativeArea = administrativeArea.SubAdministrativeArea;
                    html += '<br />';
                    html += subAdministrativeArea.SubAdministrativeAreaName;
                    if (subAdministrativeArea.Locality)
                    {
                        var locality = subAdministrativeArea.Locality;
                        html += '<br />';
                        html += locality.LocalityName;
                        if (locality.DependentLocality)
                        {
                            html += '<br />';
                            html += locality.DependentLocality.DependentLocalityName;
                        }
                    }
                }
            }
            html += '</p>';
            marker.openInfoWindowHtml(html);
        }); // addListener
        map.addOverlay(marker);
        
        var html = "";
        myLink = document.createElement("a");
        myLink.setAttribute("href","javascript:centerMap("+ placemark.Point.coordinates[1] + ", " + placemark.Point.coordinates[0] + ");");
        myText = document.createTextNode(placemark.address);
        myLink.appendChild(myText);
        
        html += ', ';
        if (placemark.AddressDetails.Country.AdministrativeArea)
        {
            var administrativeArea = placemark.AddressDetails.Country.AdministrativeArea;
            html += administrativeArea.AdministrativeAreaName;
            if (administrativeArea.SubAdministrativeArea)
            {
                var subAdministrativeArea = administrativeArea.SubAdministrativeArea;
                html += ', ';
                html += subAdministrativeArea.SubAdministrativeAreaName;
                if (subAdministrativeArea.Locality)
                {
                    var locality = subAdministrativeArea.Locality;
                    html += ', ';
                    html += locality.LocalityName;
                }
            }
        }
        myTxt = document.createTextNode(html);
        myP = document.createElement("p");
        myP.appendChild(myLink);
        myP.appendChild(myTxt);
        
        var divResult = document.getElementById('searchResult');
        divResult.appendChild(myP);
        divResult.style.display = 'block';
    }; // createMarkerOnPlacemark
    
    function centerMap(xValue, yValue)
    {
        Xmap = yValue;
        Ymap = xValue;
        map.setCenter(new GLatLng(Ymap,Xmap), 14);
        map.savePosition();
    }
    
        function map_onclick()
    {
        ;
    }