		var map;
		var geocoder;
		var progressBar;
		
		var street;
		var town;
		var pokus;
		var count;
		var farmID;
		var currentLocation;
		var currentDistrict;
		var districtID;
		var onAddressChange;
		var marker;

	    var markerImage = [
	          			    "http://www.predajzdvora.sk/fileadmin/templates/img/mapaEko.gif",
	          			    "http://www.predajzdvora.sk/fileadmin/templates/img/mapaDom.gif",
	          			    "http://www.predajzdvora.sk/fileadmin/templates/img/mapaKonv.gif"];
	   	var markerImageSizeX = [30,31,32];
	   	var markerImageSizeY = [40,37,38];
	       var imageMap = [[26,2,27,3,27,4,27,5,28,6,28,7,28,8,28,9,28,10,28,11,28,12,28,13,28,14,28,15,28,16,28,17,28,18,28,19,28,20,28,21,28,22,27,23,27,24,27,25,27,26,23,27,21,28,20,29,19,30,18,31,18,32,17,33,16,34,16,35,16,36,15,37,15,38,14,39,12,39,12,38,12,37,12,36,12,35,12,34,12,33,12,32,12,31,12,30,12,29,11,28,10,27,9,26,8,25,7,24,7,23,7,22,7,21,7,20,7,19,7,18,7,17,7,16,7,15,7,14,7,13,7,12,7,11,7,10,7,9,7,8,7,7,7,6,7,5,8,4,9,3,24,2],
	          					[27,0,27,1,28,2,29,3,29,4,29,5,29,6,29,7,29,8,29,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,29,18,29,19,29,20,28,21,28,22,27,23,22,24,21,25,20,26,19,27,19,28,18,29,18,30,18,31,17,32,17,33,16,34,15,35,14,36,14,36,13,35,13,34,13,33,13,32,13,31,13,30,13,29,13,28,13,27,13,26,13,25,12,24,11,23,9,22,8,21,8,20,8,19,8,18,8,17,8,16,8,15,8,14,8,13,8,12,8,11,8,10,8,9,8,8,8,7,8,6,8,5,8,4,8,3,8,2,9,1,10,0],
	          					[28,1,29,2,29,3,30,4,30,5,30,6,30,7,30,8,30,9,30,10,30,11,30,12,30,13,30,14,30,15,30,16,30,17,30,18,30,19,30,20,30,21,29,22,29,23,28,24,28,25,22,26,21,27,20,28,20,29,19,30,19,31,18,32,18,33,17,34,17,35,17,36,16,37,14,37,14,36,14,35,14,34,14,33,14,32,15,31,15,30,15,29,15,28,14,27,14,26,13,25,12,24,10,23,9,22,9,21,9,20,9,19,9,18,9,17,9,16,9,15,9,14,9,13,9,12,9,11,9,10,9,9,9,8,9,7,9,6,9,5,9,4,9,3,10,2,11,1]
	          			];

		

    function load() {
      if (GBrowserIsCompatible() && document.getElementById('map')) {
    	  map = new GMap2(document.getElementById("map"),G_HYBRID_MAP);
    	  map.setMapType(G_HYBRID_MAP);
    	  map.setCenter(new GLatLng(48.987427, 19.731445), 7);
    	  geocoder = new GClientGeocoder();
    	  map.addControl(new GLargeMapControl());
    	  map.addControl(new GMapTypeControl());
				
    	  progressbarOptions = {width: 150};
    	  progressBar = new ProgressbarControl(map, progressbarOptions);
    	  if(typeof window.inlineLoad == 'function') {
    		  inlineLoad();
    	  }else {
    		  
    		  
    	  }
    	  
//				addDistricts();
      }
    }
		
		function addDistricts(pageId) {
			if (byDistricts) progressBar.start(byDistricts.length);

			for (x in byDistricts) {
				progressBar.updateLoader(1);
				coordinates = byDistricts[x].gmap.split(",");
				marker = new GMarker(new GLatLng(coordinates[0],coordinates[1]));
				map.addOverlay(marker);
				farmsHTML = "";
				/*for (y in byDistricts[x]) {
					message(y);
					if ( !isNaN(y * 1 )) {
						farmsHTML += '<a href="index.php?id=20&amp;tx_rtpredajzdce_pi3[showUid]='+
							byDistricts[x][y]['uid']+'">'+byDistricts[x][y]['name']+"</a><br />";
//						message(currentDistrict[y]['name']+ " "+x);
					}
				}*/
			
			marker.bindInfoWindowHtml(byDistricts[x]['content']);
/*				'<b><a href="index.php?id='+pageId+'&district='+x+'">'+byDistricts[x]['dname']+'</a></b>'
				+ '<br>' + farmsHTML);*/	
				
			}
			/*MarkerManager*/
			mgrOptions = {borderPadding:25, maxZoom:17,trackMarkers:false};
			mgr = new MarkerManager(map,mgrOptions);
			var batch = [];
			for (i in locations) {
				var farmIcon = new GIcon(G_DEFAULT_ICON);
				farmIcon.image = markerImage[locations[i]['type']];
				farmIcon.iconSize = new GSize(markerImageSizeX[locations[i]['type']],markerImageSizeY[locations[i]['type']]);
				farmIcon.imageMap = imageMap[locations[i]['type']];
//				farmIcon.iconAnchor = new GPoint(50,markerImageSizeY[locations[i]['type']]);

				markerOptions = { icon:farmIcon };
				var point = new GLatLng(locations[i]['X'],locations[i]['Y']);
				var marker = new GMarker(point,markerOptions);
				marker.bindInfoWindowHtml(locations[i]['content']);
				batch.push(marker);
			}
			mgr.addMarkers(batch,9);
			mgr.refresh();
			progressBar.remove();
		}
		function aimOnDistrict(districtId) {
		    coordinates = byDistricts[districtId].gmap.split(",");
		    point = new GLatLng(coordinates[0],coordinates[1]);
		    map.setCenter(point, 11);
		    //document.getElementById('selectDistrct').value =0; 
		}
function addAddressToMap(response) {
	progressBar.updateLoader(1);

	message(address);
	//message(currentLocation['name']);
	if (!response || response.Status.code != 200) {
		switch (pokus) {
			case 0:
				tmptown = town;
				for (i=0;i<10;i++) {
					tmptown = tmptown.replace(i," ");
					tmptown = tmptown.replace(i," ");
				}
				query = tmptown;
				address  = query;
				geocoder.getLocations(address, addAddressToMap);
				pokus++;
				break;
			case 1:
				query = town+", Slovakia";
				address = query;
				geocoder.getLocations(address, addAddressToMap);
				pokus++;
				break;
			}
	} else {
			place = response.Placemark[0];
			point = new GLatLng(place.Point.coordinates[1],
													place.Point.coordinates[0]);
			markerParams = "";
			if (onAddressChange) {
				markerParams = {draggable: true};
				if (marker) marker.remove();
			}
			marker = new GMarker(point, markerParams);
			map.addOverlay(marker);
			if (onAddressChange) {
				marker.enableDragging();
				document.getElementById("googlemapcoords").value=marker.getPoint().toUrlValue();
				GEvent.addListener(marker, "drag", function(){
					document.getElementById("googlemapcoords").value=marker.getPoint().toUrlValue();
				});
				map.setCenter(marker.getPoint(), 14);

			}
			//marker.enableDragging();
			if (!onAddressChange) {
				marker.openInfoWindowHtml(
					'<b>'+currentLocation['name']+'</b>'
					+ '<br>' + 
					'<b>'+currentLocation['street']+'</b>'
					);
/*				+ '<br>'	+ 
					'<b>'+currentLocation['id']+' '+ farmID +'</b>'
					+ '<br>' + 
					place.address);*/
				if (locations) {
					farmID++;
					if (farmID < locations.length) 
						findLocations(farmID);
				}
			}
			
		}
}

    function findLocation(pstreet,ptown) {
			street = pstreet;
			town = ptown;
			pokus = 0;
			query = street+" "+town;
			address = query;
      geocoder.getLocations(query, addAddressToMap);
    }
    function flag2coords(coordX,coordY,content) {
	    var map = new GMap2(document.getElementById("map"),G_HYBRID_MAP);
	    map.setMapType(G_HYBRID_MAP);
	    map.setCenter(new GLatLng(coordX,coordY), 13);
	    map.addOverlay(new GMarker(map.getCenter()));
		marker = new GMarker(map.getCenter());
		map.addOverlay(marker);
		marker.bindInfoWindowHtml(content);
	    map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());	    
	}

    
    function addFarms(district,pageId) {
	    var map = new GMap2(document.getElementById("map"),G_HYBRID_MAP);
	    map.setMapType(G_HYBRID_MAP);
	    coordinates = byDistricts[district].gmap.split(",");
	    point = new GLatLng(coordinates[0],coordinates[1]);
	    map.setCenter(point, 11);
//	    map.addOverlay(new GMarker(point));
	    map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
	    for (i in locations) {
				var farmIcon = new GIcon(G_DEFAULT_ICON);
				farmIcon.image = markerImage[locations[i]['type']];
				farmIcon.iconSize = new GSize(markerImageSizeX[locations[i]['type']],markerImageSizeY[locations[i]['type']]);
				farmIcon.imageMap = imageMap[locations[i]['type']];
/*				myIcon.shadow = 'http://www.predajzdvora.sk/fileadmin/templates/img/mapaShadow.png';
				myIcon.transparent = 'markers/transparent.png';
				myIcon.shadowSize = new GSize(50,37);
				myIcon.printShadow = 'markers/printShadow.gif';*/
//http://www.powerhut.co.uk/googlemaps/custom_markers.php
				//farmIcon.iconAnchor = new GPoint(50,markerImageSizeY[locations[i]['type']]);

    		content = locations[i]['content'];
    		marker = new GMarker(new GLatLng(locations[i]['X'],locations[i]['Y']), { icon:farmIcon });
    		map.addOverlay(marker);
    		marker.bindInfoWindowHtml(content);
    	}
    }
		
		function findLocations(pfarmID) {
			message("---------------------------");
			farmID = pfarmID;
			currentLocation = locations[farmID];
			findLocation(locations[farmID]['street'],locations[farmID]['town']);
		}
		
		function addDistrictToMap(response) {
			progressBar.updateLoader(1);

			message("---------------------------");
//			message(currentDistrict['did']);
//			message(currentDistrict['dname']);
			
			if (!response || response.Status.code != 200) {
				message('nenaslo okres');
			} else {
				place = response.Placemark[0];
				point = new GLatLng(place.Point.coordinates[1],
														place.Point.coordinates[0]);
				marker = new GMarker(point);
				map.addOverlay(marker);
/*				farmsHTML = "";
				for (x in currentDistrict) {
					if ( !isNaN(x * 1 )) {
						farmsHTML += currentDistrict[x]['name']+"<br />";
						message(currentDistrict[x]['name']+ " "+x);
					}
				}
	*/		
			marker.bindInfoWindowHtml(currentDistrict['content']);
/*				'<b>'+currentDistrict['dname']+'</b>'
				+ '<br>' + 
				farmsHTML
				+ '<br>' + 
				place.address);*/

		}
		districtID++;
		if (districtID < byDistricts.length) 
			findDistricts(districtID);
		else
			 progressBar.remove();

	}
		
		function findDistricts (pdistrictID) {
			districtID = pdistrictID;
			currentDistrict = byDistricts[districtID];
			geocoder.getLocations(currentDistrict['dname']+', Slovakia', addDistrictToMap);
		}
		
		function message(mess) {
			if (document.getElementById('messages') && 0)
				document.getElementById('messages').innerHTML += "<br />"+mess;
		}
		
		function  updateMapOnAddressChange(pstreet,ptown) {
			onAddressChange = 1;
			findLocation(pstreet,ptown);

//alert(2);			
		}
//http://www.visual-case.it/cgi-bin/vc/GMapsIcons.pl
