		function coordonnees() {
			var center = map.getCenter();
			var coords = document.getElementById("coordonnees");
			// on le met dans le div
			coords.innerHTML = center.toString();
		}
		
		
		// addAddressToMap() is called when the geocoder returns an
	    // answer.  It adds a marker to the map with an open info window
	    // showing the nicely formatted version of the address and the country code.
	    function addAddressToMap(response) {
	      if (!response || response.Status.code != 200) {
	        alert("Impossible de localiser cette adresse.");
			/*
			var chaine = response.name;
			var reg=new RegExp("[,]+", "g");
			var tableau=chaine.split(reg);
			var newchaine = ", ";
			newchaine = newchaine.concat(tableau[1]+", "+tableau[2]+", "+tableau[3]);
			
			findLocation(newchaine);
			*/
			return false;
		  } else {
	        place = response.Placemark[0];
	        //return place.Point.coordinates[1];
	      }
	    }
		
		
		/****** MARKERS *********/
		
		
		
		
		
		//création d'une icone personnalisé qui servira pour les markers
		var hebergement = new GIcon(); 
	    hebergement.image = 'http://www.ardeche-guide.com/templates/1/medias/google_map/hebergement.png';
	    //hebergement.shadow = 'http://clients.insign.fr/ardeche_guide/sitra/google_map_icons/ombre_village.png';
	    hebergement.iconSize = new GSize(31, 35);
	    //hebergement.shadowSize = new GSize(52, 35);
	    hebergement.iconAnchor = new GPoint(15, 35);
	    hebergement.infoWindowAnchor = new GPoint(31, 0);	
		
		//création d'une icone personnalisé qui servira pour les markers
		var activites = new GIcon(); 
	    activites.image = 'http://www.ardeche-guide.com/templates/1/medias/google_map/activites.png';
	    activites.iconSize = new GSize(31, 35);
	    activites.iconAnchor = new GPoint(15, 35);
	    activites.infoWindowAnchor = new GPoint(31, 0);
		
		//création d'une icone personnalisé qui servira pour les markers
		var evenements = new GIcon(); 
	    evenements.image = 'http://www.ardeche-guide.com/templates/1/medias/google_map/evenements.png';
	    evenements.iconSize = new GSize(31, 35);
	    evenements.iconAnchor = new GPoint(15, 35);
	    evenements.infoWindowAnchor = new GPoint(31, 0);
		
		
		//création d'une icone personnalisé qui servira pour les markers
		var incontournables = new GIcon(); 
	    incontournables.image = 'http://www.ardeche-guide.com/templates/1/medias/google_map/patrimoine-culturel-ardeche.png';
	    incontournables.iconSize = new GSize(31, 35);
	    incontournables.iconAnchor = new GPoint(15, 35);
	    incontournables.infoWindowAnchor = new GPoint(31, 0);
		
		
		
		//création d'une icone personnalisé qui servira pour les markers
		var villages = new GIcon(); 
	    villages.image = 'http://www.ardeche-guide.com/templates/1/medias/google_map/villages-caracteres.png';
	    villages.iconSize = new GSize(31, 35);
	    villages.iconAnchor = new GPoint(15, 35);
	    villages.infoWindowAnchor = new GPoint(31, 0);
		
		//création d'une icone personnalisé qui servira pour les markers
		var prefecture = new GIcon(); 
	    prefecture.image = 'http://www.ardeche-guide.com/templates/1/medias/google_map/prefecture.png';
	    prefecture.iconSize = new GSize(31, 35);
	    prefecture.iconAnchor = new GPoint(15, 35);
	    prefecture.infoWindowAnchor = new GPoint(31, 0);
		
		//création d'une icone personnalisé qui servira pour les markers
		var ssprefecture = new GIcon(); 
	    ssprefecture.image = 'http://www.ardeche-guide.com/templates/1/medias/google_map/sous-prefecture.png';
	    ssprefecture.iconSize = new GSize(31, 35);
	    ssprefecture.iconAnchor = new GPoint(15, 35);
	    ssprefecture.infoWindowAnchor = new GPoint(31, 0);
		
		
		/***** FIN MARKERS ********/
		
		
		//placer un point sur tournon sur rhone : (45.06867131826394, 4.830894470214844)
		//faire afficher une infobulle styler 
		function createMarker(point, name, address, link, type) {
	      var marker = new GMarker(point, type);
	      var html = address;
	      var html1 = html + "<br /><a href=\""+ link +"\" >Voir la fiche complète</a>";
		    GEvent.addListener(marker, 'click', function() {
				var maxContentDiv = document.createElement('div');
		        maxContentDiv.innerHTML = 'Chargement...'
		        marker.openInfoWindowHtml("<table width='350' height='300'><tr height='300'><td height='300'>" + html1 + "</td></tr></table>");
		            //{,maxContent: maxContentDiv, 
		            // maxTitle: "Mini Fiche : "}
		        var iw = map.getInfoWindow();
				GEvent.addListener(iw, "maximizeclick", function() {
					GDownloadUrl("minifiche.php", function(data) { //attention l'url doit etre sur le meme site sinon ca ne passe pas... les données retournées sont dans data.
						maxContentDiv.innerHTML = data; //un ptit coup d'ajax pour recuperer les infos d'une page
					});
				  });
		        GEvent.addListener(iw, "restoreend", function() {
					//GDownloadUrl("http://www.cotedor-tourisme.com", function(data) {
						//alert('petit');
						//document.getElementById('navmap').style.display='';
		            //});
		        });
		        
				GEvent.addListener(iw, "closeclick", function() {
					//GDownloadUrl("http://www.cotedor-tourisme.com", function(data) {
						// document.getElementById('navmap').style.display='';
		            //});
		        });
		    });
	      
			//--- infoalt
			var infoalt = new InfoAlt(marker,name,4);
			marker.infoalt = infoalt;
			map.addOverlay(infoalt);
			GEvent.addListener(marker,'mouseover',function(){
			this.infoalt.show();
			});
			GEvent.addListener(marker,'mouseout',function(){
			this.infoalt.hide();
			});
	        //FIN --- infoalt
	      return marker;
	    }
		
		
		//faire afficher un marker sans click ni rien juste mouseover
		function createMarkerSimple(point, name, type) {
			var marker = new GMarker(point, type);
			//--- infoalt
			var infoalt = new InfoAlt(marker,name,4);
			marker.infoalt = infoalt;
			map.addOverlay(infoalt);
			GEvent.addListener(marker,'mouseover',function(){
			this.infoalt.show();
			});
			GEvent.addListener(marker,'mouseout',function(){
			this.infoalt.hide();
			});
	        //FIN --- infoalt
			
			return marker;
	    }
		
		
		//faire afficher un marker avec lien sur le marker vers la fiche sitra
		function createMarkerLien(point, name, link, type) {
			var marker = new GMarker(point, type);
			//var html = address;
			//var html1 = html + "<br /><a href=\""+ link +"\" target=_blank>Voir la fiche complète</a>";
		    GEvent.addListener(marker, 'click', function() {
				window.open(link,'_blank','toolbar=1, location=1, directories=1, status=1, scrollbars=1, resizable=1, copyhistory=1, menuBar=1');
		    });
	      
			//--- infoalt
			var infoalt = new InfoAlt(marker,name,4);
			marker.infoalt = infoalt;
			map.addOverlay(infoalt);
			GEvent.addListener(marker,'mouseover',function(){
			this.infoalt.show();
			});
			GEvent.addListener(marker,'mouseout',function(){
			this.infoalt.hide();
			});
	        //FIN --- infoalt
			
			return marker;
	    }
		
		//faire afficher un marker avec lien sur le marker vers la fiche sitra
		function createMarkerLienNotBlank(point, name, link, type) {
			var marker = new GMarker(point, type);
			//var html = address;
			//var html1 = html + "<br /><a href=\""+ link +"\" target=_blank>Voir la fiche complète</a>";
		    GEvent.addListener(marker, 'click', function() {
				window.location.href= link;
		    });
	      
			//--- infoalt
			var infoalt = new InfoAlt(marker,name,4);
			marker.infoalt = infoalt;
			map.addOverlay(infoalt);
			GEvent.addListener(marker,'mouseover',function(){
			this.infoalt.show();
			});
			GEvent.addListener(marker,'mouseout',function(){
			this.infoalt.hide();
			});
	        //FIN --- infoalt
			
			return marker;
	    }
		
		
		//--------------info Alt ----------------------------------


		function InfoAlt(marker, text, padding){
			this.marker_ = marker;
			this.text_ =  text;
			this.padding_ = padding;
		}

		InfoAlt.prototype = new GOverlay();

		InfoAlt.prototype.initialize = function(map){
			var div = document.createElement("div");
			div.appendChild(document.createTextNode(this.text_));
			div.className = 'InfoAlt';
			div.style.position = 'absolute';
			div.style.visibility = 'hidden';
			map.getPane(G_MAP_FLOAT_PANE).appendChild(div);
			this.map_ = map;
			this.div_ = div;
		}

		InfoAlt.prototype.remove = function(){
			this.div_.parentNode.removeChild(this.div_);
		}

		InfoAlt.prototype.copy = function(){
			return new InfoAlt(this.marker_,this.text_,this.padding_);
		}

		InfoAlt.prototype.redraw = function(force){
			if (!force) return;
			var markerPos = this.map_.fromLatLngToDivPixel(this.marker_.getPoint());
			var iconAnchor = this.marker_.getIcon().iconAnchor;
			var xPos = Math.round(markerPos.x - this.div_.clientWidth / 2);
			var yPos = markerPos.y - iconAnchor.y - this.div_.clientHeight - this.padding_;
			this.div_.style.top = yPos + 'px';
			this.div_.style.left = xPos + 'px';
		}

		InfoAlt.prototype.show = function(){
			this.div_.style.visibility = 'visible';
		}

		InfoAlt.prototype.hide = function(){
			this.div_.style.visibility = 'hidden';
		}
		//--------------FIN info Alt ----------------------------------
		
		
		
		
		
		//afficher/masquer la div du chargement
		function togglediv(id)
		{
			el = document.getElementById(id);
			var display = el.style.display ? '' : 'none';
			el.style.display = display;
		}
	
	
	
		//fonction qui permet d'aller chercher dans xml ou dans un tableau l'ensemble des marker à place sur la carte
		function initLayer(strObj,markerType,iconType){
			if(eval(strObj+".length < 1")){
				GDownloadUrl("http://www.ardeche-guide.com/templates/1/kml/coordonnees_utf8.php?type="+strObj, function(data) {
					var xml = GXml.parse(data);
					var markers = xml.documentElement.getElementsByTagName("Placemark");              
					
					for (var i = 0; i < markers.length; i++) {        
						var name = GXml.value(markers[i].getElementsByTagName("name")[0]);
						var address = GXml.value(markers[i].getElementsByTagName("description")[0]);
						var link = GXml.value(markers[i].getElementsByTagName("lien")[0]);
						var type = "";
						var coords = GXml.value(markers[i].getElementsByTagName("coordinates")[0]);
						var bits = coords.split(",");
		            
						var point = new GLatLng(parseFloat(bits[1]),parseFloat(bits[0]));
						
						if(markerType=="lien")
							var marker = createMarkerLien(point, name, link, iconType); 
						else{
							if(markerType=="lien_not_blank")
								var marker = createMarkerLienNotBlank(point, name, link, iconType);
							else{
								if(markerType=="simple")
									var marker = createMarkerSimple(point, name, iconType);        
								else{
									if(markerType=="complet")
										var marker = createMarker(point, name, address, link, iconType);        
								}
							}
						}
						
						
						eval(strObj+".push(marker)");// on ajoute chaque marker dans le tableau correspondant (ex les villes)          
						eval("map.addOverlay("+strObj+"["+strObj+".length-1])"); //et on ajoute les markers un par un sur la carte
						//eval(strObj+"["+strObj+".length-1].setImage('http://clients.insign.fr/ardeche_guide/sitra/google_map_icons/'+strObj+'.png')");  // on défini l'image du marker selon le xml   
					}
				});
				
	        }else{
				//togglediv('attente');
				//setTimeout("togglediv('attente')",1000);
				for (var i = 0; i < eval(strObj+".length"); i++) {
					eval(strObj+"[i]").show();
					//eval(strObj+"[i].setImage('http://clients.insign.fr/ardeche_guide/sitra/google_map_icons/'+strObj+'.png')"); 
				}
			}
		}
		
		
		//cacher les markers sur la carte.
		function videLayer(strObj){
			//togglediv('attente');
			//setTimeout("togglediv('attente')",3000);
			for (var i = 0; i < eval(strObj+".length"); i++) {
				eval(strObj+"[i]").hide();
				//map.removeOverlay(eval(strObj+"[i]"));
			}
		}

		
		//afficher/masquer les markers selon un type
		function Gtoggle(type,typeMarker,iconType) {
			if (eval('toggleState'+type) == 1) {
				eval('videLayer("'+type+'")'); 
			    eval('toggleState'+type+'= 0') ;
			    //eval(type+'=""'); 
			}else{
				initLayer(type,typeMarker,iconType);
				eval('toggleState'+type+'= 1') ;
			}
		}
	
		
		
		//masquer tous les markers  sur la carte
		function GHideAll() {
			for (var i = 0; i < all_types.length; i++) {
				if (eval('toggleState'+all_types[i]) == 1) {
					eval('videLayer("'+all_types[i]+'")'); 
				    eval('toggleState'+all_types[i]+'= 0') ;
				}
			}
		}
		
		
		
		//masque certains markers d'un type choisi
		function GHideSome(type) {
			if (eval('toggleState'+type) == 1) {
				eval('videLayer("'+type+'")'); 
				eval('toggleState'+type+'= 0') ;
			}
		}
		
		//récuperer la proximité entre 2 élements
		function getProximity(){
			var point_tournon = villes[0].getPoint(); //on récupere les points déja marker sur la carte avec getPoint
			var point_privas = villes[1].getPoint(); //on récupere les points déja marker sur la carte avec getPoint
			/*alert(parseInt(point_tournon.distanceFrom(point_privas)));*/
			var gdir=new GDirections(null,null); //new Gdirections à valeur null et null, car on trace pas sur la carte en cours, et on ne fait pas afficher non plus les détails du trajets (route à prendre...etc)
			
			gdir.loadFromWaypoints([point_tournon,point_privas]); //on charge donc notre directions
			GEvent.addListener(gdir,"load", function() {
				alert("distance entre tournon et privas (par la route) : "+gdir.getDistance().meters+" mètres"); //on récupere la distance sur le chargement de la gdirections
			});
		}
