	var map;
	var markers = new Array();
	var descriptions = new Array();
	var bounds = new GLatLngBounds();
	
	
	function createIcon(label){
		var iconOptions = {};
		iconOptions.primaryColor = "#FF6666";
		iconOptions.strokeColor = "#000000";
		iconOptions.label = label;
		iconOptions.labelColor = "#000000";
		iconOptions.addStar = false;
		iconOptions.starPrimaryColor = "#FFFF00";
		iconOptions.starStrokeColor = "#0000FF";
		iconOptions.labelSize = 6;
		return MapIconMaker.createLabeledMarkerIcon(iconOptions);
	}

	function getElementsByStyleClass (className) {
		  var all = document.all ? document.all :
			document.getElementsByTagName('*');
		  var elements = new Array();
		  for (var e = 0; e < all.length; e++)
			if (all[e].className == className)
			  elements[elements.length] = all[e];
		  return elements;
	}

	function initialize() {
	  if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		//map.setCenter(new GLatLng(46.1694, 8.7955), 16);
		map.setUIToDefault();
		map.removeMapType(G_SATELLITE_MAP);
		map.removeMapType(G_PHYSICAL_MAP);
		getPointList();
		//map.setCenter(map.getBoundsZoomLevel(bounds), 16);
		
		map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	  }
	}

	function addMarker(index, name, lat, lng, description, link, linkName){
		var point = new GLatLng(lat,lng);
		bounds.extend(point);
		
		var icon = createIcon(index);
		var marker = new GMarker(point, {title: name, icon: icon});

		var markerInfo = '<div><b>'+index+' '+ name +'<br/><br/></b>' + description + '<br/><br/>';
		if(link != '') markerInfo += '<a class="lnk" href="' + link + '" '+(link.indexOf('http://')==0?'target="_new"':'')+'>'+(linkName==''?'Link':linkName)+'</a>';
		markerInfo += '</div>';
		
		GEvent.addListener(marker, 'click', function() {  
			// When clicked, open an Info Window  
			marker.openInfoWindowHtml(markerInfo);  
		});  
		
		map.addOverlay(marker);

		markers[index] = marker;
		descriptions[index] = markerInfo;
	}

	function getPointList(){
		var places = getElementsByStyleClass("map_info");
		for (var i = 0; i < places.length ;i++) {
			var info = places[i].firstChild.nodeValue.split("|");
			addMarker(info[0], info[1], parseFloat(info[2]), parseFloat(info[3]), info[4], info[5], info[6]);	
		}
	}

	function centerMap(id){
		
		map.panTo(markers[id].getLatLng());
		//map.setCenter(markers[--id].getLatLng());
		markers[id].openInfoWindowHtml(descriptions[id]);
		return false;
	}

