// JavaScript Document

var map = null;
var markers = [];
var marker = null;
var geocoder = null;

$(document).ready(function() {
	if (GBrowserIsCompatible()) {
	// Initialize the map.
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.setCenter(new GLatLng(45.8885,11.039050), 13);
		

		// aggiungi l'overlay
		//var boundaries = new GLatLngBounds(new GLatLng(45.879074,11.021862), new GLatLng(45.902970,11.056194));
		//var img = new GGroundOverlay("overlay.png", boundaries);
		//map.addOverlay(img);	

		geocoder = new GClientGeocoder();
		loadMarkers("googlemap/markers.asp");
	
	}
});

function clearmarkers() {
	var markers = [];
	for (var i=0;i<markers.length;i++) {
  	map.removeOverlay(markers[i].marker);
	}
}


function showAddress(address) {
	if (geocoder) {		

		geocoder.getLatLng(address, function(point) {
			if (!point) {
				alert("Indirizzo non trovato");
			} else {
				map.setCenter(point, 13);
				marker = new GMarker(point, {draggable: true});
				map.addOverlay(marker);
				//marker.openInfoWindowHtml(address);
			}});
	}
}


function loadMarkers(str) {

	// Create "tiny" marker icon
	var tinyIcon = new GIcon();
		tinyIcon.image = "googlemap/images/mm_20_blue.png";
		tinyIcon.shadow = "googlemap/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);

	// 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 icon = $(this).attr("icon");
				var point = new GLatLng(lat,lng);
				var html = $("html",this).text();
								
				// Set up our GMarkerOptions object literal
				switch(icon)
				{
					case "start": markerOptions = { icon:G_START_ICON };  
						break;
					case "end": markerOptions = { icon:G_END_ICON };  
						break;		
					case "tiny": markerOptions = { icon:tinyIcon };  
						break;																
					default: markerOptions = { icon:G_DEFAULT_ICON };
				}
	
				// Create the marker.
				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();
	}
});

