


var wayPointStartPlace = null;		
var wayPointEndPlace = null;
var focusLieuDepart = false;
var focusLieuArrivee = false;				


function calculMap(autoroute_autorise) 
{
  	var map;
	var directionsPanel;
    var geocoder = new GClientGeocoder();
	
	var directions;
        var status;
		map = new GMap2(document.getElementById("map"));
		map.setUIToDefault();      
	
		


	if (GBrowserIsCompatible())
	{

		

	       // map.setCenter(new GLatLng(47.388355,0.688705), 10);
		directionsPanel = document.getElementById("route");
		directions = new GDirections(map,directionsPanel);
		//var requete = "from: "+start_place+", to: "+stop_place;
		//alert(requete);
		/*if(autoroute_autorise==1)
			directions.load(requete,{avoidHighways:false});
		else
			directions.load(requete,{avoidHighways:true});
		*/

		
		var wp = new Array(2);
		wp[0] = new GLatLng(parseFloat($('tra_lieu_depart_latitude').value), parseFloat($('tra_lieu_depart_longitude').value));
		wp[1] = new GLatLng(parseFloat($('tra_lieu_arrivee_latitude').value), parseFloat($('tra_lieu_arrivee_longitude').value));

		if(autoroute_autorise==1)	
			directions.loadFromWaypoints(wp,{avoidHighways:false});
		else
			directions.loadFromWaypoints(wp,{avoidHighways:true});

	
		GEvent.addListener(directions,"load", function() {

			status = directions.getStatus().code;
			
			// Indique la distance sous cette forme : 157&nbsp;km
			var distance = directions.getDistance().html;

			// Indique la distance sous cette forme : 157147
			var mesure = directions.getDistance().meters;

			// Indique la durée de l'itinéraire sous cette forme : 1 heure 58
	//minutes
			var duree = directions.getDuration().seconds;

			// Indique les infos distance + temps sous cette forme : 157&nbsp;km
	//( environ 1 heure 58 minutes )
			var sommaire = directions.getSummaryHtml();
   
		 //  alert("- Distance : "+distance+"\n- Mesure : "+mesure+"\n- Durée :"+duree+"\n- Sommaire : "+sommaire);
		   var saisie_forcee = false;
		   if($('tra_saisie_forcee'))
		   	saisie_forcee = $('tra_saisie_forcee').checked;
		
		   if(!saisie_forcee)
		   {
			if($('tra_distance')) $('tra_distance').value = Math.round(mesure/1000);
				$('tra_distance_hidden').value = Math.round(mesure/1000);
			
			if($('tra_temps_estime_heures')) $('tra_temps_estime_heures').value = Math.floor(duree/3600);
			if($('tra_temps_estime_minutes')) $('tra_temps_estime_minutes').value = Math.floor((duree/60)%60);
			$('tra_temps_estime_heures_hidden').value = Math.floor(duree/3600);
			$('tra_temps_estime_minutes_hidden').value = Math.floor((duree/60)%60);
		   }
		   
		});
		
		
	 }
}

	function showAddress(address,id_latitude_field,id_longitude_field,updateMap,displayMap) 
	{
	
	  	var map;
	var directionsPanel;
    var geocoder = new GClientGeocoder();
	//address = address + ",france";
	var directions;
        var status;
		map = new GMap2(document.getElementById("map"));
		map.setUIToDefault(); 
	geocoder.getLatLng(
	address,
	function(point) {
	if (!point) {
		$('map').style.display = "none";
		$('tra_lieu_non_trouve').style.display = "inline";
		if (document.getElementById)
		{
		document.getElementById("tra_lieu_non_trouve").innerHTML =  "Le lieu  \""+address+"\" n'a pas été trouvé. Merci de re-saisir la ville et de séléctionner le bon code postal dans la liste.";
		}
		else if (document.all)
		{
		document.all["tra_lieu_non_trouve"].innerHTML =  "Le lieu \""+address+"\" n'a pas ét� trouvé.  Merci de re-saisir la ville et de séléctionner le bon code postal dans la liste.";
		}
		return null;
	} else {
	if(displayMap==undefined) $('map').style.display = "inline";
	else
	if(displayMap) $('map').style.display = "inline"; else $('map').style.display = "none";
	$('tra_lieu_non_trouve').style.display = "none";
	$('tra_lieu_non_trouve').innerHTML = '';
	if(updateMap)
	{
		map.setCenter(point, 13);
		var marker = new GMarker(point);
		map.addOverlay(marker);
	}
	//marker.openInfoWindowHtml(address);
	$(id_latitude_field).value = point.lat();
	$(id_longitude_field).value = point.lng();
	}
	}
	);
	}
  
function validerCalculMapTempo()
{
setTimeout('validerCalculMap()',2000);
}
  
function validerCalculMap(displayMap)
{
  	if($('tra_lieu_depart_latitude').value && $('tra_lieu_depart_longitude').value && $('tra_lieu_arrivee_latitude').value && $('tra_lieu_arrivee_longitude').value) 
  	{
		if(displayMap) $('infos').style.display = 'inline';
		calculMap($('tra_autoroute_autorise').value);
	}
	else
	{
		$('infos').style.display = 'none';
	}	
}

function initialiserMap()
{
	if($('tra_lieu_depart_ville').value!='') { showAddress(getLieuDepart(),'tra_lieu_depart_latitude','tra_lieu_depart_longitude',false); }
	if($('tra_lieu_arrivee_ville').value!='') { showAddress(getLieuArrivee(),'tra_lieu_arrivee_latitude','tra_lieu_arrivee_longitude',false); }
	if($('tra_lieu_arrivee_ville').value=='' && $('tra_lieu_depart_ville').value=='')
	{
		map = new GMap2(document.getElementById("map"));
		map.setUIToDefault();
		map.setCenter(new GLatLng(46.75984,1.738281),5);       
	}
	else validerCalculMapTempo();
}

function getLieuDepart()
{
	return $('tra_lieu_depart_adresse').value+","+$('tra_lieu_depart_ville').value;
}

function getLieuArrivee()
{
	return $('tra_lieu_arrivee_adresse').value+","+$('tra_lieu_arrivee_ville').value;
}


function validerLieuDepartTempo(displayMap)
{
if(displayMap) setTimeout('validerLieuDepart(true)',1000);
else setTimeout('validerLieuDepart(false)',1000);
}

function validerLieuDepart(displayMap)
{
	focusLieuDepart = false;
	if($('tra_lieu_depart_ville').value) showAddress(getLieuDepart(),'tra_lieu_depart_latitude','tra_lieu_depart_longitude',true,displayMap);			 
	validerCalculMapTempo(displayMap);

}

function validerLieuArriveeTempo(displayMap)
{
if(displayMap) setTimeout('validerLieuArrivee(true)',1000);
else setTimeout('validerLieuArrivee(false)',1000);
}

function validerLieuArrivee(displayMap)
{
	focusLieuArrivee = false;
	if($('tra_lieu_arrivee_ville').value) showAddress(getLieuArrivee(),'tra_lieu_arrivee_latitude','tra_lieu_arrivee_longitude',true,displayMap);
	validerCalculMapTempo(displayMap);
}

function validerFormulaireCourse()
{

	if(!focusLieuDepart && !focusLieuArrivee)
		return validate_form_course($('form_course'));
	else return false;
	//if(validate_form_course($('form_course'))) $('form_course').submit();
}

