// ===========================================
// Steuernde Variablen
//

var UrlFrame = 'amulette-kelten.de';

var myOrdnerFrame = 'Chris\\Webs\\Amulette-der-Kelten\\';

var PfadLokalFrame = 'file:///C:/Eigene%20Dateien/Chris/Webs/Amulette-der-Kelten/';
var PfadOnlineFrame = 'http://www.amulette-kelten.de/';

var LokalerOrdnerName = 'Amulette-der-Kelten';
var FrameOrdnerFrame = 'Amulette-der-Kelten-Frameseiten';

var DomainnameHTMLFrame = 'Amulette-der-Kelten-';

var MenueStandardseiteFrame = 'Menue';

var LokalesBildverzeichnisFrame =
		'file:///C:/Eigene%20Dateien/Chris/Webs/Amulette-der-Kelten/Amulette-der-Kelten-Frameseiten/Bilder/Amulette-der-Kelten-';
var OnlineBildverzeichnisFrame =
		'http://www.amulette-kelten.de/Amulette-der-Kelten-Frameseiten/Bilder/Amulette-der-Kelten-';

var VerboteneZeichen1Frame = new Array(12);
VerboteneZeichen1Frame[0] = '?';
VerboteneZeichen1Frame[1] = '&';
VerboteneZeichen1Frame[2] = '=';
VerboteneZeichen1Frame[3] = '"';
VerboteneZeichen1Frame[4] = '/';
VerboteneZeichen1Frame[5] = '\\';
VerboteneZeichen1Frame[6] = String.fromCharCode(196);
VerboteneZeichen1Frame[7] = String.fromCharCode(214);
VerboteneZeichen1Frame[8] = String.fromCharCode(220);
VerboteneZeichen1Frame[9] = String.fromCharCode(228);
VerboteneZeichen1Frame[10] = String.fromCharCode(246);
VerboteneZeichen1Frame[11] = String.fromCharCode(252);
VerboteneZeichen1Frame[12] = String.fromCharCode(223);

var VerboteneZeichen2Frame = new Array(12);
VerboteneZeichen2Frame[0] = '-ques-';
VerboteneZeichen2Frame[1] = '-amp-';
VerboteneZeichen2Frame[2] = '-equ-';
VerboteneZeichen2Frame[3] = '-quot-';
VerboteneZeichen2Frame[4] = '-sla-';
VerboteneZeichen2Frame[5] = '-back-';
VerboteneZeichen2Frame[6] = '-Auml-';
VerboteneZeichen2Frame[7] = '-Ouml-';
VerboteneZeichen2Frame[8] = '-Uuml-';
VerboteneZeichen2Frame[9] = '-auml-';
VerboteneZeichen2Frame[10] = '-ouml-';
VerboteneZeichen2Frame[11] = '-uuml-';
VerboteneZeichen2Frame[12] = '-szlig-';

var togo = 'lo' + 'cation.';

//
// ===========================================

function Ersetzen(string, txt, by)
	{
	var strLength = string.length, txtLength = txt.length;

	if ((strLength == 0) || (txtLength == 0))
		{
		return string;
		}

	var i = string.indexOf(txt);

	if ((! i) && (txt != string.substring(0, (txtLength))))
		{
		return string;
		}

	if (i == - 1)
		{
		return string;
		}

	var newstr = string.substring(0, (i)) + by;

	if (i + txtLength < strLength)
		{
		newstr += Ersetzen(string.substring(i + txtLength, strLength), txt, by);
		}

	return newstr;
	}

function AufFrameUeberpruefen(ImageCode, Pge, StartseiteFrame, Titel, qury)
	{
	var i = 0;
	var FremdeSeite = 0;
	var FrameAufbauen = 0;

	// Feststellen, ob als Inhaltsseite eine Seite von einer anderen Domaene angezeigt werden soll
	// (z.B. eine Seite aus dem Google-Cache)
	if (self.location.protocol != 'file:' && self.location.hostname.indexOf(UrlFrame) == (- 1))
		{
		FremdeSeite = 1;
		}

	// Wenn noch kein Frameset existiert, muss dieses aufgebaut werden
	if (top == self)
		{
		FrameAufbauen = 1;
		}

	// Wenn die Inhaltsseite online vorliegt, der Frame aber lokal (kann bei
	// abgespeicherten Seiten vorkommen), erhaelt man einen "Permission denied"-Fehler
	// Den Fehler abfangen und in diesem Fall den Frame online nachladen
	if (FremdeSeite == 0)
		{
		try
			{
			parent.Test();
			}
		catch (e)
			{
			FremdeSeite = 1;
			FrameAufbauen = 1;
			}
		}

	// Wenn als Inhaltsseite eine Seite von dieser Domaene vorliegt, so koennen wir ueberpruefen, ob wir
	// uns im gewuenschten Frameset befinden, und ansonsten fremde Frames durch Neuaufbau sprengen
	// Diese Ueberpruefung ist bei einer Inhaltsseite von einer anderen Domaene nicht zulaessig, da
	// diese Seite nicht auf die Framehauptseite zugreifen darf

	if (FremdeSeite == 0)
		{
		if ((parent.Framename1 != ImageCode) && (parent.Framename2 != ImageCode))
			{
			FrameAufbauen = 1;
			}
		}

	// Wenn das Frameset noch fehlt, es jetzt aufbauen
	if (FrameAufbauen == 1)
		{
		// Pfad zur aktuellen Seite bestimmen
		var p = self.location.pathname;

		// Je nachdem, ob wir lokal oder online Arbeiten, den Pfad entsprechend verkuerzen
		if (self.location.protocol == 'file:')
			{
			// Das File befindet sich lokal und wurde umbenannt -> den Pfad auf den Filenamen verkuerzen
			// (IrgendeinOrdner/Seite.html -> Seite.html). Das 404-Skript kann dann versuchen, eine passende
			// online Seite fuer die umbenannte zu finden
			if (p.indexOf(DomainnameHTMLFrame) == (- 1) && p.indexOf('a-z') == (- 1) && p.indexOf('flash') == (- 1))
				{
				var Zeichen = '';
				var Gefunden = 0;

				for (i = p.length; i > 0; i--)
					{
					Zeichen = p.substring(i, i + 1);

					if ((Zeichen == '/' || Zeichen == '\\') && Gefunden == 0)
						{
						var f = p.substring((i + 1), p.length);
						Gefunden = 1;
						}
					}
				}

			else
				{
				// Das File befindet sich lokal, wurde aber nicht umbenannt -> Pfad entsprechend verkuerzen
				// file:///C:/IrgendeinOrdner/Amulette-der-Kelten-Produktseiten-01/Amulette-der-Kelten-Seite.html
				// -> Amulette-der-Kelten-Produktseiten-01/Amulette-der-Kelten-Seite.html
				var Verkuerzt = 0;

				if (p.indexOf('a-z') != (- 1))
					{
					var f = p.substring(p.indexOf('a-z'));
					Verkuerzt = 1;
					}

				if (p.indexOf('flash') != (- 1))
					{
					var f = p.substring(p.indexOf('flash'));
					Verkuerzt = 1;
					}

				if (Verkuerzt == 0)
					{
					// Zunächst den lokalen Ordner entfernen:
					// file:///C:/Amulette-der-Kelten/IrgendeinOrdner/Amulette-der-Kelten-Produktseiten-01/Amulette-der-Kelten-Seite.html
					// -> IrgendeinOrdner/Amulette-der-Kelten-Produktseiten-01/Amulette-der-Kelten-Seite.html
					var f = p;

					if (f.indexOf(LokalerOrdnerName) != (- 1))
						{
						f = f.substring(f.indexOf(LokalerOrdnerName) + LokalerOrdnerName.length + 1);
						}

					// Dann weitere Pfadteile entfernen
					// IrgendeinOrdner/Amulette-der-Kelten-Produktseiten-01/Amulette-der-Kelten-Seite.html
					// -> Amulette-der-Kelten-Produktseiten-01/Amulette-der-Kelten-Seite.html
					f = f.substring(f.indexOf(DomainnameHTMLFrame));
					}
				}
			}

		else
			{
			// Das File befindet sich online: /Pfad -> Pfad
			var f = p.substring(p.indexOf('/') + 1);
			}

		// Wenn wir als Inhaltsseite eine Seite von einer anderen Domaene anzeigen, so muss der Pfad um deren
		// Hostname ergaenzt werden -> 'Seite.html' wird zu 'http://AndereDomaene.com/Seite.html';
		if (self.location.protocol != 'file:' && self.location.hostname.indexOf(UrlFrame) == (- 1))
			{
			f = 'http:-sla--sla-' + self.location.hostname + '-sla-' + f;
			}

		// Die Seiten im FrameOrdnerFrame sollten nicht im Inhaltsframe dargestellt werden -> stattdessen Willkommen anzeigen
		// Erkannt werden diese Seite daran, dass Sie als Titel 'Willkommen' uebergeben
		if (Titel == 'Willkommen')
			{
			f = StartseiteFrame;
			}

		// Falls ein Get-String am Pfad haengt (z.B. bei Aufrufen aus dem Google-Cache)
		// und qury nicht übergeben wurde (ersetzt den Get-String), diesen wieder anhaengen

		if ((window.location.search.substring(1) != '') && (qury == ''))
			{
			f = f + '-ques-' + window.location.search.substring(1);

			// "Gefaehrliche" Zeichen gegen harmlose austauschen
			for (i = 0; i < VerboteneZeichen1Frame.length; i++)
				{
				f = Ersetzen(f, VerboteneZeichen1Frame[i], VerboteneZeichen2Frame[i]);
				}
			}

		// Falls qury uebergeben wurde, diesen als Get-String anhaengen und Transkodieren auf "Nein"
		// setzen, so dass die Zeichen von der Framemutterseite nicht rueckumgewandelt werden
		// Da keine Rückumwandlung stattfindet, diesmal nur in qury gefährliche Zeichen austauschen,
		// das Fragezeichen bleibt unkodiert
		if (qury != '')
			{
			for (i = 0; i < VerboteneZeichen1Frame.length; i++)
				{
				qury = Ersetzen(qury, VerboteneZeichen1Frame[i], VerboteneZeichen2Frame[i]);
				}

			f = f + '?' + qury + '&amp;Nein';
			}

		// Den kompletten Pfad zur enter-Seite konstruieren, dabei bei lokalen Seiten Backslash gegen Slash austauschen
		// Die Ueberpruefung auf lokal oder nicht wird ueber Test auf myOrdnerFrame durchgefuehrt, damit bei lokal
		// gespeicherten Seiten von Kunden enter online geholt wird
		if (p.indexOf(myOrdnerFrame) != (- 1))
			{
			f = Ersetzen(f, '-back-', '-sla-');
			var newURL = PfadLokalFrame + Pge + '?' + f;
			}

		else
			{
			var newURL = PfadOnlineFrame + Pge + '?' + f;
			}

		// Zur enter-Seite weiterleiten
		eval('top.' + togo + 'replac' + 'e(newURL)');
		return;
		}

	else
		{
		// Wenn das Frameset bereits steht, wird (wenn notwendig) nach der Inhaltsseite
		// jetzt die Titelseite hereingeladen. Die Ueberpruefung, ob eine andere Titelseite geladen werden muss,
		// ist nur zulaessig, wenn die Inhaltsseite nicht von einer anderen Domaene stammt,
		// ansonsten wird einfach der Standardtitel angezeigt
		if (FremdeSeite == 0)
			{
			// Der Titel 'Willkommen' wird nicht nachgeladen, da er Seiten markiert, die die Willkommenseite
			// als Inhalt anzeigen
			if (Titel != 'Willkommen')
				{
				if (Titel != parent['Titel'].Seite && Titel != 'leer')
					{
					if (self.location.pathname.indexOf(myOrdnerFrame) != (- 1))
						{
						// Die Ueberpruefung auf lokal oder nicht wird ueber Test auf myOrdnerFrame durchgefuehrt, damit bei lokal
						// gespeicherten Seiten von Kunden die Menueseite online geholt wird
						Titel = PfadLokalFrame + FrameOrdnerFrame + '/' + DomainnameHTMLFrame + Titel + '.html';
						}

					else
						{
						Titel = PfadOnlineFrame + FrameOrdnerFrame + '/' + DomainnameHTMLFrame + Titel + '.html';
						}

					// Die Titelseite laden
					eval('parent[\'Titel\'].' + togo + 'replac' + 'e(Titel)');
					return;
					}
				}
			}
		}
	}

function MenueLaden(ImageCode, Menue)
	{
	// Das Nachladen des Menues ist nur zulaessig, wenn die Inhaltsseite nicht von einer anderen Domaene
	// stammt, ansonsten wird das Standardmenue von der Framehauptseite geladen
	var FremdeSeite = 0;

	if (self.location.protocol != 'file:' && self.location.hostname.indexOf(UrlFrame) == (- 1))
		{
		FremdeSeite = 1;
		}

	if (FremdeSeite == 0)
		{
		try
			{
			parent.Test();
			}
		catch (e)
			{
			FremdeSeite = 1;
			}
		}

	if (FremdeSeite == 0)
		{
		// Feststellen, ob wir uns innerhalb des gewuenschten Framesets befinden
		if ((top != self) && ((parent.Framename1 == ImageCode) || (parent.Framename2 == ImageCode)))
			{
			// Wenn die Menueseite nicht vorgegeben ist, der linke Frame noch leer ist, der
			// Inhaltsframe aber bereits etwas anzeigt, dann die Menuestandardseite laden
			if (parent['Menue'].Seite == 'blank' && Menue == 'leer' && parent['Inhalt'].Seite != 'blank')
				{
				Menue = MenueStandardseiteFrame;
				}

			// Den kompletten Pfad zur Menueseite konstruieren
			// Die Ueberpruefung auf lokal oder nicht wird ueber Test auf myOrdnerFrame durchgefuehrt, damit bei lokal
			// gespeicherten Seiten von Kunden die Menueseite online geholt wird
			if (Menue != parent['Menue'].Seite && Menue != 'leer')
				{
				if (self.location.pathname.indexOf(myOrdnerFrame) != (- 1))
					{
					Menue = PfadLokalFrame + FrameOrdnerFrame + '/' + DomainnameHTMLFrame + Menue + '.html';
					}

				else
					{
					Menue = PfadOnlineFrame + FrameOrdnerFrame + '/' + DomainnameHTMLFrame + Menue + '.html';
					}

				// Die Menueseite laden
				eval('parent[\'Menue\'].' + togo + 'replac' + 'e(Menue)');
				return;
				}
			}
		}
	}

function Hervorhebungen(ImageCode, TitelHervorhebung, MenueHervorhebung)
	{
	// Das Nachladen der Hervorhebungen ist nur zulaessig, wenn die Inhaltsseite nicht von einer anderen Domaene
	// stammt, ansonsten gibt es keine Markierungen in den Menues
	var FremdeSeite = 0;

	if (self.location.protocol != 'file:' && self.location.hostname.indexOf(UrlFrame) == (- 1))
		{
		FremdeSeite = 1;
		}

	if (FremdeSeite == 0)
		{
		try
			{
			parent.Test();
			}
		catch (e)
			{
			FremdeSeite = 1;
			}
		}

	if (FremdeSeite == 0)
		{
		// Feststellen, ob wir uns innerhalb des gewuenschten Framesets befinden
		if ((top != self) && ((parent.Framename1 == ImageCode) || (parent.Framename2 == ImageCode)))
			{
			// Falls notwendig Titelschaltflaechen laden
			if ((parent['Titel'].Seite != 'blank') && (parent['Menue'].Seite != 'blank'))
				{
				if (parent['Titel'].SchaltflaechenTitelGeladen == 0)
					{
					parent['Titel'].SchaltflaechenTitel(ImageCode);
					}
				}

			// Falls notwendig Menueschaltflaechen laden
			if (parent['Menue'].Seite != 'blank')
				{
				if (parent['Menue'].SchaltflaechenMenueGeladen == 0)
					{
					parent['Menue'].SchaltflaechenMenue(ImageCode);
					}
				}

			// Die Ueberpruefung auf lokal oder nicht wird ueber Test auf myOrdnerFrame durchgefuehrt, damit bei lokal
			// gespeicherten Seiten von Kunden die Schaltflaechen online geholt werden
			if (self.location.pathname.indexOf(myOrdnerFrame) != (- 1))
				{
				var Basis = LokalesBildverzeichnisFrame;
				}

			else
				{
				var Basis = OnlineBildverzeichnisFrame;
				}

			// Wurde die Hervorhebungsroutine von der Menueseite aufgerufen ?
			// Dies ist beim ersten Aufbau des Frames notwendig, da die Menueseite als letzte geladen wird
			// In diesem Fall wird der Routine als Hervorhebung der Code "Menue" uebergeben und es werden
			// die Hervorhebungen der Inhaltsseite geladen (die sind bereits in TitelHervorhebung und
			// MenueHervorhebung gespeichert, da die Inhaltsseite diese Routine bereits aufgerufen hat)
			if ((TitelHervorhebung == 'Menue') && (MenueHervorhebung == 'Menue'))
				{
				TitelHervorhebung = parent.TitelHervorhebung;
				MenueHervorhebung = parent.MenueHervorhebung;
				}

			else
				{
				// Ansonsten werden die Hervorhebungen in der Framehauptseite gespeichert, damit sie beim
				// Aufruf durch die Menueseite geladen werden koennen
				parent.TitelHervorhebung = TitelHervorhebung;
				parent.MenueHervorhebung = MenueHervorhebung;
				}

			// Wenn eine neue Hervorhebung fuer das Menue oder den Titel uebergeben wurde,
			// die alte Hervorhebung loeschen und die neue speichern
			if ((TitelHervorhebung != 'leer') || (MenueHervorhebung != 'leer'))
				{
				// Die Hervorhebung darf nur zureckgesetzt werden, wenn die entsprechende Menue- bzw. Titelseite
				// und deren Schaltflaechen bereits geladen wurden
				if (parent['Titel'].Seite != 'blank')
					{
					if (parent['Titel'].SchaltflaechenTitelGeladen == 1)
						{
						if (parent['Titel'].TitelHervorhebungAlt != 'leer')
							{
							// Da die Bildnamen keine Bindestriche enthalten duerfen, diese jetzt entfernen
							var TitelHervorhebungAltName = Ersetzen(parent['Titel'].TitelHervorhebungAlt, '-', '');
							// Fuer die gespeicherte Hervorhebung die normalen Bilder laden und die Darstellung zuruecksetzen
							parent['Titel'].eval(TitelHervorhebungAltName + 'Normal').src
								= Basis + parent['Titel'].TitelHervorhebungAlt + '.gif';
							parent['Titel'].eval(TitelHervorhebungAltName + 'MouseOver').src
								= Basis + parent['Titel'].TitelHervorhebungAlt + '-MouseOver.gif';
							parent['Titel'].document.images[TitelHervorhebungAltName].src
								= parent['Titel'].eval(TitelHervorhebungAltName + 'Normal').src;
							}
						}
					}

				if (parent['Menue'].Seite != 'blank')
					{
					if (parent['Menue'].SchaltflaechenMenueGeladen == 1)
						{
						if (parent['Menue'].MenueHervorhebungAlt != 'leer')
							{
							// Da die Bildnamen keine Bindestriche enthalten duerfen, diese jetzt entfernen
							var MenueHervorhebungAltName = Ersetzen(parent['Menue'].MenueHervorhebungAlt, '-', '');
							// Fuer die gespeicherte Hervorhebung die normalen Bilder laden und die Darstellung zuruecksetzen
							parent['Menue'].eval(MenueHervorhebungAltName + 'Normal').src
								= Basis + parent['Menue'].MenueHervorhebungAlt + '.gif';
							parent['Menue'].eval(MenueHervorhebungAltName + 'MouseOver').src
								= Basis + parent['Menue'].MenueHervorhebungAlt + '-MouseOver.gif';
							parent['Menue'].document.images[MenueHervorhebungAltName].src
								= parent['Menue'].eval(MenueHervorhebungAltName + 'Normal').src;
							}
						}
					}

				// Die neue Hervorhebung abspeichern
				parent['Titel'].TitelHervorhebungAlt = TitelHervorhebung;
				parent['Menue'].MenueHervorhebungAlt = MenueHervorhebung;

				// Die neue Hervorhebung darf nur gesetzt werden, wenn die entsprechende Menue- bzw. Titelseite
				// und deren Schaltflaechen bereits geladen wurden
				if (parent['Titel'].Seite != 'blank')
					{
					if (parent['Titel'].SchaltflaechenTitelGeladen == 1)
						{
						if (TitelHervorhebung != 'leer')
							{
							// Da die Bildnamen keine Bindestriche enthalten duerfen, diese jetzt entfernen
							var TitelHervorhebungName = Ersetzen(TitelHervorhebung, '-', '');
							// Fuer die neue Hervorhebung die Bilder laden und die Darstellung aktivieren
							parent['Titel'].eval(TitelHervorhebungName + 'Normal').src
								= Basis + TitelHervorhebung + '-gewaehlt.gif';
							parent['Titel'].eval(TitelHervorhebungName + 'MouseOver').src
								= Basis + TitelHervorhebung + '-gewaehlt-MouseOver.gif';
							parent['Titel'].document.images[TitelHervorhebungName].src
								= parent['Titel'].eval(TitelHervorhebungName + 'Normal').src;
							}
						}
					}

				if (parent['Menue'].Seite != 'blank')
					{
					if (parent['Menue'].SchaltflaechenMenueGeladen == 1)
						{
						if (MenueHervorhebung != 'leer')
							{
							// Da die Bildnamen keine Bindestriche enthalten duerfen, diese jetzt entfernen
							var MenueHervorhebungName = Ersetzen(MenueHervorhebung, '-', '');
							// Fuer die neue Hervorhebung die Bilder laden und die Darstellung aktivieren
							parent['Menue'].eval(MenueHervorhebungName + 'Normal').src
								= Basis + MenueHervorhebung + '-gewaehlt.gif';
							parent['Menue'].eval(MenueHervorhebungName + 'MouseOver').src
								= Basis + MenueHervorhebung + '-gewaehlt-MouseOver.gif';
							parent['Menue'].document.images[MenueHervorhebungName].src
								= parent['Menue'].eval(MenueHervorhebungName + 'Normal').src;
							}
						}
					}
				}
			}
		}
	}

