var gmap;
var geocoder;
var schonermooier;

function init_marker(marker, input){
    GEvent.addListener(marker, "click", function() {
        openInfoWindow(marker, input);
    });
    /*
    GEvent.addListener(marker, "mouseover", function() {
        marker.openInfoWindowHtml(format_preview(input));
    });

*/
    GEvent.addListener(marker,'mouseover',function(){
        this.tooltip.show();
    });
    GEvent.addListener(marker,'mouseout',function(){
        this.tooltip.hide();
    });
    var tooltip = new Tooltip(marker, input.title, 4);
    marker.tooltip = tooltip;
    gmap.addOverlay(marker);
    gmap.addOverlay(tooltip); 

}

function marker_from_latlong(input) {
    var p = new GLatLng(input.latitude, input.longitude);
    var marker = new GMarker(p, {'title':'Klik voor meer informatie'});
    init_marker(marker, input);
    return marker;
}

function parseJson(doc) {
    schonermooier = eval("(" + doc + ")");
    var z = schonermooier.zoom;
    var point = new GLatLng(z.latitude, z.longitude);
    gmap.setCenter(point, z.zoomlevel, G_NORMAL_MAP); //G_NORMAL_MAP, G_HYBRID_MAP


    for (var i = 0; i < schonermooier.markers.length; i++) {
        var input = schonermooier.markers[i];
//|| (GEBIED_PARENT_ID != 121 && GEBIED_ID != 121 && input.page_id == GEBIED_ID) 
        if (((GEBIED_PARENT_ID == 121 && input.parent == GEBIED_ID) || (GEBIED_PARENT_ID != 121) || (GEBIED_ID == 121))  && input.latitude != null) {
            var marker = marker_from_latlong(input);
        }
    }
    if (document.location.href.indexOf("editmap") != -1) {
        var blueIcon = new GIcon(G_DEFAULT_ICON);
        blueIcon.image = "/images/marker.png";
        var plek = gmap.getCenter();
        var shift = 0.0001;
        var plek = new GLatLng(plek.lat()-shift, plek.lng()-shift);
        var markerdebug = new GMarker(plek,{draggable:true, icon:blueIcon});
        GEvent.addListener(markerdebug, "dragend", function() {
        markerdebug.openInfoWindowHtml('<textarea rows="5" cols="40">' + document.location.href + '\n' + markerdebug.getPoint().toString() + '</textarea>')});
        gmap.addOverlay(markerdebug);
    }

}

function load() {
    geocoder = new GClientGeocoder();
    var map = document.getElementById("map");
    if (GBrowserIsCompatible()) {
        gmap = new GMap2(map);
        gmap.addControl( new GSmallMapControl() );
        gmap.addControl( new GMapTypeControl()) ;
        //gmap.addControl( new GOverviewMapControl(new GSize(100,100)) );
        GDownloadUrl("/locations/" + GEBIED_ID, function(data, responseCode) {parseJson(data);});
    } else {
        alert("Uw browser wordt niet ondersteund door Google Maps");
    }
}

function doe_eens_center(a){
    var p = gmap.getCenter();
    var z = gmap.getZoom();
    if (a == 1) {
        var s = 'update tree set zoomlevel = ' + z + ' where id=' + GEBIED_ID;
    } else {
        var s = 'update tree set latitude=' + p.lat() + ', longitude=' + p.lng() + ', zoomlevel=' + z + ' where id=' + GEBIED_ID;
    }
    prompt('', s);
}
function openInfoWindow(marker, data) {
    marker.showMapBlowup();
    marker.openInfoWindowHtml("Bezig met laden...");
    fetch_details(marker, data);
}


function fetch_details(marker, data) {
    var req = GXmlHttp.create();
    req.open("GET", "/page/" + data.page_id + "?nochrome=1", false);
    req.send(null);
    var xmlDoc = '<div style="width:400px;height:280px;overflow:auto;position:relative;margin-top:10px;">' + req.responseText + '</div>';
    marker.showMapBlowup();
    marker.openInfoWindowHtml(xmlDoc);
    //req.onreadystatechange = getCallbackFunction(req, displayDetails);
}

window.onload = load;
window.onunload = GUnload;



