// JavaScript Document

var map = null;
var markers = [];
var contents = [];
var points = [];
	var centerX = 45.88946;
	var centerY = 11.04181;

var marker = null;
var markersPath = "/include/map/markers.asp";

$(document).ready(function() {
	if (GBrowserIsCompatible()) {
	// Initialize the map.
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.setCenter(new GLatLng(centerX,centerY), 16);
		loadMarkers(markersPath); 
	}
});

function clearmarkers() {
	var markers = [];
	for (var i=0;i<markers.length;i++) {
  	map.removeOverlay(markers[i].marker);
	}
}

function SelectMarker(index) {
    map.panTo(markers[index].getLatLng());   
    markers[index].openInfoWindowHtml(contents[index]);
}


function cloneObject(source) {
    for (i in source) {
        if (typeof source[i] == 'source') {
            this[i] = new cloneObject(source[i]);
        }
        else {
            this[i] = source[i];
				}
   	}
}

function fitMap( map, points ) {
   var bounds = new GLatLngBounds();
   for (var i=0; i< points.length; i++) {
      bounds.extend(points[i]);
   }
   map.setZoom(map.getBoundsZoomLevel(bounds));
   map.setCenter(bounds.getCenter());
}


function loadMarkers(str) {

	// Create "tiny" marker icon
	var tinyIcon = new GIcon();
		tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		tinyIcon.iconSize = new GSize(12, 20);
		tinyIcon.shadowSize = new GSize(22, 20);
		tinyIcon.iconAnchor = new GPoint(6, 20);
		tinyIcon.infoWindowAnchor = new GPoint(5, 1);

	var iconFashion = new cloneObject(G_DEFAULT_ICON);
		iconFashion.image = "/template/img/map/fashion.png";

	var iconAlimentari = new cloneObject(G_DEFAULT_ICON);
		iconAlimentari.image = "/template/img/map/alimentari.png";

	var iconCasalinghi = new cloneObject(G_DEFAULT_ICON);
		iconCasalinghi.image = "/template/img/map/casalinghi.png";

	var iconServizi = new cloneObject(G_DEFAULT_ICON);
		iconServizi.image = "/template/img/map/servizi.png";

	var iconRicettivita = new cloneObject(G_DEFAULT_ICON);
		iconRicettivita.image = "/template/img/map/ricettivita.png";

	var iconBar = new cloneObject(G_DEFAULT_ICON);
		iconBar.image = "/template/img/map/bar.png";

	var iconRistorazione = new cloneObject(G_DEFAULT_ICON);
		iconRistorazione.image = "/template/img/map/ristorazione.png";

	// carica il file esterno con i punti ... 
	$.ajax({type:"GET",url:str,cache:false,dataType:"xml",

		success:function(data,textStatus) {
			$("marker",data).each(function() {		
				
				// Attributes for each marker.
				var lat = parseFloat($(this).attr("lat"));
				var lng = parseFloat($(this).attr("lng"));
				var index = parseFloat($(this).attr("index"));
				var icon = $(this).attr("icon");
				var point = new GLatLng(lat,lng);
				var html = $("html",this).text();
								
				// Set up our GMarkerOptions object literal
				switch(icon)
				{	
					case "fashion": markerOptions = { icon:iconFashion }; break;																
					case "alimentari": markerOptions = { icon:iconAlimentari }; break;																
					case "casalinghi": markerOptions = { icon:iconCasalinghi }; break;																
					case "servizi": markerOptions = { icon:iconServizi }; break;																
					case "ricettivita": markerOptions = { icon:iconRicettivita }; break;																
					case "bar": markerOptions = { icon:iconBar }; break;																
					case "ristorazione": markerOptions = { icon:iconRistorazione }; break;																

					default: markerOptions = { icon:iconFashion };
				}
	
				// Create the marker.

   			var marker = new GMarker(point,markerOptions);				
				
				points[index] = point;
				markers[index] = marker;
				contents[index] = html;

				//var marker = new GMarker(point,markerOptions);							
				GEvent.addListener(marker, "click", function() {
					marker.openInfoWindowHtml(html);
				});
				//map.openInfoWindowHtml(map.getCenter(),html);
				map.addOverlay(marker);
			});
			
		}, // end success

		error:function(XMLHTTPRequest,textStatus,errorThrow){
			alert("Errore nel file XML");
		} // emd error
	});
	

	
}


$(document.body).unload(function() {
	if (GBrowserIsCompatible()) {
		GUnload();
	}
});

