function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function getDocWidth() {
    var D = document;
    /*
		console.log(D.body.scrollWidth);
    console.log(D.documentElement.scrollWidth);
    console.log(D.body.offsetWidth);
    console.log(D.documentElement.offsetWidth);
    console.log(D.body.clientWidth);
    console.log(D.documentElement.clientWidth);
    */
    return (Math.max(
        Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
        Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
        Math.max(D.body.clientWidth, D.documentElement.clientWidth)
    ) - (/MSIE 6/i.test(navigator.userAgent) ? 21 : 0));
}

function showGMap(projekt_id, options) {
	
	// creating page cover
	var cover = document.getElementById('gmap-cover');
	if(!cover) {
		var cover = document.createElement('div');
		cover.setAttribute('id', 'gmap-cover');
		cover.style.position = 'absolute';
		cover.style.top = 0;
		cover.style.left = 0;
		cover.style.width = getDocWidth() + 'px';
		cover.style.height = getDocHeight() + 'px';
		cover.style.display = 'none';
		
		cover.show = function() {
			this.style.display = '';
			return this;
		}
		cover.hide = function() {
			this.style.display = 'none';
			return this;
		}
		
		document.getElementsByTagName('body')[0].appendChild(cover);
	}
	
	// creating content area
	var content = document.getElementById('gmap-content');
	if(!content) {
		var content = document.createElement('div');
		content.setAttribute('id', 'gmap-content');
		content.style.position = 'absolute';
		content.style.top = '40px';
		content.style.left = '33px';
		content.style.width = '940px';
		content.style.zIndex = 101;
		content.style.display = 'none';
		//content.style.backgroundColor = 'white';
		//content.style.padding = '5px 10px 10px 10px';
		content.style.MozBorderRadius = '4px';
		content.innerHTML = ''+
		'<div class="corners-top"></div>'+
		'<div class="gmap-body">'+
		'<a href="#" onclick="document.getElementById(\'gmap-content\').hide();document.getElementById(\'gmap-cover\').hide(); return false;" class="gmap-close">X</a>'+
		'<h2 class="gmap-title">Projekt-Map</h2><div id="gmap-canvas">Lade Google Map...</div>'+
		'</div>'+
		'<div class="corners-bottom"></div>';
		
		content.show = function() {
			var embeds = document.getElementsByTagName('embed');
			for(var i = 0; embeds[i]; i++) {
				embeds[i].style.display = 'none';
			}
			this.style.display = '';
			return this;
		}
		content.hide = function() {
			this.style.display = 'none';
			var embeds = document.getElementsByTagName('embed');
			for(var i = 0; embeds[i]; i++) {
				embeds[i].style.display = '';
			}
			return this;
		}
		
		document.getElementsByTagName('body')[0].appendChild(content);
	}
	
	// setup gmap canvas
	var canvas = document.getElementById('gmap-canvas');
	if(!!canvas && options.width && options.height) {
		canvas.style.width = options.width+'px';
		canvas.style.height = options.height+'px';
	}
	
	// show layer
	cover.show(); 
	content.show();
	
	// lazy laoding gmaps api
	google.load('maps', '2', {callback: function() {
	
		// initiating
		var map = new GMap2(document.getElementById("gmap-canvas"));
		map.enableScrollWheelZoom();
		map.addMapType(G_PHYSICAL_MAP);
    map.addControl(new GLargeMapControl());
    map.addControl(new GHierarchicalMapTypeControl());
		
		var bound = new GLatLngBounds();
    GDownloadUrl('/gmaps-api.php?id_projekt='+projekt_id, function(data) {
      var xml = GXml.parse(data);
      var markers = xml.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++) {
        var latlng = new GLatLng(
					parseFloat(markers[i].getAttribute("lat")),
          parseFloat(markers[i].getAttribute("lng"))
				);
        bound.extend(latlng);
				var markerIcon = new GIcon(new GIcon(G_DEFAULT_ICON));
				if(markers[i].getAttribute('icon') != '') {
					markerIcon.image = '/bilder/gmarkers/'+markers[i].getAttribute('icon');
					markerIcon.iconSize = new GSize(90, 50);
					markerIcon.iconAnchor = new GPoint(45, 50);
					markerIcon.imageMap = [0, 0, 90, 0, 90, 50, 0, 50, 0, 0];
				}
				var marker = new GMarker(latlng, {
					title: markers[i].getAttribute('title'),
					icon: markerIcon
				});
        map.addOverlay(marker);
				GEvent.addListener(marker, 'click', function(html) {
					return function() {
						this.openInfoWindowHtml(html);
					}
				}(markers[i].textContent || markers[i].getAttribute('title')));
				GEvent.trigger(marker, 'click');
      }
    	map.setCenter(bound.getCenter());
      map.setZoom(map.getBoundsZoomLevel(bound));
    });

	}});
	
}
//http://maps.google.de/maps?f=d&source=s_d&saddr=M%C3%BCnchen&daddr=&hl=de&geocode=&mra=mi&sll=48.139126,11.580186&sspn=0.219714,0.528717&g=m%C3%BCnchen&ie=UTF8&t=h&z=12
