function createMarker(map, point, icon, name, addr, phone) {
    if (icon) {
        var marker = new GMarker(point, icon);
    } else {
        var marker = new GMarker(point);
    }
    var html;
      
    if (phone) {
        html = name + "<br>" + addr + "<br>" + phone;
    } else {
        html = name + "<br>" + addr;
    };
      
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(html);
    });
      
    map.addOverlay(marker);
}
    
function createMarkers(map, request, icon) {
    if (request.readyState == 4) {
        var xmlDoc = request.responseXML;
	var markers = xmlDoc.documentElement.getElementsByTagName("marker");

        for (var i = 0; i < markers.length; i++) {
            var point = new GPoint(parseFloat(markers[i].getAttribute("lng")),
                                   parseFloat(markers[i].getAttribute("lat")));

	    createMarker(map, point, icon,
                         markers[i].getAttribute("name"),
	                 markers[i].getAttribute("addr"),
	                 markers[i].getAttribute("phone"));
        }
    }
}
    
function loadMarkers(map, url, icon, kont) {
    var request = GXmlHttp.create();
    request.open("GET", url, true);
    request.onreadystatechange = function() {
        createMarkers(map, request,icon);
        if (kont) {
            kont();
        }
    }
    request.send(null);
}

function googleIcon(color) {
    var icon = new GIcon();

    icon.image = "http://labs.google.com/ridefinder/images/mm_20_" + color + ".png";
    icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    icon.iconSize = new GSize(12, 20);
    icon.shadowSize = new GSize(22, 20);
    icon.iconAnchor = new GPoint(6, 20);
    icon.infoWindowAnchor = new GPoint(5, 1);

    return icon;
}
