var map;
var marker;

var gdir;
var geocoder = null;
var addressMarker;
var fromAddress;

function load() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        //Cristofoli/ Italcasa :Schieweg 33 Delft
        map.setCenter(new GLatLng(51.9902, 4.3685), 11);
        marker = new GMarker(new GLatLng(51.9902, 4.3685), "Cristofoli");
        GEvent.addListener(marker, 'click', marker_clicked);
        map.addOverlay(marker);


        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);

        map.enableScrollWheelZoom(); 
        //marker_clicked()
    }
}

function marker_clicked() {
    var element = document.createElement("div");
    element.innerHTML = "<h3>Cristofoli/ Italcasa </h3><p>Schieweg 33<br />2627 AT Delft, Netherlands</p>";
    map.openInfoWindow(marker.getPoint(), element);
    popupvisible = true;

    return true;
}



 
function alertError(message) {
    var label = document.getElementById("errormessage");
    if (label != undefined) {
        label.innerHTML = message;
    }
    else {
        alert(message);
    }
}

function handleErrors() {
    var error = document.getElementById("error").innerHTML
    if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
        alertError(error);
    else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
        alertError(error + "\n Error code: " + gdir.getStatus().code);

    else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
        alertError(error + "\n Error code: " + gdir.getStatus().code);

    //   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
    //     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);

    else if (gdir.getStatus().code == G_GEO_BAD_KEY)
        alertError("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

    else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
        alertError(error + "\n Error code: " + gdir.getStatus().code);

    else alertError(error + "\n Error code: " + gdir.getStatus().code);;

}

function onGDirectionsLoad() {
    // Use this function to access information about the latest load()
    // results.

    // e.g.
    // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
    // and yada yada yada...
}