// JavaScript Document

$(document).ready(function(){
    initialize();   
});

var map;
var gdir;
var geocoder = null;
var addressMarker;
var errorcode = null;

function initialize() {
    if (GBrowserIsCompatible()) {
        
        map = new GMap2(document.getElementById("googlemaps_map"));
        map.setUIToDefault();
        gdir = new GDirections(map, document.getElementById("googlemaps_route"));
        
        GEvent.addListener(gdir, "addoverlay", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);

        //setDirections("Niedersachsen", "Haart 224, 24539 Neumünster", "de_DE");


        //alert(document.getElementById("googlemaps_route"));

        /*
        map2 = new GMap2(document.getElementById("testmap"));
        map2.setCenter('bremen germany', 11);
        map2.setUIToDefault();
        */


    }
}


function getGmapsdata(address) {
    var geocoder = new GClientGeocoder();
    var point = null;
    if(geocoder) {       
        geocoder.getLatLng(
                            address, 
           function(point) {
            if (!point) {
                alert(address + " not found");
            } else {                
                return point;
                console.log(point);
            }
        });
    } else { point = "init GClientGeocoder failed"; }
     alert(point);
    
}


function setDirections(fromAddress, toAddress, locale, alternateToAddress) {
    
    var geocoder = new GClientGeocoder();
    var point = null;
    if(geocoder) {       
        geocoder.getLatLng(toAddress, 
           function(point) {
            if (!point) {
               $('#googlemaps_map').empty();
                $('#googlemaps_map').append('Der Dienst steht derzeit leider nicht zur Verfügung.');
               
            } else {                
                gdir.load("from: " + fromAddress + " to: " + point,
                 { "locale": locale });
            }
        });
    }
    
    
   


}

function handleErrors(){
    if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
    alert("Leider konnten wir Ihre Startadresse nicht finden.\n ");
    else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
    alert("Server-Fehler,\n Ihre Anfrage kann momentan nicht bearbeitet werden");
    else if (gdir.getStatus().code == G_GEO_BAD_KEY)
    alert("Google-Key ungültig");
    else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
    alert("Anfrage Fehler");
    else alert("Derzeit kann Ihre Anfrage nicht verarbeitet werden.");
}

function onGDirectionsLoad(){
    /*var poly = gdir.getPolyline();
    if (poly.getVertexCount() > 1000) {
    alert("This route has too many vertices");
    //return;
    }*/
    var baseUrl = "http://maps.google.com/staticmap?";

    var params = [];
    var markersArray = [];
    markersArray.push(poly.getVertex(0).toUrlValue(5) + ",greena");
    markersArray.push(poly.getVertex(poly.getVertexCount()-1).toUrlValue(5) + ",greenb");
    params.push("markers=" + markersArray.join("|"));

    var polyParams = "rgba:0x0000FF80,weight:5|";
    var polyLatLngs = [];
    for (var j = 0; j < poly.getVertexCount(); j++) {
        polyLatLngs.push(poly.getVertex(j).lat().toFixed(5) + "," + poly.getVertex(j).lng().toFixed(5));
    }
    params.push("path=" + polyParams + polyLatLngs.join("|"));
    params.push("size=300x300");
    params.push("key=ABQIAAAAPbmsc8u5fqSonxLVteLlchQeK9oFUI3FuAT4GDPOjzG5BVhrwRQiAdVap8l0AJvWamZi9eSU_zbFLg");

    baseUrl += params.join("&");

    var extraParams = [];
    extraParams.push("center=" + map.getCenter().lat().toFixed(6) + "," + map.getCenter().lng().toFixed(6));
    extraParams.push("zoom=" + map.getZoom());
    addImg(baseUrl + "&" + extraParams.join("&"), "staticMapOverviewIMG");

    var extraParams = [];
    extraParams.push("center=" + poly.getVertex(0).toUrlValue(5));
    extraParams.push("zoom=" + 15);
    addImg(baseUrl + "&" + extraParams.join("&"), "staticMapStartIMG");

    var extraParams = [];
    extraParams.push("center=" + poly.getVertex(poly.getVertexCount()-1).toUrlValue(5));
    extraParams.push("zoom=" + 15);
    addImg(baseUrl + "&" + extraParams.join("&"), "staticMapEndIMG");
}

function addImg(url, id) {
    var img = document.createElement("img");
    img.src = url;
    document.getElementById(id).innerHTML = "";
    document.getElementById(id).appendChild(img);
}