var map = new Object();
var gdir = new Object();
var geocoder = null;
var addressMarker;

function createMarker(point, text) {
    var icono       = new GIcon(G_DEFAULT_ICON);
    var markOptions = new Object();

    markOptions.title = 'Active Interface';
    markOptions.icon  = icono;
    var marker = new GMarker(point, markOptions);
    GEvent.addListener (marker,
                        'click',
                        function() {
                            map.openInfoWindowHtml (point, text);
                            });

    return marker;
}

function map_setDirections(fromAddress) {
    //gdir.load("from: " + fromAddress + " to: 28.07992253984283,-16.556755900382996", { "locale": "es" });
    gdir.load("from: " + fromAddress + " to: 28.416843169698772,-16.305663585662842", { "locale": "es" });
}

function handleErrors() {
    var coord = new Array(51, 214);
    var dim = new Array(320, 140);
    var errCode = new Array();
    
    errCode[G_GEO_UNKNOWN_ADDRESS] = "G_GEO_UNKNOWN_ADDRESS";
    errCode[G_GEO_SERVER_ERROR]    = "G_GEO_SERVER_ERROR";
    errCode[G_GEO_MISSING_QUERY]   = "G_GEO_MISSING_QUERY";
    errCode[G_GEO_BAD_KEY]         = "G_GEO_BAD_KEY";
    errCode[G_GEO_BAD_REQUEST]     = "G_GEO_BAD_REQUEST";
    if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
        note_show("Error trazando ruta (" + errCode[gdir.getStatus().code] + ")", "<br/><br/><p>No se ha podido encontrar la localizaci&oacute;n geogr&aacute;fica de la direcci&oacute;n de origen. Es posible que la direcci&oacute;n sea relativamente nueva, o sencillamente est&eacute; mal indicada.</p>", coord, dim);
    else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
        note_show("Error trazando ruta (" + errCode[gdir.getStatus().code] + ")", "<br/><br/><p>Una solicitud de direcci&oacute;n o geocoding no ha podido ser procesada con &eacute;xito, el origen del fallo es desconocido.</p>", coord, dim);
    else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
        note_show("Error trazando ruta (" + errCode[gdir.getStatus().code] + ")", "<br/><br/><p>El par&aacute;metro q HTTP no tiene valor o se ha perdido. Se ha especificado una direcci&oacute;n vac&iacute;a.</p>", coord, dim);
    else if (gdir.getStatus().code == G_GEO_BAD_KEY)
        note_show("Error trazando ruta (" + errCode[gdir.getStatus().code] + ")", "<br/><br/><p>La clave indicada no es v&aacute;lida, o no corresponde con la del dominio para el que ha sido solicitada.</p>", coord, dim);
    else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
        note_show("Error trazando ruta (" + errCode[gdir.getStatus().code] + ")", "<br/><br/><p>Una solicitud de direcci&oacute;n no ha podido ser correctamente construida.</p>", coord, dim);
    else
        note_show("Error trazando ruta (" + gdir.getStatus().code + ")", "<br/><br/><p>Ha ocurrido un error indeterminado.</p>", coord, dim);
}

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...
}

function map_load(idElement, idDirections) {
    document.getElementById(idElement).style.width = "600px";
    document.getElementById(idElement).style.height = "350px";
    document.getElementById(idElement).style.border = "solid 2px";
    if (GBrowserIsCompatible()) {
        var marker  = new Object();
        //var activePos = new GLatLng(28.07992253984283,-16.556755900382996);
        var activePos = new GLatLng(28.416843169698772,-16.305663585662842);
        // var text = "<p style=\"font-size: 20px; color: #000066;\">Active Interface Sod. Coop.</p>" +
                   // "<p style=\"font-size: 15px; color: #696969; margin-left: 25px;\">Calle Los Panaderos, 14.<br>" +
                   // "San Isidro de Granadilla.<br>" +
                   // "Santa Cruz de Tenerife." +
                   // "</p>"
        var text = "<p style=\"font-size: 20px; color: #000066;\">Active Interface Sod. Coop.</p>" +
                   "<p style=\"font-size: 15px; color: #696969; margin-left: 25px;\">Calle Moreiba, 16.<br>" +
                   "Edif. Bellamar II, Portal 8, Local 4.<br>" +
                   "Acoran - Aņaza.<br>" +
                   "Santa Cruz de Tenerife." +
                   "</p>"

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

        map.addControl(new GLargeMapControl(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT));
        map.enableContinuousZoom();
        map.enableDoubleClickZoom();
        map.setCenter(new GLatLng(28.671310915880834,-16.314697265625), 9);
        map.openInfoWindowHtml (activePos,
                                text);
        marker = createMarker (activePos, text);
        map.addOverlay(marker);
    }
}

