var map;
var markers_weather = [];
var markers = [];
var markers_type = [];
function initmap() {
	if (GBrowserIsCompatible()) {
    	map = new GMap2(document.getElementById("mappacampi"));
     	map.addControl(new GLargeMapControl());
     	map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(41.9, 12.4166667), 6, G_NORMAL_MAP);
        GDownloadUrl("/circoli_golf/coordinate.xml", function(data) {
            var lat, lng;
            var xml = GXml.parse(data);
            var markers = xml.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
                lat = parseFloat(markers[i].getAttribute("lat"));
                lng = parseFloat(markers[i].getAttribute("lng"));
                var point = new GLatLng(lat, lng);
                var type = markers[i].getAttribute("t");
                map.addOverlay(createMarker(point, "/img/maps/base.png", 32, 32, true, markers[i].getAttribute("id"), type));
            }
            showMarker();
        });
    }
}

function hideMarkers(type) {
    if (type == "weather") {
        for (i in markers_weather) {
            if (markers_weather[i].isHidden()) {
                markers_weather[i].show();
            } else {
                markers_weather[i].hide();
            }
        }
    } else {
        for (i in markers_type) {
            if (markers_type[i] == type) {
                if (markers[i].isHidden()) {
                    markers[i].show();
                } else {
                    markers[i].hide();
                    markers[i].closeInfoWindow();
                }
            }
        }
    }
}

function createMarker(point, ico, ico_w, ico_h, shadow, id, type) {
    if (ico.indexOf("span") > 0) {
        ico = ico.substring(ico.indexOf("http://"), ico.indexOf(".gif")+4);
    }

    var icon = new GIcon();
    icon.image = ico;
    icon.iconSize = new GSize(ico_w, ico_h);
    icon.iconAnchor = new GPoint(ico_w/2, ico_h);

    if (shadow) {   
        icon.shadow = "/img/maps/base_s.png";
        icon.shadowSize = new GSize(59, 32);
        icon.infoWindowAnchor = new GPoint(9, 2);
        icon.infoShadowAnchor = new GPoint(16, 32);
    }
    
    var marker = new GMarker(point, icon);
    
    if (id) {
        markers[id] = marker;
        markers_type[id] = type;
        GEvent.addListener(marker, "click", function() {
            infoWindow(id);
        });
    }
    
    return marker;
}


function infoWindow(id) {
    if (id > 0) {
        marker = markers[id];
        if (marker.isHidden()) {
            hideMarkers(markers_type[id]);
        }
        $.get( "/mostra_campo.php?id=" + id,
            function(data){
                marker.openInfoWindowHtml(data);
            }
        );    
    }
}
