/*
	   var idTestoParziale = 'istruzioni';
	   var idTestoTotale = 'istruzioni';
   	   var testoItinearioCompleto = "";
	   var rc = new Array();  //Vettore delle route parziali calcolate

 (v.4) function addToItinerario(puntoPartenzaLat, puntoPartenzaLong, puntoArrivoLat, puntoArrivoLong)
 (v.4) function stampaItinerarioCompleto()
 (v.4) function aggiungiTestoItinerario(route) 
 (v.4) function onGotRoute(route) 
 (v.4) function trattaSingola(puntoPartenzaLat, puntoPartenzaLong, puntoArrivoLat, puntoArrivoLong, idTesto)   
*/


   var idTestoParziale = 'istruzioni';
   var idTestoTotale = 'istruzioni';
   var testoItinearioCompleto = "";
   var rc = new Array();  //Vettore delle route parziali calcolate
  
   //Calcola un itinerario parziale
   function addToItinerario(puntoPartenzaLat, puntoPartenzaLong, puntoArrivoLat, puntoArrivoLong)
   {
     puntoPartenza = new VELatLong(puntoPartenzaLat, puntoPartenzaLong);
     puntoArrivo = new VELatLong(puntoArrivoLat, puntoArrivoLong);
     try
     {
      map.GetRoute(puntoPartenza, puntoArrivo, VEDistanceUnit.Kilometers, VERouteType.Shortest, aggiungiTestoItinerario);    
      map.DeleteRoute();
     }catch(e)
     {
      alert(e.message);
     }
   }
  
   //Stampa l'intero itinerario nell'oggetto della pagina definito nella variabile idTestoTotale
   function stampaItinerarioCompleto()
    {
     var distanzaTotale = 0;
     var steps = "";
     var len = 0;
     var puntiItinerario = new Array;
     var unita = "KM";

     for (var cn=0; cn<rc.length; cn++)
     {
      route = rc[cn];
      distanzaTotale += route.Itinerary.Distance;
      unita = route.Itinerary.DistanceUnit;
      len = route.Itinerary.Segments.length;
      for(var i = 0; i<len ;i++)
      { 
       steps+=route.Itinerary.Segments[i].Instruction + " -- (";
       steps+=route.Itinerary.Segments[i].Distance+") ";
       puntiItinerario[puntiItinerario.length] = route.Itinerary.Segments[i].LatLong;
       steps+=route.Itinerary.DistanceUnit+"<br />\n";
      } 
     }
     var routeinfo="<b>Informazioni del percorso totale:</b><br /><br />\n\n";     
     routeinfo += "<b>Distanza totale:</b>" + distanzaTotale + " " + unita + "<br />\n";
     routeinfo += steps +'<br />';
     //steps+=route.Itinerary.Segments[i].Instruction+" -- ("; steps+=route.Itinerary.Segments[i].Distance+") ";
     //steps+=route.Itinerary.DistanceUnit+"\n";
     testoInformazioni = getObject(idTestoTotale);     
     testoInformazioni.innerHTML=routeinfo;     
    }

	//Funzione che genera il disegno di una rotta da un punto ad un altro
    function aggiungiTestoItinerario(route) 
    {
      rc[rc.length]=route;
    }
    
	//Funzione che genera il disegno di una rotta da un punto ad un altro
    function onGotRoute(route) 
    {
      rc[rc.length]=route;
      var routeinfo="<b>Informazioni di percorso:</b><br /><br />\n\n";
      routeinfo += "Distanza totale: "; 
      routeinfo += route.Itinerary.Distance+" ";
      routeinfo += route.Itinerary.DistanceUnit+"<br />\n";
      var steps="";
      var len = route.Itinerary.Segments.length;
      for(var i = 0; i<len ;i++)
      { 
       steps+=route.Itinerary.Segments[i].Instruction+" -- ("; steps+=route.Itinerary.Segments[i].Distance+") ";
       steps+=route.Itinerary.DistanceUnit+"\n<br />";
      } 
      routeinfo += "Passi:\n"+steps+"<br />";
      testoInformazioni = getObject(idTestoParziale);     
      testoInformazioni.innerHTML=routeinfo;           
    }

   //Disegna la tratta singola
   function trattaSingola(puntoPartenzaLat, puntoPartenzaLong, puntoArrivoLat, puntoArrivoLong, idTesto)
   {
     puntoPartenza = new VELatLong(puntoPartenzaLat, puntoPartenzaLong);
     puntoArrivo = new VELatLong(puntoArrivoLat, puntoArrivoLong);
     try
     {
      map.DeleteRoute();
      map.GetRoute(puntoPartenza, puntoArrivo, VEDistanceUnit.Kilometers, VERouteType.Shortest, onGotRoute);    
     }
     catch(e)
     {
      alert(e.message);
     }
     return false;
   }
