	// 	<script type="text/javascript">
  	<!--// create the map


    var map = new GMap2(document.getElementById("mainmap"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(40.830567,14.221973), 13);
	map.setMapType(G_SATELLITE_MAP);
	map.enableContinuousZoom();
	map.enableDoubleClickZoom();
	var side_bar_html = "";
    var gmarkers = [];
    var htmls = [];
    var i = 0;
    var geo;
    var reasons=[];

	if (GBrowserIsCompatible()) {
	      	////'mouseover' listener shows controls
GEvent.addListener(map, "mouseover", function(){
	map.showControls();
	});

////'mouseout' listener hides controls

	GEvent.addListener(map, "mouseout", function(){
	map.hideControls(); 
	});
	 

    var iconBlue = new GIcon(); 
    iconBlue.image = 'http://www.abcnapoli.com/mm_12.png';
    iconBlue.iconSize = new GSize(33, 35);
    iconBlue.iconAnchor = new GPoint(-5, 35);
    iconBlue.infoWindowAnchor = new GPoint(12, 3);
	
	    var iconRed = new GIcon(); 
    iconRed.image = 'http://www.abcnapoli.com/mm_13.png';
    iconRed.iconSize = new GSize(33, 35);
    iconRed.iconAnchor = new GPoint(-5, 35);
    iconRed.infoWindowAnchor = new GPoint(12, 3);
	
	var iconPurple = new GIcon(); 
    iconPurple.image = 'http://www.abcnapoli.com/mm_14.png';
    iconPurple.iconSize = new GSize(33, 35);
    iconPurple.iconAnchor = new GPoint(-5, 35);
    iconPurple.infoWindowAnchor = new GPoint(12, 3);
		
	var iconYellow = new GIcon(); 
    iconYellow.image = 'http://www.abcnapoli.com/mm_15.png';
    iconYellow.iconSize = new GSize(33, 35);
    iconYellow.iconAnchor = new GPoint(-5, 35);
    iconYellow.infoWindowAnchor = new GPoint(12, 3);
	
	var iconOrange = new GIcon(); 
    iconOrange.image = 'http://www.abcnapoli.com/mm_16.png';
    iconOrange.iconSize = new GSize(17, 20);
    iconOrange.iconAnchor = new GPoint(-5, 21);
    iconOrange.infoWindowAnchor = new GPoint(12, 3);
// Creates a marker whose info window displays the letter corresponding
        // to the given index.
	var customIcons = [];
    customIcons["musei"] = iconBlue;
    customIcons["chiese"] = iconRed;
	customIcons["strade"] = iconPurple;
	customIcons["eventi"] = iconYellow;
	customIcons["hotel"] = iconOrange;
    var markerGroups = { "musei": [], "strade": [],"chiese": [],"eventi": [],"hotel": [] };
	
	  var gmarkers = [];
      var htmls = [];
      var i = 0;
	  
GDownloadUrl("http://www.abcnapoli.com/xml/xml_musei.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("html");
            var address = markers[i].getAttribute("info");
            var type = markers[i].getAttribute("type");
			var star = markers[i].getAttribute("star");
			var photo = markers[i].getAttribute("photo");
			var url = markers[i].getAttribute("url");
			var prize = markers[i].getAttribute("prize");
			var desc = markers[i].getAttribute("desc");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address, type, star, photo, url, prize, desc);
            map.addOverlay(marker);
			
            }
        });
		
	    function createMarker(point, name, address, type, star, photo, url, prize, desc) {
      var marker = new GMarker(point, customIcons[type]);
      markerGroups[type].push(marker);
	  if (type=="hotel") {
      var html = "<span class=\"titolomapp\"><a href=\""+url+"\" target=\"_blank\">" + name + "</a></span>&nbsp;<img src=\"hotel_napoli/star/"+star+"star.png\" width=\"44\" height=\"8\" />" +  "<br><a href=\""+url+"\" target=\"_blank\"><img src=\""+photo+"\" width=\"150\" height=\"96\"  border=\"0\" /></a><br><table width=\"250\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><span class=\"testomappa\">" + address + "</span></td></tr><tr><td><span class=\"descmappa\">" + desc + "</span></td></tr><tr><td><span class=\"testomappa\">A partire da : </span><span class=\"prize\">" + prize + "</span><span class=\"testomappa\"> euro</span></td></tr><tr><td><b><a href=\""+url+"\" target=\"_blank\"><span class=\"blocca\">Prenota ora e paga in hotel »</span></a></b></td></tr></table>" ;
	  }
	  else{
	        var html = "<span class=\"testomappa\">" +type + "</span><br><span class=\"titolomapp\">" + name + "</span><br><table width=\"250\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><span class=\"testomappa\">" + address + "</span></td></tr></table>" ;
			}
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
	    gmarkers[i] = marker;
        htmls[i] = html;
        // add a line to the side_bar html
        side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
        i++;
      return marker;
    }
		        // This function picks up the click and opens the corresponding info window
      function myclick(i) {
        gmarkers[i].openInfoWindowHtml(htmls[i]);
      }
	  
    function toggleGroup(type) {
      for (var i = 0; i < markerGroups[type].length; i++) {
        var marker = markerGroups[type][i];
        if (marker.isHidden()) {
          marker.show();
        					    } 
		else {
          marker.hide();
        	}
     							 							} 
								 }
   // ====== Create a Client Geocoder ======
      geo = new GClientGeocoder(); 
      // ====== Array for decoding the failure codes ======
      reasons[G_GEO_SUCCESS]            = "Success";
      reasons[G_GEO_MISSING_ADDRESS]    = "L'indirizzo è sconosciuto: Hai inserito un indirizzo non valido o hai commesso un errore nel digitarlo.";
      reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No corresponding geographic location could be found for the specified address.";
      reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";
      reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
      reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
      reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";

      // ====== Plot a marker after positive reponse to "did you mean" ======
      function place(lat,lng) {
	var iconMan = new GIcon(); 
    iconMan.image = 'http://www.abcnapoli.com/mm_11.png';
    iconMan.iconSize = new GSize(33, 35);
    iconMan.iconAnchor = new GPoint(-5, 35);
    iconMan.infoWindowAnchor = new GPoint(12, 3);
	  map.setMapType(G_NORMAL_MAP);
	    var point = new GLatLng(lat,lng);
		map.setCenter(point,14); 
	//	map.centerAndZoom(point, 2);
		var marker = new GMarker(point,iconMan);  
		map.addOverlay(marker);
		 marker.openInfoWindowHtml("<span class=\"titolomapp\">Eccoti qui!</span><br><span class=\"testomappa\">Adesso scopri i punti di interesse piu' vicini a te</span>");
		if(document.getElementById("message").innerHTML!=""){
		document.getElementById("message").innerHTML = "";
		}
		// var marker = createMarker(point, name, address, type);
       //     map.addOverlay(marker);
     						 }

      // ====== Geocoding ======
      function showAddress() {
	  var key=document.getElementById("search").value;
	  var key2=document.getElementById("s2").value;
        var search = key+key2;
        // ====== Perform the Geocoding ======        
        geo.getLocations(search, function (result)
          {
        //  map.clearOverlays(GMarker(point,iconMan)); 
            if (result.Status.code == G_GEO_SUCCESS) {
              // ===== If there was more than one result, "ask did you mean" on them all =====
              if (result.Placemark.length > 1) { 
                document.getElementById("message").innerHTML = "Forse stai cercando:";
                // Loop through the results
                for (var i=0; i<result.Placemark.length; i++) {
                  var p = result.Placemark[i].Point.coordinates;
                  document.getElementById("message").innerHTML += "<br>"+(i+1)+": <a href='javascript:place(" +p[1]+","+p[0]+")'>"+ result.Placemark[i].address+"</a>";
                												}
             									 }
              // ===== If there was a single marker =====
              else {
                //document.getElementById("message").innerHTML = "";
                var p = result.Placemark[0].Point.coordinates;
                place(p[1],p[0]);
              		}
           											 }//GEO_SUCCESS
            // ====== Decode the error status ======
            else {
              var reason="Code "+result.Status.code;
              if (reasons[result.Status.code]) {
                reason = reasons[result.Status.code]
             								 } 
              alert('Non riesco a trovare "'+search+ '" ' + reason);
           		 }
         			 }//geo.locations
        );//showAdress;
		 }


	}

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }


  
