
    function riserve(Np,flag,Xp,Yp,laC,loC,G,desc) {
var asc = new Array();
var ord = new Array();	    
var j = 0;
tabella = "       Nome " + "         Coordinate " + "   Miglia" + "  Rotta ";
var nd = 0;
var rotta = 0;
var dist = 0;
document.tab_2.msg.value = " Nella cartina sono evidenziati i principali porti entro 60 Nm da "+desc[0]; 


	    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GMapTypeControl());
		  map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(laC,loC),G);
//*********************************************************
if (flag == 1){
               for (var i = 0; i < Np+1; i++) {
var icon = new GIcon();
nome = "../../icone_mappe/pp.bmp";
   if ( i == 0 ) {nome = "../../icone_mappe/r00.bmp";}
icon.image = nome;
icon.iconSize = new GSize(16, 16);
icon.iconAnchor = new GPoint(10,5);
icon.infoWindowAnchor = new GPoint(5, 100);
    	A = Xp[i];
		B = Yp[i];
   var point = new GLatLng(A,B);
   map.addOverlay(new GMarker(point,icon));
                              }
}
							  
	      }
		  
GEvent.addListener(map, "click", function(marker, point) {
          if (marker){
          
        map.removeOverlay(marker);
                      } else {
j = j + 1;
asc[j] = point.lat().toFixed(4);
ord[j] = point.lng().toFixed(4);
//***************************
Ap = asc[j];
Bp = ord[j]; 
Msg = "Rotta N. " + j + " <---- NESSUN PORTO SELEZIONATO ----> ";
porto = "/";
       for (var i = 0; i < Np+1; i++) with (Math){
       delt_1 = abs(Ap - Xp[i]).toFixed(4);
       delt_2 = abs(Bp - Yp[i]).toFixed(4);
       max = 0.03;
       if (( delt_1 <= max) && ( delt_2 <= max)){
       porto = desc[i];
       display(Xp[i],Yp[i],porto); 
Msg = " Alla rotta N. " + j +" è' selezionato il porto di " + porto;}
                          }
document.tab_2.msg.value = Msg;
//***************************
            map.addOverlay(new GMarker(point));
// Format	coordinate	
x = Math.floor(point.lat().toFixed(4));
 if ( x < 10){x=" " + x;} 
y = (point.lat().toFixed(4) - x) * 60;
r = y.toFixed(0);
 if ( r < 10){r=" " + r;}
lat = x + "°" + r + "'N";
x = Math.floor(point.lng().toFixed(4));
 if ( x < 10){x=" " + x;}
y = (point.lng().toFixed(4) - x) * 60;
r = y.toFixed(0);
 if ( r < 10){r=" " + r;}
lon = x + "°" + r + "'E ";
//
var id = prompt(" Coordinate punto " + " = " + j + "  " + asc[j] +"  " + ord[j] +"  ",'Digitare il nome del punto');
// Format nome
if (id == "Digitare il nome del punto"){id = "           ";}
if (porto != "/"){id = porto;}
n = id.length;
   if ( n >11 ){nome = id.substring(0,11);}
        else nome = id;
k = nome.length;		
m = 12 - k;
b = "  --------------- ";
filler = b.substring(0,m);

// distanza
var Cx = 0;
var Cy = 0;
var d = 0;
 with(Math){
 Ca = Xp[0];
 Cb = Yp[0];
          Cy = (Ca - asc[j]) * 60;
			 Cx = (Cb - ord[j]) * 46.1583;
			 dist = sqrt((Cx*Cx)+(Cy*Cy)).toFixed(1);
			 d = parseFloat(dist);
var A1=asc[j];
var B1=ord[j];
var A2=Ca;
var B2=Cb;			 
var polyline = new GPolyline([new GLatLng(A1,B1),new GLatLng(A2,B2)], "#000000", 2);
map.addOverlay(polyline);			 
			 }

// Format distanza
nd = dist.length;
b1 ="        ";
   if ( nd > 6){dist = "Errore";}
m = 6 - nd;
filler2 = b1.substring(0,m);   
//Rotta
var Tg = 0;
var alfa = 0;
          Tg = Cy/d;
		    alfa = (Math).acos(Tg);
	        rotta = parseFloat((alfa * 57.2958));
		  if (Cx <0){rotta = 360 - rotta;} 
		  rotta = rotta.toFixed(0);
          if (Tg > 1){rotta = "0";}              
		  if (Tg < -1){rotta = "180";}            

//Format Rotta	
nd = rotta.length;
m = 7 - nd;
filler3 = b1.substring(0,m);
//
//var kd=prompt("nd = " + nd + " Tg = " + Tg + "  alfa = " + alfa + " rotta = " + rotta)		  
//End Rotta

 	  
var dati = j + "  " + nome + filler + "  " + lat + "  " + lon + filler2 + dist + filler3 + rotta + "° ";
ndati = dati.length;
k = 50 - ndati;
var bl = "   ";
filler3 = bl.substring(0,k);
dati = dati + filler3;
tabella = tabella + dati;
document.tab_1.msg.value = tabella;
//document.tab_2.msg.value = " Le distanze e le rotte di tutti i punti sono riferite al porto di //Ventotene"; 

                 }
		});		 
}
	   
function display(Lati,Long,prt){

var map = new GMap2(document.getElementById("map_2"));
		  map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(Lati,Long),14);
        document.nome_p.msg.value = "   " + prt;

}
