var formHTML;

$(document).ready(function() { 
		formHTML = $("#saveForm").html();
		$("#saveForm").html("");
	}); 

var map;
var marker;
var geocoder;
var actmarker;

function initialize() {
  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("map_canvas"));
	var center = new GLatLng(47.50978034953473, 13.546142578125); //Österreich
	map.setCenter(center, 7);
			
	geocoder = new GClientGeocoder();
	
	var mapControl = new GLargeMapControl();
	map.addControl(mapControl);
	
	GDownloadUrl("map.php?mode=getmarkers", function(data, responseCode) {
	  var xml = GXml.parse(data);
	  var markers = xml.documentElement.getElementsByTagName("marker");
	  
	  var baseIcon = new GIcon(G_DEFAULT_ICON, "map.png");
	  baseIcon.iconSize = new GSize(25, 25);
	  baseIcon.shadow = "map-s.png";
	  baseIcon.shadowSize = new GSize(25, 25);
	  
	  markerOptions = {icon:baseIcon}
	  
	  for (var i = 0; i < markers.length; i++) {
		var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
								parseFloat(markers[i].getAttribute("lng")));
		var tempMarker = new GMarker(point, markerOptions);
		tempMarker.id = markers[i].getAttribute("id");
		GEvent.addListener(tempMarker, "click", function(latlng) {
		  actmarker = this;
		  GDownloadUrl("map.php?mode=getmarkerinfo&id="+this.id, function(data, responseCode) {
							actmarker.openInfoWindowHtml(data);
						});
		  });
		map.addOverlay(tempMarker);
		setBundesland('46.366,9.2,49.016,17.15');
	  }
	});
	
  }
}


function showAddress(address) {
  geocoder.getLatLng(
	address,
	function(point) {
	  if (!point) {
		//alert(address + " not found");
		setPlakat(false);
		marker.openInfoWindowHtml('Adresse wurde leider nicht gefunden!');
	  } else {
		map.setCenter(point, 13);
		setPlakat(point);
		marker.openInfoWindowHtml(address+'<br /><br /><input type="button" onclick="savePlakat()" value="Plakat speichern" />');
	  }
	}
  );
}

function setPlakat(center) {
	if (center === false) {
		center = map.getCenter();
	}
	
	if (marker != undefined) {
		if (marker.draggingEnabled()) {
			marker.hide();
			map.closeInfoWindow();
		}
	}
	
	marker = new GMarker(center, {draggable: true});
	
	GEvent.addListener(marker, "dragstart", function() {
	  map.closeInfoWindow();
	  });
	
	GEvent.addListener(marker, "dragend", function() {
	  marker.openInfoWindowHtml('<input type="button" onclick="savePlakat()" value="Plakat speichern" />');
	  });
	map.addOverlay(marker);	
	marker.openInfoWindowHtml('<input type="button" onclick="savePlakat()" value="Plakat speichern" />');
}

function savePlakat() {
	if (marker != undefined) {
		marker.openInfoWindowHtml(formHTML);
		var point = marker.getLatLng();
		$('#myForm').find(".lat").val(String(point.lat()));
		$('#myForm').find(".lng").val(String(point.lng()));
		$('#myForm').ajaxForm(function(responseText) { 
			marker.openInfoWindowHtml(responseText); 
		});
	}
}

function setBundesland(obj) {
	var values = obj.split(",");
	var sw = new GLatLng(values[0], values[1]);
	var ne = new GLatLng(values[2],values[3]);
	var bounds = new GLatLngBounds(sw, ne);
	var zoom = map.getBoundsZoomLevel(bounds);
	var center = bounds.getCenter();
	map.setCenter(center, zoom);
}
