var map;

var icona;
var punto;
var tooltip;

// caratteristiche linee e array per il colore
var lineColor = "#FF0000";
var lineWeight = 4;
var lineOpacity = .8;

function mappaControlli () {

  // attivazione controlli standard della mappa
     map.disableGoogleBar();   // viene disabilitato il controllo che attiva la ricerca
     map.addControl(new GLargeMapControl());                 // controllo zoom - pi� compatto GSmallMapControl

//     map.addControl(new GMapTypeControl());                  // tipo mappa: mappa, satellite, ibrida
//     map.addControl(new GHierarchicalMapTypeControl());   // tipo mappa: mappa, satellite con flag selezione strade equivalente a ibrida
     map.addMapType(G_PHYSICAL_MAP);
     var hierarchy = new GHierarchicalMapTypeControl();
     hierarchy.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", true);
     map.addControl(hierarchy);

     map.addControl(new GScaleControl());                    // visualizzazione scala
     map.addControl(new GOverviewMapControl());              // mini-map con la localizzazione 

     map.disableDoubleClickZoom();

     map.disableScrollWheelZoom();

     // Add a div element for toolips
     tooltip = document.createElement("div");
     tooltip.className="tooltip";
     map.getPane(G_MAP_MARKER_PANE).appendChild(tooltip);
}

function mappaAzioni () {
  
  // Azioni associate alla mappa
     GEvent.addListener(map, "click", azioneClick);
     GEvent.addListener(map, "dblclick", azioneDblClick);
     // GEvent.addListener(map, "mouseOver", azioneOver);
}

function azioneClick(overlay, point) {

  // Azione Click
  //      stradaClick(point);
}

function azioneDblClick(overlay, point) {

  // Azione DblClick
  //      elementoDaId('testoConferma').innerHTML = "Confermi la modifica della strada?";
}

function creaMarker(lat, lon, nomeSede, indirizzoSede, img, ombra, nomefile, nomeimmagine, aperto) {


  // creazione di un market 
     creaIcona(img, ombra);
     var marker = new GMarker(new GLatLng(lat, lon), {draggable:false, icon:icona});
     map.addOverlay(marker);
     if(aperto == "S") {
// alert(nomeimmagine);
//         var testo = "<div class=\"Gmapt\"><h2>" + nomeSede + "</h2><img src=\"" + nomeimmagine + "\" class=\"immaginemappa\"><div class=\"txtmap\">" + indirizzoSede + "</div></div>"
         var testo = "<div class=\"Gmapt\"><h2>" + nomeSede + "</h2>" + indirizzoSede + "</div>"
         marker.openInfoWindowHtml(testo);
     }

     marker.tooltip     = nomeSede;

     GEvent.addListener(marker, "mouseover", function() {
         showTooltip(marker);
     });

     GEvent.addListener(marker, "mouseout", function() {
        tooltip.style.display = "none";
     });

     GEvent.addListener(marker, "click", function() {
         var testo = "<div class=\"Gmapt\"><h2>" + nomeSede + "</h2>" + indirizzoSede + "<a href=\"" + nomefile + "\">Dettagli</a></div>"
         marker.openInfoWindowHtml(testo);
//        window.location=nomefile;
     });

}

function creaIcona(img, ombra) {

     // Crea un icona
     icona = new GIcon();
     icona.shadow = ombra;
     icona.image  = img;

//     icona.iconSize = new GSize(12, 20);
     icona.iconSize = new GSize(40, 40);
     icona.shadowSize = new GSize(47, 34);
     icona.iconAnchor = new GPoint(20, 38);
     icona.infoWindowAnchor = new GPoint(20, 4);
}

function showTooltip(marker) {
   
     // Display tooltips

     // Tooltip transparency
     if(typeof(tooltip.style.filter) == "string") {
       // tooltip.style.filter = "alpha(opacity:70)";
     }

     // Tooltip position
     var currtype = map.getCurrentMapType().getProjection();
     var point= currtype.fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
     var offset= currtype.fromLatLngToPixel(marker.getLatLng(),map.getZoom());
     var anchor = marker.getIcon().iconAnchor;
     var width = marker.getIcon().iconSize.width + 6;
     // var height = tooltip.clientHeight +18;
     var height = 10;
     var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y - height)); 
     pos.apply(tooltip);

     tooltip.innerHTML = marker.tooltip;
     tooltip.style.display = "block";
}


