//<![CDATA[

function createMarker(point, message) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(message); });
  return marker;
}

function createLink(point, link) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() { window.location.href = link; });
  return marker;
}

function loadMap(paramCity, paramID) {

  var count       = 0;
  var centerLat   = '';
  var centerLng   = '';

  var element     = 'map';
  if(paramID!='') element = 'minimap';

  if(GBrowserIsCompatible()) {

    var maps = new GMap2(document.getElementById(element));
        if(element=='map') maps.addControl(new GLargeMapControl());
        if(element=='map') maps.addControl(new GMapTypeControl());
        maps.setCenter(new GLatLng(61.4989, 23.7721), 14);

    var request = GXmlHttp.create();
        request.open("GET", "/mapdata.php?city="+paramCity+"&id="+paramID, true);
        request.onreadystatechange = function() {

          if(request.readyState == 4) {

            var xmlDoc  = request.responseXML;
            var markers = xmlDoc.documentElement.getElementsByTagName("marker");

            count = markers.length;

            for(var i=0; i<count; i++) {

                var lat    = parseFloat(markers[i].getAttribute("latitude"));
                var lng    = parseFloat(markers[i].getAttribute("longitude"));
                var info   = markers[i].getAttribute("info");
                var link   = markers[i].getAttribute("link");

                centerLat = lat;
                centerLng = lng;

                if( element == 'minimap' ) {
                  var marker = createLink(new GLatLng(lat, lng), link);
                               maps.addOverlay(marker);
                }
                else {
                  var marker = createMarker(new GLatLng(lat, lng), info);
                               maps.addOverlay(marker);
                }
            }

            if( element == 'minimap' ) {
                maps.setCenter(new GLatLng(centerLat, centerLng), 15);
            }
            //else
                //map.setCenter(new GLatLng(61.4989, 23.7721), 14);
          }
        }

        request.send(null);
  }
}

//]]>
