var ns ;var ie ;var n6;var op;var W;

function BrowserCheck()
{
	ns=document.layers;
	ie=document.all;
	op=window.opera;
	if(!ie&&document.getElementById)
	{
		ns=false;n6=true;
	};
	if(ns||n6||op)
	{
		W=window.innerWidth-16}else{W=document.body.offsetWidth-20;
	}
}

function TIMoveTo(x,y)
{
	if(this.itemCount<1) return;
	this.xpos=x;this.ypos=y;this.css.left=x;this.css.top=y;
}

function TIGet(id)
{
	if(id==this.id) return this;
	for(var i=0;i<this.itemCount;i++)
	{
		It=this.items[i].Get(id);
		if(It!=null) return It;
	}
	return null;
}

function TIA(id,parid,name,link,target,image,im2,iw,ih)
{
	It=new TreeItem(id,parid,name,link,target,image,im2,iw,ih);
	this.Add(It);
}

function TIAdd(N)
{
	N.Opened=false;
	It=this.Get(N.parid);
	if(N.parid==this.id)
	{
	N.width=this.width;
	N.bckColor=this.bckColor;
	N.selBckColor=this.selBckColor;
	N.fntColor=this.fntColor;
	N.fntSize=this.fntSize;
	N.iHeight=this.iHeight;
	N.imWidth=this.imWidth;
	if(N.iw>this.width&&this.align=="vert") this.width=N.iw;
	if(N.ih>this.iHeight&&this.align!="vert") this.iHeight=N.ih;
	N.arrIm=this.arrIm;N.arrIm1=this.arrIm1;
	N.selFntColor=this.selFntColor;
	this.items[this.itemCount]=N;N.d=this.d;
	N.parentItem=this;
	N.bSize=this.bSize;
	N.face=this.face;
	N.onm=this.onm;N.i=this.i;N.b=this.b;N.u=this.u;
	N.bColor=this.bColor;
	N.visibility="hidden";
	this.itemCount++;
	return;
	}
	if(It!=null) {It.Add(N);return;}
}


function TIWriteDiv()
{
	preload(this.vname+".iob",this.arrIm);preload(this.vname+".iob1",this.arrIm1);preload(this.vname+".imb",this.img2);
	if(this.itemCount<1) return false;
	document.write("<DIV ID='"+this.vname+"'>");
	for(var i=0;i<this.itemCount;i++)
	{
		ci=this.items[i];
		ref=ci.name;if(ci.b)ref="<b>"+ref+"</b>";if(ci.i)ref="<i>"+ref+"</i>";if(ci.u) ref="<u>"+ref+"</u>";
		im="";im1="";cl="";scl="";im2="";ime="";
		cl=" color='"+ci.fntColor+"'";scl=" color='"+ci.selFntColor+"'";
		
		if(ci.image!="")
		{
			im1="<img name='"+ci.vname+"ic' src='";ime="' width='"+this.imWidth+"' height='"+this.iHeight+"' border=0>";
		}
		
		w=ci.iw-this.imWidth-this.iHeight;
		
		if(ci.itemCount>0&&this.arrIm!="")
		{
			im="<img name='"+ci.vname+"im' src='"+this.iob.src+"' height='"+this.iHeight+"' width='"+this.iHeight+"' border=0>";im2="<img name='"+ci.vname+"im' src='"+this.iob1.src+"' height='"+this.iHeight+"' width='"+this.iHeight+"' border=0>";
		}
		
		t1="<table border='0' width='"+ci.iw+"' cellspacing='0' height='"+ci.ih+"' cellpadding='0'><tr><td width =5>"+im1;te=ime+"</td><td width= '"+ci.iw+"' ><font ";tc=" size='"+ci.fntSize+"' face='"+ci.face+"'>";t2="</font></td><td width="+this.iHeight+">";t3="<td></tr></table>";
		ci.normText=t1+ci.image+te+cl+tc+"<div id='"+ci.vname+"t' >"+ref+"</div>"+t2+im+t3;
		ci.selText=t1+ci.img2+te+scl+tc+ref+t2+im2+t3;
		document.write("<DIV ID='"+ci.vname+"i' >"+ci.normText+"</DIV>");
		if(ie){ci.ilayer=document.all[ci.vname+"i"];ci.tlayer=document.all[ci.vname+"t"];
	}
	if(n6){ci.ilayer=document.getElementById(ci.vname+"i");
	ci.tlayer=document.getElementById(ci.vname+"t");
	var tl=ci.tlayer.style;
	tl.color=ci.fntColor;tl.fontFamily=this.face;
	tl.fontSize=6+2*ci.fntSize+"pt";
	};
	if(ns)ci.ilayer=eval("document."+this.vname+".document."+ci.vname+"i");
	}
	document.write("</DIV>");	
	for(var i=0;i<this.itemCount;i++)
	{
	this.items[i].WriteDiv();
	}
	if(ie){this.layer=document.all[this.vname];this.css=this.layer.style;}
	if(n6){this.layer=document.getElementById(this.vname);this.css=this.layer.style;}
	if(ns){this.layer=eval("document."+this.vname);this.css=this.layer;}
	return false;
}


function TIEventInit()
{
	var oinit=true;
 	for(var i=0;i<this.itemCount;i++)
 	{
 		this.items[i].EventInit();
 	}
	for(var i=0;i<this.itemCount;i++)
	{
		var style=this.items[i].ilayer;
		if(oinit)this.layer.onmouseout=new Function("e",this.vname+".outHandler(e);return false;");
		oinit=false;
		style.onmouseover=new Function(this.vname+".moveHandler("+i+");return false;");
		style.onmousedown=new Function(this.vname+".downHandler("+i+");return false;");
		if(ns)style.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
	}
}

function TIWriteCSS()
{
	var dx;
	var dy;
	var bCol=(ns)?"layer-background-color:" : "background-color:";
	var d=this.d;var b=this.bSize;

	var xs=b;var ys=b;
	for(var i=0;i<this.itemCount;i++)	
	{
		var N=this.items[i];
		N.iw=(N.iw)? N.iw:this.width;
		N.ih=(N.ih)? N.ih:this.iHeight;
		if(this.align=="vert")
		{
			ys+=d+N.ih;xs=this.width+b+d;if(N.iw<this.width)N.iw=this.width;
		}
		else
		{
			xs+=d+N.iw;ys=this.iHeight+b+d;if(N.ih<this.iHeight)N.ih=this.iHeight;
		};
	}
	ys+=b-d;xs+=b-d;
	this.tH=ys; this.tW=xs;
	if(this.itemCount>0)
	{
		if(this.parentItem==null)document.write("<STYLE TYPE='text/css'><!--");
		document.write("#"+this.vname+" {position:absolute;width:"+xs+"px;left:"+this.xpos+"px;top:"+this.ypos+"px;height:"+ys+"px;clip:rect(1,"+xs+","+ys+",0); visibility: "+this.visibility+"; "+bCol+this.bColor+";cursor:hand; z-index:5;}"); 
	  //document.write("#"+this.vname+" {position:absolute;width:"+xs+"px;left:"+this.xpos+"px;top:"+this.ypos+"px;height:"+ys+"px;clip:rect(0,"+xs+","+ys+",0); visibility: "+this.visibility+";"+bCol+this.bColor+"; cursor:hand; z-index:5;}"); 
		xs=b;ys=b;
		for(var i=0;i<this.itemCount;i++)
		{
			var N=this.items[i];N.xs=xs;N.ys=ys;
			document.write("#"+N.vname+"i {position:absolute; "+bCol+N.bckColor+"; top:"+ys+"px; left:"+xs+"px"+"; width:"+N.iw+"px; height:"+N.ih+"px; z-index:1;}"); 
		  //document.write("#"+N.vname+"i {position:absolute; "+bCol+N.bckColor+"; top:"+ys+"px; left:"+xs+"px"+"; width:"+N.iw+"px; height:"+N.ih+"px; z-index:1;}"); 
			if(this.align=="vert") {ys+=d+N.ih} else {xs+=d+N.iw};
			N.WriteCSS();
		}
		if(this.parentItem==null)document.write("--></STYLE>");
	}
}

function TIShow(o)
{
	this.focus=-1;
	if(this.itemCount<1) return;
	if(o==1)
	{
		this.css.visibility=(ns)? "show":"visible";
	}
	else
	{
	for(var i=0;i<this.itemCount;i++)this.items[i].Show(0);
	this.css.visibility=(ns)? "hide":"hidden";
	}
}

function TIToggle(mod)
{
	this.Opened=mod;
	var c1=this.bckColor;
	var c2=this.selBckColor;
	if(ie||n6)
	{
		im=document.images;
		if(im[this.vname+"im"])im[this.vname+"im"].src=(mod)? this.arrIm1:this.arrIm;
		if(im[this.vname+"ic"])im[this.vname+"ic"].src=(mod)? this.img2:this.image;
		this.ilayer.style.backgroundColor=(mod)? c2 : c1;
		this.ilayer.style.background=(mod)? c2:c1;
		this.tlayer.style.color=(mod)? this.selFntColor:this.fntColor; 
	}
	
	if(ns)
	{
		var txt=(mod)? this.selText:this.normText;   
		this.ilayer.document.bgColor=(mod)? c2 : c1; 
		this.Write(txt);
	}   
}       

function TIMove(i)
{
	if(this.itemCount<1)return;
	if(this.onm)this.onm(i);
	this.active=true;pI=this.parentItem;ti=this.items[i];ts=this.items[this.selected];
	if(pI!=null)
	{
		pI.active=true;pI.focus=-1;
	}
	ts.active=true;
	k=0;j=1;
	if(this.align=="vert")
	{
		k=1;j=0;
	}
	var nxpos=this.xpos+k*this.width+ti.xs;
	var nypos=this.ypos+j*this.iHeight+ti.ys;
	if(nxpos+ti.width>W) nxpos=nxpos-(this.width+ti.width);
	ti.MoveTo(nxpos,nypos);ts.Show(0);ti.Show(1);ts.Toggle(false);ti.Toggle(true);status=ti.link;
	this.selected=i;this.focus=i;
}

function TIDown(i)
	{
		it=this.items[i];
		if(it.link!="")
		{
			if(it.link.substring(0,11)=="javascript:")
			{
				eval(it.link.substring(11,it.link.length));return;
			}
			if(it.target!="")parent.frames[it.target].location=it.link;else location.href=it.link;
		}
}

function TIReset()
	{
		if(this.active)return;
		this.items[this.selected].Show(0);
		if(this.parentItem!=null)
		{
			if(this.parentItem.focus>=0)return;
			this.parentItem.active=false;this.parentItem.Reset();
		}
		this.items[this.selected].Toggle(false);
	}

function TIWrite(text)
	{
		var style=this.ilayer;
		style.document.open();
		style.document.write(text);
		style.document.close();
	}


function TIMout(e)
	{
	if(!ns)
		{
			if(n6){mx=e.pageX;my=e.pageY;
		}
		else
		{
			mx=window.event.clientX;
			my=window.event.clientY;
			if(!op)
				{
					my+=document.body.scrollTop;mx+=document.body.scrollLeft;
				}
		}
		if((mx>this.xpos+1&&mx<this.xpos+this.tW)&&(my>this.ypos+1&&my<this.ypos+this.tH)) return;
	}
	this.active=false;this.focus=-1;
	setTimeout(this.vname+".Reset()",300);
}

function preload(imgObj,imgSrc)
	{
		eval(imgObj+' = new Image()');eval(imgObj+'.src = "'+imgSrc+'"');
	}

function TreeItem(id,parid,name,link,target,image,im2,iw,ih)
	{
		this.vname="DdMenu"+TreeItem.dmcount;
		TreeItem.dmcount++;
		this.image=image;
		this.img2=(im2)? im2:image;
		this.name=name;
		this.frname="";
		this.id=id;
		this.parid=parid;
		this.link=link;
		this.target=target;
		this.items=new Array();
		this.itemCount=0;
		this.Opened=true;
		this.fntSize=2;
		this.face="arial";
		this.arrIm="./gifs/Arrow_1.gif";
		this.arrIm1="./gifs/Arrow_2.gif";
		this.xpos=0;	// x position
		this.ypos=0;	// y position
		this.selected=0;
		this.height=0;
		this.width=0;
		this.b=false;// schriftformatierung
		this.i=false;// schriftformatierung
		this.u=false;// schriftformatierung
		this.d=0; // breite der querstriche
		this.iHeight=20;
		this.imWidth=20;
		this.focus=-1;
		this.bSize=1;	// rahmenstärke
		this.iw=iw;
		this.ih=ih;
		this.tW=0;
		this.tH=0;
		this.onm=null;
		this.WriteCSS = TIWriteCSS;
		this.Show = TIShow;
		this.Add = TIAdd;
		this.WriteDiv = TIWriteDiv;
		this.Get = TIGet;
		this.A = TIA;
		this.align="vert";	// drop down -> vert=vertikal // hor=horizontal
		this.moveHandler=TIMove;
		this.outHandler=TIMout;
		this.downHandler=TIDown;
		this.active=true;	// true = vertikales menu // false = horizontales menu
		this.Reset=TIReset;
		this.EventInit=TIEventInit;
		this.MoveTo=TIMoveTo;
		this.Write=TIWrite;
		this.Toggle=TIToggle;
		this.normText="#000000";
		this.selText="#FFFFFF";
		this.bckColor="#000000";	// Hintergrundfarbe Menü
		this.fntColor="#CCCCCC";	// Textfarbe
		this.selFntColor="#FFFFFF";	// Farbe für "mouseover" Text
		this.selBckColor="#282828";	// Farbe für "mouseover" Hintergrund
		this.alinkColor="#000000";
		this.bColor="#6B6D6B";		// Rahmenfarbe
		eval(this.vname + "=this");
	}

TreeItem.dmcount=0;