﻿var map = null;
var geocoder = null;
var sStartAddress = "Sofia,Bulgaria";

function initializeMap() {
    alert("alert");
    //      if (GBrowserIsCompatible()) {
    //        var map = new GMap2(document.getElementById("mapGoogle"));
    //        map.addControl(new GSmallMapControl());
    //        map.setCenter(new GLatLng(0.0, 0.0), 5);
    //      }
}

function reInitMap() {
    setTimeout('ResizeMap()', 50);
}; 

function ResizeMap() {
    if (GBrowserIsCompatible()) {
        var fLatitude = document.getElementById("lblLatitudeHTML").value;
        var fLongitude = document.getElementById("lblLongitudeHTML").value;
        var map = new GMap2(document.getElementById("mapGoogle"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());

        point = new GLatLng(fLatitude, fLongitude, true);

        var marker = new GMarker(point, { draggable: true });
        map.addOverlay(marker);

        // add a drag listener to the map
        GEvent.addListener(marker, "dragend", function() {
            var point = marker.getPoint();
            map.panTo(point);
            document.getElementById("lblLatitudeHTML").value = point.lat();
            document.getElementById("lblLongitudeHTML").value = point.lng();

        });

        map.setCenter(point, 12);
    }
}

function UpdateMapWithStreet(strAddress) {
    sStartAddress = strAddress;
    rLatMin = 0.0;
    rLongMin = 0.0;
    sCoordinates = "";
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("mapGoogle"));
        //var map = new GMap2(document.getElementById("mapGoogle"), { size: new GSize(530, 300) });
        //map.addControl(new GSmallMapControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());

        //map.setCenter(new GLatLng(parseFloat(rLatMin), parseFloat(rLongMin)), 5);

        geocoder = new GClientGeocoder();

        if (geocoder) {
            geocoder.getLatLng(
            sStartAddress,
            function(point) {
                if (!point) {
                    alert(sStartAddress + " not found");
                } else {
                    //var marker = new GMarker(point);
                    var marker = new GMarker(point, { draggable: true });
                    map.addOverlay(marker);

                    // add a drag listener to the map
                    GEvent.addListener(marker, "dragend", function() {
                        var point = marker.getPoint();
                        map.panTo(point);
                        document.getElementById("lblLatitudeHTML").value = point.lat();
                        document.getElementById("lblLongitudeHTML").value = point.lng();
                        
                    });

                    //marker.openInfoWindowHtml(sStartAddress + " Coordinates: " + point);
                    map.setCenter(point, 15);
                    document.getElementById("lblLatitudeHTML").value = point.lat();
                    document.getElementById("lblLongitudeHTML").value = point.lng();
                    while (map.isLoaded() == false) {
                        sCoordinates = point;
                    }
                    var latlng = map.getCenter();
                    sCoordinates = point;
                }
            });
        };
    };

    //alert("strAddress");
    map.checkResize();

    return map;
}

function UpdateMapWithCoordinates(fLatitude, fLongitude) {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("mapGoogle"));
        //var map = new GMap2(document.getElementById("mapGoogle"), { size: new GSize(530, 300) });
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());

        //map.setCenter(new GLatLng(parseFloat(rLatMin), parseFloat(rLongMin)), 5);

        geocoder = new GClientGeocoder();
        point = new GLatLng(fLatitude, fLongitude, true);

        var marker = new GMarker(point, { draggable: true });
        map.addOverlay(marker);

        // add a drag listener to the map
        GEvent.addListener(marker, "dragend", function() {
            var point = marker.getPoint();
            map.panTo(point);
            document.getElementById("lblLatitudeHTML").value = point.lat();
            document.getElementById("lblLongitudeHTML").value = point.lng();

        });

        map.setCenter(point, 15);
        document.getElementById("lblLatitudeHTML").value = point.lat();
        document.getElementById("lblLongitudeHTML").value = point.lng();
    };

    //alert("Coordinates");
    map.checkResize();

    return map;
}
