var map;
var gdir;
var geocoder;

function initialize() {
    if (GBrowserIsCompatible()) {  
        document.getElementById("mapdiv").style.display = "block";  
        var center = new GLatLng(46.3569396172235, 18.7056827545166);
        map = new GMap2(document.getElementById("mapdiv"));
        map.setCenter(center, 14);

        var mapTypeControl1 = new GMapTypeControl();
        var mapTypeControl2 = new GLargeMapControl();

        var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
        var topLeft = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10));
        map.addControl(mapTypeControl1, topRight);
        map.addControl(mapTypeControl2, topLeft);
		//new
        var markerOptions = { title: "Az Ön tartózkodási helye" };

        marker = new GMarker(new GLatLng(46.354985, 18.705597), markerOptions); // szekszárd

        locationObj = document.getElementById("location");
        targetObj = document.getElementById("target");

        var html = "";

        GEvent.addListener(marker, "click", function() {
            
            var html = '<h3>Az Ön tartózkodási helye:</h3>';

            html += "<input style=\"width: 240px;\" type=\"text\" id=\"popupLocation\" maxlength=\"255\" value=\"" + locationObj.value + "\" />"; 

            html += "<br /><br /><input class=\"button\" style=\"width: 120px;\" type=\"submit\" value=\"Felvesz\" onclick=\"setLocation(document.getElementById('popupLocation').value);\"/>";
            html += "&nbsp;<input class=\"button\" type=\"submit\" style=\"width: 120px;\" value=\"Útvonal tervezése\" onclick=\"setDirections(document.getElementById('location').value);\"/>";

            marker.openInfoWindowHtml(html, {noCloseOnClick: true});
        });

        map.addOverlay(marker);

        GEvent.trigger(marker, "click");

        // kell a geocoder

        geocoder = new GClientGeocoder();

        // útvonaltervező app

        gdir = new GDirections(map, document.getElementById("directions"));

        GEvent.addListener(gdir, "load", onGDirectionsLoad);

        GEvent.addListener(gdir, "error", handleErrors);
    }
 }
 function setDirections(fromAddress) 
 {
	 gdir.clear();
	 trg = targetObj.value;
     gdir.load("from: " + fromAddress + " to: " + trg);   

 }

 function setLocation(address) 
 { 
     geocoder.getLocations(address, addAddressToMap);
 }

 function addAddressToMap(response) 
 {
     if (!response || response.Status.code != 200) 
     {
         alert("A megadott címadatokkhoz nem találtam GPS koordinátákat.\n\nAz utca, hászám megfelelő formára alakítása után újra megpróbálhatja a keresést.");
     } else 
     {
         // console.debug(response);
         marker.closeInfoWindow();
         place = response.Placemark[0];
         point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
         map.panTo(point);
         marker.setLatLng(point);
         locationObj.value = response.name;
         GEvent.trigger(marker, "click");
     }
 }

 function handleErrors(){
     if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) {
         alert("A megadott címadatokkhoz nem találtam GPS koordinátákat.\n\nAz utca, hászám megfelelő formára alakítása után újra megpróbálhatja a keresést.\n\n(Hibakód: " + gdir.getStatus().code + ")");
     } else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) {
         alert("A művelet végrehajtása ismeretlen hiba miatt megszakadt.\n\n(Hibakód: " + gdir.getStatus().code + ")");
     } else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) {
         alert("Hiányzik a célállomás paraméter.\n\n(Hibakód: " + gdir.getStatus().code + ")");
     } else if (gdir.getStatus().code == G_GEO_BAD_KEY) {
         alert("Hibás térkép kulcs.\n\n(Hibakód: " + gdir.getStatus().code + ")");
     } else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) {
     	alert("Nem tudtam feldolgozni a kérést.\n\n(Hibakód: " + gdir.getStatus().code + ")");
     } else {
     	alert("Ismeretlen hiba történt.");
     }
 }

 function onGDirectionsLoad()
 { 
     // marker.closeInfoWindow();
 }

 window.onload = function() 
 {
     initialize();
 }

 window.onunload = function() 
 {
     GUnload();
 }

