var map = null;
var geocoder = null;
var gme = null;
var errcou = 0;
var iconrd = null;
var iconfw = null;
var mark = new Array();
var mark_fw = new Array();
var mark_rd = new Array();
function load()
{
  if (GBrowserIsCompatible())
  {
	map = new GMap2(document.getElementById("map"));
//	http://maps.google.com/maps?f=q&hl=de&geocode=&q=Stephansplatz,+Wien+1010+Wien,+Wien,+Wien,+%C3%96sterreich&sll=39.270537,-97.124634&sspn=0.682544,1.104126&ie=UTF8&cd=1&mpnum=0&ll=48.208116,16.375465&spn=0.009181,0.017252&z=16&om=1
	map.setCenter(new GLatLng(48.208116,16.375465), 8);
//	map.setCenter(new GLatLng(1,1), 8);
	geocoder = new GClientGeocoder();
//	geocoder.setCache(null);
//	geocoder.setBaseCountryCode("AT");
	gme = document.getElementById("googlemap_error");
	iconrd = new GIcon();
	iconrd.image = "http://www.raumdirekt.com/images/pointer.png";
//	iconrd.iconSize = new GSize(85, 45);
	iconrd.shadow = "http://www.google.com/mapfiles/shadow50.png";
//	iconrd.shadowSize = new GSize(77, 27);
//	iconrd.iconAnchor = new GPoint(45, 45);
	iconrd.iconSize = new GSize(20, 34);
	iconrd.shadowSize = new GSize(37, 34);
	iconrd.iconAnchor = new GPoint(9, 34);
	iconrd.infoWindowAnchor = new GPoint(9, 2);
	iconrd.infoShadowAnchor = new GPoint(18, 25);
	iconfw = new GIcon();
	iconfw.image = "http://www.raumdirekt.com/images/freewave_googlemap_icon.png";
	iconfw.iconSize = new GSize(44, 42);
	iconfw.shadow = "http://www.raumdirekt.com/images/freewave_googlemap_icon_shadow.png";
	iconfw.shadowSize = new GSize(44, 42);
	iconfw.iconAnchor = new GPoint(21, 38);
	iconfw.infoWindowAnchor = new GPoint(22, 22);
	
//	iconrd.infoWindowAnchor = new GPoint(5, 1);
  }
}
function clear_rd()
{
	for (var kid in mark_rd)
	{
		map.removeOverlay(mark[kid]);
		mark[kid] = null;
		mark_rd[kid] = null;
	}
}
function clear_fw()
{
	for (var kid in mark_fw)
	{
		map.removeOverlay(mark[kid]);
		mark[kid] = null;
		mark_fw[kid] = null;
	}
}
function showinfohtml(marki, ihtml)
{
  GEvent.addListener(marki, "click", function(){marker.openInfoWindowHtml(ihtml);});
}

function showFW (kid, px, py, infhtml, delold)
{
	if (delold && mark[kid])
	{	
		map.removeOverlay(mark[kid]);
		mark[kid] = null;
		mark_fw[kid] = null;
	}
	if (px!= 0 && py != 0)
	{
		point = new GLatLng(px, py);
		mark[kid] = new PdMarker(point, iconfw);
		mark_fw[kid] = mark[kid];
		map.addOverlay(mark[kid]);
		if (infhtml) GEvent.addListener(mark[kid], "click", function(){mark[kid].openInfoWindowHtml(infhtml);});
//		if (center) window.setTimeout("map.setCenter(map.getFirstMarker().getPoint(), 15)", 500);
	}	
}

function showAddress(address, center, kid, px, py, infhtml, delold)
{
  if (geocoder)
  {
	if (delold && mark[kid])
	{	
		map.removeOverlay(mark[kid]);
		mark[kid] = null;
		mark_rd[kid] = null;
	}
	if (px!= 0 && py != 0)
	{
		point = new GLatLng(px, py);
		mark[kid] = new PdMarker(point, iconrd);
		mark_rd[kid] = mark[kid];
		map.addOverlay(mark[kid]);
		if (infhtml) GEvent.addListener(mark[kid], "click", function(){mark[kid].openInfoWindowHtml(infhtml);});
		if (center) window.setTimeout("map.setCenter(map.getFirstMarker().getPoint(), 15)", 500);
	  //return (marker);
	}
	else
	{
	  geocoder.getLocations(
		address,
		function(response)
		{
		  if (response && response.Status.code == 200)
		  {
			place = response.Placemark[0];
			point = new GLatLng(place.Point.coordinates[1],
			place.Point.coordinates[0]);
			mark[kid] = new PdMarker(point, iconrd);
			mark_rd[kid] = mark[kid];
			map.addOverlay(mark[kid]);
			if (infhtml)
			GEvent.addListener(mark[kid], "click", function(){mark[kid].openInfoWindowHtml(infhtml);});
			if (center) window.setTimeout("map.setCenter(map.getFirstMarker().getPoint(), 15)", 1000);
			//return (marker);
			gme.innerHTML = "";
		  }
		  else if (gme)
		  {
//			errcou++;
//			gme.innerHTML = gme.innerHTML + "Fehler: "+errcou+", Code: "+response.Status.code+", ID: "+ kid+ ", Adr: " + address + "<br />";
			gme.innerHTML = "Fehler: Adresse wurde nicht gefunden!";
		  }
		}
	  );
	}
  }
  return null;
}
function findAddress(address, kid)
{
  if (geocoder)
  {
	geocoder.getLocations(
	  address,
	  function(response)
	  {
		if (response && response.Status.code == 200)
		{
//		  if (center) map.setCenter(point, 13);
		  place = response.Placemark[0];
		  point = new GLatLng(place.Point.coordinates[1],
		  place.Point.coordinates[0]);
		  marker = new PdMarker(point, iconrd);
		  map.addOverlay(marker);
		  marker.setTooltip(address);
		  px = document.getElementById("px_"+kid);
		  px.value = place.Point.coordinates[1];
		  py = document.getElementById("py_"+kid);
		  py.value = place.Point.coordinates[0];
		}
		else if (response)
		{
		  errcou++;
//		  gme.innerHTML = gme.innerHTML + "Fehler: "+errcou+", Code: "+response.Status.code+", ID: "+ kid+ ", Adr: " + address + "<br />";
		  document.getElementById("px_"+kid).value = "0";
		  document.getElementById("py_"+kid).value = "0";
		}
	  }
	);
  }
  else
  {
//	alert ('nix geocoder!');
  }  
}
function aktEditImmo(kid)
{
	var _plz = document.getElementById("plz:"+kid);
	var _str = document.getElementById("strasse:"+kid);
	var _land = document.getElementById("land:"+kid);
	var _lands = "Austria";
	if (_plz && _str.value.length && _land)
	{
		if (_land.value == 2) _lands = "Germany";
		else if (_land.value == 3) _lands = "Switzerland";
		showAddress(_str.value+" "+_plz.value+" "+_lands, true, kid, 0, 0, null, true);
	}
}
function inimap(fw, bid, zoom)
{
	var request = GXmlHttp.create();
	document.getElementById("map").style.visibility="hidden";
	var infodings = "";
	if (fw)
	{
		request.open("GET", "gpop.php?fw=1", true);
		request.onreadystatechange = function()
		{
			if (request.readyState == 4 && request.status == 200)
			{
				var xmlDoc = request.responseXML;
				if (!xmlDoc) return;
				var markers = xmlDoc.documentElement.getElementsByTagName("marker");
				var m=null;
				for (var i = 0; i < markers.length; i++)
				{
					m=markers[i];
					showFW(m.getAttribute("iid"),
					parseFloat(m.getAttribute("px")),
					parseFloat(m.getAttribute("py")),
					"<div style=\"width:240px;background-color:#ffffff;\"><h2>"+m.getAttribute("title")+" <img src=\"images/icon_bubble.gif\" alt=\"\" onmouseover=\"return overlib('Bitte konsumieren Sie im Lokal angemessen zu Ihrer kostenfreien WLAN Nutzung.');\" onmouseout=\"return nd();\" /><\/h2><p style=\"font-size:10px;\">"+m.getAttribute("adr")+"<\/p><a style=\"font-size:10px;color:#2c428b;\" href=\"http://www.freewave.at/hotspots\" target=\"_blank\"><img src=\"/images/logo_fw.png\"> zu Freewave<\/a><\/div>"
					);
					if (m.getAttribute("iid") == bid)
						infodings = "<div style=\"width:240px;background-color:#ffffff;\"><h2>"+m.getAttribute("title")+" <img src=\"images/icon_bubble.gif\" alt=\"\" onmouseover=\"return overlib('Bitte konsumieren Sie im Lokal angemessen zu Ihrer kostenfreien WLAN Nutzung.');\" onmouseout=\"return nd();\" /><\/h2><p style=\"font-size:10px;\">"+m.getAttribute("adr")+"<\/p><a style=\"font-size:10px;color:#2c428b;\" href=\"http://www.freewave.at/hotspots\" target=\"_blank\"><img src=\"/images/logo_fw.png\"> zu Freewave<\/a><\/div>";
				}
				if (zoom) map.zoomToMarkers();
				document.getElementById("map").style.visibility="visible";
				if (bid)
				{
					mark[bid].openInfoWindowHtml(infodings);
				}
			}
		}
		request.send(null);
	}
	else
	{
		request.open("GET", "gpop.php", true);
		request.onreadystatechange = function()
		{
			if (request.readyState == 4 && request.status == 200)
			{
				var xmlDoc = request.responseXML;
				if (!xmlDoc) return;
				var markers = xmlDoc.documentElement.getElementsByTagName("marker");
				var m=null;
				for (var i = 0; i < markers.length; i++)
				{
					m=markers[i];
					showAddress(
						m.getAttribute("adr"),
						false, m.getAttribute("iid"),
						parseFloat(m.getAttribute("px")),
						parseFloat(m.getAttribute("py")),
						"<div style=\"width:240px;background-color:#ffffff;\"><h2>"+m.getAttribute("title")+"<\/h2><p style=\"font-size:10px;\">"+m.getAttribute("iname")+"<\/p><div style=\"float:left;width:80px;height:60px;\"><img alt=\""+m.getAttribute("iname")+"\" title=\"toppic\" src=\""+m.getAttribute("tpic")+"\" width=\"80\" height=\"60\" \/><\/div><div style=\"float:right;width:140px;font-size:10px;\">"+m.getAttribute("isize")+"<br />"+m.getAttribute("pfrei")+"<\/div><div style=\"clear:both;padding-top:5px;font-size:10px;\">"+m.getAttribute("pinfo")+"<br \/><a style=\"font-size:10px;color:#2c428b;\" href=\""+m.getAttribute("dlink")+"\"><img src=\"/images/detail.png\"> Details und Kontaktinfos ansehen<\/a><\/div><\/div>"
					);
				}
				if (zoom) map.zoomToMarkers();
				document.getElementById("map").style.visibility="visible";
			}
		}
		request.send(null);
	}
}
