var points = [];
var markers = [];
var counter = 0;
var to_htmls = [];
var from_htmls = [];
var map = null;
var oHtml = null;

function initGmaps(){

	if (document.getElementById("map_canvas")) {
		function createMarker(point, title, html, n, tooltip){
			if (n >= 0) {
				n = -1;
			}
			var marker = new GMarker(point, {
				'title': tooltip
			})
			var tabFlag = isArray(html);
			if (!tabFlag) {
				html = [{
					"contentElem": html
				}]
			}
			
			to_htmls[counter] = html[0].contentElem + '<form class="gmapDir" id="gmapDirTo" style="white-space: nowrap;" action="http://maps.google.com/maps" method="get" target="_blank">' +
			'<span class="gmapDirHead" id="gmapDirHeadTo">Route berechnen: <strong>Hierher</strong> - <a href="javascript:fromhere(' +
			counter +
			')">Von hier</a></span>' +
			'<p class="gmapDirItem" id="gmapDirItemTo"><label for="gmapDirSaddr" class="gmapDirLabel" id="gmapDirLabelTo">Start:<br /></label>' +
			'<input type="text" size="16" maxlength="40" name="saddr" class="gmapTextBox" id="gmapDirSaddr" value="" onfocus="this.style.backgroundColor = \'#e0e0e0\';" onblur="this.style.backgroundColor = \'#ffffff\';" />' +
			'<span class="gmapDirBtns" id="gmapDirBtnsTo"><input value="Los!" type="submit" class="gmapDirButton" id="gmapDirButtonTo" /></span></p>' +
			'<input type="hidden" name="daddr" value="' +
			point.y +
			',' +
			point.x +
			"(" +
			title.replace(new RegExp(/"/g), '&quot;') +
			")" +
			'" /></form>';
			from_htmls[counter] = html[0].contentElem + '<p /><form class="gmapDir" id="gmapDirFrom" style="white-space: nowrap;" action="http://maps.google.de/maps" method="get" target="_blank">' +
			'<span class="gmapDirHead" id="gmapDirHeadFrom">Route berechnen: <a href="javascript:tohere(' +
			counter +
			')">Hierher</a> - <strong>Von hier</strong></span>' +
			'<p class="gmapDirItem" id="gmapDirItemFrom"><label for="gmapDirSaddr" class="gmapDirLabel" id="gmapDirLabelFrom">Ziel:<br /></label>' +
			'<input type="text" size="16" maxlength="40" name="daddr" class="gmapTextBox" id="gmapDirSaddr" value="" onfocus="this.style.backgroundColor = \'#e0e0e0\';" onblur="this.style.backgroundColor = \'#ffffff\';" />' +
			'<span class="gmapDirBtns" id="gmapDirBtnsFrom"><input value="Los!" type="submit" class="gmapDirButton" id="gmapDirButtonFrom" /></span></p>' +
			'<input type="hidden" name="saddr" value="' +
			point.y +
			',' +
			point.x +
			encodeURIComponent("(" + title.replace(new RegExp(/"/g), '&quot;') + ")") +
			'" /></form>';
			html[0].contentElem = html[0].contentElem + '<p /><div id="gmapDirHead" class="gmapDir" style="white-space: nowrap;">Route berechnen: <a href="javascript:tohere(' + counter + ')">Hierher</a> - <a href="javascript:fromhere(' + counter + ')">Von hier</a></div>';
			oHtml = html[0].contentElem;
			if (!tabFlag) {
				html = html[0].contentElem;
			}
			
			if (isArray(html)) {
				GEvent.addListener(marker, "load", function(){
					marker.openInfoWindowTabsHtml(html);
				});
			}
			else {
				GEvent.addListener(marker, "load", function(){
					marker.openInfoWindowHtml(html);
				})
			}
			points[counter] = point;
			markers[counter] = marker;
			counter++;
			
			return marker;
		}
	
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById("map_canvas"));
			map.setCenter(new GLatLng(50.737392, 7.085946), 16);
			var point = new GLatLng(50.737392, 7.085946);
			map.addControl(new GLargeMapControl());
			
			var marker = createMarker(point, "Institut f&uuml;r Laserakupunktur", "<div id=\"gmapmarker\"><p><strong>Institut f&uuml;r Laserakupunktur<\/strong><br \/>Bornheimer Stra&szlig;e 98-100 <br \/>53119 Bonn<br \/><\/p><\/div>", 0, "")
			map.addOverlay(marker);
			marker.openInfoWindowHtml(oHtml);
		}
		
		
	}
}
    
    



function isArray(a){
    return isObject(a) && a.constructor == Array;
}

function isObject(a){
    return (a && typeof a == 'object') || isFunction(a);
}

function isFunction(a){
    return typeof a == 'function';
}

function showInfoWindow(idx, html){
    map.centerAtLatLng(points[idx]);
    markers[idx].openInfoWindowHtml(html);
}

function tohere(idx){
    markers[idx].openInfoWindowHtml(to_htmls[idx]);
}

function fromhere(idx){
    markers[idx].openInfoWindowHtml(from_htmls[idx]);
}


