function vis_invis(vis,invis)
{	document.getElementById(vis).style.display="block";
	document.getElementById(invis).style.display="none";
	}

function PopUp(obj,titel)
{	var host=document.getElementById("fhost_"+obj);
	if(host.className=="invhost")
{	host.className="host";
	var html=document.getElementById('fcont_'+obj).innerHTML;
	document.getElementById('fcont_'+obj).innerHTML="<form action='EditDB.php'"
	+" method='post'>{"+obj+"} <b>"+titel+"</b><br><input name='host' type=hidden value='"
	+document.location.href+"'>"+"<input type=submit name='cancel' value='Verwerfen'>"
	+"<input type=submit value='SPEICHERN'><hr>"+html+"<br></form>";
	document.getElementById('fcont_'+obj).style.display="block";
	}}

function PopUpForm(obj)
{	var host=document.getElementById("fhost_"+obj);
	if(host.className=="invhost")
{	host.className="host";
	var html=document.getElementById('fcont_'+obj).innerHTML;
	document.getElementById('fcont_'+obj).innerHTML="<form action='EditDB.php'"
	+" method='post'><input name='host' type=hidden value='"+document.location.href
	+"'><input type=submit value='"+obj+" speichern'><br><br>"+html+"</form>";
	document.getElementById('fcont_'+obj).style.display="block";
	}}

// Vorlage fuer Map-Markierungsblasen:
var Blase=new GIcon();
Blase.shadow='google/mm_20_shadow.png';
Blase.iconSize=new GSize(12,20);
Blase.shadowSize=new GSize(22,20);
Blase.iconAnchor=new GPoint(6,20);
Blase.baseline=14;
var mBlase=[];

// Farbige Blasen 0 bis 10:
mBlase[0]=new GIcon(Blase,'google/mm_20_white.png');
mBlase[1]=new GIcon(Blase,'google/mm_20_yellow.png');
mBlase[2]=new GIcon(Blase,'google/mm_20_cyan.png');
mBlase[3]=new GIcon(Blase,'google/mm_20_blue.png');
mBlase[4]=new GIcon(Blase,'google/mm_20_gray.png');
mBlase[5]=new GIcon(Blase,'google/mm_20_green.png');
mBlase[6]=new GIcon(Blase,'google/mm_20_orange.png');
mBlase[8]=new GIcon(Blase,'google/mm_20_purple.png');
mBlase[9]=new GIcon(Blase,'google/mm_20_brown.png');
mBlase[10]=new GIcon(Blase,'google/mm_20_red.png');

var korb = new Object();	
function KorbElem(info,lng,lat,col,link)
{	this.info = info;
	this.lng = lng;
	this.lat = lat;
	this.col = col;
	this.link = link;
	//alert("KorbElem "+info);
	}

// Google Map (klein):
function map(elem,mlon,mlat,zoom,lon,lat)
{	if(GBrowserIsCompatible())
{	var map = new GMap2(document.getElementById(elem));

//map.firstChild.nextSibling.style.visibility = "hidden";

	//map.addControl(new GSmallZoomControl());
	map.disableDragging();
	var mmp = new GLatLng(mlat,mlon);
	map.setCenter(mmp,zoom);
	
	bdiv=document.createElement('div');
	map.getPane(G_MAP_FLOAT_PANE).appendChild(bdiv);
	//bdiv.innerHTML="<div class='bdiv'><span>Details!</span><div>";
	blab=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(10,10));
	blab.apply(bdiv);
	
	/*
	GEvent.addListener(map,'click',function()
	{	//korb[1]=new KorbElem("x",mlon,mlat,10,"x");
		bdiv.innerHTML="";
		var mitte=new GLatLng(51,10);
		map.setCenter(mitte,4);
		bigmap(); //ohne Koord fuer Bounds-Ermittlung
		});
	*/

	if(lon!=0 && lat!=0)
	{	var point = new GLatLng(lat,lon);
		var marker = new GMarker(point,mBlase[10]);
		map.addOverlay(marker);
		}
	/*
	else
	{	var bounds = new GLatLngBounds();
		for (var id in korb)
			bounds.extend(new GLatLng(korb[id].lat,korb[id].lng));
		map.setZoom(Math.min(map.getBoundsZoomLevel(bounds),12));
		var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat())/2; 
		var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng())/2; 
		map.setCenter(new GLatLng(clat,clng));
		}
	*/
	}}

// Google Map (gross):
function bigmap(lon,lat,zoom)
{	if(GBrowserIsCompatible())
{	//alert('bigmap('+lon+','+lat+','+zoom+')');
	//Container: 'bigmap'
	//Elemente: korb
	//Blasen: 
	//if(document.getElementById("pano"))
	//document.getElementById("pano").className="inv";
	
	function InitMarker(id) //lat,lng,col
	{	//alert("InitMarker: "+korb[id].lat+"/"+korb[id].lng+"/"+korb[id].col);
		var gm=new GMarker(new GLatLng(korb[id].lat,korb[id].lng),mBlase[korb[id].col]);
		GEvent.addListener(gm,'mouseover',function() {OverMarker(id)});
		//GEvent.addListener(gm,'mouseout',function() {tipp.style.visibility='hidden'});
		GEvent.addListener(gm,'click',function() {ClickMarker(id)});
		return gm;
		}

	function ClickMarker(id)
	{	//if(marker.typ=='z') code='';
		//else code='-'+marker.typ+marker.id+'.html';
		//document.location.href=marker.link+'.html';
		//alert("Click: "+korb[id].info);
		document.location.href=korb[id].link+'.html';
		}

	function OverMarker(id)
	{	tipp.style.visibility='hidden'; 
		tipp.innerHTML="<div class='label'>"+korb[id].info+"<div>";
		var pmap=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(240,135),true),map.getZoom());
		var pmid=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getCenter(),map.getZoom());
		var pmrk=map.getCurrentMapType().getProjection().fromLatLngToPixel(korb[id].marker.getPoint(),map.getZoom());
		var bl=korb[id].marker.getIcon().baseline;
		
		if(pmrk.x>pmid.x) {var xoff=-tipp.clientWidth} else {var xoff=0}
		if(pmrk.y>pmid.y) {var yoff=-tipp.clientHeight} else {var yoff=0}
		
		var label=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(240+pmrk.x-pmap.x+xoff,135+pmrk.y-pmap.y+yoff-bl));
		label.apply(tipp);
		tipp.style.visibility='visible';
		}
		
	// Sammelkorb fuer die Markierungen
	//var Korb = new Object();

	// Karte einrichten:
	//document.getElementById('bigmap').className='vis';
	
	var map = new GMap2(document.getElementById('bigmap'));
	//var mappt = new GLatLng(lat,lon); // gibt evtl. keinen pt
	//map.setCenter(mappt,zoom); // gibt noch kein Zoom!
	map.addControl(new GSmallZoomControl());
	map.addControl(new GMapTypeControl());
	map.disableInfoWindow();
	
	if(lon && lat)
	{	var zentrum = new GMarker(new GLatLng(lat,lon),mBlase[10]);
		map.addOverlay(zentrum);
		}

	// Zoomstufe mindestens 4:
	mt=map.getMapTypes();
	for (var i=0;i<mt.length;i++)
	mt[i].getMinimumResolution=function() {return 4;}

	// Infofenster an die Karte binden:
	tipp=window.document.createElement('div');
	map.getPane(G_MAP_FLOAT_PANE).appendChild(tipp);
	
	GEvent.addListener(map,'zoomend',function()
		{tipp.style.visibility='hidden'});
	
	// Und jetzt der Korb mit den Punkten:
	var bounds = new GLatLngBounds();
	for (var id in korb)
	//for (var param in korb[id])
	//alert(ID+"/"+param+": "+korb[id][param]);
	{	//alert(id);
		korb[id].marker = InitMarker(id);
		map.addOverlay(korb[id].marker);
		bounds.extend(new GLatLng(korb[id].lat,korb[id].lng));
		}
	
	// Zoomstufe und Kartenmitte gemaess Punkten:
	//if(!lon && !lat){
		var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat())/2; 
		var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng())/2; 
		map.setCenter(new GLatLng(clat,clng));
		map.setZoom(map.getBoundsZoomLevel(bounds));
	//}

	}}
	
function suggest(feld,val)
{	var reqstr="suggest.php?f="+feld+"&t="+val;
	//alert(reqstr);
	var request = GXmlHttp.create();
	request.open("GET",reqstr,true);
	request.onreadystatechange = function()
	{	if (request.readyState==4) 
		with(document.getElementById(feld+"_sbox"))
	{	//alert(request.responseText);
		innerHTML=request.responseText;
		style.visibility='visible';
		}}
	request.send(null);
	}
