    var iconBlue = new GIcon();
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon();
    iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
    iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["restaurant"] = iconBlue;
    customIcons["bar"] = iconRed;


function createMarker(point, name, address, type,adrId) {
	var marker = new GMarker(point, customIcons[type]);
    //var html = "<b>" + name + "</b> <br/>" + address;
      GEvent.addListener(marker, 'click', function() {
	    showHPDetails(adrId)
//        marker.openInfoWindowHtml(html);
      });
      return marker;
    }


 function makeMap(myData) {
//      if (GBrowserIsCompatible()) {
		var markers = eval("(" + myData + ")");
		var bounds = new GLatLngBounds();
		var map = new GMap2(document.getElementById("tpfgmKarte"));

		map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

		for (var a=0; a < markers.length; a++) {
			var point = new GLatLng(parseFloat(markers[a]["lat"]),
                                    parseFloat(markers[a]["lng"]));
		    var marker = createMarker(point, markers[a]["name"], markers[a]["name"], iconBlue, markers[a]["uid"]);
            map.addOverlay(marker);
			bounds.extend(point);
		}
		if (markers.length > 0) {
			var zoom = map.getBoundsZoomLevel(bounds);
			var point = bounds.getCenter();
			map.setCenter(point,zoom);
		} else {
			var point = new GLatLng(51.165, 10.455278);
			var zoom = 6;
			map.setCenter(point,zoom);
		}


    }


function createRequest()  {
	var http_request = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
	    http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
	    http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return http_request;
}

function gotoABC(letter) {
	request = createRequest();
	var id = letter + "&hash=" + Math.random();
	request.open("GET", "/typo3conf/ext/cdt_pfindergm/pi1/tpfajaxgm.php?abc=" + id, false);
	request.send(null);
	var retStr = unescape(request.responseText);
	var ret = retStr.split("||");
	document.getElementById("tpfgmDetails").innerHTML = ret[0];
	document.getElementById("tpfgmOverview").innerHTML = ret[1];
	makeMap(ret[2]);
	document.getElementById("plzeingabe").value = '';
}

function showHPDetails(id) {
//	document.getElementById("tpfgmOverview").style.display = "none";
	document.getElementById("details").innerHTML = document.getElementById("detail_" + id).innerHTML;
}

function returnToTPF(id) {
	document.getElementById("tpfgmOverview").style.display = "block";
	document.getElementById(id).style.display = "none";
}

function showHPPage(letter, start) {
	request = createRequest();
	var id = start + "&l=" + letter + "&hash=" + Math.random();
	request.open("GET", "/typo3conf/ext/cdt_pfindergm/pi1/tpfajaxgm.php?p=" + id, false);
	request.send(null);
	var retStr = unescape(request.responseText);
	var ret = retStr.split("||");
	document.getElementById("tpfgmDetails").innerHTML = ret[0];
	document.getElementById("tpfgmOverview").innerHTML = ret[1];
	makeMap(ret[2]);
	document.getElementById("plzeingabe").value = '';
}

function searchPLZ(b, start, tab) {
	request = createRequest();
	var id = b + "&s=" + start + "&tab=" + tab +  "&hash=" + Math.random();
	request.open("GET", "/typo3conf/ext/cdt_pfindergm/pi1/tpfajaxgm.php?plz=" + id, false);
	request.send(null);
	var retStr = unescape(request.responseText);
	var ret = retStr.split("||");
	document.getElementById("tpfgmDetails").innerHTML = ret[0];
	document.getElementById("tpfgmOverview").innerHTML = ret[1];
	makeMap(ret[2]);
	document.getElementById("plzeingabe").value = '';
}

