			var page_footer = "";
			var zustand = location.hash;
			
			// function to replace FOOTER in the div 'page_content'.
			dynamic_content = function ()
			{
				document.getElementById(content).innerHTML = document.getElementById(content).innerHTML.replace("{REPLACE_FOOTER}", page_footer);
			};			
			
			content_link = function (href)
			{
				// Diese Funktion ist für das dynamische Nachladen der einzelnen Seiten zu benutzen. 
				// Für den Seiten aufruf ist die Funktion laden() zu nutzen.
				$.ajax(
				{
					type: "GET", url: footer, data: "", async: false,	success: function (msg)
					{
						// Geladenen Footer in globale Variable schreiben.
						page_footer = msg;
						// Inhalt der HTML-Seite (home.php)laden und in den DIV-Bereich "page_content" schreiben.
						$("#" + content).load(href,function ()
						{
							dynamic_content();
						}
						);
					}
				}					
				);
			};			
			
			$(document).ready(function ()
			{
				$("a").click(function (event)
				{
					// Inhalt der HTML-Seite laden und in den DIV-Bereich "page_content" schreiben.
					
					// Hash Location in der Browser-Zeile aktualisieren.
					var hash = $(this).attr("href");
					if (hash !== null)
					{
						location.hash = hash.substr(2,hash.length);	// Das "./" am anfang weg filtern.
					}
					$('#' + content).load($(this).attr("href"), function ()
					{
						dynamic_content();
					}
					);
					// normale HTML-Link weiterleitung nicht mehr ausführen.
					event.preventDefault();
				});
			});
			
			laden = function ()
			{
				// Diese Funktion ist nur für den ersten Seitenaufruf und -aktualisierung zu verwenden.
				// Das dynamische Nachladen ist mit der Funktion content_link() zu realisieren.
				if (zustand == "")
				{
					$.ajax(
					{
						type: "GET", url: footer, data: "", async: false,	success: function (msg)
						{
							// Geladenen Footer in globale Variable schreiben.
							page_footer = msg;
							// Inhalt der HTML-Seite (home.php)laden und in den DIV-Bereich "page_content" schreiben.
							$('#' + content).load(start,function ()
							{
								dynamic_content();
							}
							);
						}
					}					
					);
					location.hash = start;
				}
				// Dynamisch das Menü anpassen
				checkHash();
			};
			
			function ladeHash()
			{
				// Diese Funktion ermittelt den Hash der aktuelle Seite und gibt diesen zurück.
				var hash = location.hash;
				
				if (hash.indexOf("#") != -1)
				{
					hash = hash.substr(1,hash.length);	// Das "#" Symbol am anfang weg filtern.
				}
				
				return hash;
			}
			
			function checkHash()
			{
				var hash = ladeHash(); // Bezieht den aktuellen Hash.
				var stelle;
				var i = 0;
				var suche;
				content_link(hash);
				zustand = hash;
				if (hash.length > 1)
				{ 
					// Diese Schleife prüft ob es sich bei dem Hash um ein Unterverzeichnis handelt
					// Sollte es sich um ein Unterverzeichnis handeln, wird ermittelt um welches es sich handelt
					// Die Funktion change_selected_menu_item erhält nun einen Übergabeparameter und ändert das Menü dahingehend.
					stelle = hash.indexOf(".");
					hash = hash.substr(0,stelle);
					suche = hash.search("/");
					if ( suche != -1)
					{
						var laenge = unterverzeichnis.length-1;
						var split = hash.split("/");
						do
						{
							if ( split[0] == unterverzeichnis[i])
							{
								change_selected_menu_item(unterverzeichnis[i]); // In externer Datei sind alle anwählbaren Menüs festzulegen.
							}
							i = i + 1;
						}
						while( i < laenge);
					} 
					else
					{
						change_selected_menu_item(hash);
					}
				}				
				else //sollte kein hash angegeben sein
				{
					location.hash = location.hash + start;
				}
			}

			window.onload = function()
			{
				laden();
			};

			function hashchangehandler()
			{
				// Diese Funktion vergleicht den Hash aus der globalen Variable zustand mit dem Wert aus der Variablen newhash.
				// Sollte eine Abweichung vorliegen so wird die Funktion checkHash() auf gerufen.
				var newhash = location.hash;
				if (newhash != zustand)
				{
					checkHash();
				}
			};
