var map;
var geocoder;
var marker=new Array();
var firstpoint;
function showAddress(tappa,viaggio,pos) {
    var macro=viaggio.getAttribute("macro");
    var icon = new GIcon();
    icon.iconSize = new GSize(32, 32);
    icon.shadowSize = new GSize(48, 32);
    icon.iconAnchor = new GPoint(25, 10);
    icon.infoWindowAnchor = new GPoint(20, 1);
    icon.shadow = "i/maps/ombra.png";
    var point = new GLatLng(parseFloat(tappa.getAttribute("lat")),
        parseFloat(tappa.getAttribute("lng")));
    var macrotitolo;
    if(pos==0){
        firstpoint=point;
    }
    if(macro=='3'){
        icon.image = "i/maps/archeo/inizio.png";
        macrotitolo="archeo";
    }
    else if (macro=='4'){
        icon.image = "i/maps/proposte/inizio.png";
        macrotitolo="proposte";
    }
    else if(macro=='5'){
        icon.image = "i/maps/sogni/inizio.png";
        macrotitolo="sogni";
    }

    for(k=0;k<pos;k++){
        if((marker[k].getLatLng().lat()==point.lat()) && (marker[k].getLatLng().lng()==point.lng())){
            point= new GLatLng(point.lat()+0.01,point.lng()+0.01);
        }
    }

    marker[pos] = new GMarker(point,icon);
    map.setCenter(firstpoint, 2);

    GEvent.addListener(marker[pos], "click", function() {
        if(viaggio.getAttribute("foto")!="")
            marker[pos].openExtInfoWindow(map,'viaggio_marker',"<div><img src=_files/viaggi/immagini/t1_"+viaggio.getAttribute("foto")+" /><b><a class=cat"+viaggio.getAttribute("macro")+" href=viaggio-mip-travel.php?cat="+macrotitolo+"&viaggio="+viaggio.getAttribute("id")+">"+viaggio.getAttribute("titolo")+"</a></b><br>"+viaggio.getAttribute("motivazionale")+"</div>");
        else marker[pos].openExtInfoWindow(map,'viaggio_marker',"<div><b><a class=cat"+viaggio.getAttribute("macro")+" href=viaggio-mip-travel.php?cat="+macrotitolo+"&viaggio="+viaggio.getAttribute("id")+">"+viaggio.getAttribute("titolo")+"</a></b><br>"+viaggio.getAttribute("motivazionale")+"</div>");
    });
    map.addOverlay(marker[pos]);
    return pos+1;
}


function load(macrocat) {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        filexml="data.php";
        GDownloadUrl(filexml, function(data, responseCode) {
            // To ensure against HTTP errors that result in null or bad data,
            // always check status code is equal to 200 before processing the data

            if(responseCode == 200) {
                var xml = GXml.parse(data);
                var viaggi = xml.getElementsByTagName("viaggio");
                var tappe;
                var tappa;
                var j=0;
                for (var i = 0; i < viaggi.length; i++) {                        
                    if(viaggi[i].getAttribute("macro")==macrocat){

                        tappe = viaggi[i].getElementsByTagName("tappa");
                        tappa=tappe[0];
                        j=showAddress(tappa,viaggi[i],j);

                        
                    }
                }
            }
            else if(responseCode == -1) {
                alert("Data request timed out. Please try later.");
            } else {
                alert("Request resulted in error. Check XML file is retrievable.");
            }
        });
    }
}
function loadHome() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        filexml="data.php";
        GDownloadUrl(filexml, function(data, responseCode) {
            // To ensure against HTTP errors that result in null or bad data,
            // always check status code is equal to 200 before processing the data

            if(responseCode == 200) {
                var xml = GXml.parse(data);
                var viaggi = xml.getElementsByTagName("viaggio");
                var tappe;
                var tappa;
                for (var i = 0; i < viaggi.length; i++) {
                        tappa = viaggi[i].getElementsByTagName("tappa");
                        showAddress(tappa[0],viaggi[i],i);
                }
            }
            else if(responseCode == -1) {
                alert("Data request timed out. Please try later.");
            } else {
                alert("Request resulted in error. Check XML file is retrievable.");
            }
        });
    }
}

function setZoom(zoom){
    var actual_zoom = map.getZoom();

    switch (zoom){
        case '+':
            map.setZoom(actual_zoom+1);
            break;

        case '-':
            map.setZoom(actual_zoom-1);
            break;
        case '1':
            map.setZoom(1);
            break;
        default:
            break;
    }
}
function setMapType(type){
    map.setMapType(type);
}