﻿function loadmap(xml, lat, lng, zoom) 
{
    if (GBrowserIsCompatible()) 
    {

        // display the loading message

        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl3D());
        map.addControl(new GMapTypeControl());
        map.addControl(new GOverviewMapControl());
        map.addControl(new GScaleControl());
        geocoder = new GClientGeocoder();

        var centerlat = parseFloat(lat);
        var centerlng = parseFloat(lng);
        var pointzoom = parseFloat(zoom);

        var icon = new GIcon(G_DEFAULT_ICON);

        icon.image = "/images/static/google-pointer(26x15).png";
        icon.iconSize = new GSize(15, 26);
        icon.shadowSize = new GSize(0, 0);
        //draggable:true

        function createMarker(point, html, icon, map) 
        {
            var marker = new GMarker(point, { icon: icon });
            map.addOverlay(marker);
            GEvent.addListener(marker, "click", 
                                               function() 
                                               {
                                                    marker.openExtInfoWindow(map,"simple_example_window",html,{ beakOffset: 3 });
                                               }
	                           );
            return marker;
        }

        // new strategy - read the XML first, THEN create the map


        GDownloadUrl(xml,
                        function(doc) 
                        {
                                    var gmarkers = [];
                                    var xmlDoc = GXml.parse(doc);
                                    if (xmlDoc.documentElement == null) 
                                    {
                                            GDownloadUrl(xml, 
                                                            function(doc) 
                                                            {
                                                                xmlDoc = GXml.parse(doc);
                                                            }
                                                         );
                                    }
                                    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
                                    for (var i = 0; i < markers.length; i++) 
                                    {
                                            // obtain the attribues of each marker
                                        var lat = parseFloat(markers[i].getAttribute("lat"));
                                        var lng = parseFloat(markers[i].getAttribute("lng"));
                                        if (lat != 0 && lng != 0) 
                                        {
                                            var point = new GLatLng(lat, lng);
                                            //alert(point);
                                            var town = markers[i].getElementsByTagName("msg")[0].firstChild.nodeValue;
                                            if (town.indexOf("&amp;apos;") != -1) 
                                            {
                                                town = town.replace("&amp;apos;", "\'");
                                                //alert(town);
                                            }
                                            if (town.indexOf("&amp;apos;") != -1) 
                                            {
                                                    town = town.replace("&amp;apos;", "\'");
                                                    //alert(town);
                                            }
                                            // split the markers into four arrays, with different GIcons
                                            var marker = createMarker(point, town, icon, map);
                                            gmarkers.push(marker);
                                        }
                                   }
                                   // Display the map, with some controls and set the initial location
                                   map.setCenter(new GLatLng(centerlat, centerlng), pointzoom, G_NORMAL_MAP);
                                   // Add ContextMenuControl to the map
                                   var mm = new GMarkerManager(map, { borderPadding: 1 });
                                   mm.addMarkers(gmarkers, 0, 17);
                                   mm.refresh();
                        }
                  );
    }

    // display a warning if the browser was not compatible
    else 
    {
        alert("Sorry, the Google Maps API is not compatible with this browser");
    }
}

function loadmapRemove(xml, iconname, rem) {
    if (GBrowserIsCompatible()) {
        alert('remove');
        var icon = new GIcon(G_DEFAULT_ICON);

        icon.image = "images/" + iconname;
        alert('images/' + iconname);
        icon.iconSize = new GSize(15, 26);
        icon.shadowSize = new GSize(0, 0);

        GDownloadUrl(xml,
                            function(doc) {
                                var gmarkers = [];
                                var xmlDoc = GXml.parse(doc);
                                if (xmlDoc.documentElement == null) {
                                    GDownloadUrl(xml,
                                                        function(doc) {
                                                            xmlDoc = GXml.parse(doc);
                                                        }
                                                    );
                                }
                                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"));
                                    if (lat != 0 && lng != 0) {
                                        var point = new GLatLng(lat, lng);
                                        var marker = new GMarker(point, { icon: icon });
                                        map.removeOverlay(marker);
                                    }
                                }
                            }
                         );
    }
}

