$(document).ready( function() {
	$("#suchenmap").each(registerSuchenMap);
	$("#aktionsuchen").bind("submit", doSearch);	
	$("#aktionsuchen #suche").bind("blur", doSearch);	
	
})


function debug(msg)
{
	if (console)
		console.debug(msg);
		
}
function doSearch()
{
	var suchebegriff = $("#aktionsuchen #suche").attr('value');
	var address = suchebegriff + ",Deutschland";
	geocoder.getLatLng(address, function(point) {
		if (!point) {
			alert("Die angegebene Adresse konnte nicht gefunden werden.");
		} else {

			map.setCenter(point, 13);
		}
	});
		
	return false;
}

function registerSuchenMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("suchenmap"));
		map.addControl(new GLargeMapControl());
//		map.addControl(new GSmallZoomControl());
		map.clearOverlays();
		map.getInfoWindow().enableMaximize();
		geocoder = new GClientGeocoder();
		var address = "Unter den Linden, Berlin, Deutschland";
		$("#aktionsuchen #suche").attr('value', address)
		geocoder.getLatLng(address, function(point) {
			if (point) {
				map.setCenter(point, 13);
				map.setZoom(11);
			}
		});
		for (var i=0; i<alleVeranstaltungen.length; i++)
		{
			var veranstaltung = alleVeranstaltungen[i];
//			timeoutVeranstaltungen(veranstaltung,i*300);
	//		setTimeout(function() { showVeranstaltung(veranstaltung)}, 50*i);
			// maybe dynamic load if x and y are missing
			displayVeranstaltung(veranstaltung, veranstaltung['y'], veranstaltung['x']);
		}
	}
}

function displayVeranstaltung(veranstaltung, y ,x) {
    // Create our "tiny" marker icon
    var blueIcon = new GIcon(G_DEFAULT_ICON);
    blueIcon.image = "/public/images/google_icon_ohne.png";
    blueIcon.iconSize = new GSize(26, 34);
	// Set up our GMarkerOptions object
	markerOptions = { icon:blueIcon };

	var infoWindowContent = 
		"<span class='infobox_header'>"+veranstaltung['title']+"</span><br/>" +
		"<p><span class='infobox_text'>"+veranstaltung['street']+" "+veranstaltung['streetnumber']+ "</span><br/>" +
		"<span class='infobox_text'>"+veranstaltung['zip']+" "+veranstaltung['city']+ "</span><br/>" +
		"<span class='infobox_text'>Tel.: "+veranstaltung['phone']+", E-Mail: "+veranstaltung['email']+ "</span><br/>" +
		"</p><p><span class='infobox_veranstalter_header'>Veranstalter: </span>" +
		"<span class='infobox_veranstalter'>"+veranstaltung['host']+"</span><br/>" +
		"<span class='infobox_text'>Aktion läuft vom "+veranstaltung['startdate']+" bis zum "+ veranstaltung['enddate'] +"</span><br/>" +
		"";
	var textSplit = veranstaltung['text'].split("<br/>");
	var shortText = "";
	if (textSplit.length>3)
	{
		var loopi;
		for (loopi = 0; loopi < 3; loopi++)
		{
			shortText += textSplit[loopi] + "<br/>";
		}
	}
	else
	{
		shortText = veranstaltung['text'].substr(0,200);
	}
	if (shortText != veranstaltung['text'])
		var showMore = true;
	else
		var showMore = false;
	var minInfoWindowContent  = infoWindowContent +
		"</p><p><span class='infobox_text'>"+shortText+(showMore?"... <a href='' onclick='map.getInfoWindow().maximize();return false;'>mehr</a>":"")+"</span></p>" +
		"</div>" + 
		"";
	var maxInfoWindowContent  = infoWindowContent +
	"</p><p><span class='infobox_text'>"+veranstaltung['text']+"</span></p>" +
	"";
	var infoWindowOptions = { maxTitle: veranstaltung['title'], maxContent: maxInfoWindowContent, maxWidth : 450 }

	var point = new GLatLng(y,x);
//	debug(point);
	var marker = new GMarker(point, markerOptions);
	map.addOverlay(marker);
	if (requestId == veranstaltung['id'])
	{
		map.setCenter(point, 13);
		marker.openInfoWindowHtml(minInfoWindowContent, infoWindowOptions);
		$("#aktionsuchen #suche").attr('value', address);
	}
	marker.bindInfoWindowHtml( minInfoWindowContent, infoWindowOptions);

}

function timeoutVeranstaltungen(veranstaltung, timeout)
{
	setTimeout(function() { showVeranstaltung(veranstaltung)}, timeout);
}



function showVeranstaltung(veranstaltung) {
	if (geocoder) {
		var street = veranstaltung['street'].replace(/&auml;/g, "ä");
		var address = street + " " + veranstaltung['streetnumber'] + ", " + veranstaltung['zip'] + " " + veranstaltung['city'] + ", Deutschland";
		geocoder.getLatLng(address, function(point) {
			if (!point) {
			debug(address);
//				alert("Die angegebene Adresse konnte nicht gefunden werden.");
				//var address = "Alexanderplatz Berlin, Deutschland";
				//showAddress(address)
			} else {
		        // Create our "tiny" marker icon
		        var blueIcon = new GIcon(G_DEFAULT_ICON);
		        blueIcon.image = "/2009/public/images/google_icon_ohne.png";
		        blueIcon.iconSize = new GSize(26, 34);
				// Set up our GMarkerOptions object
				markerOptions = { icon:blueIcon };

				var infoWindowContent = 
					"<span class='infobox_header'>"+veranstaltung['title']+"</span><br/>" +
					"<p><span class='infobox_text'>"+veranstaltung['street']+" "+veranstaltung['streetnumber']+ "</span><br/>" +
					"<span class='infobox_text'>"+veranstaltung['zip']+" "+veranstaltung['city']+ "</span><br/>" +
					"<span class='infobox_text'>Tel.: "+veranstaltung['phone']+", E-Mail: "+veranstaltung['email']+ "</span><br/>" +
					"</p><p><span class='infobox_veranstalter_header'>Veranstalter: </span>" +
					"<span class='infobox_veranstalter'>"+veranstaltung['host']+"</span><br/>" +
					"<span class='infobox_text'>Aktion läuft vom "+veranstaltung['startdate']+" bis zum "+ veranstaltung['enddate'] +"</span><br/>" +
					"";
				var textSplit = veranstaltung['text'].split("<br/>");
				var shortText = "";
				if (textSplit.length>3)
				{
					var loopi;
					for (loopi = 0; loopi < 3; loopi++)
					{
						shortText += textSplit[loopi] + "<br/>";
					}
				}
				else
				{
					shortText = veranstaltung['text'].substr(0,200);
				}
				if (shortText != veranstaltung['text'])
					var showMore = true;
				else
					var showMore = false;
				var minInfoWindowContent  = infoWindowContent +
					"</p><p><span class='infobox_text'>"+shortText+(showMore?"... <a href='' onclick='map.getInfoWindow().maximize();return false;'>mehr</a>":"")+"</span></p>" +
					"</div>" + 
					"";
				var maxInfoWindowContent  = infoWindowContent +
				"</p><p><span class='infobox_text'>"+veranstaltung['text']+"</span></p>" +
				"";
				var infoWindowOptions = { maxTitle: veranstaltung['title'], maxContent: maxInfoWindowContent, maxWidth : 450 }
				
				var marker = new GMarker(point, markerOptions);
				map.addOverlay(marker);
				if (requestId == veranstaltung['id'])
				{
					map.setCenter(point, 13);
					marker.openInfoWindowHtml(minInfoWindowContent, infoWindowOptions);
					$("#aktionsuchen #suche").attr('value', address)
				}
				marker.bindInfoWindowHtml( minInfoWindowContent, infoWindowOptions);

			}
		});
	}
}
