/* google maps */
var points = [];
var markers = [];
var counter = 0;
var to_htmls = [];
var from_htmls = [];
var map = null;
var title = "6622 Berwang, Austria";
var address = "<div id=\"gmapmarker\"><div style=\"font-family:Verdana;font-size:11px;\"><strong>Haus Alpenperle<\/strong><br \/>6622 Berwang/Anrauth, Austria<\/div><\/div>";
var lng = 47.392720;
var lat = 10.718729;
var zoom = 15;

function onLoad() {
	if (GBrowserIsCompatible()) {
		var mapObj = document.getElementById("map");
		if (mapObj != "undefined" && mapObj != null) {
			map = new GMap2(document.getElementById("map"));
			map.setCenter(new GLatLng(lng, lat), zoom, G_HYBRID_MAP);
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
			var point = new GLatLng(lng, lat);
			var marker = createMarker(point, title, address, 0, "");
			map.addOverlay(marker);
		}
	}
}

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.de/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 + 
	'<br /><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>';
	
	if(!tabFlag) { 
		html = html[0].contentElem; 
	}
	
	if(isArray(html)) {
		GEvent.addListener(marker, "mouseover", function() { marker.openInfoWindowTabsHtml(html); }); 
	} else { 
		GEvent.addListener(marker, "mouseover", function() { marker.openInfoWindowHtml(html); }); 
	}
	
	points[counter] = point;
	markers[counter] = marker;
	counter++;
	return marker;
}

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]);
}
