var points = [];
var markers = [];
var counter = 0;
var to_htmls = [];
var from_htmls = [];
var map = null;

function onLoad()
{
	if ( GBrowserIsCompatible() )
	{
		var mapObj = document.getElementById( "map" );
		
		if ( mapObj != "undefined" && mapObj != null )
		{
			map = new GMap2( document.getElementById( "map" ) );
			map.setCenter( new GLatLng( 51.010328, 12.456887 ), 16, G_HYBRID_MAP );
			map.setUIToDefault();
			//map.addControl( new GSmallMapControl() );
			//map.addControl( new GMapTypeControl() );
			
			var point = new GLatLng( 51.0107976, 12.4595874 );
			
			var marker = new GMarker( point, 'OKM' );
			var html = '<div id=\"gmapmarker\"><div style=\"font-family:Verdana;font-size:11px;\"><strong>OKM<\/strong><br \/>Fünfminutenweg-Süd 6, 04603 Windischleuba<\/div><\/div>';
			GEvent.addListener( marker, "mouseover", function(){ marker.openInfoWindowHtml( html ); });
			
			//var marker = createMarker( point, "Fünfminutenweg-Süd 6, 04603 Windischleuba", "<div id=\"gmapmarker\"><div style=\"font-family:Verdana;font-size:11px;\"><strong>OKM<\/strong><br \/>Fünfminutenweg-Süd 6, 04603 Windischleuba<\/div><\/div>", 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.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>';
	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 ] );

}