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

function createMarker(point, title, html, n) 
{
	if(n >= 0) { n = -1; }
	var marker = new GMarker(point);
	var tabFlag = isArray(html);
	if(!tabFlag) { html = [{"contentElem": html}]; }
	to_htmls[counter] = html[0].contentElem + '<p /><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 + ')" class="gmapDirHead">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 + ')" class="gmapDirHead">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="saddr" 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="daddr" value="' +
						 point.y + ',' + point.x + "(" + 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 + ')" class="gmapDirHead">Hierher</a> - <a href="javascript:fromhere(' + counter + ')" class="gmapDirHead">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]);
}
