var map_google;
var mgr;
var icons = {};
var allmarkers = [];

function getIcon(images) {
	icon = new GIcon();
	icon.image = "http://www.naturparke.at/images/google/" + images + ".png";
	icon.shadow = "http://www.naturparke.at/images/google/" + images + "_s.png";
   return icon;
}

	var markers;
function setupMarkers() {
  var mgr = new MarkerManager(map_google);
  for (var i=0; i<myMarkers.length; i++) {
  	var layer = myMarkers[i];
    markers = [];
		if ( layer["places" ] )
			for (var j=0; j<layer["places"].length; j++) {
				var place = layer["places"][j];
			 // var icon = getIcon(place["icon"]);
				var posn = new GLatLng(place["posn"][0], place["posn"][1]);
				//var icon = getIcon(layer["icon"]);
			
				var marker = createMarker(posn, place["html"],layer["icon"] ); 
				markers.push(marker);
			
			}
		if ( layer["zoom" ] )
	    mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
  }
  mgr.refresh();
}

var baseIcon;
var globalMarker;

function createMarker(posn, html, Micon) {
	baseIcon = new GIcon();
	baseIcon.shadow = "";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(1, 1);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);
 	var letteredIcon = new GIcon(baseIcon);
	letteredIcon.image = "http://www.naturparke.at/images/google/" +Micon + ".png";
  // Set up our GMarkerOptions object
  markerOptions = { icon:letteredIcon };
  var marker = new GMarker(posn, markerOptions);
	map.addOverlay(marker);

	if ( centerLocation != false ) { 
		marker.openInfoWindowHtml('<div class="googleInfo" style="">'+html+'<\/div>'); 
		globalMarker = marker; 
	  GEvent.addListener(marker, 'infowindowclose', function() { this.openInfoWindowHtml('<div class="googleInfo" style="">'+html+'<\/div>'); globalMarker = this; } ); 
	}
	else {
	  GEvent.addListener(marker, 'mouseover', function() { this.openInfoWindowHtml('<div class="googleInfo" style="">'+html+'<\/div>'); globalMarker = this; } ); 
	}
  return marker;
}

var map;
var centerLocation = false;

function initialize() {
 	map = new GMap2(document.getElementById("map")/*,{ size: new GSize(700,480) }*/ );
	map.removeMapType(G_HYBRID_MAP);
	if ( centerLocation == false )	map.setCenter(new GLatLng(47.60616304386874, 13.787841796875), 7);
	else map.setCenter(new GLatLng(centerLocation[0], centerLocation[1]), 10);
	map_google = map;
  
 	var mapControl = new GScaleControl();
	map.addControl(mapControl);
	//map.addControl(new GOverviewMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GLargeMapControl());
 
 	setupMarkers();
}


function route_to() { route('to'); }

function route(direction,ziel,lang) {
	var form,saddr,daddr,desc;
	if ( lang == 'de' ) {
		switch (direction) {
			case 'to':
				desc='Startadresse';
				saddr='<input type="text" name="saddr" id="saddr" value="" class="addr" />';
				//'+points[idx].y+','+ points[idx].x+'
				daddr='<input type="hidden" name="daddr" value="'+ziel+'" />';
			break;
		}
		form = '<div class="googleInfo" style="">';
		form+='<h2>'+desc+'</h2><p>Geben Sie die Adresse (Straße Nummer, PLZ Ort)<br /> von der aus Sie starten hier ein:<br />';
		form+='<form action="http://maps.google.com/maps" method="get" target="_blank" style="display:inline;">';
		form+=saddr;
		form+=daddr;
		form+='<input value="GO" type="submit" />';
		form+='</form><br /><br /></div>';
	} else {
		switch (direction) {
			case 'to':
				desc='starting from';
				saddr='<input type="text" name="saddr" id="saddr" value="" class="addr" />';
				//'+points[idx].y+','+ points[idx].x+'
				daddr='<input type="hidden" name="daddr" value="'+ziel+'" />';
			break;
		}
		form = '<div class="googleInfo" style="">';
		form+='<h2>'+desc+'</h2><p>Please insert your address (street number, code place)<br /> where you start from:<br />';
		form+='<form action="http://maps.google.com/maps" method="get" target="_blank" style="display:inline;">';
		form+=saddr;
		form+=daddr;
		form+='<input value="GO" type="submit" />';
		form+='</form><br /><br /></div>';
	}
	globalMarker.openInfoWindowHtml(fkt.gE('maptable').innerHTML + form);
	//updateInfoWindow(fkt.gE('maptable').innerHTML + form);
	setTimeout( 'if (  fkt.gE( "saddr" ) ) fkt.gE( "saddr" ).focus();', 200 ); 
}