﻿UtilService.GetMessages("route", msgsCallBack);

function msgsCallBack(msgs)
{
    if (GBrowserIsCompatible()) {
        var side_bar_html = "";
        var gmarkers = [];
        var htmls = [];
        var i = 0;

        var beemsterIcon = new GIcon(G_DEFAULT_ICON);
        beemsterIcon.image = "/images/icons/beemsterIcon.png";
        beemsterIcon.iconSize = new GSize(60, 42);
        beemsterIcon.iconAnchor = new GPoint(30, 42);
        beemsterIcon.infoWindowAnchor = new GPoint(30, 20);
        beemsterIcon.imageMap = [9, 0, 1, 1, 1, 42, 60, 42, 60, 1, 1, 1];
        beemsterIcon.printImage = "/images/icons/beemsterIcon.gif";
        beemsterIcon.mozPrintImage = "/images/icons/beemsterIcon.gif";

        function createMarker(point, name, html) {
            var marker = new GMarker(point, beemsterIcon);

            GEvent.addListener(marker, "click", function() {
                marker.openInfoWindowHtml(html);
            });

            gmarkers[i] = marker;
            htmls[i] = html;

            $("form").bind("submit", function() { $("#saddr").val($("#zip").val() + ',Nederland'); getDirections(); return false; })
                .keypress(function() { return WebForm_FireDefaultButton(event, 'submit'); });
            side_bar_html += 
                '<div><label for="zip">' + msgs[0] + '</label><br/><input type="text" size="40" maxlength="40" name="zip" id="zip" value="" />' +
		        '<input id="submit" value="' + msgs[1] + '" type="submit">' +
		        '<input type="hidden" id="saddr" name="saddr" value=""/>' +
		        '<input type="hidden" id="daddr" value="' + name + "@" + point.lat() + ',' + point.lng() +
		        '"/></div><span id="routeWaarschuwing">' + msgs[2] + '</span><br/><br/>';
            i++;
            return marker;
        }

        function getDirections() {
            var saddr = document.getElementById("saddr").value
            var daddr = document.getElementById("daddr").value
            gdir.load("from: " + saddr + " to: " + daddr);
        }

        function myclick(i) {
            gmarkers[i].openInfoWindowHtml(htmls[i]);
        }

        var map = new GMap2(document.getElementById("mapRoute"));
        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();

        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;

        var gdir = new GDirections(map, $("#directions")[0]);

        var reasons = [];
        reasons[G_GEO_SUCCESS] = msgs[3];
        reasons[G_GEO_MISSING_ADDRESS] = msgs[4];
        reasons[G_GEO_UNKNOWN_ADDRESS] = msgs[5];
        reasons[G_GEO_UNAVAILABLE_ADDRESS] = msgs[6];
        reasons[G_GEO_BAD_KEY] = msgs[7];
        reasons[G_GEO_TOO_MANY_QUERIES] = msgs[8];
        reasons[G_GEO_SERVER_ERROR] = msgs[9];
        reasons[G_GEO_BAD_REQUEST] = msgs[10];
        reasons[G_GEO_MISSING_QUERY] = msgs[11];
        reasons[G_GEO_UNKNOWN_DIRECTIONS] = msgs[12];

        GEvent.addListener(gdir, "error", function() {
            var code = gdir.getStatus().code;
            var reason = "Code " + code;
            if (reasons[code]) {
                reason = reasons[code]
            }

            alert(msgs[13] + " " + reason);
        });

        var request = GXmlHttp.create();
        request.open("GET", "/js/cono.xml", true);
        request.onreadystatechange = function() {
            if (request.readyState == 4) {
                var xmlDoc = GXml.parse(request.responseText);

                var markers = xmlDoc.documentElement.getElementsByTagName("marker");

                for (var i = 0; i < markers.length; i++) {

                    var lat = parseFloat(markers[i].getAttribute("lat"));
                    var lng = parseFloat(markers[i].getAttribute("lng"));
                    var point = new GLatLng(lat, lng);
                    var html = markers[i].getAttribute("html");
                    var label = markers[i].getAttribute("label");

                    var marker = createMarker(point, label, html);
                    map.addOverlay(marker);
                }
                $("#inputRoute")[0].innerHTML += side_bar_html;
                $("#zip").keypress(function() {  });
            }
        }
        request.send(null);
    }
    else {
        alert(msgs[14]);
    }
}


