//<SCRIPT LANGUAGE=javascript>
function K_Lib_menu(obj)
{
	obj.BG_COLOR_AdminBereich = "#DDDDDD";

	obj.frames = new Object();
	obj.getFrame			= Lib_menu_getFrame;
	obj.setFrame			= Lib_menu_setFrame;
	
	obj.closeMenu			= Lib_menu_closeMenu;
	obj.openMenu			= Lib_menu_openMenu;
	obj.getKnote			= Lib_menu_getKnote; 
	obj.setKnoteText		= Lib_menu_setKnoteText; // (value, text, isReload)
	obj.getKnoteText		= Lib_menu_getKnoteText; // (value)
	obj.addKnoteText		= Lib_menu_addKnoteText; // (value, text, isReload)
	obj.setKnoteOpen		= Lib_menu_setKnoteOpen; // (value, isOpen, isReload)
	obj.setKnoteSelect		= Lib_menu_setKnoteSelect; //(value, isReload)
	obj.setKnotePosition	= Lib_menu_setKnotePosition;
	obj.getKnotePosition	= Lib_menu_getKnotePosition; // ( knote_value )

	obj.TreeReload			= Lib_menu_TreeReload; // ()
	
	obj.setAnmeldOpen		= Lib_menu_setAnmeldOpen;
	obj.addMenuKnote		= Lib_menu_addMenuKnote; // ( parent_value, KnoteNr, Text, KontextMenu, KMRechte, 
								// db, value, sURL, target, bild, selected, isKnote, isHref, backgr)
	obj.removeMenuKnote		= Lib_menu_removeMenuKnote; // (Knote)
	obj.removeMenuKnoteMitValue	= Lib_menu_removeMenuKnoteMitValue; // (value)

	obj.addKindKnote		= Lib_menu_addKindKnote; // ( parent_value, Knote )
	obj.setKontextMenu		= Lib_menu_setKontextMenu; // (Knote, KontextMenu, KontextMenuRechte)
	return obj;
}
if(self["Lib_menu"] == null) 
		self["Lib_menu"] = K_Lib_menu(new Object());
else	K_Lib_menu(self["Lib_menu"]);

function Lib_menu_getFrame( name ) {
	if( Lib_menu.frames[name]==null ) {
		Lib_menu.frames[name] = Lib.getFrame(top,name);
		if( Lib_menu.frames[name]==null ) {
			Lib_menu.frames[name] = window.open("",name);
		}
	}
	return Lib_menu.frames[name];
}
function Lib_menu_setFrame( name, frame ) {
	Lib_menu.frames[name]=frame;
}
// knote - Object oder value
function Lib_menu_setKnotePosition( knote_value, pos_neu ) {
	var knote, pos_alt=-1;
	if( typeof(knote_value)=="string" ) {
		knote = this.getKnote( knote_value );
	} else {
		knote = knote_value;
	}
	if( knote==null || typeof(knote.parentKnote)=="undefined" ) return;
	var Knoten = knote.parentKnote.Knoten;
	if( pos_neu>Knoten.length ) 
		pos_neu = Knoten.length-1;
	for( var i=0; i<Knoten.length; i++ ) {
		if( Knoten[i]==knote ) {
			pos_alt = i;
			break;
		}
	}
	if( pos_alt!=-1 ) {
		if( pos_neu>pos_alt ) {
			for( i=pos_alt+1; i<=pos_neu && i<Knoten.length; i++ ) {
				Knoten[i-1] = Knoten[i];
			}
			if( pos_neu>=Knoten.length ) 
				pos_neu = Knoten.length;
			Knoten[pos_neu] = knote;
		} else {
			for( var i=pos_alt-1; i>=pos_neu; i-- ) {
				Knoten[i+1] = Knoten[i];
			}
			Knoten[pos_neu] = knote;
		}
	}
}
// knote - Object oder value
function Lib_menu_getKnotePosition( knote_value ) {
	var knote;
	if( typeof(knote_value)=="string" ) {
		knote = this.getKnote( knote_value );
	} else {
		knote = knote_value;
	}
	if( typeof(knote.parentKnote)=="undefined" ) return -1;
	var Knoten = knote.parentKnote.Knoten;
	for( var i=0; i<Knoten.length; i++ ) {
		if( Knoten[i]==knote ) {
			return i;
		}
	}
	return -1;
}
function Lib_menu_closeMenu() {
	if( Lib.browser.ie56 || Lib.browser.nsMozzilla_ab1p4 ) {
		var frame = Lib_menu.getFrame("FRhidden_js");
		if( !frame.parent.testTree.menuZu ) {
			frame.parent.testTree.menuZu = true;
			frame.parent.document.getElementById("menubreite").cols="18,100%,*,*";
			Lib_menu_TreeReload();
		}
	}
}
function Lib_menu_openMenu() {
	if( Lib.browser.ie56 || Lib.browser.nsMozzilla_ab1p4 ) {
		var frame = Lib_menu.getFrame("FRhidden_js");
		if( frame.parent.testTree.menuZu ) {
			frame.parent.testTree.menuZu = false;
			frame.parent.document.getElementById("menubreite").cols="200,100%,*,*";
			Lib_menu_TreeReload();
		}
	}
}

function Lib_menu_getKnote( value, Bereich ) {
	var KnotenI = Bereich;
	if( Bereich==null ) {
		var TopKnote = Lib_menu.getFrame("FRhidden_js").parent.testTree;
		if( TopKnote.value==value ) return TopKnote;
		KnotenI = TopKnote.KnotenI;
	}
	
	for( var i=0; i<KnotenI.length; i++ ) {
		if( typeof(KnotenI[i])!="undefined" && KnotenI[i]!=null && typeof(KnotenI[i].value)!="undefined" && KnotenI[i].value==value ) {
			return KnotenI[i];
		}
	}	
	return null;
}

function Lib_menu_setKnoteSelect(value, isReload) {
	var Knote = Lib_menu.getKnote(value);
	Lib_menu.getFrame("FRhidden_js").parent.testTree.setSelKnote(Knote.KnoteNr);
	if( isReload==null || isReload ) {
		if( Lib.browser.ie ) {
			 FRhidden_js.setTimeout(" knoteClick("+FRhidden_js.parent.testTree.selectedIndex+"); ",100);
		} else {
			 FRhidden_js.knoteClick(FRhidden_js.parent.testTree.selectedIndex);
		}
//		this.TreeReload();
	}
}
function Lib_menu_TreeReload() {
	var FRhidden_js = Lib_menu.getFrame("FRhidden_js");
	if( Lib.browser.ie ) {
		 FRhidden_js.setTimeout(" knoteReload(); ",100);
	} else {
		 FRhidden_js.knoteReload();
	}
}
function Lib_menu_setKnoteOpen(value, isOpen, isReload) {
	var Knote = Lib_menu.getKnote(value);
	if( Knote!=null ) Knote.open = isOpen;
	if( isReload==null || isReload ) {
		this.TreeReload();
	}
}
function Lib_menu_setKnoteText(value, text, isReload) {
	var Knote = Lib_menu.getKnote(value);
	if( Knote!=null ) {
		Knote.setText(text);
	}
	if( isReload==null || isReload ) {
		this.TreeReload();
	}
}
function Lib_menu_getKnoteText(value) {
	var Knote = Lib_menu.getKnote(value);
	if( Knote!=null ) {
		return Knote.getText();
	}
	return null;
}
function Lib_menu_addKnoteText(value, text, isReload) {
	var Knote = Lib_menu.getKnote(value);
	if( Knote!=null ) {
		Knote.setText(Knote.getText()+text);
	}
	if( isReload==null || isReload ) {
		this.TreeReload();
	}
}
/* return true kann AnmeldMenü offnen */
function Lib_menu_setAnmeldOpen( isOpen, text ) {
	if( isOpen ) {	
		if( text==null ) {
			alert(" Bitte anmelden!");
		} else if( text!="" ) {
			alert(text);
		}
	}
	Lib_menu.setKnoteOpen( "anmeld_", isOpen );
	return Lib_menu.getKnote("anmeld_")!=null;
}

function Lib_menu_setKontextMenu( Knote, KontextMenu, KontextMenuRechte, link, sort_nr ) {
	Knote.KontextMenu = KontextMenu;
	Knote.KontextMenuRechte = KontextMenuRechte;
	switch(KontextMenu)
	{
	case "Top": Knote.bild = "";
				Knote.open=true;
			    Knote.text = "<strong>"+Knote.text+"</strong>";
			    Knote.sort_nr = 0;
				break;
	case "NTop": Knote.bild = "";
				Knote.open=true;
			    Knote.text = "<strong>"+Knote.text+"</strong>";
			    Knote.sort_nr = 0;
				Knote.isHref = (Knote.URL=="");
				break;
	case "FaA": Knote.bild = "hause";
			    Knote.sort_nr = 1;
				break;
	case "Fa": Knote.bild = "hause";
			    Knote.sort_nr = 1;
				break;
	case "Gr": 
	case "GrA": 
	case "AdmUnterGr": 
	case "AdmGr": Knote.bild = "";
			    Knote.sort_nr = 2;
				break;
	case "Kfz": 
	case "DKfz": Knote.bild = "auto"; 
			    Knote.sort_nr = 3;
				break;
	case "Bn": Knote.bild = "benutz"; 
			   Knote.text = "<u>"+Knote.text+"</u>";
			    Knote.sort_nr = 4;
				break;
	case "Eigen": Knote.bild = "benutz";
			    Knote.sort_nr = 5;
				break;
	case "Kennw": Knote.bild = "kennw";
				if( KontextMenuRechte > 3 )
					Knote.URL=Lib.getBVerz()+"/mf/asp/LKennw.asp";
				Knote.target="mitte1";
			    Knote.sort_nr = 5;
				break;
	case "Aktual": Knote.bild = "aktual";
				Knote.text = '<strong>'+Knote.text+'</strong>';
			    Knote.sort_nr = 5;
				break;
	case "Abmeld": Knote.bild = "kennw";
				Knote.text = '<strong>'+Knote.text+'</strong>';
			    Knote.URL="javascript:my_href(5);";
				//Knote.target="";
			    Knote.sort_nr = 5;
				break;
	case "Link": Knote.bild = "";
				Knote.URL=(link+"").split("__getBVerz__").join(Lib.getBVerz());
				Knote.target="mitte1";
			    Knote.text = Knote.text+' ...';
			    Knote.isHref = true;
				break;
	default:	//Knote.bild = "seite";
			    Knote.isHref = (Knote.URL!="" && Knote.URL!=null);
			    //Knote.text = '<strong>'+Knote.text+'</strong>';
			    Knote.sort_nr = 5;
				break;
	}
	if( Knote.value==null || Knote.value+""=="undefined" ) {
		Knote.value=Knote.KnoteNr+"_value";
	}
	if( sort_nr!=null )	Knote.sort_nr = sort_nr;
	Knote.sort_text = Knote.sort_nr+Knote.text;
}

/** pflicht felder	
	Lib_menu_addMenuKnote( parent_value, null, Text)
	
*/
function Lib_menu_addMenuKnote( parent_value, KnoteNr, Text, KontextMenu, KMRechte, 
								db, value, sURL, target, bild, selected, isKnote, isHref, isOpen, isStyle, backgr)
{
	var treeKnote = Lib_menu.getFrame("FRhidden_js").treeKnote;
	var testTree = Lib_menu.getFrame("FRhidden_js").testTree;
	var KnoteNr = KnoteNr;
	Knote = new treeKnote( Text, //text
						   isOpen, new Array(),  // open, Knoten
						   KontextMenu, KMRechte, null, 
						   sURL, target, bild, db, selected, KnoteNr, 
						   isKnote, isHref, value, isStyle, backgr);
	testTree.addKnote( Knote );
	
	Knote.KontextMenu;
	Knote.KontextMenuRechte;

	Lib_menu.addKindKnote( parent_value, Knote );
	Lib_menu.setKontextMenu( Knote, KontextMenu, KMRechte );
	Knote.sort_text = Knote.sort_nr+Knote.text;

	return Knote;
} 
function Lib_menu_addKindKnote( parent_value, Knote ) {
	if( Knote!=null ) {
		var parentKnote = Lib_menu.getKnote( parent_value );
		var existKind = Lib_menu.getKnote( Knote.value, parentKnote.Knoten );
		if( existKind==null ) {
			parentKnote.addKindKnote(Knote);
		} else { // Replace
			var n = Lib_menu.setKnotePosition( existKind );
			Lib_menu.removeMenuKnote( existKind );
			parentKnote.addKindKnote( Knote );
			Lib_menu.setKnotePosition( Knote, n );
		}
	}
}

function Lib_menu_removeMenuKnote( Knote ) {
	if( Knote!=null ) {
		var testTree = Lib_menu.getFrame("FRhidden_js").testTree;
		for( var i=0; i<Knote.Knoten.length; i++ ) {
			Lib_menu.removeMenuKnote( Knote.Knoten[i] );
		}
		if( Knote.parentKnote!=null ) {
			Knote.parentKnote.removeKindKnote( Knote );
		}
		testTree.removeKnote( Knote );
	}
}
function Lib_menu_removeMenuKnoteMitValue( value )
{
	if( Lib_menu.getFrame("FRhidden_js").parent.testTree==null ) return;
	var KnotenI = Lib_menu.getFrame("FRhidden_js").parent.testTree.KnotenI;
	for( var i=0; i<KnotenI.length; i++ ) {
		if( KnotenI[i]!=null && typeof(KnotenI[i].value)!="undefined" && KnotenI[i].value==value ) {
			Lib_menu.removeMenuKnote( KnotenI[i] );
		}
	}	
} 