    //<![CDATA[
    var map;    
    var currentMarker;
    var html;
    var type;
    var kraji = new Array('koper', 'izola', 'piran', 'sezana', 'novagorica');
    var groupState = { futr: 1, fax: 1, info: 1, uporabno: 1, obstudijsko: 1, prijazno: 1, neznano: 1 };
    var groups = { futr: 'Prehrana', fax: 'Izobraževalno', info: 'Uporabne', prijazno: 'Študentu prijazno', obstudijsko: 'Obštudijsko', neznano: 'Faktor X' };
    var markersArr = {};
    
    // markers
    icons = {
    	futr: new GIcon(),
    	fax: new GIcon(),
    	info: new GIcon(),
    	prijazno: new GIcon(),
    	neznano: new GIcon(),
    	obstudijsko: new GIcon()
    }
    
		icons.futr.iconSize = new GSize(38, 44);
		icons.futr.iconAnchor = new GPoint(7, 42);
		icons.futr.image = "http://www.petarde.net/pics/markerfutr.png";
    
		icons.fax.iconSize = new GSize(39, 46);
		icons.fax.iconAnchor = new GPoint(27, 45);
		icons.fax.image = "http://www.petarde.net/pics/markerfax.png";

		icons.info.iconSize = new GSize(39, 48);
		icons.info.iconAnchor = new GPoint(17, 48);
		icons.info.image = "http://www.petarde.net/pics/markerinfo.png";

		icons.prijazno.iconSize = new GSize(30, 48);
		icons.prijazno.iconAnchor = new GPoint(17, 47);
		icons.prijazno.image = "http://www.petarde.net/pics/markerprijazno.png";

		icons.neznano.iconSize = new GSize(34, 48);
		icons.neznano.iconAnchor = new GPoint(20, 48);
		icons.neznano.image = "http://www.petarde.net/pics/markerneznano.png";

		icons.obstudijsko.iconSize = new GSize(31, 48);
		icons.obstudijsko.iconAnchor = new GPoint(26, 47);
		icons.obstudijsko.image = "http://www.petarde.net/pics/markerobstudijsko.png";

    // main event handler
    window.addEvent('domready', function() {
      if (GBrowserIsCompatible()) {
				// icon
				icon = new GIcon();
				icon.shadow = "http://www.petarde.net/pics/markersenca.png";
				icon.shadowSize = new GSize(75, 55);
				
				icon.iconSize = new GSize(75, 55);
				icon.iconAnchor = new GPoint(29, 52);
				icon.image = "http://www.petarde.net/pics/markerfutr.png";

				// map
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(centerLat, centerLng), zoom);
				// map.addControl(new GSmallMapControl());
				// map.addControl(new GMapTypeControl());
				map.setMapType(G_HYBRID_MAP);
				// map.enableScrollWheelZoom();

				// load markers
				var myReq = new Request({
					url: '/getMarkers',
					method: 'get',
					onComplete: function(data) {
						markers = JSON.decode(data);
						
						for (var x in markers) {
					  	if (markers[x].id) {
					    	var marker = new GMarker(new GLatLng(parseFloat(markers[x].lat), parseFloat(markers[x].lng)), {icon:icons[markers[x].type], draggable:false, bouncy:true});
					    	marker.id = markers[x].id;
					    	marker.title = markers[x].title;
					    	marker.text = markers[x].text;
					    	marker.type = markers[x].type;
					    	marker.link = markers[x].link;

					    	html = marker.text;
								
								GEvent.addListener(marker, "click", function() {
								  if (typeof MyOverlay !== 'undefined') {
								    if (currentMarker) {
								      closeOverlay();
								    }
								    if (!this.overlay) {
								      // just recording this for use in the closeOverlay function
								      this.overlay = new MyOverlay(this, this.title, this.text, this.link);
								    }
								    currentMarker = this;
								    map.panTo(new GLatLng(this.getPoint().lat(), this.getPoint().lng()));
								    map.addOverlay(this.overlay);
								    // this.hide();
								  } else {
								    marker.openInfoWindowHtml(html);
								  }
								});
								
								markersArr[marker.id] = marker;
					    	map.addOverlay(marker);
					    }
					  }
					}
				}).send();
      }
    });

    function gotoMarker(id) {
    	GEvent.trigger(markersArr[id], 'click');
    }
    
    function showHideGroup(group) {
    	if (groupState[group]) {
    		$('icon'+group).src = '/pics/marker'+group+'_off.png';
    		groupState[group] = 0;
	    	
	    	for (var x in markersArr) { if (markersArr[x].type == group) markersArr[x].hide(); }
    	}
    	else {
    		$('icon'+group).src = '/pics/marker'+group+'.png';
    		groupState[group] = 1;

	    	for (var x in markersArr) { if (markersArr[x].type == group) markersArr[x].show(); }
    	}
    	
    	reloadSelect();
    }
    
    function reloadSelect() {
    	var myReq = new Request({
    		url: '/getMarkerGroups',
    		data: { groups: groupState, mesto: mesto },
    		onComplete: function(data) {
    			data = JSON.decode(data);
    			var outHTML = '';
    			
    			if (data) {
	    			outHTML += '<select id="points" onchange="if (this.value) gotoMarker(this.value);"><option value="0">Izberi točko s seznama ...</option>';
	    			
	    			for (var x in data) {
	    				if (groups[x]) {
		    				outHTML += '<optgroup label="'+groups[x]+'">';
		    				
		    				for (var y in data[x]) {
		    					if (data[x][y].title) outHTML += '<option value="'+data[x][y].id+'">'+data[x][y].title+'</option>';
		    				}
		    				
		    				outHTML += '</optgroup>';
		    			}
	    			}
	    			
	    			outHTML += '</select>';
	    		}
	    		else outHTML = '';
	    			
    			$('pointsCont').set('html', outHTML);
    		}
    	}).send();
    }
    
    function mapzoom(way) {
    	if (way == "out") map.zoomOut();
    	else map.zoomIn();
    }
    
    function maptype(tip) {
    	if (tip == "sat") map.setMapType(G_HYBRID_MAP);
    	else map.setMapType(G_NORMAL_MAP);
    }
        
		var MyOverlay = function(marker, title, html, link) {
		  this.marker = marker;
		  this.html = html;
		  this.title = title;
		  this.link = link;
		}
		MyOverlay.prototype = new GOverlay();
		MyOverlay.prototype.initialize = function(map) {
		  for (var x in markersArr) {
		  	if (markersArr[x].id != this.marker.id) markersArr[x].hide();
		  } 
		  
		  var div = document.createElement("div");
		  var out = '';
		  if (this.marker.type == "neznano") {
			  div.className = 'picBox';
			  out += '<div class="title">'+this.title+'</div>';
			  out += this.html;
		  }
		  else {
			  div.className = 'mapInfoBox';
			  
			  out += '<div class="mapInfoBoxC"><div class="title">'+this.title+'</div><div class="text">'+this.html;
			  if (this.link) out += '<br /><br /><a href="'+this.link+'">'+this.link+'</a>';
			  out += '</div></div>';
			}
		  
		  div.innerHTML = out;
			
		  // offsets based on popup div dimensions
		  offsetX = 220;
		  offsetY = 240;
		
		  div.style.top = (map.fromLatLngToDivPixel(this.marker.getPoint()).y - offsetY) + 'px';
		  div.style.left = (map.fromLatLngToDivPixel(this.marker.getPoint()).x - offsetX) + 'px';
		
		  div.onclick = closeOverlay;
		
		  this._map = map;
		  this._div = div;
		
		  map.getPane(G_MAP_FLOAT_PANE).appendChild(div);  
		}
		MyOverlay.prototype.remove = function(){
		  this._div.parentNode.removeChild(this._div);
		}
		MyOverlay.prototype.redraw = function() {
		  //haven't had need for this yet
		}
		
		function closeOverlay() {
		  for (var x in markersArr) {
		  	if (groupState[markersArr[x].type]) markersArr[x].show();
		  }

		  if (currentMarker) {
		    map.removeOverlay(currentMarker.overlay);
		    currentMarker.show();
		  }
		}
    //]]>