// parcours.js	

// Global variables	

var markers_point_info = new Array();	// tableau des markers_point_info		
var data;// initialisé dans init_fiche
var	map=null;
var distance;
var lineColor = "#0000af";
var lineWeight = 3;
var lineOpacity = .8;	
var points = new Array();
var corres=new Array();
corres["al"]="Alsace";
corres["aq"]="Aquitaine";
corres["au"]="Auvergne";
corres["bn"]="Basse Normandie";
corres["bo"]="Bourgogne";
corres["br"]="Bretagne";
corres["ce"]="Centre";
corres["ca"]="Champagne Ardenne";
corres["co"]="Corse";
corres["fc"]="Franche Comté";
corres["hn"]="Haute Normandie";
corres["if"]="Ile de France";
corres["lr"]="Lanquedoc Roussillon";
corres["li"]="Limousin";
corres["lo"]="Lorraine";
corres["mp"]="Midi Pyrénées";
corres["nc"]="Nord Pas de Calais";
corres["pl"]="Pays de Loire";
corres["pi"]="Picardie";
corres["pc"]="Poitou Charente";
corres["pa"]="Provence Alpes Côte d'Azur";
corres["ra"]="Rhône Alpes";
corres["france"]="France";
corres["suisse"]="Suisse";	
corres["belgique"]="Belgique";
corres[""]="?";	

var corres1=new Array();
corres1["rando"]="Rando pédestre/Course à pied";
corres1["velo"]="Vélo de route";
corres1["vtt"]="VTT";
corres1["fond"]="Ski de fond";
corres1["rando_s"]="Ski de rando";
corres1["raquettes"]="Raquettes";
corres1["roller"]="Ski roue, Roller";

var longueur_poly_km;

function convertit_entite_html(texte){	
	texte = texte.replace(/&eacute;/g,'é');
	texte = texte.replace(/&ccedil;/g,'ç');
	texte = texte.replace(/&egrave;/g,String.fromCharCode(232));
	texte = texte.replace(/&ecirc;/g,String.fromCharCode(234));	
	texte = texte.replace(/&agrave;/g,String.fromCharCode(224));	
	texte = texte.replace(/&ugrave;/g,String.fromCharCode(249));
	texte = texte.replace(/&acirc;/g,'â');	
	texte = texte.replace(/&icirc;/g,'î');
	texte = texte.replace(/&ocirc;/g,'ô');
	texte = texte.replace(/&euml;/g,'ë');
	texte = texte.replace(/&iuml;/g,String.fromCharCode(239));
	texte = texte.replace(/&ucirc;/g,String.fromCharCode(251));
	texte = texte.replace(/&uuml;/g,'ü');	
	texte = texte.replace(/&quot;/g,'"');	
 return texte;
}

function complete_formu1() {	
 
 // formulaire complété	à l'aide de l'objet data qui a été calculé avec init_fiche()
		$("comment1").value=convertit_entite_html(data.comment);	
		$("ville1").value=convertit_entite_html(data.ville);			
		$("depart1").value=convertit_entite_html(data.depart);			
		$("code_parcours1").value=data.code_parcours;	
		$("titre_parcours1").innerHTML=data.titre;		
			
		div_region=$("region1");	
		for (i=0;i<div_region.options.length;i++){	
		 if 	(div_region.options[i].value==data.region	)	{	
			 div_region.options[i].selected=true;
			} else {	
			 div_region.options[i].selected=false;
			};	 
		};
		
		div_activite=$("activite1");	
		for (i=0;i<div_activite.options.length;i++){	
		 if 	(div_activite.options[i].value==data.activite	)	{	
			 div_activite.options[i].selected=true;
			} else {	
			 div_activite.options[i].selected=false;
			};	 
		};
		
		// rendre le formulaire visible	et choisir le bouton modif		et supp
	 $("formulaire").style.display="block";	
		$("b_modif").style.display="block";	
		$("b_ajout").style.display="none";	
		$("b_supp").style.display="block";
		$("rappel_parcours1").innerHTML="";			
}

function init_avis(code_parcours) { 
	if (!window.XMLHttpRequest) {
	  XMLHttpRequest = function() {
	    return new ActiveXObject("Microsoft.XMLHTTP");
	  };
		};
	request = new XMLHttpRequest();
	request.open("GET", "def_avis.php?code_parcours="+code_parcours, false);
	request.send("");
	//lecture réponse ajax. Attention	: en local, reponse contient au début /r/n		
	var reponse=request.responseText;
	if (reponse.substr(0,2)=="\r\n") {
	 reponse=reponse.substr(2,reponse.length-2);
	};	
	//alert(escape(reponse));
	
	// affichage commentaires
	var commentaires="";		
	if (	reponse.substr(0,4)!="vide") {
		// traduction json vers tableau js
		var data1 = reponse.traduisJSON();	
		//alert("data1[3].nom_avis : "+data1[3].nom_avis);
		
		var i=1;
		while(data1[i]) {
		 var jour1=data1[i].jour_avis;
			var nom1=data1[i].nom_avis;
		 var retour=new RegExp("\r\n","g");
		 var texte1=data1[i].texte_avis.replace(retour,"<br/>");	
		 commentaires+="<p>"+jour1+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+nom1+"<br/><br/>"+texte1+"</p>";	
			i++;
		};	
	} else {
	 commentaires+="Pas de commentaires sur ce parcours. Donnez-nous votre avis !";
	};
	//alert("commentaires : "+commentaires);
	$("div_avis").innerHTML=commentaires;
	$("div_avis").style.display="block";
}

function init_fiche(code_parcours) {	
 document.location="#debut_recherche";
 //alert (code_parcours);	
	if (!window.XMLHttpRequest) {
	  XMLHttpRequest = function() {
	    return new ActiveXObject("Microsoft.XMLHTTP");
	  };
		};
		request = new XMLHttpRequest();
		request.open("GET", "def_fiche.php?code_parcours="+code_parcours, false);
		request.send("");
		var reponse=request.responseText;	// réception d'un objet dynamique	
		//alert(reponse);	
		
		// traduction json vers tableau js
		data = reponse.traduisJSON();
		//alert(data.existe_profil);
		//alert(data.titre+" "+data.comment);	
		
		// affichage titre	(et lien carte ign si parcours ligne)
		var ligne_titre="";
		if (data.ligne=="V") {
		 ligne_titre="<div class=\"titre_c\">"+data.titre+"</div>";
		 ligne_titre+="<div class=\"lien_ign\"><a href=\"javascript:ouvre_fen_ign('carte_ign.php?code_parcours="+code_parcours+"')\" >Fond de carte IGN, Cliquez ici ! </a></div>";
		} else	{
		 ligne_titre=data.titre;
		};		
		$("titre_carte").innerHTML=ligne_titre;			
			
		// affichage lien impression	
		var html="<img src='image/fleche1.gif' border='0' width='12' height='12' alt=''>";
		html+=" <a href='imprime.php?code="+code_parcours+"' target='_blank'> Imprimer la fiche ( parcours, détail et profil). </a>";
		$("impression").innerHTML=html;	
		
		// affichage lien export GPX	pour les parcours linéaires
		if (data.ligne=="V") {
			var html="<img src='image/fleche1.gif' border='0' width='12' height='12' alt=''>";
			html+=" <a href='recherche_export_gpx.php?code_parcours="+code_parcours+"' target='_blank'> Exporter sous la forme d'un fichier GPX (GPS). </a>";
			$("export_gpx").innerHTML=html;	
		};
		
		// chargement détails
		//if (data.ligne=="V") {$("type_parcours2").innerHTML="Type de parcours : Sentier, chemin, route";} else {$("type_parcours2").innerHTML="Type de parcours : Route";} ;
		$("activite2").innerHTML="Activité : "+corres1[data.activite];
		$("region2").innerHTML="Région : "+corres[data.region];
		$("ville2").innerHTML="Ville la plus proche : "+data.ville;
		$("depart2").innerHTML="Lieu de départ : "+data.depart;
		var retour=new RegExp("\r\n","g");
		var comment1=data.comment.replace(retour,"<br/>");	
		$("comment2").innerHTML=comment1+"<br/><br/>"+data.auteur;	
		
			// chargement photo parcours si elle existe
		if (data.existe_photo_parcours=="true") {
		 var alea=Math.random();	
		 var adr_photo_parcours="photo_parcours/photo_parcours"+code_parcours+".jpg?alea="+alea;	
		 $("photo_parcours").src=adr_photo_parcours;
			$("div_photo_parcours").style.display="block"; 
		} else {	
		 $("div_photo_parcours").style.display="none"; 
		};
		
		// chargement du profil s'il existe
		if (data.existe_profil=="true") {	
		
		 //calcul dim image (au départ 780*210)
		 var largeur_col_droite=	screen.width-360;
				if (largeur_col_droite<780) {
				 var coeff=largeur_col_droite/780;	
					$("profil").style.width=largeur_col_droite+"px";
				 $("profil").style.height=Math.round(210*coeff)+"px";	
				};	
				
		 var adr_profil="profil/profil"+code_parcours+".png";	
			$("div_profil").style.display="block";
		 $("profil").src=adr_profil;
		}	else {
		 $("profil").src="";	
			$("div_profil").style.display="none";
		};
		
		// affichages commentaires		et formulaire	avis
		if (page_recherche) {
		 init_avis(code_parcours);
		 document.formu_avis.code_avis.value=code_parcours;
			$("div_formu_avis").style.display="block";		
		};
					
		// chargement de la carte
		load_carte();	
		
		// ajout init point info	
	 init_point_info(code_parcours);
		
}// fin function init_fiche()	

function ajoute_marker_km(point,nb) {
 // construction du marker	km	
	var icon = new GIcon();
	if(nb>0) {
	 icon.image="km/"+nb+".png";	
		icon.iconSize = new GSize(30, 40);
		icon.iconAnchor = new GPoint(15, 40);	
	} else {	
	 icon.image="depart.png";	
		icon.iconSize = new GSize(10, 10);	
		icon.iconAnchor = new GPoint(5,5);	
	};
		 
 var marker = new GMarker(point,icon);
 map.addOverlay(marker);	
}		

function init_ligne(){		
	function ajoute_bornes_km_ligne(){
		//ajout des markers km	
		var point=new GLatLng(poly.getVertex(0).lat(),poly.getVertex(0).lng());	
	 ajoute_marker_km(point,0);
		
		var dist=0;
		var old_dist=0;	
		var num_borne=1;
		if(longueur_poly_km<20) {
		 unite=1000;
		} else {
		 if(longueur_poly_km<50) {
		  unite=2000;
			} else	{	
			 unite=5000;
			};
		};
		
		if(poly.getVertexCount()>0) {
			for(var j=1; j<poly.getVertexCount();j++) {	
			 old_dist=dist;
				var p2=poly.getVertex(j);
				var p1=poly.getVertex(j-1);
				dist+=p2.distanceFrom(p1);
				if (dist>num_borne*unite) {	
				 while(dist>num_borne*unite){
						var coeff=(num_borne*unite - old_dist)/(dist-old_dist);
						var lat=Number(p1.lat()) + Number((p2.lat() - p1.lat())*coeff);		
						var lng=Number(p1.lng()) + Number((p2.lng()-p1.lng())*coeff);
						//alert(lat+"      "+lng);
						var point=new GLatLng(lat,lng);
						ajoute_marker_km(point,num_borne*unite/1000);
						num_borne++;	
					};	// fin while(dist>km*unite)
				};// fin if (dist>km*unit)
			};	//fin 	for(var j=1; j<poly.getVertexCount();j++)	
		}; // fin 	if(poly.getVertexCount()>0)	
	
	}// fin 	function ajoute_bornes_km()

 // construction de la polyline
 var poly = new GPolyline(points, lineColor, lineWeight, lineOpacity);
 map.addOverlay(poly);
	longueur_poly_km=poly.getLength()/1000;	
	$("distance").innerHTML="Longueur du parcours : " + longueur_poly_km.toFixed(3) + " km";	
	ajoute_bornes_km_ligne();
}	// fin init_ligne

	function init_route() {	
			function ajoute_bornes_km_route(){	
			 
				//ajout du marker départ
				var point=new GLatLng(gpolys[0].getVertex(0).lat(),gpolys[0].getVertex(0).lng());	
			 ajoute_marker_km(point,0);
				
				//init variables
				var dist=0;
				var old_dist=0;
				var old_i=0;
				var old_j=0;
				var num_borne=1;
				// calcul unite
				var unite;	
			 if(longueur_poly_km<20) {
				 unite=1000;
				} else {
				 if(longueur_poly_km<50) {
				  unite=2000;
					} else	{
					 unite=Math.ceil(longueur_poly_km/100)*5000;
					};
				};
			
				//ajout des markers km		
				//alert("gpolys.length : "+gpolys.length);
				for (var i=0; i<gpolys.length; i++) {		
				 if(gpolys[i].getVertexCount()>0) {
					//alert("gpolys["+i+"].getVertexCount() : "+gpolys[i].getVertexCount());
						for(var j=1; j<gpolys[i].getVertexCount();j++) {	
							var p2=gpolys[i].getVertex(j);// point courant
							var p1=gpolys[old_i].getVertex(old_j);	//point précédent
							var old_dist=dist;
							dist+=p2.distanceFrom(p1);
							if (dist>num_borne*unite) {	
							 while(dist>num_borne*unite){
									var coeff=(num_borne*unite - old_dist)/(dist-old_dist);
									var lat=Number(p1.lat()) + Number((p2.lat() - p1.lat())*coeff);		
									var lng=Number(p1.lng()) + Number((p2.lng()-p1.lng())*coeff);
									//alert(lat+"      "+lng);
									var point=new GLatLng(lat,lng);
									ajoute_marker_km(point,num_borne*unite/1000);
									num_borne++;	
								};	// fin while(dist>km*unite)
							};// fin if (dist>km*unit)	
							old_i=i;
							old_j=j;
						};	//fin 	for(var j=1; j<gpolys[i].getVertexCount();j++)
					};	// fin if(gpolys[i].getVertexCount()>0)	
				}; // fin for (var i=0; i<gpolys.length; i++)				
			}// fin 	function ajoute_bornes_km_route()
		
	 //enregistrements du parcours		en laissant du temps à  dirn	!	
		 var gpolys =new Array();
			var dirn=new GDirections();	
			var compteur=0;	
			distance=0;
			var der_point=points.length-1;	
			dessine_morceau(compteur);	
			
			
			GEvent.addListener(dirn,"load", function() {
			 map.addOverlay(dirn.getPolyline());
				var poly=dirn.getPolyline();
				gpolys.push(poly);
				distance+=poly.getLength();	
				longueur_poly_km=distance/1000;
		  $("distance").innerHTML="Longueur du parcours : " + longueur_poly_km.toFixed(3) + " km";	
			 compteur++;
			 if (compteur<der_point){
					sleep(100);
					dessine_morceau(compteur);
				} else {
				 ajoute_bornes_km_route();
				};				 
	  });
			
			function sleep(delai){	
			 var date_debut=new Date();
				var max=date_debut.getTime()+delai;	
				var date_cour=new Date();
				while(date_cour.getTime()<max){
					date_cour=new Date();
				};
			}
						
			function		dessine_morceau(compteur){
				var point1=points[compteur];
				var point2=points[compteur+1];
	   dirn.loadFromWaypoints([point1.toUrlValue(6),point2.toUrlValue(6)],{getPolyline:true});	
			}	
	} // fin init_route()
	
function load_carte() {
 //data a été calculé avec init_fiche() 
	var parcours=data.parcours;
	var ligne=data.ligne;
	//alert(parcours);
	//alert(ligne);
	
	//construction tableau points et objet bounds	
	var bounds = new GLatLngBounds();
	var couples=parcours.split(";");
	points.length=0;
	for(var i = 0; i < couples.length; i++) {	
	 var couple=couples[i].split(",");																												
		points[i]=new GLatLng(couple[0],couple[1]);
		bounds.extend(points[i]);
	};
	
	// définition map, zoom et centre de map
	map = new GMap2(document.getElementById("map")); 
 map.setCenter(new GLatLng(0,0),0); // nécessaire pour redéfinir zoom et centre par la suite	
	map.addControl(new GLargeMapControl()); // Zoom control	
	map.addControl(new GMapTypeControl());	// type de carte
	map.addMapType(G_PHYSICAL_MAP);// ajout bouton relief
	map.setZoom(map.getBoundsZoomLevel(bounds));
	map.setCenter(bounds.getCenter());	
	
	// ajout du parcours
	if	(ligne=="V") {
		init_ligne();
	} else {	
	 init_route();
	};	
}// fin function load_carte 

function init_fiche_imp(code_parcours) {	
 $("global").style.top=0;
 //alert (code_parcours);	
	if (!window.XMLHttpRequest) {
	  XMLHttpRequest = function() {
	    return new ActiveXObject("Microsoft.XMLHTTP");
	  };
		};
		request = new XMLHttpRequest();
		request.open("GET", "def_fiche.php?code_parcours="+code_parcours, false);
		request.send("");
		var reponse=request.responseText;	// réception d'un objet dynamique	
		//alert(reponse);	
		
		// traduction json vers tableau js
		data = reponse.parseJSON();
		//alert(data.existe_profil);
		//alert(data.titre+" "+data.comment);	
		
		// affichage titre
		$("titre_carte").innerHTML=data.titre;			
			
		// chargement détails
		//if (data.ligne=="V") {$("type_parcours2").innerHTML="Type de parcours : Sentier, chemin, route";} else {$("type_parcours2").innerHTML="Type de parcours : Route";} ;
		$("activite2").innerHTML="Activité : "+corres1[data.activite];
		$("region2").innerHTML="Région : "+corres[data.region];
		$("ville2").innerHTML="Ville la plus proche : "+data.ville;
		$("depart2").innerHTML="Lieu de départ: "+data.depart;
		var retour=new RegExp("\r\n","g");
		var comment1=data.comment.replace(retour,"<br/>");	
		$("comment2").innerHTML=comment1;	
		
		// chargement du profil s'il existe
		if (data.existe_profil=="true") {	
		 var adr_profil="profil/profil"+code_parcours+".png";	
			$("div_profil").style.display="block";
		 $("profil").src=adr_profil;
		}	else {
		 $("profil").src="";	
			$("div_profil").style.display="none";
		};
						
		// chargement de la carte
		load_carte();	
			
}// fin function init_fiche_imp()	

function ouvre_fen(fic,hauteur) {
 if (typeof(fenetre)=="object")	{ // test pour ne pas affichier deux fois le même fenêtre
	 if(!fenetre.closed){
	  fenetre.close();	
	 };	
	};
	var param="scrollbars=yes,width=500,height="+hauteur+",left=300,top=150,status=no";
 fenetre=open(fic,"",param);
}	

function ouvre_fen_ign(fic) {
 if (typeof(fenetre)=="object")	{ // test pour ne pas affichier deux fois le même fenêtre
	 if(!fenetre.closed){
	  fenetre.close();	
	 };	
	};
	var param="scrollbars=yes,width=1090,height=800,left=100,top=100,status=no";
 fenetre=open(fic,"",param);
}

function init_p(code_parcours,parcours,titre,ligne){	
	
	//construction tableau points et objet bounds	
	var bounds = new GLatLngBounds();
	var couples=parcours.split(";");
	points.length=0;
	for(var i = 0; i < couples.length; i++) {	
	 var couple=couples[i].split(",");																												
		points[i]=new GLatLng(couple[0],couple[1]);
		bounds.extend(points[i]);
	};
	
	// définition map, zoom et centre de map
	map = new GMap2(document.getElementById("map")); 
 map.setCenter(new GLatLng(0,0),0); // nécessaire pour redéfinir zoom et centre par la suite	
	map.addControl(new GLargeMapControl()); // Zoom control	
	map.addControl(new GMapTypeControl());	// type de carte
	map.addMapType(G_PHYSICAL_MAP);// ajout bouton relief
	map.setZoom(map.getBoundsZoomLevel(bounds));
	map.setCenter(bounds.getCenter());	
		
	// ajout du parcours
	if	(ligne=="V") {
		init_ligne();
	} else {	
	 init_route();
	};	
	
	// ajout init point info	
	init_point_info(code_parcours);
	
	// affichage titre	carte
	$("titre_carte").innerHTML=titre;		
	
	// chargement du profil	
	var adr_profil="profil/profil"+code_parcours+".png";	
	$("div_profil").style.display="block";
 $("profil").src=adr_profil;
	
	// rendre le formulaire visible	et choisir le bouton ajout
 $("formulaire").style.display="block";	
	$("b_ajout").style.display="block";		
	$("b_modif").style.display="none";
	$("b_supp").style.display="none";
	
	// formulaire  partiellemnt complété	
	$("code_parcours1").value=code_parcours;
	$("titre_parcours1").innerHTML=titre;	
	$("rappel_parcours1").innerHTML="Pour rendre public ce parcours, veuillez compléter le formulaire ci-dessous.";			
	
	
}// fin init_p(code,parcours,titre,ligne)		


function init_point_info(no_parcours) {	
 // page_recherche est une variable globale booléenne définie dans page_recherche.php et page_participation.php	
	//data.existe_fic_point_info est une variable définie dans init_fiche	mais pas dans init_p
	
	var existe_fic_point_info="false";
	if (data) {existe_fic_point_info=data.existe_fic_point_info;};

 function ajoute_marker_point_info(point,texte) {	
	 // construction du marker	
		var option_marker;
		if (!page_recherche)	{ 
		 option_marker={icon:icon1, draggable:true, bouncy:false, dragCrossMove:true};
		} else {	
		 option_marker={icon:icon1, draggable:false, bouncy:false, dragCrossMove:false};
		};
	 var marker = new GMarker(point,option_marker);
	 map.addOverlay(marker);
		marker.tooltip = texte;
		
		// on complète le tableau des markers_point_info
		markers_point_info.push(marker);
			
		//mouse over sur un marker
		GEvent.addListener(marker, "mouseover", function() {
		 // on complète le div tooltip
	  tooltip.innerHTML = marker.tooltip;
	  tooltip.style.display = "block";	
			
			// placement sur le map du div tooltype suivant position du marker
			var currtype = map.getCurrentMapType().getProjection();
			var origine=map.fromDivPixelToLatLng(new GPoint(0,0),true);
		 var point= currtype.fromLatLngToPixel(origine,map.getZoom());
		 var offset= currtype.fromLatLngToPixel(marker.getLatLng(),map.getZoom());// postion en px de l'origine du map
			var icone=marker.getIcon();
		 var anchor = icone.iconAnchor;// postion relative en px de l'ancre de la fenêtre
			var x=offset.x - (point.x + anchor.x) + 15;
			var y=offset.y - (point.y + anchor.y) -2;
		 var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y)); 
		 pos.apply(tooltip);
	 });
			
		//mouse out sur un marker
	 GEvent.addListener(marker, "mouseout", function() {
	  tooltip.style.display = "none";
	 });	
		
	 if (!page_recherche)	{ 
			// Drag sur un marker		(déplacement)
		 GEvent.addListener(marker, "drag", function() {
		  tooltip.style.display = "none";
		 });
		
		 //click sur un marker	(suppression)
		 GEvent.addListener(marker, "click", function() {
			 tooltip.style.display = "none";
		  // on cherche le bon marker
		  for(var n = 0; n < markers_point_info.length; n++) {
		   if(markers_point_info[n] == marker) {
		    map.removeOverlay(markers_point_info[n]);
		    break;
		   };
		  };
		  // on modifie le tableau markers_point_info 
		  markers_point_info.splice(n, 1);
		 });
		} else {
		/*	
		 //click sur un marker	(apparition fenêtre)
		 GEvent.addListener(marker, "click", function() {
			 var info=marker.tooltip;
			 alert(info);	
				//marker.openInfoWindowHtml(info);
			});	
		*/
		};// fin if (!page_recherche)	
		
	}// fin function ajoute_marker_point_info(point,texte)	
	
 // init objet icon1 
	var icon1 = new GIcon();	
	icon1.image="image/pt_info_14.png";	
	icon1.iconSize = new GSize(14, 14);	
	icon1.iconAnchor = new GPoint(7,7);
		
	// on ajoute dans le map un div tooltip pour l'affichage des infos
 var tooltip = document.createElement("div");
 tooltip.className="tooltip";
 map.getPane(G_MAP_MARKER_PANE).appendChild(tooltip);
		
	if (!page_recherche)	{
	  //clic sur le map 
	 GEvent.addListener(map, "click", function (overlay, point) {
		 if(point) {	// si le clic n'est pas sur un marker		
			 // demande info
				var texte=prompt("Votre info :","");		
				// création marker et enregistrement info
				if (texte!=null && texte!="") {	
				 // on elève virgule et point virgule dans texte
				 var reg1=new RegExp(";","g");
					texte=texte.replace(reg1, ".");
					var reg2=new RegExp(",","g");
					texte=texte.replace(reg2, "  ");
					ajoute_marker_point_info(point,texte);
		  };
		 };
	 });	
	};
	
	//si fichier xml existe, chargement des points info
	markers_point_info.length=0;	
	if (existe_fic_point_info=="true") {
		var alea=Math.random();
		var url_fic_xml="point_info/point_info_"+no_parcours+".xml?alea="+alea;	
		GDownloadUrl(url_fic_xml, function(data) { 
	   var xml = GXml.parse(data); 
	   var markers = xml.documentElement.getElementsByTagName("marker"); 
	   for (var i = 0; i < markers.length; i++) { 
	     var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), 9);
						var info = markers[i].getAttribute("info"); 
	     ajoute_marker_point_info(point, info);  
	   } 
	 }); 
	};
	
}// fin function init_point_info() {

function sauve_point_info(no_parcours) {	
	//init var points_info à partir du tableau des markers_point_info
	if(markers_point_info.length>0) {
		
	 var points_info =no_parcours+";";
		for(var i=0;i<markers_point_info.length;i++) {
		 if(i>0){points_info+=";";};
			points_info+=markers_point_info[i].getLatLng().lat()+",";
			points_info+=markers_point_info[i].getLatLng().lng()+",";
			points_info+=markers_point_info[i].tooltip;
		};
		//alert(points_info);
		
		// appel script sauve_point_info.php avec Ajax
		if (!window.XMLHttpRequest) { // redéfinition fonction	XMLHttpRequest
	  XMLHttpRequest = function() {
	    return new ActiveXObject("Microsoft.XMLHTTP");
	  };
		};				
		var request = new XMLHttpRequest();
		request.open("POST", "sauve_point_info.php", false);
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");// obligatoire avec méthode POST 	
		request.send(points_info);	// la chaîne points_info est envoyée sur le serveur	
		
		// vérif par retour de sauve_point_info.php
		//var reponse=request.responseText;
		//alert(reponse);
							
	}; // fin if(markers_point_info.length>0) 
}	// fin function sauve_point_info()



