﻿var map;

function InitMap() {
    if (GBrowserIsCompatible()) {
		var geocoder = new GClientGeocoder();
        var oIcon = new GIcon(G_DEFAULT_ICON);
        oIcon.image = "images/marker.png";
        oIcon.transparent = "images/marker_transparent.png";
        oIcon.shadow = null;
        oIcon.printShadow = null;
        oIcon.iconSize = new GSize(26, 33);
        oIcon.imageMap = [0, 0, 0, 26, 26, 33, 33, 0];
        oIcon.infoWindowAnchor = new GPoint(99, 26);
		
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(googleLat, googleLng), googleZoom);
        map.setUIToDefault();

        var request = GXmlHttp.create();
        request.open("GET", "gmapData.aspx", true);

        // When ready
        request.onreadystatechange = function() {
        	if (request.readyState == 4) {
        		var xmlDoc = GXml.parse(request.responseText);

        		// obtain the array of markers and loop through it
        		var xmlMarkers = xmlDoc.documentElement.getElementsByTagName("Placemark");
        		var iXmlLen = xmlMarkers.length;
        		var markerOptions = { title: '', icon: oIcon };
        		for (var i = 0; i < iXmlLen; i++) {
        			var item = xmlMarkers[i];
        			var fltLat = GXml.value(item.getElementsByTagName("longitude")[0]);
        			var fltLng = GXml.value(item.getElementsByTagName("latitude")[0]);

        			if (fltLat > 0 && fltLng > 0) {
        				var sCompany = GXml.value(item.getElementsByTagName("foretag")[0]);
        				var sAdress = GXml.value(item.getElementsByTagName("adress")[0]);
        				var sCity = GXml.value(item.getElementsByTagName("ort")[0]);
        				var sPhone = GXml.value(item.getElementsByTagName("telefon")[0]);
        				var sHomePage = GXml.value(item.getElementsByTagName("hemsida")[0]);

        				markerOptions.title = sCompany;
        				
        				//Create marker and bind click event.
        				var point = new GLatLng(fltLat, fltLng);
        				var marker = createMarker(point, markerOptions, '<div class="resellerdiv"><h2>' + sCompany + '</h2><p>' + sAdress + ', ' + sCity + '<br  /><strong>' + sPhone + '</strong>' + ((sHomePage=='')?'':'<br  /><a href="http://' + sHomePage + '" target="_blank">Hemsida</a>')+'</p></div>');
        				map.addOverlay(marker);
        			}
        		}
        	}
        };
        
        //Necessary: "the function holds function closure on the marker and html variables."
        function createMarker(point, markerOptions, infoText) {
        	var marker = new GMarker(point, markerOptions);
        	GEvent.addListener(marker, 'click', function() {
        		marker.openExtInfoWindow(map, "custom_info_window_red", infoText);
        	});
        	return marker;
        }

        request.send(null);
    }
}
