	var map;
    var markerGroups = { "1": [], "2": [], "3": [], "0": []};
	var layersTrasy = "http://www.gridw.pl/wkpn/kml/trasy.kml";
	var layersSzlaki = "http://www.gridw.pl/wkpn/kml/szlaki.kml";
	var layersSzlakicache = [];
    var gmarkers = [];


    function load() {
      if (GBrowserIsCompatible()) {
	    map = new GMap2(document.getElementById("map"));
//blokada zooma
		map.setMinimumResolution
		var mt = map.getMapTypes();
		for (var i=0; i<mt.length; i++) {
			mt[i].getMinimumResolution = function() {return 10; }
			mt[i].getMaximumResolution = function() {return 18; }
		}
		map.addControl(new GLargeMapControl());
 		map.addControl(new GScaleControl());
        map.enableDoubleClickZoom();
		MapTypes = map.getMapTypes();   
		MapTypes[0].getName= function() { return "Mapa";}   
        MapTypes[1].getName = function() { return "Satelita";}   
        MapTypes[2].getName = function() { return "Obie";}   
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());  
		map.enableContinuousZoom();
		map.setCenter(new GLatLng(52.31933673646265, 20.6902681165223), 11, G_SATELLITE_MAP);

	GEvent.addListener( map.getInfoWindow(), 'closeclick',
    function () { 
		runClickEvent = true 
			} 
		)

	function mouseWheelZooming( event ){
		if( navigator.userAgent.match( "MSIE"   ) ){ var delta = event.wheelDelta;   event.returnValue = false; }
		if( navigator.userAgent.match( "Gecko"  ) ){ var delta = event.detail * -1;  event.preventDefault();    }
		if( navigator.userAgent.match( "Safari" ) ){ var delta = event.wheelDelta;   event.returnValue = false; }
		if(delta > 0){ map.zoomIn();
		} else { map.zoomOut(); }
	}
	if( navigator.userAgent.match( "MSIE"   ) ){
		document.getElementById( "map" ).attachEvent( "onmousewheel" , mouseWheelZooming ); }
	if( navigator.userAgent.match( "Gecko"  ) ){ 
		document.getElementById( "map" ).addEventListener( "DOMMouseScroll" , mouseWheelZooming , false ); }
	if( navigator.userAgent.match( "Safari" ) ){ 
		document.getElementById( "map" ).onmousewheel = mouseWheelZooming; }



//blokada przesuwu
		var allowedBounds = new GLatLngBounds(new GLatLng(52.1175,20.2468217622204), new GLatLng(52.4096749796823,21.32694444));
		function checkBounds() {
			if (allowedBounds.contains(map.getCenter())) {
			  return;
			}
	        var C = map.getCenter();
	        var X = C.lng();
	        var Y = C.lat();
	        var AmaxX = allowedBounds.getNorthEast().lng();
	        var AmaxY = allowedBounds.getNorthEast().lat();
	        var AminX = allowedBounds.getSouthWest().lng();
	        var AminY = allowedBounds.getSouthWest().lat();
	        if (X < AminX) {X = AminX;}
	        if (X > AmaxX) {X = AmaxX;}
	        if (Y < AminY) {Y = AminY;}
	        if (Y > AmaxY) {Y = AmaxY;}
	        map.setCenter(new GLatLng(Y,X));
	      }
		GEvent.addListener(map, "move", function() { 
	//		checkBounds();
		});
	
		
		


//blok z klikami warstw
		function pokazWarstwy() {}
		pokazWarstwy.prototype = new GControl();
		pokazWarstwy.prototype.initialize = function(map) {
			var container = document.createElement("div");
			container.style.backgroundColor = "white"; container.style.border = "1px solid black"; 		container.style.width = "65"; container.style.height = "48px";
			var table = document.createElement( "table" );
			var tbody = document.createElement("tbody"); 
			var tr = document.createElement("tr");
			var td = document.createElement( "td" );
			var input1 = document.createElement( "input" ); input1.type="checkbox"; input1.id ="checkszlaki"; 
			// input1.checked = true; 
			// input1.defaultChecked = input1.checked = true; 
			GEvent.addDomListener(input1, "click", function() {
			if(input1.checked!=true) {
				hideSzlaki();
			} else {
				showSzlaki();
			}});
			td.appendChild(input1);
			tr.appendChild(td);
			var text = document.createTextNode("Szlaki");
			var td2 = document.createElement( "td" ); td2.style.color = "green";
			td2.appendChild(text);
			tr.appendChild(td2);
			tbody.appendChild(tr);
			var tr = document.createElement("tr");
			var td = document.createElement( "td" );
			input2 = document.createElement( "input" ); input2.type="checkbox"; input2.id ="checkszlaki"; input2.checked = true; input2.defaultChecked = input2.checked = true; 
			GEvent.addDomListener(input2, "click", function() {
				toggleGroup('0')
			});
			td.appendChild(input2);
			tr.appendChild(td);
			var text = document.createTextNode("Punkty");
			var td2 = document.createElement( "td" ); td2.style.color = "green";
			td2.appendChild(text);
			tr.appendChild(td2);
			tbody.appendChild(tr);
			table.appendChild(tbody);
			container.appendChild(table);
			map.getContainer().appendChild(container);
			return container;
		}
		pokazWarstwy.prototype.getDefaultPosition = function() {
			return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(90, 7));
		}
		map.addControl(new pokazWarstwy());

// ladowanie punktow	
		var pointsurl = 'xmlpoints.php?dummy='+ new Date().getTime();

        GDownloadUrl(pointsurl, function(data) {
			var xml = GXml.parse(data);
			markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) {
				var name = markers[i].getAttribute("name");
				var type = markers[i].getAttribute("type");
				var text = markers[i].getAttribute("text");
				var group = markers[i].getAttribute("group");
				var pix = markers[i].getAttribute("pix");
				var number = markers[i].getAttribute("number");
				var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
				var marker = createMarker(point, name, type, number, text, pix, group);
				map.addOverlay(marker);
          }
        });

		addTrasy();
	map.hideControls();   
     GEvent.addListener(map, "mouseover", function(){map.showControls();});   
     GEvent.addListener(map, "mouseout", function(){map.hideControls();});   
      }
    }

function hideSzlaki() {
		map.removeOverlay(layersSzlakicache[0]);
}

function showSzlaki() {
		var geoXml = new GGeoXml(layersSzlaki);
		layersSzlakicache[0] = geoXml;
		map.addOverlay(geoXml);
	}



function addSzlaki(i) {
//		var geoXml = new GGeoXml(layersSzlaki[i], function() {
//			if (geoXml.loadedCorrectly()) {
				//	document.getElementById("status").innerHTML = "done";
//			}
//		});
//		document.getElementById("status").innerHTML = "Loading...";
//		layersSzlakicache[i] = geoXml;
//		map.addOverlay(geoXml);
//		i++; 
//		if(i < layersSzlaki.length) { 
//			 addSzlaki(i);
//		} else {
				//		om.Clear();
//			document.getElementById("status").innerHTML = "done";
//		}
		map.addOverlay(layersSzlaki);
}


function addTrasy() {
		var geoXml = new GGeoXml(layersTrasy, function() {
			if (geoXml.loadedCorrectly()) {
 initScroller()
			}
		});
		map.addOverlay(geoXml);
}

	function createIcon(id) {
		var icon = new GIcon();
		icon.image = "images/ikony/trasa_pkt_"+id+".gif";
	    icon.shadow = "images/ikony/trasa_cien.png";
		icon.shadowSize = new GSize(24, 18);
		icon.iconSize = new GSize(19, 18);
		icon.iconAnchor = new GPoint(9, 18);	
      icon.infoWindowAnchor = new GPoint(5, 1);
		return icon;
	}
	function createIconUser(id) {
		var icon = new GIcon();
		icon.image = "images/ikony/punkt_"+id+".gif";
	    icon.shadow = "images/ikony/punkt_cien.png";
		icon.shadowSize = new GSize(21, 14);
		icon.iconSize = new GSize(15, 14);
		icon.iconAnchor = new GPoint(8, 14);
      icon.infoWindowAnchor = new GPoint(5, 1);		
		return icon;
	}


    function createMarker(point, name, type, number, text, pix, group) {
		if(type!=0) { 
			var marker = new GMarker(point, createIcon(number)); 
			GEvent.addListener(marker, 'click', function() {
//				marker.openInfoWindowHtml(html);
				hideclik();
				checkInText(number,type);
		    });
			GEvent.addListener(marker, 'mouseover', function() {
				Tip(''+text+'')
			});
//			GEvent.addListener(marker, 'mouseover', function() {
//				marker.openInfoWindowHtml(html);
//				hideclik();
//				alert(marker.getAttribute("lat"));
//				alert(marker.getAttribute("lng"));    
//				marker.openInfoWindowHtml();
//				checkInText(number,type);
//		    });
			

		} else { 
			var marker = new GMarker(point, createIconUser(group));	
			var html = '<table width="200" cellspacing="0" border="0"><td valign="top" width="100">'+text+'</td><td><img src="inc/scaleimg.php?w=100&h=100&f=../pix/'+pix+'" height="100" width="100"></td></table>';	
			GEvent.addListener(marker, 'click', function() {
				marker.openInfoWindowHtml(html);
		    });
				GEvent.addListener(marker, 'mouseover', function() {
					if (group==1) {
						Tip('gatunek obcy');
					} else if (group==2) {
						Tip('obiekt turystyczny');	
					} else if (group==3) {
						Tip('presja turystyczna');
					} else if (group==4) {
						Tip('zwierzę');
					} else if (group==20) {
						Tip('namiot naukowy');
					}
				});
			gmarkers[name] = marker;
		}
			markerGroups[type].push(marker);		      
     return marker;
    }

    function toggleGroup(type) {
      for (var i = 0; i < markerGroups[type].length; i++) {
        var marker = markerGroups[type][i];
        if (marker.isHidden()) {
          marker.show();
        } else {
		hideclik ();
          marker.hide();
        }
      } 
    }
		

	function checkInText(number,type) {
				var punkt = document.getElementById("punkt"+type+"_"+number);
				if (punkt == null) {
					txt('inc/s_txt.php?id='+type+'',number,type);
				} else {
					goInText(number,type);
				}
		}

	function goInText(number,type) {
				var punkt = document.getElementById("punkt"+type+"_"+number);
				if (punkt != null) {
					var ver = navigator.appVersion;
					if (ver.indexOf("MSIE") != -1) {
						var pozblok = eval("document.getElementById('punkt"+type+"_"+number+"').offsetParent.offsetParent.offsetTop");

					} else {
						var pozblok = eval("document.getElementById('punkt"+type+"_"+number+"').offsetParent.offsetTop");		
					}			
					var poztxt = eval("document.getElementById('punkt"+type+"_"+number+"').offsetTop");
					var jumpto = pozblok + poztxt;
					document.getElementById("mycustomscroll").contentScroll(false,jumpto,true);
				}
		}

function centerMap(name) {
	for (var i = 0; i < markers.length; i++) {
		if (markers[i].getAttribute("name") == name) {
			var lat = markers[i].getAttribute("lat");
			var lng = markers[i].getAttribute("lng");
			hideclik();
			map.panTo(new GLatLng(lat,lng));
		}
	}
}

function centerMap2(latlng) {
	hideclik();
	eval("map.setCenter(new GLatLng("+latlng+"), 12, G_SATELLITE_MAP)");	
}


function myclick(i) {
	if(input2.checked!=true) {
		GEvent.trigger(input2, "click");
		input2.checked = true; input2.defaultChecked = input2.checked = true;
	}
	var marker = markerGroups['0'][i];
	GEvent.trigger(marker, "click");
	map.hideControls();  
}

function hideclik () { 
	GEvent.trigger(map.getInfoWindow(), 'closeclick');
} 

