var map;
var baseIcon;

function initialize()
{
	if (GBrowserIsCompatible())
	{
		map = new GMap2(document.getElementById("map_canvas"));
        	map.setCenter(new GLatLng(latitudeinit, longitudeinit), zoominit);
       		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		//map.enableScrollWheelZoom();
		map.setMapType(G_SATELLITE_MAP);

        	// Create a base icon for all of our markers that specifies the
        	// shadow, icon dimensions, etc.
        	baseIcon = new GIcon();
        	baseIcon.iconSize = new GSize(14, 14);
        	baseIcon.iconAnchor = new GPoint(7, 7);
		baseIcon.infoWindowAnchor = new GPoint(7, 2);
		baseIcon.infoShadowAnchor = new GPoint(18, 25);
		look();
     	 }
}


function initializeaddpark()
{
	if (GBrowserIsCompatible())
	{
		map = new GMap2(document.getElementById("map_canvas"));
        	map.setCenter(new GLatLng(latitudeinit, longitudeinit), zoominit);
       		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		//map.addControl(new google.maps.LocalSearch(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20)));
	
		//map.enableScrollWheelZoom();
		map.setMapType(G_HYBRID_MAP);

        	// Create a base icon for all of our markers that specifies the
        	// shadow, icon dimensions, etc.
        	baseIcon = new GIcon();
        	baseIcon.iconSize = new GSize(14, 14);
        	baseIcon.iconAnchor = new GPoint(7, 7);
		baseIcon.infoWindowAnchor = new GPoint(7, 2);
		baseIcon.infoShadowAnchor = new GPoint(18, 25);
		
		loadparks();

		var counter = 0;
		var lastpoint;
		GEvent.bind(map, "click", this, function(marker,point)
      		{
        		if (counter == 0) 
			{
				if (point)
				{
					var temp = new GMarker(point);
					map.addOverlay(temp)
					counter = 1;
					lastpoint = temp;
					var templonglatar = new Array();
					var templonglat = temp.getLatLng().toString();
					templonglatar = templonglat.split(',');
					document.eintragen.latitude.value = templonglatar[0].substring(1);
					document.eintragen.longitude.value = templonglatar[1].substring(1,templonglatar[1].length-1);
					document.getElementById("submitbutton").disabled=false;
          			}
         		}
		
			else
			{
				map.removeOverlay(lastpoint)
				counter = 0;
				document.eintragen.longitude.value = 0;
				document.eintragen.latitude.value = 0;
				document.getElementById("submitbutton").disabled=true;
			}
		});
     	 }
}

var zoomalt;
var zoom;
var marker = new Array();

// Creates a marker whose info window displays the letter corresponding
// to the given index.
// map.addOverlay(createMarker('park', "Expo Center Park", 36.7358, 3.1604));
function createMarker(markerID)
{
	new Ajax.Request('http://www.raumkurve.net/parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'elementID='+markerID, onSuccess: function(transport)
	{		
		var myJSON = transport.responseText.evalJSON('true');
		var icon = myJSON.icon;
		var letter = myJSON.letter;
		var latitude = myJSON.latitude;
		var longitude =	myJSON.longitude;
		var parkIcon = new GIcon(baseIcon);
		parkIcon.image = 'http://www.raumkurve.net/parkmap/'+icon+'.gif';

		// Set up our GMarkerOptions object
		var markerOptions = { icon:parkIcon };
		var point = new GLatLng(latitude,longitude);

		marker[markerID] = new GMarker(point,markerOptions);
		var clicker;

		GEvent.addListener(marker[markerID], "mouseover", function()
		{
			marker[markerID].openInfoWindowHtml("<strong>"+letter+"</strong><br><br>Click on Marker<br>for more Informations.");
			clicker = 0;
		});

		GEvent.addListener(marker[markerID], "mouseout", function()
		{
			if(clicker == 0)
			{	
				map.closeInfoWindow();
			}
		});

		GEvent.addListener(marker[markerID], "click", function()
		{
			marker[markerID].openInfoWindowHtml("<script>\nfunction zoomin(){\nmap.closeInfoWindow();\nzoom = map.getZoom();\nif(zoom < 14){\nmap.savePosition();\nmap.setCenter(new GLatLng("+latitude+","+longitude+"), 16);\n}\nelse\n{\nmap.returnToSavedPosition();\n}\n}\n</script><strong>"+letter+"</strong><br><br><a href=\"javascript:zoomin()\" class=\"linkblau\">Zoom In/Out</a><br><br><a href=\"http://www.raumkurve.net/parkmap/errormail.php?ID="+letter+"\" target=\"_blank\">Report error</a>");
			clicker = 1;
			/*zoom = map.getZoom();
			if(zoom < 14)
			{
				map.savePosition();
				map.setCenter(point, 16);
			}
						
			else
			{
				map.returnToSavedPosition();
			}*/

		});
	
		map.addOverlay(marker[markerID]);
	}});	
	
}

function createMultiMarker(markerID,icon,letter,latitude,longitude)
{
	var parkIcon = new GIcon(baseIcon);
	parkIcon.image = 'http://www.raumkurve.net/parkmap/'+icon+'.gif';

	// Set up our GMarkerOptions object
	var markerOptions = { icon:parkIcon };
	var point = new GLatLng(latitude,longitude);

	marker[markerID] = new GMarker(point,markerOptions);
	var clicker;

		GEvent.addListener(marker[markerID], "mouseover", function()
		{
			marker[markerID].openInfoWindowHtml("<strong>"+letter+"</strong><br><br>Click on Marker<br>for more Informations.");
			clicker = 0;
		});

		GEvent.addListener(marker[markerID], "mouseout", function()
		{
			if(clicker == 0)
			{	
				map.closeInfoWindow();
			}
		});

		GEvent.addListener(marker[markerID], "click", function()
		{
			marker[markerID].openInfoWindowHtml("<script>\nfunction zoomin(){\nmap.closeInfoWindow();\nzoom = map.getZoom();\nif(zoom < 14){\nmap.savePosition();\nmap.setCenter(new GLatLng("+latitude+","+longitude+"), 16);\n}\nelse\n{\nmap.returnToSavedPosition();\n}\n}\n</script><strong>"+letter+"</strong><br><br><a href=\"javascript:zoomin()\" class=\"linkblau\">Zoom In/Out</a><br><br><a href=\"http://www.raumkurve.net/parkmap/errormail.php?ID="+letter+"\" target=\"_blank\">Report error</a>");
			clicker = 1;
			/*zoom = map.getZoom();
			if(zoom < 14)
			{
				map.savePosition();
				map.setCenter(point, 16);
			}
				
			else
			{
				map.returnToSavedPosition();
			}*/

		});
	
	map.addOverlay(marker[markerID]);	
}

function newCenter(latitude,longitude)
{
	map.setCenter(new GLatLng(latitude,longitude), 16);
}


function toggleMenuItem(elementID)
{
	$(elementID).toggle();
	if($(elementID).visible())
	{
		$(elementID + 'pic').writeAttribute({src : 'parkmap/minus.png'});
	}
 	else
	{
		$(elementID + 'pic').writeAttribute({src : 'parkmap/plus.png'});		
	}
}

function expandType(type)
{	
	var select;

	if(!$(type + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		select = 1;
	}

	else
	{
		select = 0;
	}

	new Ajax.Updater(type, 'parkmap/parkkartemysql.php', {encoding:'ISO-8859-1',postBody:'type='+type+'&select='+select});
}

function expandContinent(type,continent)
{	
	var select;

	if(!$(type+continent + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		select = 1;
	}

	else
	{
		select = 0;
	}

	new Ajax.Updater(type+continent, 'parkmap/parkkartemysql.php', {encoding:'ISO-8859-1',postBody:'type='+type+'&continent='+continent+'&select='+select});
}

function expandCountry(type,continent,country)
{	
	var select;

	if(!$(type+continent+country + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		select = 1;
	}

	else
	{
		select = 0;
	}

	new Ajax.Updater(type+continent+country, 'parkmap/parkkartemysql.php', {encoding:'ISO-8859-1',postBody:'type='+type+'&continent='+continent+'&country='+country+'&select='+select});
}

function expandState(type,continent,country,state)
{	
	var select;

	if(!$(type+continent+country+state + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		select = 1;
	}

	else
	{
		select = 0;
	}
	new Ajax.Updater(type+continent+country+state, 'parkmap/parkkartemysql.php', {encoding:'ISO-8859-1',postBody:'type='+type+'&continent='+continent+'&country='+country+'&state='+state+'&select='+select});
}

function selectPark(type,continent,country,state,ID)
{	

	var checkID;
	if(!$(ID + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		$(ID + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type+continent+country+state + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type+continent + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		marker[ID].hide();
	}
 	else
	{
		$(ID + 'sel').writeAttribute({src : 'parkmap/selected.png'});
		
		if(marker[ID] == undefined)
		{
			checkID = ID;
			createMarker(ID);
		}
		else
		{
			checkID = '';
			marker[ID].show();	
		}

		if(country != 'USA')
		{
			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country, onSuccess: function(transport)
			{
				var myJSONc = transport.responseText.evalJSON('true');
				var sizec = myJSONc.size;
				var IDarrc = myJSONc.ID;
				var checkc = true;
			
				for (var i = 0; i < sizec; i++)
				{
					if(IDarrc[i] != checkID)
					{
						if(marker[IDarrc[i]].isHidden())
						{
							checkc = false;
							break;
						}
					}
				}

				if(checkc)
				{
					$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/selected.png'});	

					new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent, onSuccess: function(transport)
					{
						var myJSONd = transport.responseText.evalJSON('true');
						var sized = myJSONd.size;
						var IDarrd = myJSONd.country;
						var checkd = true;

						for (var j = 0; j < sized; j++)
						{
							if($(type+continent+IDarrd[j] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
							{
								checkd = false;
								break;
							}
						}

						if(checkd)
						{
							$(type+continent + 'sel').writeAttribute({src : 'parkmap/selected.png'});

							new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
							{
								var myJSONe = transport.responseText.evalJSON('true');
								var sizee = myJSONe.size;
								var IDarre = myJSONe.continent;
								var checke = true;

								for (var k = 0; k < sizee; k++)
								{
									if($(type+IDarre[k] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
									{
										checke = false;
										break;
									}
								}
	
								if(checke)
								{
									$(type + 'sel').writeAttribute({src : 'parkmap/selected.png'});
								}
							
							}});
								
							
						}
					}});
				}
			}});
		}

		else
		{
			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&state='+state, onSuccess: function(transport)
			{
				var myJSONb = transport.responseText.evalJSON('true');
				var sizeb = myJSONb.size;
				var IDarrb = myJSONb.ID;
				var checkb = true;
			
				for (var h = 0; h < sizeb; h++)
				{
					if(IDarrb[h] != checkID)
					{
						if(marker[IDarrb[h]].isHidden())
						{
							checkb = false;
							break;
						}
					}
				}

				if(checkb)
				{

					$(type+continent+country+state + 'sel').writeAttribute({src : 'parkmap/selected.png'});	

	
					new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country, onSuccess: function(transport)
					{
						var myJSONc = transport.responseText.evalJSON('true');
						var sizec = myJSONc.size;
						var IDarrc = myJSONc.state;
						var checkc = true;

						for (var i = 0; i < sizec; i++)
						{
							if($(type+continent+country+IDarrc[i] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
							{
								checkc = false;
								break;
							}
						}

						if(checkc)
						{
							$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/selected.png'});

							new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent, onSuccess: function(transport)
							{
								var myJSONd = transport.responseText.evalJSON('true');
								var sized = myJSONd.size;
								var IDarrd = myJSONd.country;
								var checkd = true;

								for (var j = 0; j < sized; j++)
								{
									if($(type+continent+IDarrd[j] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
									{
										checkd = false;
										break;
									}
								}

								if(checkd)
								{
									$(type+continent + 'sel').writeAttribute({src : 'parkmap/selected.png'});

									new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
									{
										var myJSONe = transport.responseText.evalJSON('true');
										var sizee = myJSONe.size;
										var IDarre = myJSONe.continent;
										var checke = true;

										for (var k = 0; k < sizee; k++)
										{
											if($(type+IDarre[k] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
											{
												checke = false;
												break;
											}
										}
	
										if(checke)
										{
											$(type + 'sel').writeAttribute({src : 'parkmap/selected.png'});
										}
							
									}});
								}
							}});
	
						}
					}});
	
				}
			}});
		}
	}
}


function selectState(type,continent,country,state)
{	
	if(!$(type+continent+country+state + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&state='+state, onSuccess: function(transport)
		{
			var myJSONa = transport.responseText.evalJSON('true');
			var sizea = myJSONa.size;
			var IDarra = myJSONa.ID;

			for (var h = 0; h < sizea; h++)
			{
				if(marker[IDarra[h]] == undefined)
				{

				}
				else
				{
					marker[IDarra[h]].hide();	
				}
				if($(IDarra[h] + 'sel'))
				{
					$(IDarra[h] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
			
				}
			}		
		}});

		$(type+continent+country+state + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type+continent + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
	}
 	else
	{
		$(type+continent+country+state + 'sel').writeAttribute({src : 'parkmap/selected.png'});
		
		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&state='+state, onSuccess: function(transport)
		{
			var myJSONc = transport.responseText.evalJSON('true');
			var sizec = myJSONc.size;
			var IDarrc = myJSONc.ID;
			var typearrc = myJSONc.type;
			var namearrc = myJSONc.name;
			var latitudearrc = myJSONc.latitude;
			var longitudearrc = myJSONc.longitude;
			
			for (var i = 0; i < sizec; i++)
			{
				if(marker[IDarrc[i]] == undefined)
				{
					createMultiMarker(IDarrc[i],typearrc[i],namearrc[i],latitudearrc[i],longitudearrc[i]);
				}
				else
				{
					marker[IDarrc[i]].show();	
				}

				if($(IDarrc[i] + 'sel'))
				{
					$(IDarrc[i] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
				}
			}

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country, onSuccess: function(transport)
			{
				var myJSONd = transport.responseText.evalJSON('true');
				var sized = myJSONd.size;
				var IDarrd = myJSONd.state;
				var checkd = true;
		
				for (var j = 0; j < sized; j++)
				{
					if($(type+continent+country+IDarrd[j] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
					{
						checkd = false;
						break;
					}
				}
		
				if(checkd)
				{
					$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/selected.png'});

					new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent, onSuccess: function(transport)
					{
						var myJSONe = transport.responseText.evalJSON('true');
						var sizee = myJSONe.size;
						var IDarre = myJSONe.country;
						var checke = true;

						for (var k = 0; k < sizee; k++)
						{
							if($(type+continent+IDarre[k] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
							{
								checke = false;
								break;
							}
						}
	
						if(checke)
						{
							$(type+continent + 'sel').writeAttribute({src : 'parkmap/selected.png'});

							new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
							{
								var myJSONf = transport.responseText.evalJSON('true');
								var sizef = myJSONf.size;
								var IDarrf = myJSONf.continent;
								var checkf = true;

								for (var l = 0; l < sizef; l++)
								{
									if($(type+IDarrf[l] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
									{
										checkf = false;
										break;
									}
								}
	
								if(checkf)
								{
									$(type + 'sel').writeAttribute({src : 'parkmap/selected.png'});
								}
							
							}});
						}
						
					}});
								
							
				}
			}});
			
		}});	
	}
}


function selectCountry(type,continent,country)
{	
	if(country != 'USA')
	{
		if(!$(type+continent+country + 'sel').readAttribute('src').include('parkmap/deselected.png'))
		{
			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country, onSuccess: function(transport)
			{
				var myJSONa = transport.responseText.evalJSON('true');
				var sizea = myJSONa.size;
				var IDarra = myJSONa.ID;

				for (var h = 0; h < sizea; h++)
				{
					if(marker[IDarra[h]] == undefined)
					{

					}
					else
					{
						marker[IDarra[h]].hide();	
					}
					
					if($(IDarra[h] + 'sel'))
					{
						$(IDarra[h] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				
					}
				}
			}});

			$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
			$(type+continent + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
			$(type + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		}
 		else
		{
			$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/selected.png'});
		
			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country, onSuccess: function(transport)
			{
				var myJSONc = transport.responseText.evalJSON('true');
				var sizec = myJSONc.size;
				var IDarrc = myJSONc.ID;
				var typearrc = myJSONc.type;
				var namearrc = myJSONc.name;
				var latitudearrc = myJSONc.latitude;
				var longitudearrc = myJSONc.longitude;
			
				for (var i = 0; i < sizec; i++)
				{
					if(marker[IDarrc[i]] == undefined)
					{
						createMultiMarker(IDarrc[i],typearrc[i],namearrc[i],latitudearrc[i],longitudearrc[i]);
					}
					else
					{
						marker[IDarrc[i]].show();	
					}

					if($(IDarrc[i] + 'sel'))
					{
						$(IDarrc[i] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
				
					}
				}

				new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent, onSuccess: function(transport)
				{
					var myJSONd = transport.responseText.evalJSON('true');
					var sized = myJSONd.size;
					var IDarrd = myJSONd.country;
					var checkd = true;
		
					for (var j = 0; j < sized; j++)
					{
						if($(type+continent+IDarrd[j] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
						{
							checkd = false;
							break;
						}
					}
		
					if(checkd)
					{
						$(type+continent + 'sel').writeAttribute({src : 'parkmap/selected.png'});

						new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
						{
							var myJSONf = transport.responseText.evalJSON('true');
							var sizef = myJSONf.size;
							var IDarrf = myJSONf.continent;
							var checkf = true;

							for (var l = 0; l < sizef; l++)
							{
								if($(type+IDarrf[l] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
								{
									checkf = false;
									break;
								}
							}
	
							if(checkf)
							{
								$(type + 'sel').writeAttribute({src : 'parkmap/selected.png'});
							}
						}});
								
					}
				}});
			
			}});	
		}
	}

	else
	{
		if(!$(type+continent+country + 'sel').readAttribute('src').include('parkmap/deselected.png'))
		{
			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country, onSuccess: function(transport)
			{
				var myJSONa = transport.responseText.evalJSON('true');
				var sizea = myJSONa.size;
				var IDarra = myJSONa.state;

				for (var h = 0; h < sizea; h++)
				{
					$(type+continent+country+IDarra[h] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}	
			}});

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country+'&request=ID', onSuccess: function(transport)
			{
				var myJSONb = transport.responseText.evalJSON('true');
				var sizeb = myJSONb.size;
				var IDarrb = myJSONb.ID;

				for (var i = 0; i < sizeb; i++)
				{
					if(marker[IDarrb[i]] == undefined)
					{

					}
					else
					{
						marker[IDarrb[i]].hide();	
					}

					if($(IDarrb[i] + 'sel'))
					{
						$(IDarrb[i] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
					}
				}	
			}});

			$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
			$(type+continent + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
			$(type + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		}
 		else
		{
			$(type+continent+country + 'sel').writeAttribute({src : 'parkmap/selected.png'});
		
			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country+'&request=ID', onSuccess: function(transport)
			{
				var myJSONc = transport.responseText.evalJSON('true');
				var sizec = myJSONc.size;
				var IDarrc = myJSONc.ID;
				var typearrc = myJSONc.type;
				var namearrc = myJSONc.name;
				var latitudearrc = myJSONc.latitude;
				var longitudearrc = myJSONc.longitude;
			
				for (var i = 0; i < sizec; i++)
				{
					if(marker[IDarrc[i]] == undefined)
					{
						createMultiMarker(IDarrc[i],typearrc[i],namearrc[i],latitudearrc[i],longitudearrc[i]);
					}
					else
					{
						marker[IDarrc[i]].show();	
					}
					
					if($(IDarrc[i] + 'sel'))
					{
						$(IDarrc[i] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
					}
				}

				new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&country='+country, onSuccess: function(transport)
				{
					var myJSONb = transport.responseText.evalJSON('true');
					var sizeb = myJSONb.size;
					var IDarrb = myJSONb.state;
			
					for (var h = 0; h < sizeb; h++)
					{
						if($(type+continent+country+IDarrb[h] + 'sel'))
						{
							$(type+continent+country+IDarrb[h] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
						}
					}
				}});

				new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent, onSuccess: function(transport)
				{
					var myJSONd = transport.responseText.evalJSON('true');
					var sized = myJSONd.size;
					var IDarrd = myJSONd.country;
					var checkd = true;
		
					for (var j = 0; j < sized; j++)
					{
						if($(type+continent+IDarrd[j] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
						{
						checkd = false;
						break;
						}
					}
		
					if(checkd)
					{
						$(type+continent + 'sel').writeAttribute({src : 'parkmap/selected.png'});

						new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
						{
							var myJSONf = transport.responseText.evalJSON('true');
							var sizef = myJSONf.size;
							var IDarrf = myJSONf.continent;
							var checkf = true;

							for (var l = 0; l < sizef; l++)
							{
								if($(type+IDarrf[l] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
								{
									checkf = false;
									break;
								}
							}
	
							if(checkf)
							{
								$(type + 'sel').writeAttribute({src : 'parkmap/selected.png'});
							}
						}});
								
					}
				}});
			}});	
		}
	}
}

function selectContinent(type,continent)
{	
	if(!$(type+continent + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent, onSuccess: function(transport)
		{
			var myJSONa = transport.responseText.evalJSON('true');
			var sizea = myJSONa.size;
			var IDarra = myJSONa.country;

			for (var h = 0; h < sizea; h++)
			{
				if($(type+continent+IDarra[h] + 'sel'))
				{
					$(type+continent+IDarra[h] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}
			}
		}});

		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent+'&request=state', onSuccess: function(transport)
		{
			var myJSONb = transport.responseText.evalJSON('true');
			var sizeb = myJSONb.size;
			var IDarrb = myJSONb.state;

			for (var i = 0; i < sizeb; i++)
			{
				if($(type+continent+'USA'+IDarrb[i] + 'sel'))
				{
					$(type+continent+'USA'+IDarrb[i] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}
			}
		}});

		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent+'&request=ID', onSuccess: function(transport)
		{
			var myJSONc= transport.responseText.evalJSON('true');
			var sizec = myJSONc.size;
			var IDarrc = myJSONc.ID;
			
			for (var j = 0; j < sizec; j++)
			{
				if(marker[IDarrc[j]] == undefined)
				{

				}
				else
				{
					marker[IDarrc[j]].hide();	
				}

				if($(IDarrc[j] + 'sel'))
				{
					$(IDarrc[j] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}
			}	
		}});

		$(type+continent + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
		$(type + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
	}
 	else
	{
		$(type+continent + 'sel').writeAttribute({src : 'parkmap/selected.png'});
		
		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent+'&request=ID', onSuccess: function(transport)
		{
			var myJSONc = transport.responseText.evalJSON('true');
			var sizec = myJSONc.size;
			var IDarrc = myJSONc.ID;
			var typearrc = myJSONc.type;
			var namearrc = myJSONc.name;
			var latitudearrc = myJSONc.latitude;
			var longitudearrc = myJSONc.longitude;
			
			for (var i = 0; i < sizec; i++)
			{
				if(marker[IDarrc[i]] == undefined)
				{
					createMultiMarker(IDarrc[i],typearrc[i],namearrc[i],latitudearrc[i],longitudearrc[i]);
				}
				else
				{
					marker[IDarrc[i]].show();	
				}
					
				if($(IDarrc[i] + 'sel'))
				{
					$(IDarrc[i] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
				}
			}

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent, onSuccess: function(transport)
			{
				var myJSONa = transport.responseText.evalJSON('true');
				var sizea = myJSONa.size;
				var IDarra = myJSONa.country;
			
				for (var h = 0; h < sizea; h++)
				{
					if($(type+continent+IDarra[h] + 'sel'))
					{
						$(type+continent+IDarra[h] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
					}
				}
			}});

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&continent='+continent+'&request=state', onSuccess: function(transport)
			{
				var myJSONb = transport.responseText.evalJSON('true');
				var sizeb = myJSONb.size;
				var IDarrb = myJSONb.state;
			
				for (var k = 0; k < sizeb; k++)
				{
					if($(type+continent+'USA'+IDarrb[k] + 'sel'))
					{
						$(type+continent+'USA'+IDarrb[k] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
					}
				}
			}});

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
			{
				var myJSONf = transport.responseText.evalJSON('true');
				var sizef = myJSONf.size;
				var IDarrf = myJSONf.continent;
				var checkf = true;

				for (var l = 0; l < sizef; l++)
				{
					if($(type+IDarrf[l] + 'sel').readAttribute('src').include('parkmap/deselected.png'))
					{
						checkf = false;
						break;
					}
				}
	
				if(checkf)
				{
					$(type + 'sel').writeAttribute({src : 'parkmap/selected.png'});
				}
			}});			
			
		}});	
	}
}

function selectType(type)
{	
	if(!$(type + 'sel').readAttribute('src').include('parkmap/deselected.png'))
	{
		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
		{
			var myJSONa = transport.responseText.evalJSON('true');
			var sizea = myJSONa.size;
			var IDarra = myJSONa.continent;

			for (var h = 0; h < sizea; h++)
			{
				if($(type+IDarra[h] + 'sel'))
				{
					$(type+IDarra[h] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}
			}
		}});

		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&request=country', onSuccess: function(transport)
		{
			var myJSONb = transport.responseText.evalJSON('true');
			var sizeb = myJSONb.size;
			var IDarrb = myJSONb.country;
			var continentarrb = myJSONb.continent;

			for (var i = 0; i < sizeb; i++)
			{
				if($(type+continentarrb[i]+IDarrb[i] + 'sel'))
				{
					$(type+continentarrb[i]+IDarrb[i] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}
			}
		}});

		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&request=state', onSuccess: function(transport)
		{
			var myJSONd = transport.responseText.evalJSON('true');
			var sized = myJSONd.size;
			var IDarrd = myJSONd.state;

			for (var k = 0; k < sized; k++)
			{
				if($(type+'North America'+'USA'+IDarrd[k] + 'sel'))
				{
					$(type+'North America'+'USA'+IDarrd[k] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}
			}
		}});

		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&request=ID', onSuccess: function(transport)
		{
			var myJSONc= transport.responseText.evalJSON('true');
			var sizec = myJSONc.size;
			var IDarrc = myJSONc.ID;
			
			for (var j = 0; j < sizec; j++)
			{
				if(marker[IDarrc[j]] == undefined)
				{

				}
				else
				{
					marker[IDarrc[j]].hide();	
				}

				if($(IDarrc[j] + 'sel'))
				{
					$(IDarrc[j] + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
				}
			}	
		}});

		$(type + 'sel').writeAttribute({src : 'parkmap/deselected.png'});
	}
 	else
	{
		$(type+ 'sel').writeAttribute({src : 'parkmap/selected.png'});
		
		new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&request=ID', onSuccess: function(transport)
		{
			var myJSONc = transport.responseText.evalJSON('true');
			var sizec = myJSONc.size;
			var IDarrc = myJSONc.ID;
			var typearrc = myJSONc.type;
			var namearrc = myJSONc.name;
			var latitudearrc = myJSONc.latitude;
			var longitudearrc = myJSONc.longitude;
			
			for (var i = 0; i < sizec; i++)
			{
				if(marker[IDarrc[i]] == undefined)
				{
					createMultiMarker(IDarrc[i],typearrc[i],namearrc[i],latitudearrc[i],longitudearrc[i]);
				}
				else
				{
					marker[IDarrc[i]].show();	
				}
					
				if($(IDarrc[i] + 'sel'))
				{
					$(IDarrc[i] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
				}
			}

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type, onSuccess: function(transport)
		{
			var myJSONa = transport.responseText.evalJSON('true');
			var sizea = myJSONa.size;
			var IDarra = myJSONa.continent;

			for (var h = 0; h < sizea; h++)
			{
				if($(type+IDarra[h] + 'sel'))
				{
					$(type+IDarra[h] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
				}
			}
		}});

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&request=country', onSuccess: function(transport)
			{
				var myJSONb = transport.responseText.evalJSON('true');
				var sizeb = myJSONb.size;
				var IDarrb = myJSONb.country;
				var continentarrb = myJSONb.continent;
			
				for (var i = 0; i < sizeb; i++)
				{
					if($(type+continentarrb[i]+IDarrb[i] + 'sel'))
					{
						$(type+continentarrb[i]+IDarrb[i] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
					}
				}
			}});

			new Ajax.Request('parkmap/parkkartejs.php',{encoding: 'ISO-8859-1', postBody: 'type='+type+'&request=state', onSuccess: function(transport)
			{
				var myJSONc = transport.responseText.evalJSON('true');
				var sizec = myJSONc.size;
				var IDarrc = myJSONc.state;
			
				for (var k = 0; k < sizec; k++)
				{
					if($(type+'North America'+'USA'+IDarrc[k] + 'sel'))
					{
						$(type+'North America'+'USA'+IDarrc[k] + 'sel').writeAttribute({src : 'parkmap/selected.png'});
					}
				}
			}});
		}});	
	}
}

var locations = new Array();
var suche = new Array();

function area()
{
	for (var i = 0; i < suche.length; i++)
	{
		map.removeOverlay(suche[i]);	
	}

	var oben = map.getBounds().getSouthWest().lat();
	var links = map.getBounds().getSouthWest().lng();
	var unten = map.getBounds().getNorthEast().lat();
	var rechts = map.getBounds().getNorthEast().lng();

	//new Ajax.Updater('ergebnis', 'searchajax.php', {encoding:'ISO-8859-1',method:'post',parameters:'oben=' + oben + '&unten=' + unten + '&links=' + links + '&rechts=' + rechts});

	new Ajax.Request('http://www.raumkurve.net/parkmap/parkkartejs.php',{encoding: 'ISO-8859-1',parameters:'oben=' + oben + '&unten=' + unten + '&links=' + links + '&rechts=' + rechts,onSuccess: function(transport)
	{
		var myJSONc = transport.responseText.evalJSON('true');
		var sizec = myJSONc.size;
		var typearrc = myJSONc.type;
		var namearrc = myJSONc.name;
		var latitudearrc = myJSONc.latitude;
		var longitudearrc = myJSONc.longitude;

		for (var i = 0; i < sizec; i++)
		{
			createSearchMarker(i,typearrc[i],namearrc[i],latitudearrc[i],longitudearrc[i]);
		}
	}});
}

function look()
{	
	for (var i = 0; i < suche.length; i++)
	{
		map.removeOverlay(suche[i]);	
	}

	for (var i = 0; i < locations.length; i++)
	{
		map.removeOverlay(locations[i]);	
	}
	

	var str = $('suchfeld').value;

	// Sicherheit
	str = str.stripScripts().stripTags();
	str = str.replace(/[^ÄÃÁÀÉÈÎÕÖÜäöüãõáàéèîçß\%\w\.\-\_\+\?\!\$\@\&\s\£\=\§\°\*]/,"");
	$('suchfeld').value = str;

	var reg = new RegExp("°");

	if(reg.test(str))
	{

		for (var i = 0; i < locations.length; i++)
		{
			map.removeOverlay(locations[i]);	
		}

		str = str.replace(/\°/,'');
		var geocoder = new GClientGeocoder();
		geocoder.getLocations(str,function(response)
		{
			if (!response || response.Status.code != 200)
			{
        			$('ergebnis').update('<strong>Kein Suchergebnis</strong>');
      			}
			else
			{	
				var bounds = new GLatLngBounds();
				var searchres;
				
				if(response.Placemark.length > 1)
				{
					searchres = '<strong>Meinten Sie:</strong><ul>';
				}
				else
				{
					searchres = '<strong>Suchergebnis:</strong><ul>';
				}

				for (var i = 0; i < response.Placemark.length; i++)
				{
					var place = response.Placemark[i];
        				createSearchMarker(i,'location',place.address,place.Point.coordinates[1],place.Point.coordinates[0]);
					bounds.extend(new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]));

					searchres = searchres + '<li id="location' + i +'" class="lisearch"><img id="location' + i + 'sel" class="keinrahmen spaceright sel" src="http://www.raumkurve.net/parkmap/selected.png"/><div class="treetext"><a href="javascript:newCenter(' + place.Point.coordinates[1] + ',' + place.Point.coordinates[0] + ')">' + place.address + '</a></div></li>';

				}

				searchres = searchres + '<ul>';

				$('ergebnis').update(searchres);

				if(response.Placemark.length == 1)
				{
					map.setCenter(bounds.getCenter(),8);
				}
				else
				{
					var zoomlevel = map.getBoundsZoomLevel(bounds);

					if(zoomlevel > 1)
					{
						zoomlevel--;
					}

					map.setCenter(bounds.getCenter(),zoomlevel);
				}
			}	
		})
		
	}
	else
	{
		new Ajax.Updater('ergebnis', 'http://www.raumkurve.net/parkmap/searchajax.php', {encoding:'ISO-8859-1',method:'post',parameters:$('formtab').serialize(this)});

		new Ajax.Request('http://www.raumkurve.net/parkmap/parkkartejs.php',{encoding: 'ISO-8859-1',parameters:$('formtab').serialize(this),onSuccess: function(transport)
		{
			var myJSONc = transport.responseText.evalJSON('true');
			var sizec = myJSONc.size;
			var typearrc = myJSONc.type;
			var namearrc = myJSONc.name;
			var latitudearrc = myJSONc.latitude;
			var longitudearrc = myJSONc.longitude;

			var bounds = new GLatLngBounds();

			for (var i = 0; i < sizec; i++)
			{
				createSearchMarker(i,typearrc[i],namearrc[i],latitudearrc[i],longitudearrc[i]);
				bounds.extend(new GLatLng(latitudearrc[i],longitudearrc[i]));
			}
			if(sizec == 1)
			{
				map.setCenter(bounds.getCenter(),16);
			}
			else
			{
				var zoomlevel = map.getBoundsZoomLevel(bounds);

				if(zoomlevel > 1)
				{
					zoomlevel--;
				}

				map.setCenter(bounds.getCenter(),zoomlevel);
			}
		}});
	}
}

function createSearchMarker(markerID,icon,letter,latitude,longitude)
{
	var parkIcon = new GIcon(baseIcon);
	parkIcon.image = 'http://www.raumkurve.net/parkmap/'+icon+'.gif';

	// Set up our GMarkerOptions object
	var markerOptions = { icon:parkIcon };
	var point = new GLatLng(latitude,longitude);
	
	if(icon != 'location')
	{
		var clicker;
		suche[markerID] = new GMarker(point,markerOptions);
		
		GEvent.addListener(suche[markerID], "mouseover", function()
		{
			suche[markerID].openInfoWindowHtml("<strong>"+letter+"</strong><br><br>Click on Marker<br>for more Informations.");
			clicker = 0;
		});

		GEvent.addListener(suche[markerID], "mouseout", function()
		{
			if(clicker == 0)
			{	
				map.closeInfoWindow();
			}
		});

		GEvent.addListener(suche[markerID], "click", function()
		{
			suche[markerID].openInfoWindowHtml("<script>\nfunction zoomin(){\nmap.closeInfoWindow();\nzoom = map.getZoom();\nif(zoom < 14){\nmap.savePosition();\nmap.setCenter(new GLatLng("+latitude+","+longitude+"), 16);\n}\nelse\n{\nmap.returnToSavedPosition();\n}\n}\n</script><strong>"+letter+"</strong><br><br><a href=\"javascript:zoomin()\" class=\"linkblau\">Zoom In/Out</a><br><br><a href=\"http://www.raumkurve.net/parkmap/errormail.php?ID="+letter+"\" target=\"_blank\">Report error</a>");
			clicker = 1;
			/*zoom = map.getZoom();
			if(zoom < 14)
			{
				map.savePosition();
				map.setCenter(point, 16);
			}
				
			else
			{
				map.returnToSavedPosition();
			}*/

		});
	
		map.addOverlay(suche[markerID]);
	}
	else
	{
		locations[markerID] = new GMarker(point,markerOptions);
	
		GEvent.addListener(locations[markerID], "mouseover", function()
		{
			locations[markerID].openInfoWindowHtml(letter);
		});

		GEvent.addListener(locations[markerID], "mouseout", function()
		{
			map.closeInfoWindow();
		});

		GEvent.addListener(locations[markerID], "click", function()
		{
			zoom = map.getZoom();
			if(zoom < 14)
			{
				map.savePosition();
				map.setCenter(point, 16);
			}
				
			else
			{
				map.returnToSavedPosition();
			}

		});
	
		map.addOverlay(locations[markerID]);
	}
}

function setLink()
{
	var latitudenew = map.getCenter().lat();
	var longitudenew = map.getCenter().lng();
	var zoomnew = map.getZoom();

	$('link').firstChild.setAttribute('href', 'http://www.raumkurve.net/index.php?latitude='+latitudenew+'&longitude='+longitudenew+'&zoom='+zoomnew); 
}
