var map;
var addingCode;
var clickListener;
var lastClickedPoint;
var baseIcon;

function mapOnload(){
    x_getMapMarkers(evalCallback);
}

function getAddingCodeCallback(f, z){
    addingCode = z;
    //    alert("Adding code updated!");
}

function initialize(f, z) {
    x_getAddingCode(getAddingCodeCallback);

    document.getElementById('homeDiv').innerHTML=z;
    try{
	setFocusWithSelect(f);
    }catch (ex){
	
    }
    
    if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("map_canvas"));
	map.setMapType(G_NORMAL_MAP);
	map.enableScrollWheelZoom();
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	
	clickListener = GEvent.bind(map, "click", this, mapClicked);
	
	baseIcon = new GIcon();
        baseIcon.iconSize = new GSize(34, 34);
        baseIcon.iconAnchor = new GPoint(17, 17);
        baseIcon.infoWindowAnchor = new GPoint(17, 17);
        baseIcon.infoShadowAnchor = new GPoint(17, 17);



	showAddress("Thiene via rasa 11");
	
	GEvent.addListener(map, "load", mapOnload);
    }
}

function showAddress(address) {
    var geocoder = new GClientGeocoder();
    geocoder.getLatLng(
		       address,
		       function(point) {
			   if (!point) {
			       alert(address + " not found");
			   } else {
			       map.setCenter(point, 16);
			   }
		       }
		       );
}


function mapClicked(o, latlon){
    //alert("Hai premuto alle coordinate " + latlon.x + " - " + latlon.y);
    //    alert(o);
    lastClickedPoint = latlon;
    map.openInfoWindowHtml(latlon, addingCode);
    GEvent.removeListener(clickListener);
    clickListener = GEvent.bind(map.getInfoWindow(), "closeclick", this, 
				function(){
				    GEvent.removeListener(clickListener);
				    clickListener = GEvent.bind(map, "click", this, mapClicked);
				});
    
}

function addVariazione(){
    var variazioni = document.getElementById('variazioni');
    var variazione = variazioni.options[variazioni.selectedIndex];
    var inizio =  buildMySQLTimestamp("idataGiorno", "idataMese", "idataAnno", "ioraOre", "ioraMinuti");
    var fine =  buildMySQLTimestamp("fdataGiorno", "fdataMese", "fdataAnno", "foraOre", "foraMinuti");
    var note = document.getElementById('note').value;

    x_addVariazione(lastClickedPoint.y, 
		    lastClickedPoint.x, 
		    inizio,
		    fine,
		    variazione.id,
		    note,
		    generalAjaxCallback);


    map.getInfoWindow().hide();
    GEvent.removeListener(clickListener);
    clickListener = GEvent.bind(map, "click", this, mapClicked);
}

function createMarker(point, index, text) {
    // Create a lettered icon for this point using our icon class
    var letter = String.fromCharCode("A".charCodeAt(0) + index);
    var letteredIcon = new GIcon(baseIcon);
    //var letteredIcon = new GIcon();
    letteredIcon.image = "immagini/viabilita/" + index + ".png";
    //letteredIcon.image = "immagini/divieto_di_transito.png";
    
    // Set up our GMarkerOptions object
    markerOptions = { icon:letteredIcon };
    var marker = new GMarker(point, markerOptions);
    
    GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(text);
	});
    return marker;
}

