﻿//<![CDATA[

var map = null;
var geocoder = null;
var address = null;

$(function() {
    initMap();
});

$(document.body).unload(function() {
    GUnload();
});

function initMap() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("beemstermap"));
        map.setCenter(new GLatLng(52.572386, 4.928055), 10);
        //map.addControl(new GOverviewMapControl());
        //map.addControl(new GLargeMapControl());
        //map.addControl(new GMapTypeControl());
        map.enableScrollWheelZoom();
        map.enableContinuousZoom();

        // prevent page scroll
        function wheelevent(e) {
            if (!e) {
                e = window.event
            }
            if (e.preventDefault) {
                e.preventDefault()
            }
            e.returnValue = false;
        }
        GEvent.addDomListener(map.getContainer(), "DOMMouseScroll", wheelevent);
        map.getContainer().onmousewheel = wheelevent;
        geocoder = new GClientGeocoder();
    }
}

function showAddress(gegevens, id, geocode, showMarker, text, notFoundMsg) {
    if (geocode) {
        if (geocode.length > 1) {
            var pos = geocode.split(", ");
            var geocode = new GPoint(pos[1], pos[0]);
            if (showMarker == "false") {
                map.setCenter(new GLatLng(pos[0], pos[1]), 12);
            }
        }
        var marker = new GMarker(geocode);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(text);
        if (showMarker == "false") {
            marker.closeInfoWindow();
        }
    } else {
        if (geocoder) {
            geocoder.getLatLng(
				gegevens,
				function(geocode) {
                    if (!geocode) {
                        if (showMarker == "true")
    				        alert(notFoundMsg);
				    } else {
				        UtilService.SaveGeoCode(id, geocode.x, geocode.y);
				        showAddress(gegevens, id, geocode, showMarker);
				    }
				}
			);
        }
    }
}

function saveGeocode(id, geocode) {
    UtilService.SaveGeoCode(id, geocode);
}
//]]>