var geocoder = new GClientGeocoder();
var http_request = false;
		
function loadMap(address) 
{      
	if(address=='') return;
	
	if (GBrowserIsCompatible()) 
	{        
		if (window.XMLHttpRequest) 
		{
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) 
			{
				http_request.overrideMimeType('text/xml');
			}
		} 
		else 
		if (window.ActiveXObject) 
		{ 
			try 
			{
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} 
			catch (e) 
			{
				try 
				{
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} 
				catch (e) {}
			}
		}
		
		if (!http_request) 
		{
			alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
			return;
		}
		
		http_request.onreadystatechange = new Function("setAllMarker('"+address+"');" );

		http_request.open('GET', 'fileadmin/markers.xml', true);
		http_request.send(null);
	}  
} 


function  setAllMarker(address) 
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			var map= new GMap2(document.getElementById("map"));  

			map.clearOverlays();

			var items = http_request.responseXML.getElementsByTagName('marker');
		
                        var latLabel = 0;
                        var lngLabel = 0;

			for (var i=0;i<items.length;i++) 
			{ 
				text= getNode(items[i],'text');
				lat= getNode(items[i],'lat');
				lng= getNode(items[i],'lng');
				label= getNode(items[i],'label');
				
                                if(label==address)
                                {
                                     createMarker(map,lat,lng,text,label,true);
                                     latLabel=lat;
                                     lngLabel=lng;
                                }
                                else createMarker(map,lat,lng,text,label,false);
			}
				
			map.setCenter(new GLatLng(latLabel, lngLabel), 8); 	
			map.setMapType(G_HYBRID_MAP);
			map.addControl(new GSmallMapControl());
		}
	}
}

function createMarker(map,lat,lng,text,label,center)
{
	point = new GLatLng(lat, lng);
	
	icon = new GIcon();
	
	if(center)
	{
		icon.image = "fileadmin/flagbg.png";
		icon.shadow = "fileadmin/flagbgshadow.png";
	}
	else
	{
		icon.image = "fileadmin/flag.png";
	}
	
	icon.iconSize = new GSize(32, 32);
	icon.shadowSize = new GSize(56, 32);
	icon.iconAnchor = new GPoint(16, 32);
	icon.infoWindowAnchor = new GPoint(16, 0);

	marker = new GMarker(point,{'icon':icon,'title':text});

	if(center)
	{
	}
	else
	{
		GEvent.addListener(marker, "click", function() {setLink(new String(label))}); 
	}
	
				
	map.setCenter(new GLatLng(lat, lng), 10); 

        map.addOverlay(marker);
}

function setLink(label)
{
 window.location.href = "index.php?id="+label;
}

function getNode(obj,tag) 
{
         return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
}