﻿
var map;
var marker;
var hiddenLat;
var hiddenLng;
var message;
var maxLat = 40;
var minLat = 39;
var maxLng = -0.47;
var minLng = -0.46;

// Call this function when the page has been loaded
function load() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        hiddenLat = document.getElementById("lat");
        hiddenLng = document.getElementById("lng");
        message = document.getElementById("mapmessage");

        map.disableDoubleClickZoom();
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GMapTypeControl());

        if (hiddenLat.value.length > 0 && hiddenLng.value.length > 0) {
            var latlng = new GLatLng(parseFloat(hiddenLat.value.replace(",", ".")), parseFloat(hiddenLng.value.replace(",", ".")));
            map.setCenter(latlng, 14);
            createMarker(latlng);
        }
        else {
            map.setCenter(new GLatLng(39.467707, -0.460052), 14);
        }

        GEvent.addListener(map, "click", function(overlay, point) {
            createMarker(point);
        });
       
    }

}

function createMarker(point) {
    if (point) {
        marker = new GMarker(point, { draggable: true });
        map.clearOverlays();
        map.addOverlay(marker);
        savePoint(point);
        GEvent.addListener(marker, "dragend", function(overlay, point) {
            savePoint(marker.getLatLng());
        });
    }
}

function savePoint(point) {
    hiddenLat.value = point.lat().toString(); //.replace(".", ",");
    hiddenLng.value = point.lng().toString(); // .replace(".", ",");
    if (message)
        message.innerHTML = point;
}  

