    var map;
    var geoXml;
    var toggleState = 1;
    var southWest;
    var nortEast;
    var southWest_lng;
    var southWest_lat;
    var nortEast_lng;
    var nortEast_lat;
    var markers;
    var zoom;
    var markerOptions;
    var baseIcon;
    //var GM_typ;
    var WEB_ROOT = '';
    
    var GM_typ;
    
	function initialize(lng,lat,zoom) {
  	  
		if (GBrowserIsCompatible()) {
  		
  		  var mapOptions = {
  		      googleBarOptions : {
  			  style : "new",
  			  listingTypes : G_GOOGLEBAR_TYPE_LOCALONLY_RESULTS
  		  	}
  		  }
  		
        map = new GMap2(document.getElementById("map_jason"), mapOptions);
        map.setCenter(new GLatLng(lng,lat), zoom);
        
        map.setUIToDefault();
        //map.enableGoogleBar();

        map.addControl(new GLargeMapControl3D());
        //map.addControl(new GMapTypeControl());
        map.disableScrollWheelZoom();
                
        getBorders();
        if(GM_typ == 'pocasi') { showPocasi(); }
        	else { showCamps(); }
        
        GEvent.addListener(map,"zoomend",function(){
        	//document.getElementById("message").innerHTML = '';
        	getBorders();
        	if(GM_typ == 'pocasi') { showPocasi(); }
        		else { showCamps(); }
        });
        
        GEvent.addListener(map,"dragend",function(){
           //document.getElementById("message").innerHTML = '';
           getBorders();
           if(GM_typ == 'pocasi') { showPocasi(); }
           		else { showCamps(); }
        });
        
  	  }
	}
	
	function setGM_typ(typ) {
		
		// nastavime si promennou skrznaskr aplikaci (globalni)
		GM_typ = typ;
		
		// zmenima na current
		if(GM_typ == 'pocasi') {
			document.getElementById("GM_" + GM_typ).className = "current";
			document.getElementById("GM_camps").className = "xxx";
		} else if (GM_typ == 'camps') {
			document.getElementById("GM_" + GM_typ).className = "current";
			document.getElementById("GM_pocasi").className = "xxx";
		}
		
	}

	function showCamps(){
        var zoom = map.getZoom();
        
        if(zoom <= 7)
        {
            showTopCamps();
        }
        else if(zoom > 7)
        {
            showRestCamps();
        }
        
    }
	
	function showMarkers(myIcon)
	{
        var is_print = 0;
        for (var i = 0; i < markers.length; i++)
        {
            is_print++;
            var marker = createMarker(markers[i],myIcon);    
            if(is_print == 1)
            {
                map.clearOverlays();
            }
            map.addOverlay(marker);    
        }
    }
    
	function createMarker(camp)
	{
        var lat = parseFloat(camp.getAttribute("lat"));
        var lng = parseFloat(camp.getAttribute("lng"));
        var name = camp.getAttribute("name");
        var id  = camp.getAttribute("id");
        var url = camp.getAttribute("url");
        //var photo = camp.getAttribute("photo");
        // var descr = camp.getAttribute("descr");
        //var provoz = camp.getAttribute("provoz");
        var type = camp.getAttribute("type");
        //var equipment = camp.getAttribute("equipment");
        
        var myIcon = getIcon(type);
        //alert(type);
        /*var popisek  = '<div class="kemp-detail">';
            if(photo != '')
            {
                popisek += '<img src="http://www.katalog-kempu.cz/files/img_kempy/'+id+'/thumbs/'+photo+'" height="55" width="74" class="foto" alt="'+name+'"  />';
            }
             popisek += '<a href="http://www.katalog-kempu.cz/'+url+'/" title="'+name+'"><b>'+name +'</b></a><br />';
             popisek += '<div class="provoz">'+provoz+'</div>';
             popisek += '<div class="pozn">'+descr+'</div>';
             popisek += '<div id="equipment">'+equipment+'</div>';
             popisek += '<a href="http://www.katalog-kempu.cz/'+url+'/" title="'+name+'" id="a_vice">Více informací...</a>';
             popisek += '</div>';*/
        var latlng = new GLatLng(lat,lng);
        
        var marker = new GMarker(latlng,{icon:myIcon, title:name});
            
        GEvent.addListener(marker, "click", function() {
            //document.getElementById("message").innerHTML = popisek ;
            //map.openInfoWindowHtml(latlng, 'xxx');
            self.location = WEB_ROOT+'/'+url+'/';
        });
        
        GEvent.addListener(marker, "mouseover", function() {
            //document.getElementById("message").innerHTML = popisek ;
        	getPopisek(id);
        });
        
        /*GEvent.addListener(marker, "mouseout", function() {
            document.getElementById("message").innerHTML = '' ;
        });*/
        
        
        return marker;
    }

    function getIcon(type){
    	
    	/*baseIcon = new GIcon(G_DEFAULT_ICON);
        baseIcon.shadow = "";
        baseIcon.iconSize = new GSize(28, 39);
        baseIcon.shadowSize = new GSize(37, 34);
        baseIcon.iconAnchor = new GPoint(8, 39);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);*/
        
        var myIcon = new GIcon(G_DEFAULT_ICON);
        myIcon.shadow = "";
        myIcon.iconSize = new GSize(28, 39);
        myIcon.shadowSize = new GSize(37, 34);
        myIcon.iconAnchor = new GPoint(8, 39);
        myIcon.infoWindowAnchor = new GPoint(9, 2);
        
        switch(type){
            case 'top':
                myIcon.image = WEB_ROOT+"/images/icons/stan-red-28x39.png";
            break;
            case 'karavan':
                myIcon.image = WEB_ROOT+"/images/icons/karavan-28x39.png";
            break;
            default:
                myIcon.image = WEB_ROOT+"/images/icons/stan-green-28x39.png"
            break;            
        }
        
        return myIcon;
    }
    
    function getBorders() {
        var bounds = map.getBounds();
        southWest = bounds.getSouthWest();
        northEast = bounds.getNorthEast();
        southWest_lng = southWest.lng();
        southWest_lat = southWest.lat();
        northEast_lng = northEast.lng();
        northEast_lat = northEast.lat();
        
    }
    
    function showMarkersPocasi() {
		
		map.clearOverlays();
		
        for (var i = 0; i < markers.length; i++) {
            map.addOverlay(createMarkerPocasi(markers[i]));    
        }
		
		/*var bounds = map.getBounds();
	    var southWest = bounds.getSouthWest();
	    var northEast = bounds.getNorthEast();
	    var lngSpan = northEast.lng() - southWest.lng();
	    var latSpan = northEast.lat() - southWest.lat();
	    for (var i = 0; i < 25; i++) {
	      var latlng = new GLatLng(southWest.lat() + latSpan * Math.random(),
		    southWest.lng() + lngSpan * Math.random());
	      	map.addOverlay(createMarkerPocasi(latlng, i + 1));
	    }*/
	}
	
	function createMarkerPocasi(item) {

		var id  = item.getAttribute("id");
		var lat = parseFloat(item.getAttribute("lat"));
        var lon = parseFloat(item.getAttribute("lon"));
        var mesto = item.getAttribute("mesto");
        var icon = item.getAttribute("icon");
        var stav = item.getAttribute("stav");
        
        var latlon = new GLatLng(lat,lon);
        
        //alert(latlon)
		
		var myIcon2 = new GIcon(G_DEFAULT_ICON);
        //baseIcon.shadow = "http://smd02/katalogkempu/www/images/icons/weather_shadow.gif";
		myIcon2.shadow = "";
		myIcon2.iconSize = new GSize(40, 40);
		myIcon2.shadowSize = new GSize(0, 0);
		myIcon2.iconAnchor = new GPoint(40, 40);
		myIcon2.infoWindowAnchor = new GPoint(9, 2);
		
		// Create a lettered icon for this point using our icon class
        //myIcon2.image = "http://www.google.com/ig/images/weather/cloudy.gif";
		myIcon2.image = icon;

        // Set up our GMarkerOptions object
        markerOptions = { icon:myIcon2, title:mesto + stav };
		  
		var marker = new GMarker(latlon, markerOptions);

		//GEvent.addListener(marker, "mouseover", function() {
		GEvent.addListener(marker, "click", function() {
		/*var myHtml = "" +
				"<strong>Limassol</strong><br />" +
				"<div style=\"width: 240px; font-size: 0.7em;\">" +
					"<img src=\"http://www.google.com/ig/images/weather/cloudy.gif\" alt=\"Limassol\" style=\"float: left; display: block; width: 40px; margin: 0.75em auto 0 auto;\"/>" +
					"<div style=\"margin-left: 50px;\">" +
						"14.12.2009 13:00<br/>" +
						"19° - Zataženo<br />" +
						"Vlhkost: 56%<br />" +
						"Vítr: SZ s rychlostí 21 km/h" +
					"</div>" +
					"<div style=\"clear: both; border-top: 1px solid silver; margin: 0.5em 0 0.5em 0; padding-top: 0.5em;\">" +
						"<div style=\"width: 60px; float: left; text-align: center;\">" +
							"Po<br /><img src=\"http://www.google.com/ig/images/weather/mostly_sunny.gif\" alt=\"Skoro jasno\"/><br />18°/10°" +
						"</div>" +
						"<div style=\"width: 60px; float: left; text-align: center;\">" +
							"Út<br /><img src=\"http://www.google.com/ig/images/weather/cloudy.gif\" alt=\"Skoro jasno\"/><br />17°/11°" +
						"</div>" +
						"<div style=\"width: 60px; float: left; text-align: center;\">" +
							"St<br /><img src=\"http://www.google.com/ig/images/weather/chance_of_storm.gif\" alt=\"Skoro jasno\"/><br />16°/9°" +
						"</div>" +
						"<div style=\"width: 60px; float: left; text-align: center;\">" +
							"Čt<br /><img src=\"http://www.google.com/ig/images/weather/chance_of_storm.gif\" alt=\"Skoro jasno\"/><br />18°/12°" +
						"</div>" +
					"</div>" +
					""
				"</div>";
		
		    map.openInfoWindowHtml(latlon, myHtml);*/
		  	
			getPopisekPocasi(id);
			
			});
		return marker;
	}
	
	function showPopisekPocasi() {
		
		var item = markers[0];
		
		var id = item.getAttribute("id");
		var lat = parseFloat(item.getAttribute("lat"));
		var lon = parseFloat(item.getAttribute("lon"));
		var mesto = item.getAttribute("mesto");
		var current_date_time = item.getAttribute("current_date_time");
		var current_icon = item.getAttribute("current_icon");
		var current_stav = (item.getAttribute("current_temp") + ' °C' + item.getAttribute("current_condition"));
		var current_humidity = item.getAttribute("current_humidity");
		var current_wind = item.getAttribute("current_wind");
		
		// forecast
		var myHtmlForecast;
		myHtmlForecast = "<div style=\"clear: both; border-top: 1px solid silver; margin: 0.5em 0 0.5em 0; padding-top: 0.5em;\">";
		for (var i = 0; i <= 3; i++) {
			//item.getAttribute("forecast_day_" + i);
			var myHtmlForecast = myHtmlForecast +
				"<div style=\"width: 60px; float: left; text-align: center;\">" +
					"" + item.getAttribute("forecast_day_" + i) + "<br /><img src=\"" + item.getAttribute("forecast_icon_" + i) + "\" alt=\"" + item.getAttribute("forecast_temp_" + i) + "\"/><br />" + item.getAttribute("forecast_temp_" + i) + "" +
				"</div>";
		}
		myHtmlForecast = myHtmlForecast + "</div>";
		
		// souradnice
		var latlon = new GLatLng(lat,lon);
		
		var myHtml = "" +
			"<strong>" + mesto + "</strong><br />" +
			"<div style=\"width: 240px; font-size: 0.7em;\">" +
				"<img src=\"" + current_icon + "\" alt=\"" + current_stav + "\" style=\"float: left; display: block; width: 40px; margin: 0.75em auto 0 auto;\"/>" +
				"<div style=\"margin-left: 50px;\">" +
					current_date_time + "<br/>" +
					current_stav + "<br />" +
					current_humidity + "<br />" +
					current_wind + "" +
				"</div>" +
				myHtmlForecast +
			"</div>";
		
	    map.openInfoWindowHtml(latlon, myHtml);
		
	}
