var iconA = new GIcon(); 
    iconA.image = 'http://www.google.com/mapfiles/markerA.png';
    iconA.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconA.iconSize = new GSize(18, 30);
    iconA.shadowSize = new GSize(22, 20);
    iconA.iconAnchor = new GPoint(6, 20);
    iconA.infoWindowAnchor = new GPoint(5, 1);

    var iconB = new GIcon(); 
     iconB.image = 'http://www.google.com/mapfiles/markerB.png';
    iconB.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconB.iconSize = new GSize(18, 30);
    iconB.shadowSize = new GSize(22, 20);
    iconB.iconAnchor = new GPoint(6, 20);
    iconB.infoWindowAnchor = new GPoint(5, 1);
		
		var iconC = new GIcon(); 
    iconC.image = 'http://www.google.com/mapfiles/markerC.png';
    iconC.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconC.iconSize = new GSize(18, 30);
    iconC.shadowSize = new GSize(22, 20);
    iconC.iconAnchor = new GPoint(6, 20);
    iconC.infoWindowAnchor = new GPoint(5, 1);

    var iconD = new GIcon(); 
     iconD.image = 'http://www.google.com/mapfiles/markerD.png';
    iconD.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconD.iconSize = new GSize(18, 30);
    iconD.shadowSize = new GSize(22, 20);
    iconD.iconAnchor = new GPoint(6, 20);
    iconD.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["A"] = iconA;
    customIcons["B"] = iconB;
		customIcons["C"] = iconC;
    customIcons["D"] = iconD;

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(53.433358, 14.5514719), 13);

        GDownloadUrl("data.xml", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address, type);
            map.addOverlay(marker);
          }
        });
      }
    }

    function createMarker(point, name, address, type) {
      var marker = new GMarker(point, customIcons[type]);
      var html = "<b>" + name + "</b> <br/>" + address;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }