 //Modifs du 27/07/2010

//declaration des variables
var altitude=new Array();
var AltMax=0;
var AltMin=0;
var point=new Array();
var points=new Array();
var denivele=new Array();  
var total_distance=0;
var distance=0;
var tableau_distance=new Array();
var temps=0;
var tempshr=0;
var tempssec=0;
var tempsmin=0;
var tempsheure=0;
var vitesse_moyenne=0;
var temps_kilometre_min=0;
var temps_kilometre_sec=0;
var coordinates=new Array();
var coordinateslat=new Array();
var coordinateslong=new Array();
var altitude=new Array();
var map;
var geocoder;
var marker=null;
var start_marker=null;
var end_marker=null;
var total_distance_topo=0;
var denivele_total=0;
var poid=0;
var vo2max=0;
var vma=0;
var montee=0;
var descente=0;
var parcours=0;
var phpcoordinates="";
var phpaltitude="";
var phpdistance="";
var diffalt=0;
var altdepart=0; 
var altarrive=0;
var distance_total_affiche_km=0;
var denivelemax=0;
var denivelemini=0;
var denivelemoyen=0;
var pixel_clic_droit;
var pointprecedant;
var w;
var y; 
var z;
var u;
var b;
var ajout=0;
var pointrightclik;
var pointajout;
var startIcon;
var endIcon;
var polyline="";
var kmbalise=0; 
var km="";
var kmmarker="";	
var pointkm="";
var pointData=""; 
var icon="";
var lissage= 2;
var espace = 50;
var calories;
var poly="red";
var reverif_altitude=0;
var undo=0;
var GPSExportName="Mon parcours";
//IGN
var lonlat;
var points_ign=new Array();
var line_layer;
var olMap;
var apiload=0;
var point_ajout_ign;
var couche_marqueurs;
//IGN

// Create a new instance of PolylineEncoder  
var polylineEncoder = new PolylineEncoder();

//google maps
google.load("maps", "2.s"); 


//fonction chargée avec la page
function Initialisation() {

	if (GBrowserIsCompatible()) { 	
	
	//IGN
	if(apiload==0){
		InitGeoportalMap();
	}
	//IGN
		
		function ZoomControl() {}
		        ZoomControl.prototype = new GControl();
		        ZoomControl.prototype.initialize = function(map) {
		          var container = document.createElement("div");
		
		          var zoomInDiv = document.createElement("div");
		          this.setButtonStyle_(zoomInDiv);
		          container.appendChild(zoomInDiv);
		          zoomInDiv.appendChild(document.createTextNode("Zoom In"));
		          zoomInDiv.innerHTML = '<img src="./images/zoomplus.jpg">'; 
		          GEvent.addDomListener(zoomInDiv, "click", function() {
		            map.zoomIn();
		          });
		
		          var zoomOutDiv = document.createElement("div");
		          this.setButtonStyle_(zoomOutDiv);
		          container.appendChild(zoomOutDiv);
		          zoomOutDiv.innerHTML = '<img src="./images/zoommoins.jpg">'; 
		          GEvent.addDomListener(zoomOutDiv, "click", function() {
		            map.zoomOut();
		          });
		
		          map.getContainer().appendChild(container);
		          return container;
		        }
		
		        ZoomControl.prototype.getDefaultPosition = function() {
		          return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(5, 5));
		        }
		
		      ZoomControl.prototype.setButtonStyle_ = function(button) {
		        button.style.cursor = "pointer";
				button.style.padding = "2px";
		      }
		
		      function PanUpControl() {}
		      PanUpControl.prototype = new GControl();
		      PanUpControl.prototype.initialize = function(map) {
		        var container = document.createElement("div");
		
		        var panUp = document.createElement("div");
		        this.setButtonStyle_(panUp);
		        container.appendChild(panUp);
		        panUp.innerHTML = '<img src="./images/flecheshaut.jpg">'; 
		        GEvent.addDomListener(panUp, "click", function() {
		          map.panDirection(0,1);
		        });
		
		        map.getContainer().appendChild(container);
		        return container;
		      }
		
		      PanUpControl.prototype.getDefaultPosition = function() {
		        return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(map.getSize().width/2-16, 0));
		      }
		
		      PanUpControl.prototype.setButtonStyle_ = function(button) {
		        button.style.cursor = "pointer";
		      }
		
		      function PanDownControl() {}
		      	PanDownControl.prototype = new GControl();
		      	PanDownControl.prototype.initialize = function(map) {
		        var container = document.createElement("div");
		
		        var panDown = document.createElement("div");
		        this.setButtonStyle_(panDown);
		        container.appendChild(panDown);
		        panDown.innerHTML = '<img src="./images/flechesbas.jpg">'; 
		        GEvent.addDomListener(panDown, "click", function() {
		          map.panDirection(0,-1);
		        });
		
		        map.getContainer().appendChild(container);
		        return container;
		      }
		
		      PanDownControl.prototype.getDefaultPosition = function() {
		        return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(map.getSize().width/2-16, 0));
		      }
		
		      PanDownControl.prototype.setButtonStyle_ = function(button) {
		        button.style.cursor = "pointer";
		      }
		
		      function PanRightControl() {}
		     	PanRightControl.prototype = new GControl();
		      	PanRightControl.prototype.initialize = function(map) {
		        var container = document.createElement("div");
		
		        var panRight = document.createElement("div");
		        this.setButtonStyle_(panRight);
		        container.appendChild(panRight);
		        panRight.innerHTML = '<img src="./images/flechesdroit.jpg">'; 
		        GEvent.addDomListener(panRight, "click", function() {
		        map.panDirection(-1,0);
		      });
		
		        map.getContainer().appendChild(container);
		        return container;
		      }
		
		      PanRightControl.prototype.getDefaultPosition = function() {
		        return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(0, map.getSize().height/2-16));
		      }
		
		      PanRightControl.prototype.setButtonStyle_ = function(button) {
		        button.style.cursor = "pointer";
		      }
		
		      function PanLeftControl() {}
		      PanLeftControl.prototype = new GControl();
		      PanLeftControl.prototype.initialize = function(map) {
		        var container = document.createElement("div");
		
		        var panLeft = document.createElement("div");
		        this.setButtonStyle_(panLeft);
		        container.appendChild(panLeft);
		        panLeft.innerHTML = '<img src="./images/flechesgauche.jpg">'; 
		        GEvent.addDomListener(panLeft, "click", function() {
		          map.panDirection(1,0);
		        });
		
		        map.getContainer().appendChild(container);
		        return container;
		      }
		
		      PanLeftControl.prototype.getDefaultPosition = function() {
		        return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(0, map.getSize().height/2-16));
		      }
		
		      PanLeftControl.prototype.setButtonStyle_ = function(button) {
		        button.style.cursor = "pointer";
		      }
	  
			
			function CustomMapControl() {}
	        	CustomMapControl.prototype = new GControl();
	        	CustomMapControl.prototype.initialize = function(map) {
	         	var container = document.createElement("div");
	 
	          	var CustomMapPlan = document.createElement("div");
	         	this.setButtonStyle_(CustomMapPlan);
	         	container.appendChild(CustomMapPlan);	
			  	CustomMapPlan.innerHTML ='Plan';
	          	GEvent.addDomListener(CustomMapPlan, "click", function() {
	            map.setMapType(G_NORMAL_MAP);
				});	
				
				var CustomMapHybrid = document.createElement("div");
	          	this.setButtonStyle_(CustomMapHybrid);
	          	container.appendChild(CustomMapHybrid); 
			  	CustomMapHybrid.innerHTML ='Mixte';
	          	GEvent.addDomListener(CustomMapHybrid, "click", function() {
	            map.setMapType(G_HYBRID_MAP);
	          	});
	 
	          	var CustomMapSatellite = document.createElement("div");
	         	this.setButtonStyle_(CustomMapSatellite);
	          	container.appendChild(CustomMapSatellite); 
			  	CustomMapSatellite.innerHTML ='Satellite';
	          	GEvent.addDomListener(CustomMapSatellite, "click", function() {
	            map.setMapType(G_SATELLITE_MAP);
	          	});
	 
	          	var CustomMapRelief = document.createElement("div");
	          	this.setButtonStyle_(CustomMapRelief);
	          	container.appendChild(CustomMapRelief); 
			  	CustomMapRelief.innerHTML ='Relief';
	          	GEvent.addDomListener(CustomMapRelief, "click", function() {
	            map.setMapType(G_PHYSICAL_MAP);
	          	});
	 
	          	map.getContainer().appendChild(container);
	          	return container;
			}
	 
	        CustomMapControl.prototype.getDefaultPosition = function() {
				return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(15, 15));
	        }
	 
	  		CustomMapControl.prototype.setButtonStyle_ = function(button) {
				button.style.color = "white";
				button.style.backgroundColor = "#aeaed0";
				button.style.border = "2px solid #757493";
				button.style.padding = "2px";
				button.style.marginBottom = "3px";
				button.style.textAlign = "center";
				button.style.width = "55px";
				button.style.height= "14px";
				button.style.cursor = "pointer";
			}	 
			
			map = new GMap2(document.getElementById("map"),{draggableCursor: 'crosshair', draggingCursor: 'pointer'});
	   		map.setCenter(new GLatLng(46.159506,-1.1517797680334355770587493), 13);
			new GKeyboardHandler(map); // Clavier
			map.enableScrollWheelZoom();//zoom molette souris
			map.disableDoubleClickZoom();
			map.enableContinuousZoom();
			map.setMapType(G_NORMAL_MAP);
			map.addControl(new CustomMapControl());//Type de carte 
			map.addControl(new GOverviewMapControl());//Apercu general
			map.addControl(new ZoomControl());
	        map.addControl(new PanUpControl());
	        map.addControl(new PanDownControl());
	        map.addControl(new PanRightControl());
	        map.addControl(new PanLeftControl()); 
	
	   		geocoder = new GClientGeocoder();
			AfficherResultats();
			EcouteClic();
			
			if (address) {
				if (parcours==0){
					TrouverAdresse(address); 
				}
			}
			else{
				address="Place Hôtel de ville, La Rochelle, France";
			}
			AfficherAdresse();
	}  
//fonction chargées avec la page
	CalculVitesse(tempshr,tempsmin,tempssec);
	CalculCalories(poid);
	CalculVo2max(tempsmin,tempssec);
	CalculTemps(1);
	
//icones
	startIcon = new GIcon(G_DEFAULT_ICON);
	startIcon.image = "http://maps.google.com/mapfiles/dd-start.png";
 	startIcon.iconAnchor = new GPoint(10, 34);
	startIcon.shadow = ""; 

	endIcon = new GIcon(G_DEFAULT_ICON);
	endIcon.image = "http://maps.google.com/mapfiles/dd-end.png";
	endIcon.iconSize = new GSize(13, 22);
	endIcon.iconAnchor = new GPoint(7, 22);
	endIcon.shadow = ""; 
}
				 
//Affichage des polylines a l'impression
function DelGmnoprint() {
var sd = document.getElementsByTagName('svg');
	var n = 0 ;
	while (n < sd.length) {
		if (sd[n].parentNode.className == 'gmnoprint') {
       		sd[n].parentNode.className = '';
    	} 
		n++
	}
}  

//balises
function Balise(km){
	kmbalise=km;
	if(points.length>1){
		DessinerParcours();	
	}
} 
// fin balises

//CouleurPoly

function CouleurPoly(color){
	poly=color;	
	if(points.length>1){
		DessinerParcours();
		AfficherResultats();
	}
}

//fin CouleurPoly

//lissage topographie 
function LissageTopo(metre){
	lissage=metre;
} 
// fin lissage topographie	

//espace topographie 
function EspaceTopo(metre){
	espace=metre;
} 
// fin espace topographie

//*********************************** Geocoder *************************************************

//Geocoder
function TrouverAdresse(address) {
	CuisinerCookie("geocoder",address,60);
  	geocoder.getLatLng(
    address,
	
    	function(point) {
		
      		if (!point) {
        		alert("Ne trouve pas l'adresse : " + address + ".");
      		}
				
			else {
       				map.setCenter(point, 13);
					//IGN
					VISU.getMap().setCenterAtLonLat(point.lng(),point.lat());
					//IGN
					var contenu_marker="<br /><span class='address'>"+ address + "<br /><br />C'est là !</span>";
					map.openInfoWindowHtml( point, contenu_marker);
			}
    	}
		
  	);
	
} 

//affiche l'adress dans le formulaire du geocoder
function AfficherAdresse() {
	var valueaddress = address;
	document.getElementById("address").value = valueaddress;
}	

//*********************** Cookie *********************************************
//ecrie un cookie avec l'adresse saisie dans le formulaire de geocoder
function CuisinerCookie(nom,valeur,jours,domain) {
	var date = new Date();
	date.setTime(date.getTime()+(jours*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	document.cookie = nom+"="+escape(valeur)+expires;
}

//lire le cookie
function MangerCookie(nom) {
	var deb = document.cookie.indexOf(nom + "=")
	
	if (deb >= 0) {
		deb += nom.length + 1;
		var fin = document.cookie.indexOf(";",deb);
		
		if (fin < 0) {
			fin = document.cookie.length;
			return unescape(document.cookie.substring(deb,fin));
		}
	}
	return"";	
} 
//*********************** Fin cookie*********************************************

//*********************************** Fin Geocoder *************************************************
	
//enregitre un clic de souris sur la carte	
function EcouteClic(){
	
	GEvent.addListener(map, "click", function(overlay,point) {

		if (point){		
			reverif_altitude=0;
			undo=points.length;
			coordinates[ coordinates.length ] = [ point.lat(), point.lng() ];
			coordinateslat[coordinates.length] = point.lat();
			coordinateslong[coordinates.length] = point.lng();
			AfficherResultats();
			map.panTo(point);
			//IGN
			VISU.getMap().setCenterAtLonLat(point.lng(),point.lat());
			//IGN
			points.push(point);
			//IGN
			points_ign.push(point.lng(),point.lat());
			//IGN
			if(points.length == 1) {
				AfficherResultats();
				distance=0;
				tableau_distance.push(distance);
			}
		
			if (points.length>1){
				distance=points[points.length-2].distanceFrom(point); 
				tableau_distance.push(distance);
			}
	
			DessinerParcours();
			AfficherResultats();
		}
	});	

//click droit de la souris => suivre les routes
  	GEvent.addListener(map,"singlerightclick",function(pixel,tile) {
    	pixel_clic_droit = pixel;
    	pointrightclik = map.fromContainerPixelToLatLng(pixel_clic_droit);
		if (pointrightclik){
			reverif_altitude=0;
			undo=points.length;
			Direction();
		}
	});
}

function Direction(){	
	var route;
	if(points.length==0){
		pointajout=pointrightclik;
		distance=0;
		tableau_distance.push(distance);
		AjoutPolyline(); 
	}
	if(points.length >= 1){	
		var tableau_polyline=new Array(points[points.length-1],pointrightclik);
		var gdir=new GDirections(null,document.getElementById("vide"));
		gdir.loadFromWaypoints(tableau_polyline,{getSteps:false,preserveViewport:true,avoidHighways:true,getPolyline:true,travelMode:G_TRAVEL_MODE_WALKING});
		GEvent.addListener(gdir, 'load', function() {
			var p = gdir.getPolyline();
			var vertex=p.getVertexCount();
			var quadruples=new Array();
			w=0;
			while(w<=vertex){
				if (w<vertex){
					pointajout=p.getVertex(w);
					AjoutPolyline();
				}
				if (w==vertex){
					map.panTo(pointrightclik);
					//IGN
					VISU.getMap().setCenterAtLonLat(pointrightclik.lng(),pointrightclik.lat());
					//IGN
					DessinerParcours();
					AfficherResultats();	
				}
				w=w+1;       
			} 
		}); 
	}	
}

//1 point du parcours pour complement
function AjoutPolyline(){

	if (pointajout){
	  if (marker){										  
			map.clearOverlays();
		}

		coordinates[ coordinates.length ] = [ pointajout.lat(), pointajout.lng() ];
		coordinateslat[coordinates.length] = pointajout.lat();
		coordinateslong[coordinates.length] = pointajout.lng();
		points.push(pointajout);
		//IGN
		points_ign.push(pointajout.lng(), pointajout.lat());
		//IGN
	
		if(points.length == 1) { 
			distance=0;
			tableau_distance.push(distance);
		}
		pointprecedant = points.length - 1;
		if (points.length>1){
			distance=points[points.length-2].distanceFrom(pointajout);	
			tableau_distance.push(distance);
		}
	
	}
}
//click droit de la souris => suivre les routes fin

//IGN
function AjoutPolylineIGN(){

	if (point_ajout_ign){
		reverif_altitude=0;
		coordinates[ coordinates.length ] = [ point_ajout_ign.lat(), point_ajout_ign.lng() ];
		coordinateslat[coordinates.length] = point_ajout_ign.lat();
		coordinateslong[coordinates.length] = point_ajout_ign.lng();
		map.panTo(point_ajout_ign);
		//IGN
		VISU.getMap().setCenterAtLonLat(point_ajout_ign.lng(),point_ajout_ign.lat());
		//IGN
		points.push(point_ajout_ign);
		//IGN
		points_ign.push(point_ajout_ign.lng(),point_ajout_ign.lat());
		//IGN
		if(points.length == 1) {
			AfficherResultats();
			distance=0;
			tableau_distance.push(distance);
		}
		
		if (points.length>1){
			distance=points[points.length-2].distanceFrom(point_ajout_ign); 
			//distance=OpenLayers.Util.distVincenty(points_ign[points_ign.length-4],points_ign[points_ign.length-3],points_ign[points_ign.length-2],points_ign[points_ign.length-1]);

			tableau_distance.push(distance);
		}
	
		DessinerParcours();
		AfficherResultats();
	}	
}
//IGN

//1 point du parcours enregistre
function CoordonneeSauvegarde(lat,lng){
	//parcours=1;
	pointeng=new GLatLng(parseFloat(lat),parseFloat(lng));										  
		coordinates[ coordinates.length ] = [ pointeng.lat(), pointeng.lng() ];
		coordinateslat[coordinates.length] = pointeng.lat();
		coordinateslong[coordinates.length] = pointeng.lng();
		points.push(pointeng);
		//IGN
		points_ign.push(pointeng.lng(),pointeng.lat());
		//IGN
	
		if(points.length == 1) {
			//map.setCenter(pointeng, 12);
			distance=0;
			tableau_distance.push(distance);
		}
		
		pointprecedant = points.length - 1;
		if (points.length>1){
			distance=points[points.length-2].distanceFrom(pointeng);
			tableau_distance.push(distance);
		}
} 

//dessine les polylines
function DessinerParcours(){
	map.clearOverlays();
	if (points.length>=0){
		start_marker = new GMarker(points[0], {title:"départ", icon:startIcon});
		map.addOverlay(start_marker);
		AddMarkerStart();
		if (parcours==1){
			map.setCenter(pointeng, 12);
			var contenu_marker = '<div id="marker">';
			contenu_marker +='<span class="address">'; 
			contenu_marker +='<strong>';
			contenu_marker +=nomparcours;
			contenu_marker +='</strong><br />Créé par : <strong>';
			contenu_marker +=pseudo;
			contenu_marker +='</strong><br />Commune de départ : <strong>';
			contenu_marker +=commune;
			contenu_marker +='</strong><br />Département : <strong>';
			contenu_marker +=departement;				
			contenu_marker +='</strong>&nbsp;|&nbsp;Pays : <strong>';
			contenu_marker +=pays;
			contenu_marker +='</strong><br />Sport : <strong>';
			contenu_marker +=sport;
			contenu_marker +='</strong><br /><strong>Cliquez sur le bounton "Altitude" avant de calculer la topographie.</strong>';
			contenu_marker +='<br /><input type="button" value="Altitude" onclick="GetAltitude3()" id="topo3" class="valider" onmouseover="rollover_bouton_topo3();" onmouseout="rollout_bouton_topo3();" onfocus="this.blur();" />&nbsp;<input type="button" value="Topographie" onclick="Graph()" id="toposimple" class="valider" onmouseover="rollover_bouton_toposimple();" onmouseout="rollout_bouton_toposimple();" onfocus="this.blur();" />';
			contenu_marker +='<br /><span id="affiche_etat_altitude2"></span>';
			contenu_marker +='</strong><br />Lien vers ce parcours :<br />http://www.calculitineraires.fr/ign.php?id=';
			contenu_marker +=id;
			contenu_marker +='#map</span>';
			contenu_marker +='</div>';				
			contenu_marker +='';
			var tab = new GInfoWindowTab ("Parcours",contenu_marker);
			var contenu_marker2 = '<div id="marker">';
			contenu_marker2 +='<span class="address">'; 
			contenu_marker2 +='<br /><strong>Commentaire du créateur : </strong><br />';
			contenu_marker2 +=commentaire;			
			contenu_marker2 +='<br /><br /><a href="../commentaire.php?id=';
			contenu_marker2 +=id;
			contenu_marker2 +='">Voir et laisser des messages</a><br /><a class="info" href="#">(Afficher les derniers messages)<span>';
			contenu_marker2 +=commentaireintenaute;
			contenu_marker2 +='</span></a><br />Il y a <span class="couleur">'; 
			contenu_marker2 +=nb_messages
			contenu_marker2 +='</span> message(s).</span>';
			contenu_marker2 +='</div>';				
			contenu_marker2 +='';			
			var tab2 = new GInfoWindowTab ("Commentaire",contenu_marker2);
			
			var contenu_marker3='<div style="text-align:center">';
			contenu_marker3 +='<span class="address"><strong>Partagez votre itinéraire :</strong>';
			contenu_marker3 +='<br />http://www.calculitineraires.fr/ign.php?id=';
			contenu_marker3 +=id;
			contenu_marker3 +='#map</span><br />';
			contenu_marker3 +='<table style="margin-left:auto;margin-right:auto;width:300px;"><tr><td><a href="http://twitter.com/home?status=Mon parcours sportif : http://www.calculitineraires.fr/ign.php?id=';
			contenu_marker3 +=id;
			contenu_marker3 +='" title="Partager sur twitter" target="_blank"><img src="images/twitter-rond.jpg" alt="Twitter Calcul d\'itinéraire" /></a><br /><a href="http://twitter.com/home?status=Mon parcours sportif : http://www.calculitineraires.fr/ign.php?id=';
			contenu_marker3 +=id;
			contenu_marker3 +='" title="Partager sur twitter" target="_blank">Partager ce parcours sur Twitter</a></td><td><script type="text/javascript"><!--mce:2--></script><style><!--mce:4--></style><a class="fb_share_link" onclick="return fbs_click()" href="http://www.facebook.com/share.php?u=http://www.calculitineraires.fr/ign.php?id=';
			contenu_marker3 +=id;
			contenu_marker3 +='#map" target="_blank"><img src="images/facebook.jpg" alt="Facebook Calcul d\'itinéraire" /><br /><a class="fb_share_link" onclick="return fbs_click()" href="http://www.facebook.com/share.php?u=http://www.calculitineraires.fr/ign.php?id=';
			contenu_marker3 +=id;
			contenu_marker3 +='#map" target="_blank">Partager ce parcours sur Facebook</a></a></td></tr></table></div>';
			var tab3 = new GInfoWindowTab ("Partager",contenu_marker3);
			
			tab_contenu_marker=new Array(tab,tab2,tab3);
			start_marker.openInfoWindowTabsHtml(tab_contenu_marker);
			GEvent.addListener(start_marker, 'click', function() {start_marker.openInfoWindowTabsHtml(tab_contenu_marker);});

		}
	} 
	if (points.length>1){
		end_marker = new GMarker(points[points.length-1], {title:"Arrivée", icon:endIcon});
		map.addOverlay(end_marker);
		polyline=polylineEncoder.dpEncodeToGPolyline(points,poly,2,1);
		map.addOverlay(polyline);
		//IGN
		DessinerIGN();
		//IGN
		//km markers 
		if (kmbalise>0){
			var i=kmbalise;
			while(i<polyline.Distance()){
      			pointkm = polyline.GetPointAtDistance(i);
      			if (pointkm) { 
					z="<div id='baliseskilo'><strong>"+(i/1000)+"</strong></div>";
       				CreateMarker(pointkm);
      			} 
				i+=kmbalise;
   		 	} 
		}
		//fin km marker
	}
	if (parcours==1){
		//IGN
		VISU.getMap().setCenterAtLonLat(points_ign[0],points_ign[1]);
		//IGN
		parcours=0;
	}
	if (parcours==2){
		map.panTo(points[points.length-1]);	
		VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
		parcours=0;
		
	}
	CalculDistance();
	//DelGmnoprint();
}

//calcul la distance total et l'affiche
function CalculDistance(){ 
	total_distance = 0;
	var i=0;
	while(i<tableau_distance.length){
		total_distance=total_distance+tableau_distance[i];
		i++;
	} 
} 

//efface 1 point et polyline
function Effacer(){
	if (points.length >=1){
			if (points.length == 1){
        		ToutEffacer();
			   	return;
			}
			
			reverif_altitude=0;
			pointprecedant = points.length - 1;
		
			if(points.length>1){
				map.panTo(points[points.length-1]);
				//IGN
				VISU.getMap().setCenterAtLonLat(points[points.length-1].lng(),points[points.length-1].lat());
				//IGN
			}
	
			if (points.length == 1){
        		ToutEffacer();
			}
			
			if (points.length == 2){
        		map.removeOverlay(end_marker);	
				end_marker="";
			}
	
			points.pop();
			
			//IGN
			points_ign.pop();
			points_ign.pop();
			//IGN
			
			coordinates.pop();
//			altitude.pop();
			
			if (tableau_distance.length>1){
				tableau_distance.pop();
			}
		
			distance = tableau_distance[tableau_distance.length-1];
			var i=0;
			total_distance=0;
			while(i<tableau_distance.length){
				total_distance=total_distance+tableau_distance[i];
				i++;
			} 
			AfficherResultats();
			DessinerParcours();
		}
		
}

//************************************** Confirm effacer tous les points *******************************************************

function DeletteConfirm(){
	if(confirm('Effacer tous les points de votre parcours ?\n\n'+'oui = [OK]\n'+'non = [Annuler]')){
		ToutEffacer();
	}
	else{ 
		return false;
	}
}

//************************************** Fin confirm effacer tous les points *******************************************************
	

//efface touts les points et polylines
function ToutEffacer(){
	if (points.length >1){
        map.panTo(points[0]);
		//IGN
		VISU.getMap().setCenterAtLonLat(points[0].lng(),points[0].lat());
		//IGN
		
	}
	reverif_altitude=0;
	map.removeOverlay(start_marker);
	map.removeOverlay(end_marker);
	map.clearOverlays();
	start_marker="";
	end_marker="";
	total_distance = 0;
	distance = 0;
	z="";
	tableau_distance = new Array();
	coordinates = new Array();
	altitude = new Array();
	point = "";
	pointajout="";
	points = new Array();
	//IGN
	points_ign= new Array();
	line_layer.removeFeatures(line_layer.features);
	couche_marqueurs.clearMarkers();
	//IGN
	polyline = "";
	total_distance_topo=0;
	denivele_total=0;
	montee=0;
	descente=0; 
	diffalt=0;
	altdepart=0;		
	AfficherResultats();
			
} 

//efface la derniere route calculée
function EffacerUndo(){

	if (undo==0){	
		if (points.length >= 1){
        	ToutEffacer();
			return;
		}
	}
	else {
		if(points.length<=undo){
			alert( 'Vous pouvez effacer seulement la dernière route calculée.\n Utilisez le bouton : \'Effacer le dernier point\' pour retirer plus de points au parcours.' );
			return;
		}
		
		while (points.length>undo){
			pointprecedant = points.length - 1;
			
			reverif_altitude=0;
	
			if (points.length == 1){
        		ToutEffacer();
			}
			
			if (points.length == 2){
        		map.removeOverlay(end_marker);	
				end_marker="";
			}
	
			points.pop();
			coordinates.pop();
			altitude.pop();
			
			//IGN
			points_ign.pop();
			points_ign.pop();
			//IGN
			
			if (tableau_distance.length>1){
				tableau_distance.pop();
			}
		
			distance = tableau_distance[tableau_distance.length-1];
		}
		var i=0;
		total_distance=0;
		while(i<tableau_distance.length){
			total_distance=total_distance+tableau_distance[i];
			i++;
		}
		map.panTo(points[points.length-1]);
		AfficherResultats();
		DessinerParcours();
		undo=points.length;
	}
}


//**************** Inverion du parcours *********************************

function Invertion(){
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	else{
		map.panTo(points[0]);
		points.reverse();
		//IGN
		var points_ignreverse=new Array();
		var ign1=0;
		var ign2=1;
		//var ign3=points_ign.length-1;
		while(ign1<points_ign.length){
			points_ignreverse.push(points_ign[ign2]);
			points_ignreverse.push(points_ign[ign1]);
			ign1=ign1+2;
			ign2=ign2+2;
			//ign3=ign3-2;
		}
		points_ign=points_ignreverse;
		points_ign.reverse();
		//IGN
		altitude.reverse();
		coordinates.reverse();
		tableau_distance.shift();
		tableau_distance.push(0);
		tableau_distance.reverse(); 
		distance = tableau_distance[tableau_distance.length-1];
		AfficherResultats();
		DessinerParcours();
	}
}

//**************** Fin inverion du parcours *****************************


///**************** Aller et retour  *********************************
function ReturnBack(){
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	else{
		map.panTo(points[0]);
	
		var returnpoints=points.length;
	
		while(returnpoints>0){
			returnpoints=returnpoints-1;
			var pointadd=points[returnpoints];
			CoordonneeSauvegarde(pointadd.lat(), pointadd.lng() );
		
		}
	
		DessinerParcours();
	
		AfficherResultats();
	}
}

//**************** Fin aller et retour  *********************************

//**************** Fermer la boucle  *********************************
function FermerBoucle(){
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	else{
    	pointrightclik = points[0];
		if (pointrightclik){
			reverif_altitude=0;
			undo=points.length;
			Direction();
		}
	}
}

//**************** Fermer la boucle  *********************************

//************************************************** Altitude *****************************************


function GetAltitude(){
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	if (reverif_altitude==0){
		b=setInterval("GetAltitude2();",5000);
		altitude = new Array();
		var quadruples=new Array();
		var g=0;
		var z=points.length;
		while(g<=z){
			if (g<z){
				quadruples[g] = new Array(3);
				pointajout=points[g];
				quadruples[g][0]=pointajout.lat();
				quadruples[g][1]=pointajout.lng();
				quadruples[g][2]=function(elevation){altitude[altitude.length]=elevation;};
			}
			if (g==z){
				var affiche_etat_altitude = document.getElementById("affiche_etat_altitude"); 
				affiche_etat_altitude.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude en cours.</span>";	
				var affiche_etat_altitude3 = document.getElementById("affiche_etat_altitude3"); 
				affiche_etat_altitude3.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude en cours.</span>";	
				reverif_altitude=1;
				topoGetAltitudes(quadruples,5000);
			}
			g=g+1;       
		} 
	}
} 

function GetAltitude2(){
	var affiche_etat_altitude = document.getElementById("affiche_etat_altitude"); 
	affiche_etat_altitude.innerHTML = "<span class=\"couleur2\">Données d'altitude téléchargée.</span>";	
	var affiche_etat_altitude3 = document.getElementById("affiche_etat_altitude3"); 
	affiche_etat_altitude3.innerHTML = "<span class=\"couleur2\">Données d'altitude téléchargée.</span>";	
	alert( 'Données d\'altitude téléchargée.' );
	clearTimeout(b);
}

function GetAltitude3(){
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	if (reverif_altitude==0){
		b=setInterval("GetAltitude4();",5000);
		altitude = new Array();
		var quadruples=new Array();
		var g=0;
		var z=points.length;
		while(g<=z){
			if (g<z){
				quadruples[g] = new Array(3);
				pointajout=points[g];
				quadruples[g][0]=pointajout.lat();
				quadruples[g][1]=pointajout.lng();
				quadruples[g][2]=function(elevation){altitude[altitude.length]=elevation;};
			}
			if (g==z){
				var affiche_etat_altitude = document.getElementById("affiche_etat_altitude"); 
				affiche_etat_altitude.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude en cours.</span>";	
				var affiche_etat_altitude2 = document.getElementById("affiche_etat_altitude2"); 
				affiche_etat_altitude2.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude en cours.</span>";	
				var affiche_etat_altitude3 = document.getElementById("affiche_etat_altitude3"); 
				affiche_etat_altitude3.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude en cours.</span>";					
				reverif_altitude=1;
				topoGetAltitudes(quadruples,5000);
			}
			g=g+1;       
		} 
	}
} 

function GetAltitude4(){
	var affiche_etat_altitude3 = document.getElementById("affiche_etat_altitude3"); 
	affiche_etat_altitude3.innerHTML = "<span class=\"couleur2\">Données d'altitude téléchargée.</span>";	
	var affiche_etat_altitude2 = document.getElementById("affiche_etat_altitude2"); 
	affiche_etat_altitude2.innerHTML = "<span class=\"couleur2\">Données d'altitude téléchargée.</span>";	
	var affiche_etat_altitude = document.getElementById("affiche_etat_altitude"); 
	affiche_etat_altitude.innerHTML = "<span class=\"couleur2\">Données d'altitude téléchargée.</span>";	
	alert( 'Données d\'altitude téléchargée.' );
	clearTimeout(b);
}

//************************************************** Fin altitude ************************************






//********************************************** Topolographie ***************************************

		
//distance corrigée en fonction de la topographie
 function CalculDistanceTopographique(){
 	total_distance_topo=0; 
	var i=1;
	var j;
	while(i<altitude.length){
		j=i-1;
		cote1 = altitude[i]-altitude[j];
		cote2 = Math.round(points[i].distanceFrom(points[j])*1000)/1000;
		hypotenusecarre = ((cote1*cote1)+(cote2*cote2));
		hypotenuse=Math.sqrt(hypotenusecarre);
		total_distance_topo=total_distance_topo + hypotenuse;	
		i++
	} 
}
//fin distance corrigée en fonction de la topographie

//calcul distance avec topo
function CalculDistanceTopo(){
	denivele_total=0;
	montee=0;
	descente=0;
	var lissagepositif=lissage;
	var lissagenegatif=-lissage;
	var i=1;
	var j;
	var z;
	//IGN
	var ignj;
	var igni;
	line_layer.removeFeatures(line_layer.features);
	ignj=0;
	igni=1;
	//IGN
	var cote1;
	var cote2;
	var hypotenusecarre;
	var hypotenuse;
	var denivele_polyline="";
	map.clearOverlays();
	map.addOverlay(start_marker);
	map.addOverlay(end_marker);
	 
	while(i<altitude.length){
	
		j=i-1;
		z=j+1;

		var tableau_polyline=new Array();
		
		//IGN
		var pointsapiign = new Array();
		
		var newignpoint1=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);
		ignj=ignj+2;
		igni=igni+2;
		var newignpoint2=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);					
		pointsapiign.push(newignpoint1);
		pointsapiign.push(newignpoint2);
		//IGN
		
		tableau_polyline.push(points[j]);
		
		var distancealt=points[i].distanceFrom(points[j]);

		tableau_polyline.push(points[i]);
		
		
		while(distancealt<espace){
			if(i<altitude.length-1){
				i++; 
				tableau_polyline.push(points[i]);
				
				distancealt=points[i].distanceFrom(points[j]);
				
				//IGN
				var newignpoint1=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);
				ignj=ignj+2;
				igni=igni+2;
				var newignpoint2=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);
				pointsapiign.push(newignpoint1);
				pointsapiign.push(newignpoint2);
				//IGN
				
				}
			if(i==altitude.length-1){
			  	distancealt=espace+1;
				//tableau_polyline.push(points[i]);	
			}
		}
		
		cote1 = altitude[i]-altitude[j]; 
		
		if ((cote1>=lissagenegatif) && (cote1<=lissagepositif)){  
			cote1=Math.abs(cote1);
			denivele_polyline=new GPolyline(tableau_polyline,'#0000ff',2,1);
			map.addOverlay(denivele_polyline);
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#0000ff', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN
		} 
		
		if (cote1 > lissagepositif){
			cote1=Math.abs(cote1);
			montee = montee + cote1; 
			denivele_polyline=new GPolyline(tableau_polyline,'red',2,1);
			map.addOverlay(denivele_polyline);
			//IGN

					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#ff0000', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN			
		}
		if (cote1 < lissagenegatif){
			denivele_polyline=new GPolyline(tableau_polyline,'#057c05',2,1);
			map.addOverlay(denivele_polyline);	
			//IGN

					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#057c05', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN
		}
		i++;
	}

	AltMax = altitude[0]; 
	for (i=0; i<altitude.length; i++){
		if (altitude[i] > AltMax){
			AltMax = altitude[i];
		}
	}
	
	AltMin = altitude[0]; 
	for (y=0; y<altitude.length; y++){
		if (altitude[y] < AltMin){
			AltMin = altitude[y];
		}
	}

	VISU.getMap().setCenterAtLonLat(points_ign[0],points_ign[1]);
	var o =altitude.length-1;
	diffalt=altitude[o]-altitude[0]; 
	descente=montee;
	descente=descente-diffalt;
	montee=Math.abs(montee);
	descente=Math.abs(descente);
	denivele_total=montee+descente; 
	altdepart=altitude[0];
	altarrive=altitude[o];
	CalculDistanceTopographique();
	var contenu_marker_topo = '<div id="marker">';
	contenu_marker_topo +='<span class="address">';
	contenu_marker_topo +='Altitude de départ :&nbsp;<span class="couleur">';
	contenu_marker_topo +=altdepart; 
	contenu_marker_topo +='</span>&nbsp;m&nbsp;|&nbsp;';
	contenu_marker_topo +='Altitude d\'arrivée :&nbsp;<span class="couleur">';
	contenu_marker_topo +=altarrive; 	
	contenu_marker_topo +='</span>&nbsp;m&nbsp;<br />';
	contenu_marker_topo +='Altitude Maxi :&nbsp;<span class="couleur">';
	contenu_marker_topo +=AltMax; 
	contenu_marker_topo +='</span>&nbsp;m&nbsp;|&nbsp;';
	contenu_marker_topo +='Altitude Mini :&nbsp;<span class="couleur">';	
	contenu_marker_topo +=AltMin; 	
	contenu_marker_topo +='</span>&nbsp; m<br />';	
	contenu_marker_topo +='Différence d\'altitude entre le départ et l\'arrivée :&nbsp;<span class="couleur">';
	contenu_marker_topo +=diffalt; 
	contenu_marker_topo +='</span>&nbsp; m<br /><br />';
	contenu_marker_topo +='Dénivelé totale du parcours :&nbsp;<span class="couleur">';
	contenu_marker_topo +=denivele_total;
	contenu_marker_topo +='</span>&nbsp; m<br />';
	contenu_marker_topo +='Dénivelé négatif : <span class="couleur2">';
	contenu_marker_topo +=descente;
	contenu_marker_topo +='</span>&nbsp; m (<span class="couleur2">trait vert sur la carte</span>)<br />';
	contenu_marker_topo +='Dénivelé positif : <span class="couleur">';
	contenu_marker_topo +=montee;
	contenu_marker_topo +='</span>&nbsp; m (<span class="couleur">trait rouge sur la carte</span>)<br />';				
	contenu_marker_topo +='<a href="#graph">Voir le profil du parcours</a><br />';
	contenu_marker_topo +='<a href="#Topo">Affiner le calcul de topographie</a></span><br /><br />';
	contenu_marker_topo +='<input type="button" value="% de dénivelé" onclick="CalculDistanceTopoDenivele(),Ancre()" id="boutondenivele" class="valider" onmouseover="rollover_bouton_boutondenivele();" onmouseout="rollout_bouton_boutondenivele();" onfocus="this.blur();" />';
	contenu_marker_topo +='</div>';				
	contenu_marker_topo +='';
	var tab_topo = new GInfoWindowTab ("Topo",contenu_marker_topo);
	start_marker.openInfoWindowTabsHtml(new Array(tab_topo));
	AfficherResultats();
}

//calcul distance avec topo et denivelée
function CalculDistanceTopoDenivele(){
	denivele = new Array(); 
	denivele_total=0;
	montee=0;
	descente=0;
	i=1;
	var j;
	var z;
	var cote1;
	var cote2;
	var hypotenusecarre;
	var hypotenuse;	 
	var lissagepositif=lissage;
	var lissagenegatif=-lissage;	
	var denivele_polyline="";
	map.clearOverlays();
	map.addOverlay(start_marker);
	map.addOverlay(end_marker);	
	z=0;
	//IGN
	var ignj;
	var igni;
	line_layer.removeFeatures(line_layer.features);
	ignj=0;
	igni=1;
	//IGN
	while(i<altitude.length){
		j=i-1;	
		var tableau_polyline=new Array();
		tableau_polyline.push(points[j]);
		
		var distancealt=points[i].distanceFrom(points[j]);

		tableau_polyline.push(points[i]);
		
		//IGN
		var pointsapiign = new Array();
		
		var newignpoint1=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);
		ignj=ignj+2;
		igni=igni+2;
		var newignpoint2=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);					
		pointsapiign.push(newignpoint1);
		pointsapiign.push(newignpoint2);
		//IGN
		
		while(distancealt<espace){
			if(i<altitude.length-1){
				i++; 
				tableau_polyline.push(points[i]);
				distancealt=points[i].distanceFrom(points[j]);
				//IGN		
				var newignpoint1=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);
				ignj=ignj+2;
				igni=igni+2;
				var newignpoint2=new OpenLayers.Geometry.Point(points_ign[ignj],points_ign[igni]);					
				pointsapiign.push(newignpoint1);
				pointsapiign.push(newignpoint2);
				//IGN
			}
			if(i==altitude.length-1){
			  	distancealt=espace+1;
				//tableau_polyline.push(points[i]);
			}
		}
		cote1 = altitude[i]-altitude[j];
		cote2=points[i].distanceFrom(points[j]);
		cote2=Math.round(cote2);
		if ((cote1>=lissagenegatif) && (cote1<=lissagepositif)){ 
			cote1=Math.abs(cote1);
			denivele[z]=0; 
			denivele_polyline=new GPolyline(tableau_polyline,'#747393',2,1);
			map.addOverlay(denivele_polyline);	
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#747393', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN			
		}
		
		if (cote1 > lissagepositif){
			cote1=Math.abs(cote1);
			montee = montee + cote1;
			denivele[z]=((cote1*100)/cote2);
			if (denivele[z]<=5){
				denivele_polyline=new GPolyline(tableau_polyline,'#ffff00',2,1);
				map.addOverlay(denivele_polyline);	
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#ffff00', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
			if ((denivele[z]>5) && (denivele[z]<=10)){
				denivele_polyline=new GPolyline(tableau_polyline,'#ffcc00',2,1);
				map.addOverlay(denivele_polyline);	
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#ffcc00', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
			if ((denivele[z]>10) && (denivele[z]<=20)){
				denivele_polyline=new GPolyline(tableau_polyline,'#ff6600',2,1);
				map.addOverlay(denivele_polyline);
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#ff6600', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
			if (denivele[z]>20){ 
				denivele_polyline=new GPolyline(tableau_polyline,'#ff0000',2,1);
				map.addOverlay(denivele_polyline);	
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#ff0000', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
		}  
		
		if (cote1 < lissagenegatif){
			cote1=Math.abs(cote1);
			denivele[z]=((cote1*100)/cote2); 
			if (denivele[z]<=5){
				denivele_polyline=new GPolyline(tableau_polyline,'#00ffff',2,1);
				map.addOverlay(denivele_polyline);
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#00ffff', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
			if ((denivele[z]>5) && (denivele[z]<=10)){
				denivele_polyline=new GPolyline(tableau_polyline,'#00ccff',2,1);
				map.addOverlay(denivele_polyline);	
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#00ccff', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
			if ((denivele[z]>10) && (denivele[z]<=20)){
				denivele_polyline=new GPolyline(tableau_polyline,'#3366ff',2,1);
				map.addOverlay(denivele_polyline);	
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#3366ff', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
			if (denivele[z]>20){
				denivele_polyline=new GPolyline(tableau_polyline,'#0000ff',2,1);
				map.addOverlay(denivele_polyline);	
			//IGN
					var line = new OpenLayers.Geometry.LineString(pointsapiign); 
					//VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
					//3. Transform the LineString into the map projection:
					var defaultProj = new OpenLayers.Projection('EPSG:4326');
					line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
					//4. Define a style for your line:
					var style = {
						strokeColor: '#0000ff', 
						strokeOpacity: 1,
						strokeWidth: 2
					};
		
					//5. Create a vector feature with the LineString geometry:
					lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
					//6. Add the feature to the vector layer:
					line_layer.addFeatures([lineFeature]);
			//IGN				
			}
		} 
		z++;
		i++;
	} 
	
	//denivele max
	denivelemax=denivele[0];
	var i=1;
	while(i<denivele.length){
		if (denivelemax<denivele[i]){
			denivelemax=denivele[i];
		} 
		i++;
	}
	denivelemax=Math.round(denivelemax*100)/100;
		
	//denivele mini
	denivelemini=denivele[0];
	var i=1;
	while(i<denivele.length){
		if (denivelemini>denivele[i]){
			denivelemini=denivele[i];
		}
		i++;
	}
	denivelemini=Math.round(denivelemini*100)/100;
		
	//calcul denivele moyen
	var i=1;
	var totaldenivele=denivele[0];
	while(i<denivele.length){
		totaldenivele=totaldenivele+denivele[i];
		i++;
	}
	denivelemoyen=totaldenivele/denivele.length;
	denivelemoyen=Math.round(denivelemoyen*100)/100;
 	
	var o =altitude.length-1;
	diffalt=altitude[o]-altitude[0]; 
	descente=montee;
	descente=descente-diffalt;
	montee=Math.abs(montee);
	descente=Math.abs(descente);
	denivele_total=montee+descente; 
	altdepart=altitude[0];
	
	reverif_altitude=1;
	
	var contenu_marker_topo = '<div id="marker">';
	contenu_marker_topo +='<span class="address">';
	contenu_marker_topo +='Altitude de départ :&nbsp;<span class="couleur">';
	contenu_marker_topo +=altdepart; 
	contenu_marker_topo +='</span>&nbsp;m&nbsp;|&nbsp;';
	contenu_marker_topo +='Altitude d\'arrivée :&nbsp;<span class="couleur">';
	contenu_marker_topo +=altarrive; 	
	contenu_marker_topo +='</span>&nbsp;m&nbsp;<br />';
	contenu_marker_topo +='Altitude Maxi :&nbsp;<span class="couleur">';
	contenu_marker_topo +=AltMax; 
	contenu_marker_topo +='</span>&nbsp;m&nbsp;|&nbsp;';
	contenu_marker_topo +='Altitude Mini :&nbsp;<span class="couleur">';	
	contenu_marker_topo +=AltMin; 	
	contenu_marker_topo +='</span>&nbsp; m<br />';	
	contenu_marker_topo +='Différence d\'altitude entre le départ et l\'arrivée :&nbsp;<span class="couleur">';
	contenu_marker_topo +=diffalt; 
	contenu_marker_topo +='</span>&nbsp; m<br /><br />';
	contenu_marker_topo +='Dénivelé totale du parcours :&nbsp;<span class="couleur">';
	contenu_marker_topo +=denivele_total;
	contenu_marker_topo +='</span>&nbsp; m<br />';
	contenu_marker_topo +='Dénivelé négatif : <span class="couleur2">';
	contenu_marker_topo +=descente;
	contenu_marker_topo +='</span>&nbsp; m<br />';
	contenu_marker_topo +='Dénivelé positif : <span class="couleur">';
	contenu_marker_topo +=montee;
	contenu_marker_topo +='</span>&nbsp; m<br />';				
	contenu_marker_topo +='<a href="#graph">Voir le profil du parcours</a><br />';
	contenu_marker_topo +='<a href="#Topo">Affiner le calcul de topographie</a></span><br /><br />';
	contenu_marker_topo +='<input type="button" value="Topo simple" onclick="Graph()" id="toposimple" class="valider" onmouseover="rollover_bouton_toposimple();" onmouseout="rollout_bouton_toposimple();" onfocus="this.blur();" />';
	contenu_marker_topo +='</div>';				
	contenu_marker_topo +='';
	var tab_topo = new GInfoWindowTab ("Altitude",contenu_marker_topo);
	var contenu_marker_topo2 = '<div id="marker">';
	contenu_marker_topo2 +='<span class="address">';
	contenu_marker_topo2 +='<strong>Légende des couleurs des traits :</strong><br />';
	contenu_marker_topo2 +='<span class="couleur3">dénivelé=0%</span><br />';
	contenu_marker_topo2 +='<div id="denivelenegatif">';
	contenu_marker_topo2 +='<strong>Dénivelé négatif :</strong><br />';
	contenu_marker_topo2 +='<span class="couleur21">0&lt;<strong>dénivelé -</strong>&lt;=5%</span><br />'; 
	contenu_marker_topo2 +='<span class="couleur22">5%&lt;<strong>dénivelé-</strong>&lt;=10%</span><br />';
	contenu_marker_topo2 +='<span class="couleur23">10%&lt;<strong>dénivelé-</strong>&lt;=20%</span><br />';
	contenu_marker_topo2 +='<span class="couleur24">20%&lt;<strong>dénivelé -</strong></span><br />';
	contenu_marker_topo2 +='</div>';
	contenu_marker_topo2 +='<div id="denivelepositif">'; 
	contenu_marker_topo2 +='<strong>Dénivelé positif :</strong><br />';
	contenu_marker_topo2 +='<span class="couleur11">0&lt;<strong>dénivelé +</strong>&lt;=5%</span><br />';
	contenu_marker_topo2 +='<span class="couleur12">5%&lt;<strong>dénivelé +</strong>&lt;=10%</span><br />';
	contenu_marker_topo2 +='<span class="couleur13">10%&lt;<strong>dénivelé +</strong>&lt;=20%</span><br />';
	contenu_marker_topo2 +='<span class="couleur14">20%&lt;<strong>dénivelé +</strong></span>';
	contenu_marker_topo2 +='</div>';
	contenu_marker_topo2 +='<div>';
	contenu_marker_topo2 +='<br />';
	contenu_marker_topo2 +='</div>';
	contenu_marker_topo2 +='<div id="denivelemoyen"></strong>Dénivelé maxi sur ce parcours : <span class="couleur">';
	contenu_marker_topo2 +=	denivelemax; 
	contenu_marker_topo2 += '</span> %';
	contenu_marker_topo2 +='<br />Dénivelé mini sur ce parcours : <span class="couleur2">';
	contenu_marker_topo2 +=	denivelemini; 
	contenu_marker_topo2 += '</span> %';
	contenu_marker_topo2 +='<br />Dénivelé moyen sur ce parcours : <span class="couleur">';
	contenu_marker_topo2 +=	denivelemoyen; 
	contenu_marker_topo2 += '</span> %</div>';
	contenu_marker_topo2 +='</div>';				
	contenu_marker_topo2 +='';
	var tab_topo2 = new GInfoWindowTab ("Légende",contenu_marker_topo2);
	start_marker.openInfoWindowTabsHtml(new Array(tab_topo2,tab_topo));
	AfficherResultats();
}

//affiche le graphique de topologie
function Graph() {
	if(points.length<1){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	}	
	if (reverif_altitude==0){
		alert( 'Cliquez sur le bouton "Altitude" avant de calculer la topographie.' );
		return false;
	}
	if (reverif_altitude==1){
		topoDrawGraph( document.getElementById("graph"), coordinates, 900, 260 ); 
		CalculDistanceTopo();
		Ancre();
	}
}

function Graph2() {
	if(points.length<1){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	}	
	if (reverif_altitude==0){
		alert( 'Cliquez sur le bouton "Altitude" avant de calculer la topographie.' );
		return false;
	}
	if (reverif_altitude==1){
		topoDrawGraph( document.getElementById("graph"), coordinates, 900, 260 ); 
		CalculDistanceTopo();
	}
}
	
function Graph3() {
	if(points.length<1){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	//km markers 
	var topopointkmlat=new Array();
	var topopointkmlong=new Array();
	var kmpoint=total_distance/45;
	var i=kmpoint;
	var z=0;
	while(i<polyline.Distance()){
    	var topopointkm = polyline.GetPointAtDistance(i);
		topopointkmlat[z]=topopointkm.lat();
		topopointkmlong[z]=topopointkm.lng();
		i+=kmpoint;
		z++;
   	} 
	//fin km marker 
	var i=0; 
	var graph='<img src="http://www.heywhatsthat.com/bin/profile.cgi?&axes=0&curvature=0&metric=1';
	while(i<topopointkmlat.length){
		graph+="&pt";
		graph+=i;
		graph+="=";
		graph+=topopointkmlat[i];
		graph+=","
		graph+=topopointkmlong[i]; 
		i++;
	} 
	graph+='&width=900&height=150">';
	var Affichegraph = document.getElementById("Affichegraph"); 
	Affichegraph.innerHTML = graph;
}

//********************************************** Fin Topolographie ***************************************
	
//calcul la vitesse en fonction du temps
function CalculVitesse(tempshr,tempsmin,tempssec) {
	tempshr=parseFloat(tempshr);
	tempsmin=parseFloat(tempsmin);
	tempssec=parseFloat(tempssec);

	if ((tempshr>=0) && (tempsmin>=0) && (tempsmin<60) && (tempssec>=0) && (tempssec<60)){
		temps=((tempshr*3600)+(tempsmin*60)+tempssec);
		if (temps >0) {
			if (total_distance_topo){
				vitesse_moyenne = Math.round((((total_distance_topo/temps)*3600)/1000)*100)/100;
				temps_kilometre_min = Math.floor((3600/vitesse_moyenne)/60);
				temps_kilometre_sec = Math.round((3600/vitesse_moyenne)%60);
			}
			else{
				vitesse_moyenne = Math.round((((total_distance/temps)*3600)/1000)*100)/100;	
				temps_kilometre_min = Math.floor((3600/vitesse_moyenne)/60);
				temps_kilometre_sec = Math.round((3600/vitesse_moyenne)%60);
			}
		}
		else {
			vitesse_moyenne = 0;
			temps_kilometre_min = 0;
			temps_kilometre_sec = 0;
		}
	}
	
	else{
		alert(' Le temps en minutes doit être un chiffre ! \n Le temps en secondes doit être un chiffre compris entre 0 et 59 !');
	}
	
	var AfficheVitesseMoyenne = document.getElementById("AfficheVitesseMoyenne"); 
	AfficheVitesseMoyenne.innerHTML = vitesse_moyenne;

	var AfficheTempKilometremin = document.getElementById("AfficheTempKilometremin"); 
	AfficheTempKilometremin.innerHTML = temps_kilometre_min;

	var AfficheTempKilometresec = document.getElementById("AfficheTempKilometresec"); 
	AfficheTempKilometresec.innerHTML = temps_kilometre_sec;

}  

//calcul du temps en fonction de la vitesse
function CalculTemps(vitesse) {	
	var vitesse=parseFloat(vitesse);
	var vitesseMetreSec=(vitesse*0.277777778);
	var TempsParcoursSec;
	var TempsParcoursMin;
	var TempsParcoursHrs;
	var Tempsparcour;
	if (vitesse>0){
		if (points.length>2){
			if (total_distance_topo){
				Tempsparcour=Math.round((((total_distance_topo)/vitesseMetreSec))*100)/100;
				TempsParcoursHrs = Math.floor((Tempsparcour)/3600);
				TempsParcoursMin = Math.floor((Tempsparcour%3600)/60);
				TempsParcoursSec = Math.round((Tempsparcour%3600)%60);
			}
			else{
				Tempsparcour=Math.round((((total_distance)/vitesseMetreSec))*100)/100;
				TempsParcoursHrs = Math.floor((Tempsparcour)/3600);
				TempsParcoursMin = Math.floor((Tempsparcour%3600)/60);
				TempsParcoursSec = Math.round((Tempsparcour%3600)%60);
			}
		}
		else {
			TempsParcoursHrs = 0;
			TempsParcoursMin = 0;
			TempsParcoursSec = 0;			
		}
	}
	else{
		alert('La vitesse moyenne doit être un chiffre !');
	}
	
	var AfficheTempsParcoursHrs = document.getElementById("AfficheTempsParcoursHrs"); 
	AfficheTempsParcoursHrs.innerHTML = TempsParcoursHrs;	

	var AfficheTempsParcoursMin = document.getElementById("AfficheTempsParcoursMin"); 
	AfficheTempsParcoursMin.innerHTML = TempsParcoursMin;

	var AfficheTempsParcoursSec = document.getElementById("AfficheTempsParcoursSec"); 
	AfficheTempsParcoursSec.innerHTML = TempsParcoursSec;
	
}

//export un fichier au format gpx
function ExportXML() {
		phpcoordinates = coordinates.join(";");	
		phpaltitude = altitude.join(";");
		phpdistance=tableau_distance.join(";");
}

//export IGN
function ExportIGN() {
		phpcoordinates = coordinates.join(";");	
}

// sauvegarde parcours
function Sauvegarde() {
	if ( coordinates.length < 1 ){
		alert( 'Ajoutez au moins 1 point sur la carte.' );
	}
	else {
		if (points.length != altitude.length){
			alert(" Attendre quelques secondes le telechargement de l'altitude des points ! \n Cliquez sur OK pour retester.");
			Sauvegarde();
		}
		else {
		var phpcoordinates = coordinates.join(";");	
		var phpaltitude = altitude.join(";");
		document.location.href = 'http://www.calculitineraires.fr/sauvegarde.php?tab_coordinates='+phpcoordinates+'&tab_altitude='+phpaltitude;
		}
	}
	
} 

// rechercher parcours
function Rechercher() {	
	document.location.href = 'http://www.calculitineraires.fr/rechercher.php';
}

// import parcours
function Importfile() {	
	document.location.href = 'http://www.calculitineraires.fr/importfile.php';
}

//**************************** Autres calculs ***********************************************

//calcul depense calorie
function CalculCalories(){
	calories=0;
	var ratio = 0;
	if (document.forms.calorie.choix[0].checked){
		ratio=1.036;
	}
	if (document.forms.calorie.choix[1].checked){
		ratio=0.444;
	}
	if (document.forms.calorie.choix[2].checked){
		ratio=0.685;
	}
	poid=document.forms.calorie.poid.value;	
	poid=parseFloat(poid);
	if (total_distance_topo){
		calories=Math.round(total_distance_topo/1000) * poid * ratio;
	}
	else{
		calories=Math.round(total_distance/1000) * poid * ratio;
	}
	var Affichecalories = document.getElementById("Affichecalories"); 
	Affichecalories.innerHTML = Math.round(calories);
	
	ProgressBar();	
}

//calcul Vo2max
function CalculVo2max(tempsmin,tempssec){
	if(tempsmin==0 && tempssec==0){
		var Affichevo2max = document.getElementById("Affichevo2max"); 
		Affichevo2max.innerHTML = Math.round(vo2max*100)/100;
		var Affichevma = document.getElementById("Affichevma"); 
		Affichevma.innerHTML = Math.round(vma*100)/100;
	}
	else{
		tempsmin=parseFloat(tempsmin);
		tempssec=parseFloat(tempssec);
		if ((tempsmin>=0) && (tempssec>=0) && (tempssec<60)){
			temps=((tempsmin*60)+tempssec);
			if (temps >0) {
				if (total_distance_topo){
					vitesse_moyenne = total_distance_topo/temps;
					var tempsenmin=temps/60;
					if (total_distance_topo>=1000){
						if ((total_distance_topo>=5000) || (tempsenmin>=10)){
							vo2max = (total_distance_topo + (30*tempsenmin)) / (5*tempsenmin);
							vma = vo2max/3.5;
						}
						else{
							vo2max = (total_distance_topo + (30*tempsenmin)) / ((5*tempsenmin)+5);
							vma = vo2max/3.5;
						}
					}
					else{
						alert(' La distance doit être supérieure à 1000 mètres !');
					}
				}
				else{
					vitesse_moyenne = total_distance/temps;
					var tempsenmin=Math.floor(temps/60)+((temps%60)/100);
					if (total_distance>=1000){
						if ((total_distance>=5000) || (tempsenmin>=10)){
							vo2max = (total_distance + (30*tempsenmin)) / (5*tempsenmin);
							vma = vo2max/3.5;
						}
						else{
							vo2max = (total_distance + (30*tempsenmin)) / ((5*tempsenmin)+5);
							vma = vo2max/3.5;
						}
					}
					else{
						alert(' La distance doit être supérieure à 1000 mètres !');
					}
				}
			}
			else {
				vitesse_moyenne = 0;
			}
		}
	
		else{
			alert(' Le temps en minutes doit être un chiffre ! \n Le temps en secondes doit être un chiffre compris entre 0 et 59 !');
		}
	
		var Affichevo2max = document.getElementById("Affichevo2max"); 
		Affichevo2max.innerHTML = Math.round(vo2max*100)/100;
		var Affichevma = document.getElementById("Affichevma"); 
		Affichevma.innerHTML = Math.round(vma*100)/100;
	}
}

//**************************** Fin Autres calculs ***********************************************



//************************** Affichange des resultats***************************************

//fonction affiche des resultats		
function AfficherResultats(){
	var distance_affiche = Math.round(distance*10)/10;
	var distance_total_affiche_metre = Math.round(total_distance*10)/10;
	distance_total_affiche_km = Math.round((total_distance/1000)*100)/100;
	var nombre_points = points.length;
	pointprecedant = points.length - 1;
	var total_distance_topo_km = Math.round(total_distance_topo)/1000;
	
	if (coordinates[pointprecedant]){
		var latlong = "Coordonnées du dernier point : " + coordinates[pointprecedant];
	}
	else{
		var latlong = "Coordonnées du dernier point : pas de point sur la carte";
	}
	
		if (points.length>1){
				i=polyline.Distance();
				pointkm = polyline.GetPointAtDistance(i);
      			if (pointkm) { 
					u="<div style=\"color:"+poly+";width:150px;\"><strong>"+distance_total_affiche_metre+" m / "+distance_total_affiche_km+" km</strong></div>";
       				CreateMarkerDistance(pointkm);
      			} 
	}
	
	var affiche_lat_long = document.getElementById("affiche_lat_long"); 
	affiche_lat_long.innerHTML = latlong;	
	
	var affiche_distance = document.getElementById("affiche_distance"); 
	affiche_distance.innerHTML = distance_affiche;
	
    var affiche_distance_total_metre = document.getElementById("affiche_distance_total_metre"); 
	affiche_distance_total_metre.innerHTML = distance_total_affiche_metre;
	var affiche_distance_total_km = document.getElementById("affiche_distance_total_km"); 
	affiche_distance_total_km.innerHTML = distance_total_affiche_km;
    var affiche_nombre_points = document.getElementById("affiche_nombre_points"); 
	affiche_nombre_points.innerHTML = nombre_points;
	
	var affiche_total_distance_topo = document.getElementById("affiche_total_distance_topo"); 
	affiche_total_distance_topo.innerHTML = Math.round(total_distance_topo*10)/10;	
	
	var affiche_total_distance_topo_km = document.getElementById("affiche_total_distance_topo_km"); 
	affiche_total_distance_topo_km.innerHTML = total_distance_topo_km;

	var affiche_denivele_total = document.getElementById("affiche_denivele_total"); 
	affiche_denivele_total.innerHTML = denivele_total;	

	var affiche_montee = document.getElementById("affiche_montee"); 
	affiche_montee.innerHTML = montee;

	var affiche_descente = document.getElementById("affiche_descente"); 
	affiche_descente.innerHTML = descente; 
	
	var affiche_alt_depart = document.getElementById("affiche_alt_depart"); 
	affiche_alt_depart.innerHTML = altdepart;
	
	var affiche_alt_depart = document.getElementById("affiche_alt_depart"); 
	affiche_alt_depart.innerHTML = altdepart;
	
	var affiche_alt_arrivee = document.getElementById("affiche_alt_arrivee"); 
	affiche_alt_arrivee.innerHTML = altarrive;	
	
	var affiche_alt_max = document.getElementById("affiche_alt_max"); 
	affiche_alt_max.innerHTML = AltMax;	
	
	var affiche_alt_min = document.getElementById("affiche_alt_min"); 
	affiche_alt_min.innerHTML = AltMin;		
	
	var affiche_diff_alt = document.getElementById("affiche_diff_alt"); 
	affiche_diff_alt.innerHTML = diffalt;   
		
	var affiche_diff_alt = document.getElementById("affiche_diff_alt"); 
	affiche_diff_alt.innerHTML = diffalt;   
		
	
	if (reverif_altitude==0){
		
		switch (points.length) {
			case 0:
			var affiche_etat_altitude = document.getElementById("affiche_etat_altitude"); 
			affiche_etat_altitude.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude impossible : ajoutez 2 points au parcours.</span>";
			
			var affiche_etat_altitude3 = document.getElementById("affiche_etat_altitude3"); 
			affiche_etat_altitude3.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude impossible : ajoutez 2 points au parcours.</span>";
			break;
			
			case 1:
			var affiche_etat_altitude = document.getElementById("affiche_etat_altitude"); 
			affiche_etat_altitude.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude impossible : ajoutez 1 point au parcours.</span>";	
			
			var affiche_etat_altitude3 = document.getElementById("affiche_etat_altitude3"); 
			affiche_etat_altitude3.innerHTML = "<span class=\"couleur\">Téléchargement de l'altitude impossible : ajoutez 1 point au parcours.</span>";				
			
			break;
			
			default:
			var affiche_etat_altitude = document.getElementById("affiche_etat_altitude"); 
			affiche_etat_altitude.innerHTML = "<span class=\"couleur2\">Téléchargement de l'altitude possible.</span>";
			
			var affiche_etat_altitude3 = document.getElementById("affiche_etat_altitude3"); 
			affiche_etat_altitude3.innerHTML = "<span class=\"couleur2\">Téléchargement de l'altitude possible.</span>";
			
			break;
		}
		
	}
		
	
//************************** Affichage formulaire *********************************************	 
	var formulairegpx='<input type="hidden" id="tab_coordinatesgpx" name="tab_coordinatesgpx" value="' + phpcoordinates +'" /><input type="hidden" id="tab_altitudegpx" name="tab_altitudegpx" value="' + phpaltitude +'" /><input type="hidden" id="tab_namegpx" name="tab_namegpx" value="' + GPSExportName +'" />';
	
	var formgpx = document.getElementById("formgpx");
	formgpx.innerHTML = formulairegpx;
	
	var formulairecsv='<input type="hidden" id="tab_coordinatescsv" name="tab_coordinatescsv" value="' + phpcoordinates +'" /><input type="hidden" id="tab_altitudecsv" name="tab_altitudecsv" value="' + phpaltitude +'" /><input type="hidden" id="tab_distancecsv" name="tab_distancecsv" value="' + phpdistance +'" /><input type="hidden" id="tab_namegpx" name="tab_namegpx" value="' + GPSExportName +'" />';
	
	var formcsv = document.getElementById("formcsv");
	formcsv.innerHTML = formulairecsv;
	
	var formulairekml='<input type="hidden" id="tab_coordinateskml" name="tab_coordinateskml" value="' + phpcoordinates +'" /><input type="hidden" id="tab_altitudekml" name="tab_altitudekml" value="' + phpaltitude +'" /><input type="hidden" id="tab_namegpx" name="tab_namegpx" value="' + GPSExportName +'" />';
	
	var formkml = document.getElementById("formkml");
	formkml.innerHTML = formulairekml;
	
	var formulairetcx='<input type="hidden" id="tab_coordinatestcx" name="tab_coordinatestcx" value="' + phpcoordinates +'" /><input type="hidden" id="tab_altitudetcx" name="tab_altitudetcx" value="' + phpaltitude +'" /><input type="hidden" id="tab_distancetcx" name="tab_distancetcx" value="' + phpdistance +'" /><input type="hidden" id="totaldistancetcx" name="totaldistancetcx" value="' + total_distance +'" /><input type="hidden" id="tab_namegpx" name="tab_namegpx" value="' + GPSExportName +'" />';
	
	var formtcx = document.getElementById("formtcx");
	formtcx.innerHTML = formulairetcx;
	
	var formulairesave='<input type="hidden" id="tab_coordinatessave" name="tab_coordinatessave" value="' + phpcoordinates +'" /><input type="hidden" id="tab_distancesave" name="tab_distancesave" value="' + distance_total_affiche_km +'" /><input type="hidden" id="tab_namegpx" name="tab_namegpx" value="' + GPSExportName +'" />';
	
	var formsave = document.getElementById("formsave");
	formsave.innerHTML = formulairesave;
	
	
	var formulaireign='<input type="hidden" id="tab_coordinatesign" name="tab_coordinatesign" value="' + phpcoordinates +'" />';
	
	var formign = document.getElementById("formign");
	formign.innerHTML = formulaireign;
	
	var formulaireprint='<input type="hidden" id="tab_coordinatesign" name="tab_coordinatesign" value="' + phpcoordinates +'" />';
	
	var formprint = document.getElementById("formprint");
	formprint.innerHTML = formulaireprint;
				
//************************** Fin affichage formulaire **********************************************
	
//****************************** Affichage impression **************************************	
	var affiche_denivele_total_print = document.getElementById("affiche_denivele_total_print"); 
	affiche_denivele_total_print.innerHTML = denivele_total;	

	var affiche_montee_print = document.getElementById("affiche_montee_print"); 
	affiche_montee_print.innerHTML = montee;

	var affiche_descente_print = document.getElementById("affiche_descente_print"); 
	affiche_descente_print.innerHTML = descente; 
	
	var affiche_distance_total_metre_print = document.getElementById("affiche_distance_total_metre_print"); 
	affiche_distance_total_metre_print.innerHTML = distance_total_affiche_metre;
	var affiche_distance_total_km_print = document.getElementById("affiche_distance_total_km_print"); 
	affiche_distance_total_km_print.innerHTML = distance_total_affiche_km; 
	
}
//****************************** Fin affichage impression **************************************	


//************************** Fin Affichange des resultats***************************************   
	

//************************************ Mise en page des boutons *******************************

//bouton go
function rollover_bouton_go(){
    document.getElementById('go').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_go(){
    document.getElementById('go').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_go(){
    document.getElementById('go').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton calculer
function rollover_bouton_calculer(){
    document.getElementById('calculer').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_calculer(){
    document.getElementById('calculer').style.backgroundImage='url(images/bouton5.jpg)';
}

function rollout_bouton_calculer(){
    document.getElementById('calculer').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton calculer2
function rollover_bouton_calculer2(){
    document.getElementById('calculer2').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_calculer2(){
    document.getElementById('calculer2').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_calculer2(){
    document.getElementById('calculer2').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton calculer3
function rollover_bouton_calculer3(){
    document.getElementById('calculer3').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_calculer3(){
    document.getElementById('calculer3').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_calculer3(){
    document.getElementById('calculer3').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton calculertemps
function rollover_bouton_calculertemps(){
    document.getElementById('calculertemps').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_calculertemps(){
    document.getElementById('calculertemps').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_calculertemps(){
    document.getElementById('calculertemps').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton topologie
function rollover_bouton_topo(){
    document.getElementById('topo1').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_topo(){
    document.getElementById('topo1').style.backgroundImage='url(images/bouton1.jpg)';
} 

//bouton topologie2
function rollover_bouton_topo2(){
    document.getElementById('topo2').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_topo2(){
    document.getElementById('topo2').style.backgroundImage='url(images/bouton1.jpg)';
} 

//bouton topologie3
function rollover_bouton_topo3(){
    document.getElementById('topo3').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_topo3(){
    document.getElementById('topo3').style.backgroundImage='url(images/bouton1.jpg)';
} 

//bouton topologie4
function rollover_bouton_topo4(){
    document.getElementById('topo4').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_topo4(){
    document.getElementById('topo4').style.backgroundImage='url(images/bouton1.jpg)';
} 

//bouton topologie5
function rollover_bouton_topo5(){
    document.getElementById('topo5').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_topo5(){
    document.getElementById('topo5').style.backgroundImage='url(images/bouton1.jpg)';
} 

//bouton topologie6
function rollover_bouton_topo6(){
    document.getElementById('topo6').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_topo6(){
    document.getElementById('topo6').style.backgroundImage='url(images/bouton1.jpg)';
} 


//bouton topologie simple
function rollover_bouton_toposimple(){
    document.getElementById('toposimple').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_toposimple(){
    document.getElementById('toposimple').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton denivele
function rollover_bouton_boutondenivele(){
    document.getElementById('boutondenivele').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_boutondenivele(){
    document.getElementById('boutondenivele').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton gpx
function rollover_bouton_gpx(){
    document.getElementById('gpx').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_gpx(){
    document.getElementById('gpx').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_gpx(){
    document.getElementById('gpx').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton csv
function rollover_bouton_csv(){
    document.getElementById('csv').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_csv(){
    document.getElementById('csv').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_csv(){
    document.getElementById('csv').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton kml
function rollover_bouton_kml(){
    document.getElementById('kml').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_kml(){
    document.getElementById('kml').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_kml(){
    document.getElementById('kml').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton tcx
function rollover_bouton_tcx(){
    document.getElementById('tcx').style.backgroundImage='url(images/bouton2.jpg)';
}

function click_bouton_tcx(){
    document.getElementById('tcx').style.backgroundImage='url(images/bouton5.jpg)';	
}

function rollout_bouton_tcx(){
    document.getElementById('tcx').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton print
function rollover_bouton_print(){
    document.getElementById('print').style.backgroundImage='url(images/bouton2.jpg)';
}

function rollout_bouton_print(){
    document.getElementById('print').style.backgroundImage='url(images/bouton1.jpg)';
}

//bouton IGN
function rollover_bouton_boutonign(){
    document.getElementById('boutonign').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_boutonign(){
    document.getElementById('boutonign').style.backgroundImage='url(images/bouton4.jpg)';
}

//bouton Print
function rollover_bouton_boutonprint(){
    document.getElementById('boutonprint').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_boutonprint(){
    document.getElementById('boutonprint').style.backgroundImage='url(images/bouton4.jpg)';
}

//bouton effacer 0
function rollover_bouton_effacer0(){
    document.getElementById('effacer0').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_effacer0(){
    document.getElementById('effacer0').style.backgroundImage='url(images/bouton4.jpg)';
}

//bouton effacer 1
function rollover_bouton_effacer1(){
    document.getElementById('effacer1').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_effacer1(){
    document.getElementById('effacer1').style.backgroundImage='url(images/bouton4.jpg)';
}

//bouton effacer 2
function rollover_bouton_effacer2(){
    document.getElementById('effacer2').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_effacer2(){
    document.getElementById('effacer2').style.backgroundImage='url(images/bouton4.jpg)';
}	

//bouton invertion
function rollover_bouton_invertion(){
    document.getElementById('invertion').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_invertion(){
    document.getElementById('invertion').style.backgroundImage='url(images/bouton4.jpg)';
}	

//bouton invertion2
function rollover_bouton_invertion2(){
    document.getElementById('invertion2').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_invertion2(){
    document.getElementById('invertion2').style.backgroundImage='url(images/bouton4.jpg)';
}

//bouton invertion3
function rollover_bouton_invertion3(){
    document.getElementById('invertion3').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_invertion3(){
    document.getElementById('invertion3').style.backgroundImage='url(images/bouton4.jpg)';
}

//bouton sauvegarde
function rollover_bouton_sauvegarde(){
    document.getElementById('sauvegarde').style.backgroundImage='url(images/bouton3.jpg)';
}

function rollout_bouton_sauvegarde(){
    document.getElementById('sauvegarde').style.backgroundImage='url(images/bouton4.jpg)';
}  

//bouton rechercher
function rollover_bouton_recherche(){
    document.getElementById('recherche').style.backgroundImage='url(images/bouton3.jpg)';
}

function rollout_bouton_recherche(){
    document.getElementById('recherche').style.backgroundImage='url(images/bouton4.jpg)';
}  

//bouton profil2
function rollover_bouton_profil2(){
    document.getElementById('profil2').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_profil2(){
    document.getElementById('profil2').style.backgroundImage='url(images/bouton4.jpg)';
}

//bouton import
function rollover_bouton_import(){
    document.getElementById('import').style.backgroundImage='url(images/bouton3.jpg)';
}
function rollout_bouton_import(){
    document.getElementById('import').style.backgroundImage='url(images/bouton4.jpg)';
}
//************************************Fin mise en page des boutons*******************************	 

//**************************************Verif formulaire*******************************************
function Verif(){ 
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	if (reverif_altitude==0){
		alert( 'Cliquez avant sur le bouton "Altitude" avant d\'exporter des fichiers.' );
		return false;
	}
	else {
		ExportXML();
		AfficherResultats();
		return true;	
	}
}

function VerifIGN(){ 
	ExportIGN();
	AfficherResultats();
	return true;	
}

function VerifPrint(){ 
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	else {
		ExportIGN();
		AfficherResultats();
		return true;
	}
}

function Verif2(){ 
	if ( coordinates.length < 2 ){
		alert( 'Ajoutez au moins 2 points sur la carte.' );
		return false;
	} 
	else {
		ExportXML();
		AfficherResultats();
		return true;	
	}
}
//**************************************Fin verif formulaire*******************************************

//**************************************Ancre***********************************************************

function Ancre() {
	document.location.href="#map"; 
}

//**************************************Fin ancre******************************************************	

//dessine des markers avec text
function CreateMarker(pointData) {
		icon = new GIcon();
		icon.image = './images/icon52.png';	 
		icon.iconSize = new GSize(18, 22);
		icon.iconAnchor = new GPoint(7, 7); 
		icon.shadow = ""; 
		opts = {
			"icon": icon,
			"clickable": false,
			"draggable": false,
			"labelText":z,
			"labelOffset": new GSize(-2, 11)
		};
		kmmarker = new LabeledMarker(pointData, opts);
		map.addOverlay(kmmarker);
}
//fin dessine des markers avec text

//dessine la distance
function CreateMarkerDistance(pointData) {
		icon = new GIcon();
		icon.image = '';	 
		icon.iconSize = new GSize(0, 0);
		icon.iconAnchor = new GPoint(120, 120); 
		icon.shadow = ""; 
		opts = {
			"icon": icon,
			"clickable": false,
			"draggable": false,
			"labelText":u,
			"labelOffset": new GSize(-5, 20)
		};
		kmmarker = new LabeledMarker(pointData, opts);
		map.addOverlay(kmmarker);
}
//fin dessine la distance

//************************************** ProgressBar *******************************************************
var o
var barre;
function ProgressBar(){
	calories=Math.round(calories);
	if (calories>=1000){
		barre=430;
	}
	else{
		barre=(calories/1000)*430;
	}
	document.getElementById("d1").innerHTML="";	document.getElementById("d2").style.width=0;  o=0;
	ProgressBar2(); 
}

function ProgressBar2(){
	if (o<=(barre)){
		if (barre<210){
			document.getElementById("d2").style.backgroundColor="green";
		}
		else{
			document.getElementById("d2").style.backgroundColor="red";
		}
		document.getElementById("d2").style.width=o+"px";
		if (o>50){document.getElementById("d1").innerHTML=parseInt(calories)+"&nbsp;kcal";}
		var j=0;		
		while (j<=100)
       	j++;  
        setTimeout("ProgressBar2();", 10); 
        o++;   
   }
}
//************************************** fin ProgressBar *******************************************************


//code ign

function InitGeoportalMap(){

			apiload=1;
	        ClickControl= OpenLayers.Class( OpenLayers.Control, {
            /**
             * Constructor ClickControl
             */
            initialize: function(options) {
                OpenLayers.Control.prototype.initialize.apply(this,arguments);
                this.handlerOptions= {
                    'single': true,
                    'double': false,
                    'pixelTolerance': 0,
                    'stopSingle': false,
                    'stopDouble': false
                };
                this.handler= new OpenLayers.Handler.Click(
                    this, {'click': this.trigger}, this.handlerOptions);
            },

            /**
             * APIMethod: trigger
             */
            trigger: function(e) {
                var lonlat= this.map.getLonLatFromViewPortPx(e.xy).transform(
                    this.map.getProjection(), OpenLayers.Projection.CRS84
                );
                //points_ign.push(lonlat.lon,lonlat.lat);
				point_ajout_ign=new GLatLng(parseFloat(lonlat.lat),parseFloat(lonlat.lon));
				AjoutPolylineIGN();
				//var pointign=new GLatLng(parseFloat(lonlat.lat),parseFloat(lonlat.lon));
				//points.push(pointign);
				/*if (points_ign.length>1){
					DessinerParcours();
				}*/
            }
        });
	
	geoportalLoadVISU("GeoportalVisuDiv", "normal");
	
	if (VISU) {
		//olMap est une instance de la classe OpenLayers.Map

		olMap = VISU.getMap();
		VISU.addGeoportalLayers();
//		VISU.addGeoportalLayers(VISU.allowedGeoportalLayers);
//		VISU.getMap().setCenter(-1.1517797680334355770587493,46.159506,15,false,true);

//		Affichage d'une "partience" pendant le téléchargement
		VISU.getMap().addControl(new OpenLayers.Control.LoadingPanel());

// onglet "couches" affiché (true=oui  false=non)
		VISU.setLayersPanelVisibility(true);
// onglet "couches" développé (true=oui  false=non)
		VISU.openLayersPanel(false);

// onglet "outils" affiché (true=oui  false=non)        
		VISU.setToolsPanelVisibility(true);
// onglet "outils" développé (true=oui  false=non)        
		VISU.openToolsPanel(false);


		VISU.getMap().setCenterAtLonLat(-1.1517797680334355770587493,46.159506,12);
		
		//1. Create a vector layer:
		line_layer = new OpenLayers.Layer.Vector('Parcours');
		VISU.getMap().addLayer(line_layer);  // Assuming that map is your map object
		
		//couche des marqueurs
		couche_marqueurs=new OpenLayers.Layer.Markers("Marqueurs");
		VISU.getMap().addLayer(couche_marqueurs);
		
		var monClic= new ClickControl();
		VISU.getMap().addControl(monClic);
		monClic.activate();

	}
}

function DessinerIGN(){
	line_layer.removeFeatures(line_layer.features);
	AddMarkerStart();
		//2. Create a LineString geometry object with the end points of your line:
//		 var pointsapiign = new Array(new OpenLayers.Geometry.Point(-1.206350326538086,46.14965600748969),new OpenLayers.Geometry.Point(-1.1785411834716797,46.17819014432125),new OpenLayers.Geometry.Point(-1.1114215850830078,46.15572074990004));
		var pointsapiign = new Array();
		var ign1=0;
		var ign2=1;
		while(ign1<points_ign.length){
			var newignpoint=new OpenLayers.Geometry.Point(points_ign[ign1],points_ign[ign2]);
			pointsapiign[ign1]=newignpoint;
			ign1=ign1+2;
			ign2=ign2+2;
		 }
		var line = new OpenLayers.Geometry.LineString(pointsapiign); 
		VISU.getMap().setCenterAtLonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
		//3. Transform the LineString into the map projection:
		var defaultProj = new OpenLayers.Projection('EPSG:4326');
		line = line.transform(defaultProj, VISU.getMap().getProjectionObject());

		
		//4. Define a style for your line:
		var style = {
		strokeColor: poly, 
		strokeOpacity: 1,
		strokeWidth: 2
		};
		
		//5. Create a vector feature with the LineString geometry:
		lineFeature = new OpenLayers.Feature.Vector(line, null, style);
		
		//6. Add the feature to the vector layer:
		line_layer.addFeatures([lineFeature]);
		AddMarkerEnd();
}

function AddMarkerStart(){

	couche_marqueurs.clearMarkers();
	//icone marqueur
	var taille=new OpenLayers.Size(20,36);
	var decalage=new OpenLayers.Pixel(-(taille.w/2), -taille.h);
	var icone=new OpenLayers.Icon('http://maps.google.com/mapfiles/dd-start.png', taille, decalage);

	var position;
	var marqueur;

	//un marqueur
	position=new OpenLayers.LonLat(points_ign[0],points_ign[1]);
	position.transform(OpenLayers.Projection.CRS84, VISU.getMap().getProjection());
	marqueurstart=new OpenLayers.Marker(position, icone);
	couche_marqueurs.addMarker(marqueurstart);
}

function AddMarkerEnd(){

	//icone marqueur
	var taille=new OpenLayers.Size(14,20);
	var decalage=new OpenLayers.Pixel(-(taille.w/2), -taille.h);
	var icone=new OpenLayers.Icon('http://maps.google.com/mapfiles/dd-end.png', taille, decalage);

	var position;
	var marqueur;

	//un marqueur
	position=new OpenLayers.LonLat(points_ign[points_ign.length-2],points_ign[points_ign.length-1]);
	position.transform(OpenLayers.Projection.CRS84, VISU.getMap().getProjection());
	marqueurend=new OpenLayers.Marker(position, icone);
	couche_marqueurs.addMarker(marqueurend);
}

// Nom pour Export
function GPS(GPSName){
	GPSExportName=GPSName.replace(/[^a-zA-Z0-9]/ig, '');
	return true;
}



