    var loaded = false;
    var map;
    var markery=[];

    function load(productId, city) {
        
      if(loaded && city != null)
      {
        loadCity(city);
        return false;
      }
      
      if(loaded)
      {
        return false;
      }
      
      loaded = true;

      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(52, 21), 0);

        var xmlUrl = 'http://' + window.location.hostname + '/produkt/xml.php?id=' + productId;
        GDownloadUrl(xmlUrl, function(data) {
          var xml = GXml.parse(data);
          var bounds = new GLatLngBounds;
          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 acity = markers[i].getAttribute("city");
            var description = markers[i].getAttribute("description");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, description);
            map.addOverlay(marker);
            bounds.extend(marker.getPoint());
            
            marker.city  = acity;
            marker.nazwa = name;
            marker.txt = /* "<b>" + name + "</b> <br/>" + address; + "<br/>" + */ description;
            markery.push(marker);

          }
          
            map.setZoom(map.getBoundsZoomLevel(bounds));
            map.setCenter(bounds.getCenter());
			//map.checkResize();
            $('#map').removeClass('loading');
            if (city != null)
            {
                loadCity(city);
            }
        });
      }
    }

    
    
    function loadCity(city) {
        var bounds = new GLatLngBounds;
        for(var i=0; i<markery.length; i++)
        {
            markery[i].closeInfoWindow();
            if(markery[i].city == city)
            {
                bounds.extend(markery[i].getPoint());
                map.closeInfoWindow();
                //map.setCenter(markery[i].getPoint());
                //map.setZoom(9);
                //markery[i].openInfoWindowHtml(markery[i].txt);
                //break;
            }
            
        }
        if(!bounds.isEmpty())
        {
            map.setZoom(map.getBoundsZoomLevel(bounds)-1);
            map.setCenter(bounds.getCenter());
        }
    }
    
    /*
    function otworzMarker(id)
		{
			if(markery.length-1<id)
				return;
			markery[id].openInfoWindowHtml(markery[i].txt);
		}
    */
        
    function otworzMarkerPoNazwie(nazwa)
    {
        for(var i=0; i<markery.length; i++)
        {
            if(markery[i].nazwa == nazwa)
            {
                map.setCenter(markery[i].getPoint());
                markery[i].openInfoWindowHtml(markery[i].txt);
                break;
            }
        }
    }
        


    function zoom(zoomLevel) {
        if(zoomLevel > 8)
        {
            return 9;
        }
        else
        {
            return zoomLevel;
        }
    }
    
    function createMarker(point, name, description) {
      var marker = new GMarker(point/*, customIcons[type]*/);
      var html = /*"<b>" + name + "</b> <br/>" + */ description;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

