/*

Anwendung: Menue
Copyright (c) 2000 by Dietmar Rabich, Duelmen.
Alle Rechte vorbehalten.

Version:     2.3.1d, 19.2.2001
Datum:       23.9.1999 

http://www.rabich.de

*/

// === Variablen (global) ===

var	eintraege		= new Array()
var	bildname		= "Bild"

// === Parameter ===

var	menue_pre		= ""
var	menue_post		= ""
var	eintrag_pre		= ""
var	eintrag_post		= ""
var	bild_leer		= "../menu/0.gif"
var	bild_eintrag		= "../menu/zeig.gif"
var	bild_menue_offen	= "../menu/auf.gif"
var	bild_menue_geschlossen	= "../menu/zu.gif"
var	bild_breite		= 12
var	frame_name		= "menu"
var	exclusive		= true

// === Hilfsfunktionen ===

// Knoten ermitteln
function set_nodes()
{
	var	i

	for(i = 0; i < (eintraege.length - 1); i++)
		if(eintraege[i + 1].level > eintraege[i].level)
		{
			eintraege[i].node	=  true
			eintraege[i].open	=  false
		}
}

// Aufnahme eines neuen Menueeintrags
function neuer_eintrag(level, name, url, target, desc, image, image_open)
{
	this.level		= level
	this.name		= name
	this.url		= url
	this.target		= target
	this.node		= false
	this.open		= false
	this.description	= desc
	this.image		= image
	this.image_open		= image_open
}

// Eintrag vornehmen und Verzweigungsermittlung
function eintrag(level, name, url, target, desc, image, image_open)
{
	var pos	= eintraege.length

	if(level < 1)
	{
		alert("Level-Werte bitte ab 1 anlegen!")
		return
	}

	if(arguments.length < 2)
	{
		alert("Es muessen mindestens die ersten beiden Argumente angegeben werden.")
		return
	}

	eintraege[pos]	= new neuer_eintrag(level,name,
						(arguments.length > 2) ? url : null,
						(arguments.length > 3) ? target : null,
						(arguments.length > 4) ? desc : null,
						(arguments.length > 5) ? image : null,
						(arguments.length > 6) ? image_open : null)
}

// Untermenue oeffnen oder schliessen
function submenue(nr)
{
	// Alle Untermenues schliessen (ausser nr)
	function close_submenues(nr)
	{
		var i
		for(i = 0; i < eintraege.length; i++)
			if((i != nr) && eintraege[i].node)
				eintraege[i].open = false
	}

	// Untermenue nr exklusiv oeffnen
	function open_submenues(nr)
	{
		function open_super_level(nr, lvl)
		{
			if((nr == 0) || (lvl < 1))
				return

			var i
			for(i = nr - 1; i >= 0; i--)
			{
				if((eintraege[i].level == lvl) && eintraege[i].node)
				{
					eintraege[i].open	= true
					open_super_level(i, lvl - 1)
					return
				}
			}
			return
		}

		open_super_level(nr, eintraege[nr].level - 1)
	}

	eintraege[nr].open = !eintraege[nr].open
	if((eintraege[nr].target != null) && (eintraege[nr].url != null))
		frames[eintraege[nr].target].location.href = eintraege[nr].url
	if(eintraege[nr].open && exclusive)
	{
		close_submenues(nr)
		open_submenues(nr)
	}
	write_menue()
}

// Alle Untermenues oeffnen
function expand()
{
	var i

	for(i = 0; i < eintraege.length; i++)
		if(eintraege[i].node)
			eintraege[i].open	= true
	write_menue()
}

// Alle Untermenues schliessen
function collapse()
{
	var i

	for(i = 0; i < eintraege.length; i++)
		if(eintraege[i].node)
			eintraege[i].open	= false
	write_menue()
}

// Kommentar in der Statuszeile anzeigen
function show(comment)
{
	status	= comment
}

// Kommentar aus der Statuszeile entfernen
function hide()
{
	status	= ""
}

// Ausgabe eines Menueeintrags
function ausgabe(nr)
{
	with(self[frame_name].document)
	{
		var	i
		var	tag_a_anfang	= ""
		var	tag_a_ende	= ""
		var	tags_pre	= ""
		var	tags_post	= ""
		var	tag_img		= ""
		var	titel		= ""
		var	bild		= ""

		write("<TABLE CELLSPACING=0><TR><TD>")

		// Platzhalter
		if(eintraege[nr].level > 1)
			write("<IMG SRC=\"" + bild_leer + "\" style=\"width: "+ String(bild_breite * (eintraege[nr].level - 1)) + "px\">")

		tag_a_ende	= "</A>"

		// Untermenues / normaler Eintrag
		if(eintraege[nr].node)
		{
			titel	= eintraege[nr].description ? eintraege[nr].description : eintraege[nr].name
			bild	= eintraege[nr].open ?
					(eintraege[nr].image_open ? eintraege[nr].image_open : bild_menue_offen) :
					(eintraege[nr].image ? eintraege[nr].image : bild_menue_geschlossen)

			tags_pre	= menue_pre
			tags_post	= menue_post
			tag_a_anfang	= "<A " +
						"HREF=\"javascript:parent.submenue(" + String(nr) + ")\" " +
						"onMouseOver=\"parent.show('" + titel + "'); return true\" " +
						"onMouseOut=\"parent.hide()\" " +
//						"TITLE=\"" + titel + "\"" +
						">"
		}
		else
		{
			titel		= eintraege[nr].description ? eintraege[nr].description : eintraege[nr].name
			bild		= eintraege[nr].image ? eintraege[nr].image : bild_eintrag
			tags_pre	= eintrag_pre
			tags_post	= eintrag_post
			tag_a_anfang	= "<A " +
						"HREF=\"" + eintraege[nr].url + "\" " +
						"onMouseOver=\"parent.show('" + titel + "'); return true\" " +
						"onMouseOut=\"parent.hide()\" " +
						(eintraege[nr].target ? (" TARGET=\"" + eintraege[nr].target + "\" ") : "") +
//						"TITLE=\"" + titel + "\"" +
						">"
		}

		tag_img	= "<IMG " +
				"SRC=\"" + bild + "\"" +
				">"
		write(tag_a_anfang)
		write(tag_img)
		write(tag_a_ende)
		write("</TD><TD>")
		write(tag_a_anfang + tags_pre + eintraege[nr].name + tags_post + tag_a_ende)
		writeln("</TD></TR></TABLE>")

	}
}

// Ausgabe aller Eintraege eines Levels und eines Untermenues
function ausgabe_eintraege(lvl, start)
{
	var i

	with(self[frame_name].document)
	{
		for(i = start; i < eintraege.length; i++)
		{
			if(eintraege[i].level < lvl)
				return
			if(eintraege[i].level == lvl)
			{
				ausgabe(i)
				if(eintraege[i].node)
					if(eintraege[i].open)
						ausgabe_eintraege(lvl + 1, i + 1)
			}
		}
	}
}

// Menuedokument schreiben (dynamisches Dokument erzeugen)
function write_menue()
{
	with(self[frame_name].document)
	{
		open("text/html", "replace")

		// Kopf
		writeln("<HTML>\n<HEAD>\n<TITLE>Kordes-Rosen</TITLE>")
		writeln("<!--\nGeneriert mit Hilfe des Menueskripts\nvon Dietmar Rabich, Duelmen.\nhttp://www.rabich.de\n-->")
		writeln("<META NAME=\"ROBOTS\" CONTENT=\"NONE\">")
		writeln("<META HTTP-EQUIV=\"CONTENT-TYPE\" CONTENT=\"text/html; CHARSET=iso-8859-1\">")
		writeln("<link href=\"../menu/menu.css\" rel=\"stylesheet\" type=\"text/css\">")
		writeln("</HEAD>")

		// Koerper
		writeln("<BODY>")
		writeln("<table border=\"0\" cellspacing=\"0\" width=\"100%\">")
		writeln(" <tr><td height=\"25\"><a href=\"frameset.asp\" target=\"main\"><img src=\"img/headline.gif\" class=\"headline\" ></a></td></tr>")
		writeln("</table>")
		ausgabe_eintraege(1, 0)
		writeln("</BODY>")
		writeln("</HTML>")
		close()
	}
}

// === Menuefunktionen ==

// Ausgabe des kompletten Menues
function menue(){
	
	set_nodes()
	write_menue()
}

// Menue mit IDs oeffnen
function oeffne_menue_pfad(ids)
{
	set_nodes()

	var sarr = ids.split(",")
	var i
	var nr

	for(i = 0; i < sarr.length; i++)
	{
		nr = parseInt(sarr[i])
		if(!isNaN(nr))
			if(eintraege[nr].node)
				eintraege[nr].open = true
	}

	write_menue()
}

// === EOF ===