function knObj(name,parent,prio){
	this.name=name
	this.parent=parent
	this.prio=prio
	this.children=new Array()
	this.prioChild=null
	this.prioChildPrio=0
	this.status=0
	if(parent)parent.addChild(this)
}
function knObjAddChild(childObj){
	this.children[this.children.length]=childObj;
	if(childObj.prio>this.prioChildPrio){
		this.prioChild=childObj
		this.prioChildPrio=childObj.prio
	}
}
knObj.prototype.addChild=knObjAddChild;
//######################################################
//######################################################
//######################################################
function treeObj(name){
	this.name=name
	this.knhigh=null
	this.knakt=null
	this.altlevel=null
	this.altnr=null
	this.otimer=null
		this.delay=1000
	
	this.kn=new Array()
	this.add("","",0)
}
//*****************************
function treeObjAdd(name,parentname,prio){
	var parentobj=this.get(parentname)
	this.kn[this.kn.length]=new knObj(name,parentobj,prio)
}
treeObj.prototype.add=treeObjAdd;
//*****************************
function treeObjGet(name){
	for(var i in this.kn){
		if(this.kn[i].name==name)return this.kn[i];
	}
	return null
}
treeObj.prototype.get=treeObjGet;
//*****************************
function treeObjLoeschHigh(knO){
	while(knO){
		if(knO.status==1 || knO.status==3 )knO.status=0
		knO=knO.parent
	}
}
treeObj.prototype.loeschHigh=treeObjLoeschHigh;
//*****************************
function treeObjLoeschAkt(knO){
	while(knO){
		knO.status=0
		knO=knO.parent
	}
}
treeObj.prototype.loeschAkt=treeObjLoeschAkt;
//*****************************
function treeObjSetHigh(knO){
	knO.status=Math.max(knO.status,3)
	knO=knO.parent
	while(knO){
		knO.status=Math.max(knO.status,1)
		knO=knO.parent
	}
}
treeObj.prototype.setHigh=treeObjSetHigh;
//*****************************
function treeObjSetAkt(knO){
	knO.status=4
	knO=knO.parent
	while(knO){
		knO.status=Math.max(knO.status,2)
		knO=knO.parent
	}
}
treeObj.prototype.setAkt=treeObjSetAkt;
//*****************************
function treeObjGetLevel(knO){
	var retlevel=-1
	while(knO){
		knO=knO.parent
		retlevel++
	}
	return retlevel
}
treeObj.prototype.getLevel=treeObjGetLevel;
//*****************************
function treeObjGetActiveChild(knO){
// kinder mit dem Status 3,1,4,2 bzw prioChild
	for(var i in knO.children)
		if(knO.children[i].status==3)return knO.children[i]
	for(var i in knO.children)
		if(knO.children[i].status==1)return knO.children[i]
	for(var i in knO.children)
		if(knO.children[i].status==4)return knO.children[i]
	for(var i in knO.children)
		if(knO.children[i].status==2)return knO.children[i]
	return knO.prioChild
}
treeObj.prototype.getActiveChild=treeObjGetActiveChild
//*****************************
//NEU
function treeObjGetActiveChildNumber(knO){
// kinder mit dem Status 3,1,4,2 bzw prioChild
	for(var i =0;i< knO.children.length;i++)
		if(knO.children[i].status==3)return i
	for(var i =0;i< knO.children.length;i++)
		if(knO.children[i].status==1)return i
	for(var i =0;i< knO.children.length;i++)
		if(knO.children[i].status==4)return i
	for(var i =0;i< knO.children.length;i++)
		if(knO.children[i].status==2)return i
	return knO.prioChild
}
treeObj.prototype.getActiveChildNumber=treeObjGetActiveChildNumber
//NEU
//*****************************
function treeObjGetSibling(knO,nr){
	var akt = knO.parent
	return akt.children[nr]
}
treeObj.prototype.getSibling=treeObjGetSibling
//######################################################
//######################################################
//######################################################
//*****************************
function treeObjSet(name){
	this.clearotimer()
	var akt=null
	if(name)
		akt=this.get(name)
	else 
		akt=this.knhigh
	if(!akt)return
	while(akt.prioChildPrio>0)
		akt=akt.prioChild
//	if(akt==this.knakt)return;	
	this.loeschHigh(this.knhigh)
	this.loeschAkt(this.knakt)
	this.knhigh=this.knakt=akt
	this.setAkt(this.knakt)
	if(navi)navi.draw()
		if(this.knakt && this.knakt.param && this.knakt.param["href"]){
			frames[this.std_target].location.href=this.knakt.param["href"]
		}
		
}
treeObj.prototype.set=treeObjSet
//*****************************
function treeObjOver(level,nr){
	this.clearotimer();
	// if(this.altlevel==level && this.altnr == nr){return;}else{
	this.altlevel=level
	this.altnr=nr
	//}
	var akt=null
	var aktlevel=null
	if(this.knhigh)
		akt=this.knhigh
	else if(this.knakt)
		akt=this.knakt
	else
		akt=this.get("")
	aktlevel=this.getLevel(akt)
	while(aktlevel!=level){
		if(aktlevel > level)
			akt=akt.parent
		else
			akt=this.get_active_child(akt)
		aktlevel=this.getLevel(akt)
	}
	akt=this.getSibling(akt,nr)
	while(akt.prioChildPrio>0)
		akt=akt.prioChild

	if(this.knhigh==akt)return
	this.loeschHigh(this.knhigh)
	this.knhigh=akt
	this.setHigh(this.knhigh)
	if(navi)navi.draw()
}
treeObj.prototype.over=treeObjOver
//*****************************
function treeObjOut(){
	this.clearotimer()
	if(this.knhigh==null)return;	
	this.loeschHigh(this.knhigh)
	if(this.knhigh==this.knakt){this.knhigh=null;return;}
	this.knhigh=null
	this.altlevel=null
	this.altnr=null
	if(navi)navi.draw()
}
treeObj.prototype.out=treeObjOut
//*****************************
function treeObjClearotimer(){
	if(this.otimer)window.clearTimeout(this.otimer);
	this.otimer=null;
}
treeObj.prototype.clearotimer=treeObjClearotimer
//*****************************
function treeObjOutDelayed(){
	this.clearotimer()
	this.otimer=setTimeout(this.name+".out()",this.delay)
}
treeObj.prototype.outDelayed=treeObjOutDelayed
//*****************************



function treeObjAddParam(){
	var akt=this.kn[this.kn.length-1]
	var tmp=new Array();
	for (var i=0;i<arguments.length-1;i+=2 ){
		tmp[arguments[i]]=arguments[i+1]
	}
	if(!akt.param)akt.param=new Array()

	if(tmp["href"])akt.param["href"]=tmp["href"];
	if(tmp["sp"])akt.param["sp"]=tmp["sp"];


	// wenn addbilder existiert konnen noch weiter optionen weitergegeben werden
	for(var name in navi.addbilder) {
		if(tmp[name]){
				akt.param[name]=tmp[name];
		}
	}
}
treeObj.prototype.addParam=treeObjAddParam;
//*****************************

function treeObjShow(){
	return;
	var aus;
	for (var i=0;i<this.kn.length;i++ ){
		aus+=this.kn[i].name+"\n";
	}
	aus+=this.name+"\n";
	aus+=(this.knhigh?this.knhigh.name:"UNDEF")+"\n";
	aus+=this.knakt.name+"\n";
	aus+=this.altlevel+"\n";
	aus+=this.altnr+"\n";
	aus+=this.otimer+"\n";
	alert(aus);
}
treeObj.prototype.show=treeObjShow;
//*****************************

var indexJsExists;

function NaviObjekt(hallotop){
	this.mindex=new index();
}
//#################################
function NaviAddIndexKey(name,key){		this.mindex.addKey(name,key);  }
NaviObjekt.prototype.addIndexKey=NaviAddIndexKey;

function NaviAddIndexTitle(name,title){	this.mindex.addTitle(name,title);}
NaviObjekt.prototype.addIndexTitle=NaviAddIndexTitle;

function NaviPrintIndex(){			this.mindex.printIndex(); }
NaviObjekt.prototype.printIndex=NaviPrintIndex;

//#################################
function dummy(){}
//#################################
function NaviBuild(){
	this.obj=new Array()
	if(this.addbilder)
		for(var i in this.addbilder){
			for(var j in this.addbilder[i]){
				this.addbilder[i][j].connect()
			}
		}	
	for(var i in this.mylevels){
		this.mylevels[i].connect()
	}
}
NaviObjekt.prototype.build=NaviBuild;
//#################################
function NaviSchreibedivs(){
	var aus=""
	for(var i in w){
		with(frames[i]){
			document.open()
			//alert(w[i])
			document.write(""+w[i]+"")
			document.close()
		}
	}
}
NaviObjekt.prototype.schreibedivs=NaviSchreibedivs;
//#################################
function NaviStart(status){
	steuer.set(status);
}
NaviObjekt.prototype.start=NaviStart;
//#################################
// das Globale W-Objekt zum schreiben der Frames
w=new Array();
//#################################
//test
//#################################

//colorA=new Array("yellow","orange","red","blue","green");
function NaviDraw(){
	var akt=steuer.get("")
	var aus="";
	var test="";
	var level=0;
	while(akt){
		// wenn addbilder existiert konnen noch weiter optionen weitergegeben werden
		for(var name in this.addbilder) {
			if(akt.param && akt.param[name]){
				var ff="n";
				for(var clipname in this.addbilder[name]){
					ff+=" "+clipname;
					this.addbilder[name][clipname].set(akt.param[name]-1,0,0)
				}
				//alert(ff);			
			}
		}
		if(akt.children.length<1)break;
//		aus+="<table cellspacing=\"0\" cellpadding=\"0\" border=\"1\"><tr>\n";
		navi.mylevels[level].hide();
		if(level+1<navi.mylevels.length){
			navi.mylevels[level+1].moveTo(steuer.getActiveChildNumber(akt)-1)
		}
			//alert(steuer.getActiveChildNumber(akt))
		for(i=1;i<akt.children.length;i++){
			var tmp=akt.children[i];
//			aus+="<td width=\"40\" bgcolor=\""+colorA[tmp.status]+"\" >\n<a href=\"javascript:void("+level+","+i+");parent.navi.set()\" onmouseover=\"parent.navi.over("+level+","+i+")\" onmouseout=\"parent.navi.outDelayed()\">";
//			aus+=tmp.name;
//			aus+="</a>\n</td>\n";
//			test+="L: "+level+"N:"+tmp.name+" I:"+(i-1)+" SP "+tmp.param["sp"]+" #"+(navi.mylevelparams[level][tmp.status]-1)+"\n";
			navi.mylevels[level].set(i-1,tmp.param["sp"]-1,navi.mylevelparams[level][tmp.status]-1)
			navi.mylevels[level].set(i-1,1)
				
// if(navi.mylevels[level]!=null  && navi.mylevels[level].top!=null ){alert(navi.mylevels[level].top);}
	
		}
//		aus+="</tr></table>\n\n";
		akt=steuer.getActiveChild(akt);
		level++;
	}
	while(level<navi.mylevels.length){
		navi.mylevels[level].hide();
		level++;
	}
	//if(steuer.knakt){		alert(steuer.knakt.param["href"])	}
	//alert(test)
}
NaviObjekt.prototype.draw=NaviDraw;
//##########################################
function NaviAddBild(name){
	if(!this.addbilder)this.addbilder=new Array();
	this.addbilder[name]=new Array();
	//alert(this.addbilder.length+"  "+this.addbilder[""+name]+" #");
	this.aktaddbild=name;
}
function NaviAddBildParam(){
	var tmp=new Array();
	for(var i=0; i<arguments.length; i+=2) {
		tmp[arguments[i]]=arguments[i+1];
	}
	//alert(this.aktaddbild+" "+tmp["name"])
	//if(!this.addbilder[this.aktaddbild][tmp["name"]])this.aktaddbild=new Array()
	this.addbilder[this.aktaddbild][tmp["name"]]=new ClipObj(
			"name",tmp["name"],
			"frame",tmp["frame"],
			"left",tmp["left"],
			"top",tmp["top"],
			"weiten",tmp["weiten"],
			"hoehen",tmp["hoehen"],
			"src",tmp["src"],
			"down",tmp["down"],
			"over",tmp["over"],
			"out",tmp["out"]
	);
	this.addbilder[this.aktaddbild][tmp["name"]].writestring(w)// globales w-Objekt zum Schreiben der Divs
}
NaviObjekt.prototype.addBild=NaviAddBild;
NaviObjekt.prototype.addBildParam=NaviAddBildParam;
//############################################################################################
function NaviAddLevel(){
	var tmp=new Array();
	for(var i=0; i<arguments.length; i+=2) {
		tmp[arguments[i]]=arguments[i+1];
	}
	if(!this.mylevels){
		this.mylevels=new Array()
		this.myaktlevel=0
	}else{this.myaktlevel++}

	this.mylevels[this.myaktlevel]=new NavLevelObj(
			"name",tmp["name"],
			"frame",tmp["frame"],
			"left",tmp["left"],
			"top",tmp["top"],
			"startx",tmp["startx"],
			"starty",tmp["starty"],
			"weiten",tmp["weiten"],
			"hoehen",tmp["hoehen"],
			"src",tmp["src"],
			"maxelm",tmp["maxelm"],
			"zindex",tmp["zindex"],
			"slide",(tmp["slide"]!=null)?tmp["slide"]:"right",
			"ebene",this.myaktlevel
	);
}
function NaviAddLevelParam(){
/*"bActive",2,
	"bPassive",1,
	"bTemporary",1,
	"bTmphighlighted",2,
	"bHighlighted",2,*/

	var tmp=new Array();
	for(var i=0; i<arguments.length; i+=2) {
		tmp[arguments[i]]=arguments[i+1];
	}
	if(!this.mylevelparams){
		this.mylevelparams=new Array()
	}
	this.mylevelparams[this.myaktlevel]=new Array();
	this.mylevelparams[this.myaktlevel][4]=tmp["bActive"];
	this.mylevelparams[this.myaktlevel][0]=tmp["bPassive"];
	this.mylevelparams[this.myaktlevel][1]=tmp["bTemporary"];
	this.mylevelparams[this.myaktlevel][2]=tmp["bTmphighlighted"];
	this.mylevelparams[this.myaktlevel][3]=tmp["bHighlighted"];

	
}
NaviObjekt.prototype.addLevel=NaviAddLevel;
NaviObjekt.prototype.addLevelParam=NaviAddLevelParam;
//############################################################################################
function NaviAdd(objectName,parentName,selected){
	steuer.add(objectName,parentName,selected)
}
NaviObjekt.prototype.add=NaviAdd;


function NaviAddParam(){
	var tmp=new Array();
	for(var i=0; i<arguments.length; i+=2) {
		tmp[arguments[i]]=arguments[i+1];
	}

if(tmp["href"]){steuer.addParam("href",tmp["href"]);}
if(tmp["sp"]){steuer.addParam("sp",tmp["sp"]);}

	// wenn addbilder existiert konnen noch weiter optionen weitergegeben werden
	for(var name in this.addbilder) {
		if(tmp[name]){
			steuer.addParam(name,tmp[name]);
		}
	}
	// wenn indexierung möglich:
	if(indexJsExists){
		var aktobj=steuer.kn[steuer.kn.length-1].name;
		//alert(aktobj);
			//this.kn[this.kn.length]
		for (var i=0;i<arguments.length;i+=2 ){
			if(arguments[i]=="key"){
				this.addIndexKey(aktobj,arguments[i+1])
			}
			if(arguments[i]=="title"){
				this.addIndexTitle(aktobj,arguments[i+1])
			}
		}
	}
}
NaviObjekt.prototype.addParam=NaviAddParam;
//##########################################
//################################################################################################
// NavLevelObj Objekt
//################################################################################################
function NavLevelObj(){
	var tmp=new Array();
	for(var i=0; i<arguments.length; i+=2) {
		tmp[arguments[i]]=arguments[i+1];
	}
	this.name=(tmp["name"]!=null)?tmp["name"]:""
	this.frame=(tmp["frame"]!=null)?tmp["frame"]:""
	if(tmp["left"] == null || tmp["left"].length == null ){
		this.left=(tmp["left"]!=null)?tmp["left"]:0
	}else{
		this.left=tmp["left"][0];
		this.leftArray=tmp["left"];
	}
	if(tmp["top"] == null || tmp["top"].length == null ){
		this.top=(tmp["top"]!=null)?tmp["top"]:0
	}else{
		this.top=tmp["top"][0];
		this.topArray=tmp["top"];
	}
	this.weiten=(tmp["weiten"]!=null)?tmp["weiten"]:new Array()
	this.hoehen=(tmp["hoehen"]!=null)?tmp["hoehen"]:new Array()
	this.src=(tmp["src"]!=null)?tmp["src"]:""
	this.maxelm=(tmp["maxelm"]!=null)?tmp["maxelm"]:5
	this.slide=(tmp["slide"]!=null)?tmp["slide"]:"right"
	this.zindex=(tmp["zindex"]!=null)?tmp["zindex"]:5
	this.ebene=tmp["ebene"]
	
	this.startx=(tmp["startx"]!=null)?tmp["startx"]:null
	this.starty=(tmp["starty"]!=null)?tmp["starty"]:null

	this.clips=new Array();


	for(var i=0;i<this.maxelm;i++){
		this.clips[i]=new ClipObj(
			"frame",this.frame,
			"name",	this.name+"div"+i,
			"left",(this.startx!=null)?this.startx[i]:this.left, //(this.leftArray==null?this.left:this.leftArray),
			"top",(this.starty!=null)?this.starty[i]:this.top, //(this.topArray==null?this.top:this.topArray),
			"weiten",this.weiten,
			"hoehen",this.hoehen,
			"src",this.src,
			"zindex",this.zindex,
			"down","javascript:void("+(this.ebene+1)+","+(i+1)+");parent.steuer.set()" ,
			"over","javascript:parent.steuer.over("+(this.ebene+1)+","+(i+1)+")" ,
			"out","javascript:parent.steuer.outDelayed()" 

		)
		this.clips[i].writestring(w)// globales w-Objekt zum Schreiben der Divs
	}
}
function NavLevelObjConnect(){
	for(var i=0;i<this.maxelm;i++){
		this.clips[i].connect()
	}
	this.con=1

}
NavLevelObj.prototype.connect=NavLevelObjConnect;



function NavLevelSet(nr){// nr spaltennummer,zeilennummer ODER nr 1 ODER nr 0
	if(arguments.length==2){// nr 1 ODER nr 0
		
		// anzeigen verstecken
		this.clips[nr].anaus(arguments[1]);
	}
	if(arguments.length==3){// nr,spaltennummer,zeilennummer
		//if(nr==0)alert("Spalte "+arguments[1]+"Status "+arguments[2])
		this.clips[nr].set(	arguments[1],arguments[2]);
		var dleft=0;
		var dtop=0;
		for(var i=0;i<this.maxelm;i++){

			if(this.slide=="nirgends" ){
				continue;
			}

			this.clips[i].moveTo(this.left+dleft,this.top+dtop);
			if(this.slide=="right" ){
				dleft+=this.clips[i].getweite();
			}else if(this.slide=="left" ){
				dleft-=this.clips[i].getweite();
			}else if(this.slide=="up" ){
				dtop-=this.clips[i].gethoehe();
			}else if(this.slide=="down" ){
				dtop+=this.clips[i].gethoehe();
			}
		}
	}
}
NavLevelObj.prototype.set=NavLevelSet;

function NavLevelHide(){// versteche den gesamten Level
	for(var i=0;i<this.clips.length;i++){
		this.clips[i].anaus(0);
	}
}
NavLevelObj.prototype.hide=NavLevelHide;

function NavLevelGetAnz(){
	return this.maxelm;
}
NavLevelObj.prototype.getAnz=NavLevelGetAnz;

function NavLevelMoveTo(nr){
	if(this.leftArray != null && this.leftArray[nr]!= null){
		this.left=this.leftArray[nr]
	}
	if(this.topArray != null && this.topArray[nr]!= null){
		this.top=this.topArray[nr]
	}
}
NavLevelObj.prototype.moveTo=NavLevelMoveTo;


//################################################################################################
// clipObj Objekt
//################################################################################################
function ClipObj(){
	var tmp=new Array();
	for(var i=0; i<arguments.length; i+=2) {
		tmp[arguments[i]]=arguments[i+1];
	}
	this.name=(tmp["name"]!=null)?tmp["name"]:""
	this.frame=(tmp["frame"]!=null)?tmp["frame"]:""
	this.left=(tmp["left"]!=null)?tmp["left"]:0
	this.top=(tmp["top"]!=null)?tmp["top"]:0
	this.weiten=(tmp["weiten"]!=null)?tmp["weiten"]:new Array()
	this.hoehen=(tmp["hoehen"]!=null)?tmp["hoehen"]:new Array()
	this.src=(tmp["src"]!=null)?tmp["src"]:""
	this.down=(tmp["down"]!=null)?tmp["down"]:"javascript:void(0)"
	this.over=(tmp["over"]!=null)?tmp["over"]:"void(0)"
	this.out=(tmp["out"]!=null)?tmp["out"]:"void(0)"
	this.zindex=(tmp["zindex"]!=null)?tmp["zindex"]:5
	
	this.abstand_weite=(navi.standardclipabstaende!=null)?navi.standardclipabstaende:0
	this.abstand_hoehe=(navi.standardclipabstaende!=null)?navi.standardclipabstaende:0


	this.wstart=new Array()
	this.wstart[0]=0;
	for(var i=0;i<this.weiten.length;i++){
		this.wstart[i+1]=this.weiten[i]+this.wstart[i]+this.abstand_weite;
	}
	this.hstart=new Array()
	this.hstart[0]=0;
	for(var i=0;i<this.hoehen.length;i++){
		this.hstart[i+1]=this.hoehen[i]+this.hstart[i]+this.abstand_hoehe;
	}

	this.s=0
	this.z=0
	this.visible=0
	this.con=0
	this.elm=null
}
function clipObjWritestring(wobj){
	aus=writediv(	this.frame,
					this.name,
					this.left,
					this.top,
					this.weiten[this.s],
					this.hoehen[this.z],
					this.src,
					this.down,
					this.over,
					this.out,
					this.zindex
					)
	if(!w[this.frame])w[this.frame]="";
	//alert(aus)
	w[this.frame]+=aus+"\n";
}
function clipObjConnect(){
	this.elm=getdiv(this.frame,this.name)
	this.con=1
	this.anaus(1)
	this.set(0,0)
}
ClipObj.prototype.writestring=clipObjWritestring;
ClipObj.prototype.connect=clipObjConnect;


function clipObjSet(spalte,zeile){
	if(spalte!=null)this.s=Math.min(spalte,this.weiten.length -1)
	if(zeile!=null)this.z=Math.min(zeile,this.hoehen.length -1)
	if(this.con==0)return
	// l t b r
	clipTo(
		this.elm,
		this.left,
		this.top,
		this.wstart[this.s],
		this.hstart[this.z],
		this.hstart[this.z]+this.hoehen[this.z],
		this.wstart[this.s]+this.weiten[this.s]
		)

}
function clipObjAnAus(anaus){
	if(this.visible==anaus)return
	this.visible=anaus
	if(this.con==0)return
	if(this.visible==1)
		show(this.elm)
	else
		hide(this.elm)
}
function clipObjMoveTo(x,y){
	if(x!=null)this.left=x
	if(y!=null)this.top=y
	if(this.con==0)return
	moveTo2(
		this.elm,
		x,
		y,
		this.wstart[this.s],
		this.hstart[this.z])
}
ClipObj.prototype.set=clipObjSet;
ClipObj.prototype.anaus=clipObjAnAus;
ClipObj.prototype.moveTo=clipObjMoveTo;


function clipObjGetWeite(){return this.weiten[this.s]}
function clipObjGetHoehe(){return this.hoehen[this.z]}
ClipObj.prototype.getweite=clipObjGetWeite;
ClipObj.prototype.gethoehe=clipObjGetHoehe;


// BrowserCheck Object
function BrowserCheck() {
	var b = navigator.appName
	if (b=="Netscape") this.b = "ns"
	else if (b=="Microsoft Internet Explorer") this.b = "ie"
	else this.b = b
	this.version = navigator.appVersion
	this.v = parseInt(this.version)
	this.ns = (this.b=="ns" && this.v>=4)
	this.ns4 = (this.b=="ns" && this.v==4)
	this.ns5 = (this.b=="ns" && this.v==5)
	this.ie = (this.b=="ie" && this.v>=4)
	this.ie4 = (this.version.indexOf('MSIE 4')>0)
	this.ie5 = (this.version.indexOf('MSIE 5')>0)
	this.min = (this.ns||this.ie)

}
is = new BrowserCheck()

function writediv(frame,name,left,top,width,height,src,down,over,out,zindex){
	var ret="";
	ret+='<div id="'+name+'" '
	ret+='style="position:absolute;left:'+left+'px;';
	ret+='top:'+top+'px;';
	ret+='width:'+width+'px;';
	ret+='height:'+height+'px;';
	ret+='visibility:hidden;';
	ret+='z-index:'+zindex+';';
	if(is.ns5)	ret+='overflow:hidden;';
	//if(!is.ns5)	ret+='clip:rect(0px 0px 0px 0px);';
	ret+='" >'
	if(is.ns5){
		ret+='<div id="'+name+'unter" '
		ret+='style="position:absolute;left:0px;';
		ret+='top:0px;';
		ret+='" >'
	}
	ret+='<a href="'+down+'" onmouseover="'+over+'" onmouseout="'+out+'">'
	ret+='<img src="'+src+'" border="0">'
	ret+='</a>'
	ret+='</div>'
	if(is.ns5){ret+='</div>';}
	return ret
}
function getdiv(frame,name){
	if(is.ns4)
		return frames[frame].document.layers[name]
	else if(is.ns5)
		return frames[frame].document.getElementById(name)
	else
		return frames[frame].document.all[name]
}
function show(elm){
	if(is.ns4)
		elm.visibility="show"
	else if(is.ns5)
		elm.style.visibility="visible"
	else
		elm.style.visibility="visible"
}
function hide(elm){
	if(is.ns4)
		elm.visibility="hide"
	else if(is.ns5)
		elm.style.visibility="hidden"
	else
		elm.style.visibility="hidden"
}
function moveTo(elm,x,y){
	if(is.ns4){
		elm.left=x
		elm.top=y
	}
	else if(is.ns5){
		elm.style.left=""+x+"px"
		elm.style.top=""+y+"px"
	}
	else{
		elm.style.left=""+x+"px"
		elm.style.top=""+y+"px"
	}
}
function moveTo2(elm,x,y,offx,offy){
	if(is.ns4){
		elm.left=x-offx
		elm.top=y-offy
	}
	else if(is.ns5){
		elm.style.left=""+x+"px"
		elm.style.top=""+y+"px"
	}
	else{
		elm.style.left=""+(x-offx)+"px"
		elm.style.top=""+(y-offy)+"px"
	}
}
function clipTo1(elm,x,y,l,t,b,r){
	if (is.ns4) {
		elm.left=x-l
		elm.top=y-t
	
		elm.clip.top = t
		elm.clip.left = l
		elm.clip.right = r
		elm.clip.bottom = b
	}
	else if (is.ie) {
		elm.style.left=""+(x-l)+"px"
		elm.style.top=""+(y-t)+"px"
		elm.style.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)"
	}
	else if(is.ns5){
		elm.style.left=""+x+"px"
		elm.style.top=""+y+"px"
		
		elm.style.height=""+(b-t)+"px";
		elm.style.width=""+(r-l)+"px";

		elm.childNodes[0].style.left=""+(l*(-1))+"px";
		elm.childNodes[0].style.top=""+(t*(-1))+"px";
	}
}
function clipTo(elm,x,y,l,t,b,r){
	//alert(elm+" "+x+" "+y+" "+l+" "+t+" "+b+" "+r)
	if (is.ns4) {
		elm.left=x-l
		elm.top=y-t
	
		elm.clip.top = t
		elm.clip.left = l
		elm.clip.right = r
		elm.clip.bottom = b
	}
	else if (is.ie) {
		elm.style.left=""+(x-l)+"px"
		elm.style.top=""+(y-t)+"px"
		elm.style.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)"
	}
	else if(is.ns5){
		elm.style.left=""+x+"px"
		elm.style.top=""+y+"px"
		
		elm.style.height=""+(b-t)+"px";
		elm.style.width=""+(r-l)+"px";

		elm.childNodes[0].style.left=""+(l*(-1))+"px";
		elm.childNodes[0].style.top=""+(t*(-1))+"px";
	}
}


var indexJsExists=true;

function NaviAddIndexKey(name,wert){
	this.index.addKey(name,wert);
}
function NaviAddIndexTitle(knotenname,wert){
	this.index.addTitle(name,wert);
}
function NaviPrintIndex(){
	this.index.printIndex();
}

//###################################
function index(){
	this.IndexFenster=null;
	this.IndexHeader="Suche";
	this.sortiert=false;
	
	this.aktobj=0;
	this.stopobj=0;

	this.keys=new Array();
	this.targets=new Array();
	this.titles=new Array();

//public
	this.addKey=IndexAddKey;
	this.addTitle=IndexAddTitle;
	this.printIndex=IndexPrintIndex;
//private
	this.sortMe=IndexSortMe;

}

function IndexAddKey(name,wert){
	var nr=this.keys.length;
	this.keys[nr]=wert;
	this.targets[nr]=name;
	this.aktobj=nr;
}
function IndexAddTitle(name,wert){
	for (var i=this.stopobj;i<=this.aktobj ;i++){
		this.titles[i]=wert;
	}
	this.stopobj=this.aktobj+1;
}
function IndexPrintIndex(){
if(!(this.indexFenster==null
	|| (this.indexFenster!=null && this.indexFenster.closed))){
	this.indexFenster.focus();
	return;
	}
	if(this.sortiert==false){
		this.sortMe();
		this.sortiert=true;
	}
	var ret="";

	ret+='<html><head><title>Suche / www.ermet-buck.de</title><link rel="stylesheet" href="codes/ermet.css"></head><body leftmargin=0 topmargin=0 marginheight="0" marginwidth="0" bgcolor="#FFFFFF" link="#000000" vlink="#0099FF"><table width="450" border="0" cellspacing="0" cellpadding="0"><tr><td><img src="images/hg_pop.gif" width="450" height="82"></td></tr></table><table width="450" border="0" cellspacing="0" cellpadding="0"><tr><td width="240" background="images_neutral/bg_grau.gif" align="right" valign="top"><table width="240" border="0" cellspacing="0" cellpadding="0"><tr><td class="h1sw" width="30"><img src="images_neutral/bg_grau.gif" width="25" height="8"></td><td class="h1sw" width="205"> SUCHE</td></tr><tr><td width="30">&nbsp;</td><td width="205">';

	ret+="<form>";
	ret+="<select onChange='opener.steuer.set(this.options[this.selectedIndex].value);opener.focus()'>";
	ret+="<option value='' >"+this.IndexHeader+"</option>\n";
	for(var i=0;i<this.keys.length;i++) {
		ret+="<option value='"+this.targets[i]+"'>"+this.keys[i];
		if(this.keys[i]==this.keys[i+1] || this.keys[i]==this.keys[i-1])
			ret+="["+this.titles[i]+"]";
		ret+="</option>\n";
	}
	ret+="</select>";
	ret+="</form>";

	ret+='</td></tr></table></td><td width="210" background="images_neutral/bg_grau.gif" valign="top" align="left"><img src="images/suchtxt1.gif" width="170" height="40"></td></tr></table><table width="450" border="0" cellspacing="0" cellpadding="0"><tr><td>&nbsp;</td></tr></table></body></html>';

	this.indexFenster=window.open("","Index","height=155,width=450,resizable=no");
	this.indexFenster.document.open();
	this.indexFenster.document.write(ret);
	this.indexFenster.document.close();
}
function IndexSortMe(){
	var s1=this.keys;
	var s2=this.targets;
	var s3=this.titles;

	quick3sort(s1,s2,s3, 0, s1.length-1);

	this.keys=s1;
	this.targets=s2;
	this.titles=s3;
}

function quick3sort(s1,s2,s3, kl, gr){
  var i, j, i1;
  var Temp;
  var T1;
  var T2;
  var pivotwert;
  var pivoti;
  if (kl<gr) {
    i= kl;
    j= gr-1;
    pivoti=gr;
    pivotwert=s1[gr];
    while(1==1){
      while((lexcompare(s1[i],s1[gr])<=0)&&(i<gr)) {i++;}
      while( (lexcompare(s1[gr],s1[j])<0) && (0 < j) ) j--;

      Temp = s1[i];		T1=s2[i];		T2=s3[i];
      s1[i]= s1[j];		s2[i]=s2[j];	s3[i]=s3[j];
      s1[j]= Temp;		s2[j]=T1;		s3[j]=T2;
      if(!(i<j))break;
    }

    s1[j]=s1[i];		s2[j]=s2[i];	s3[j]=s3[i];	
    s1[i]=s1[gr];		s2[i]=s2[gr];	s3[i]=s3[gr];
    s1[gr]=Temp;		s2[gr]=T1;		s3[gr]=T2;

    quick3sort(s1,s2,s3, kl, i - 1);
    quick3sort(s1,s2,s3, i + 1, gr);
  }
}
function lexcompare(string1,string2){
	var t1=string1.toLowerCase();
	var t2=string2.toLowerCase();
	if(t1<t2) return -1;
	if(t1>t2) return 1;
	return 0;
}

