// JavaScript Document

var Debug = false
var jumpto = false
var structure = new Array()
var idStructure = new Array()
//var Url="index.php?id=";
//Url = "ei_dynnav.html?id=";
var Level1 = false

var markedId = false
var markedLevel = false
var currentLevelId = false
var currentOver = false

//var tree = new Array();

//add Navpoint order of levels decides what the tree will look like
function addNav(l,arr) {
//	alert(arr[0]+" "+arr[1])
 structure[structure.length] = new Array(l,arr[0],arr[1]);
}

var curentl1 = 0;
var curentl2 = 0;
var curentl3 = 0;

 

//build tree
function sortNav() {
mytree = new Array();
topnav = new Array();
	for(i=0;i<structure.length;i++) {
		idStructure[structure[i][1]] = structure[i][0];
	if (structure[i][0]==3) {
      curentl3++;
    	mytree[curentl1][2][curentl2][2][curentl3] = new Array(structure[i][1],structure[i][2]);
//      alert(structure[i][1])
    }
  
	if (structure[i][0]==2) {
      curentl2++;
    	mytree[curentl1][2][curentl2] =  new Array(structure[i][1],structure[i][2],new Array());
      curentl3 = 0;
    }
	if (structure[i][0]==1) {
      curentl1++;
    	mytree[curentl1] = new Array(structure[i][1],structure[i][2],new Array());
      curentl2 = 0;
      curentl3 = 0;
     // alert(structure[i][2])
    }
//    alert("a: "+curentl1 + " b: "+ curentl2 +" c: "+curentl3);
  
  }
//	alert(mytree)
	return mytree
}

function init() {
	t = location.href.split('?')
	if (t[1]) {
		t2 = t[1].split('&');
		for(i in t2) {
			t3 = t2[i].split('=');
			if (t3[0]=='id') {
				jumpto = t3[1]
			}
		}
	}
	tree = doAddNav() //Summary off all addnav calls, defined in the including template (probably a hack for easier mantainance in typo3)
	navPoints = tree.length
	return new Array(tree);
}



var navWidth= 693
var navPoints = 7
var step = navWidth/navPoints;
var newstep = Array(0,147,85,135,105,90,65,58) //Enter here the offset of main navpoint in pixels, relative to the previous neighbour
var level1step = Array(-1,-1,-1,-1,-1,-1,-72,-138) //Offset of Submenu, relative to thei parents
var tablestep = 120; //navWidth/navPoints;
var leftlevel0 = 100;
var offsetlevel0 = 58;
var heightlevel0 = 28;
var widthLevel1 = 180
var heightlevel1 = 87;
var valueMovetocenter = 218;

var maxalpha = 15
var addstep = 0
var addstepcount = 0
var current_add = 0

var tableprops = "width="+tablestep+" height="+heightlevel0+" cellpadding=0 cellspacing=0 border=0 style='margin: auto; cursor:pointer;'";

var styleprops = "style='font-family: Verdana,Helvetica,Arial,Geneva,sans-serif;font-size:10px;"
var styleprops_on = "; font-weight: bold;color: #89092a;"
var styleprops_off = "; font-weight: bold;color: #8c8885;"
var borderprops_l0 = "; border-bottom: 1px solid #9d968e;'";// border-right: 1px dotted #9d968e;"
//var borderprops_l1 = "; border-left: 1px solid #9d968e; border-right: 1px solid #9d968e; border-bottom: 1px dotted #9d968e;'";


// possible better solution... but less coptnrol over the output . 
var html_l0_off =new  Array('<table '+tableprops+' bgcolor=ffffff><tr><td style=\'border-bottom: 1px solid #9d968e;\'  width=1><img src=fileadmin/menu/line_vert_men.gif height=28 width=1></td><td width=16 style=\'border-bottom: 1px solid #9d968e; \'><img src=img/off.gif height=28 width=16></td><td width='+tablestep+' align=left '+styleprops+styleprops_off+borderprops_l0+'>','</td></tr></table>');
var html_l0_on =new  Array('<table '+tableprops+' bgcolor=ffffff><tr><td style=\'border-bottom: 1px solid #9d968e;\'  width=1><img src=fileadmin/menu/line_vert_men.gif height=28 width=1></td><td width=16 style=\'border-bottom: 1px solid #9d968e; \'><img src=img/on.gif height=28 width=16></td><td width='+tablestep+' align=left '+styleprops+styleprops_on+borderprops_l0+'>','</td></tr></table>');
var html_l0_active =new  Array('<table '+tableprops+' bgcolor=ffffff><tr><td style=\'border-bottom: 1px solid #9d968e;\'  width=1><img src=fileadmin/menu/line_vert_men.gif height=28 width=1></td><td width=16 style=\'border-bottom: 1px solid #9d968e; \'><img src=fileadmin/images/active.gif height=28 width=16></td><td width='+tablestep+' align=left '+styleprops+styleprops_on+borderprops_l0+'>','</td></tr></table>');


function getStepes(end) {

	out=0;
	for (s in newstep) {
//	 alert(s+" "+end+" "+out)
	 if (s < end) out+=newstep[s]
	}
//	alert(out)
	return out
	
}
/*getStepes(0)
getStepes(1)
getStepes(4)
getStepes(8)
getStepes(9)
getStepes(16)*/

function reset(t) {
	if (Debug) document.forms[0].f.value=""
}

function debug(t) {
	if (Debug) document.forms[0].f.value+=t+"\n"
}



function create_level0_link(i,linkid,linktitle) {
	steps = getStepes(i+1)
//	alert(i)
//	step = newstep[i]
//	alert(step)
//	alert(i+":"+steps)
//alert(html_l0_off[0].replace(tablestep,newstep[i])+" "+html_l0_off[0])
	eval('level0_link'+i+' = new DynLayer("level0_link'+i+'",0,0,step,0,"",true,4)')
	//alert(listener_level0_link);
	eval('level0_link'+i+'.addEventListener(listener_level0_link)');
	//eval('level0_link'+i+'.moveTo('+(steps-newstep[i])+','+offsetlevel0+')')
	//eval('level0_link'+i+'.setSize(widthLevel1 ,heightlevel0)')
	
	eval('level0_link'+i+'.setHTML("<table '+tableprops.replace(tablestep,newstep[i])+'><tr><td></td></tr></table>")');//index.php?id="+linkid+

	//eval('level0_link'+i+'.setHTML("<table border=1 height='+heightlevel0+' width='+ newstep[i]+' border=0 cellpadding=0 cellspacing=0 ><tr><td></td></tr></table>")');
	eval('level0_link'+i+'.thisi = i')
	eval('level0_link'+i+'.thise = false')
	eval('level0_link'+i+'.thislevel = 0')
	eval('level0_link'+i+'.thistitle = linktitle')
	eval('level0_link'+i+'.thisid = linkid')
eval('level0_link'+i+'.moveTo('+(steps-newstep[i])+','+offsetlevel0+')')

	//eval('level0_link'+i+'_content = new DynLayer("level0_link'+i+'_content",0,0,newstep[i],0,"",true,1)')
	eval('level0_link'+i+'_content = new DynLayer("level0_link'+i+'_content",0,0,newstep[i],0,false,true,1)')
	eval('level0_link'+i+'_content.setHTML("'+html_l0_off[0].replace(tablestep,newstep[i])+linktitle+html_l0_off[1]+'")');//index.php?id="+linkid+ 
	eval('level0_link'+i+'_content.moveTo('+(steps-newstep[i])+','+offsetlevel0+')')

	
	//mouseover main
	eval('level0_link'+i+'_contenth = new DynLayer("level0_link'+i+'_contenth",0,0,newstep[i],0,"",true,2)')
	eval('level0_link'+i+'_contenth.setHTML("'+html_l0_on[0].replace(tablestep,newstep[i])+linktitle+html_l0_on[1]+'")');//index.php?id="+linkid+ 
	eval('level0_link'+i+'_contenth.moveTo('+(steps-newstep[i])+','+offsetlevel0+')')
	eval('level0_link'+i+'_contenth.setVisible(false)');
	
	//selected main
	eval('level0_link'+i+'_contentact = new DynLayer("level0_link'+i+'_contentact",0,0,newstep[i],0,"",true,3)')
	eval('level0_link'+i+'_contentact.setHTML("'+html_l0_active[0].replace(tablestep,newstep[i])+linktitle+html_l0_active[1]+'")');//index.php?id="+linkid+ 
	eval('level0_link'+i+'_contentact.moveTo('+(steps-newstep[i])+','+offsetlevel0+')')
	eval('level0_link'+i+'_contentact.setVisible(false)');
	
	eval('level0.addChild(level0_link'+i+'_content)');
	eval('level0.addChild(level0_link'+i+'_contenth)');
	eval('level0.addChild(level0_link'+i+'_contentact)');
eval('level0.addChild(level0_link'+i+')');
//	eval('alert(level0_link'+i+'.getHeight ())')
}


function create_level1(i,html) {
	steps = getStepes(i)
	eval('level0_link'+i+'_table = new DynLayer("level0_link'+i+'_table",0,0,0,0,"",true,5)')
	eval('level0_link'+i+'_table.addEventListener(listener_level1)');
	eval('x= level0_link'+i+'.getX()')
	eval('y = heightlevel0')
	eval('level0_link'+i+'_table. setX('+(steps+level1step[i])+')');
	eval('level0_link'+i+'_table. setY(heightlevel1)');
//alert(level1step[i]+" "+i)
 level1step
//	eval('level0_link'+i+'_table. setY('+(y-1)+')');	  
	eval('level0_link'+i+'_table.setSize((step*2),300)');
	eval('level0_link'+i+'_table.setHTML(html)');
	eval('level0_link'+i+'_table.setVisible(false)');
	eval('main.addChild(level0_link'+i+'_table)');
//	eval('level0_link'+i+'.addChild(level1'+i+')');
}



function callHref(href) {
//	main=false
	location.href=href
}



function makeLinkUrl (linkid) {
//	return 'index.php?id='+linkid;
	return Url+linkid;
}

function makeLink (title,linkid) {
	thelink=makeLinkUrl (linkid)
	return '<a href='+thelink+'>'+linkid+' '+title+'</a>'
}

/*function getcolorArray(i,e,mode,level) {
	
//		debug (i+" "+e+" "+mode+" "+level)
		if (!mode) mode='off'
		if (!level) level='0'

		eval('table = html_l'+level+'_'+mode)
   	eval('color= colorl'+level+'_'+mode)
//    debug("???"+" i"+color[i]+" e"+color[e])//table +

	 if (level==0) {
			return new Array(table[0].replace("##color##",color[i]),table[1]);
    } else {
			return new Array(table[0].replace("##color##",color[e]),table[1]);
    }
     
/*		if (!e) {
	   return new Array(html_off[0].replace("##color##",colorl0_off[i]),html_off[1]);
    } else {
	   return new Array(html_off[0].replace("##color##",colorl1_off[e]),html_off[1]);    
    }*/
//}

function open_level1(level) {
//	debug("level"+level);
	if (level!=false) {
		eval(level+'_table.setVisible(true)');
  	currentLevelId=level
		main.setSize(navWidth,350)
	}

}

function close_level1(level) {
//	alert(".??."+currentLevelId)
//	alert(level)
	if (level!=false) {
		eval(level+'_table.setVisible(false)');
  currentLevelId=false
  		main.setSize(navWidth,100)
	}
}

function getcurrentLevelId() {
	return currentLevelId
}

function reset_level1(level) {
	//l = eval('main.children.length');
//	for(i=1;i<l;i++) {
//	 eval('main.level'+i+'.setVisible(false)')
//	}


//	debug(level0.)
//  debug(eval('level0.children'))
//	l = eval('level0.children.length');
//	for(i=0;i<l;i++) {}
//  	debug("RESTE: "+eval('level0.children['+i+']'))
//		debug(eval('level0.children['+i+'].thisi'))
//		alert(1)
//		alert(eval('level0.children['+i+'].thisi'))
/*    if (eval('level0.children['+i+']') != undefined) {
       if (eval('level0.children['+i+'].thisi') != undefined) { 
	eval('level0.children['+i+'].children[0].setVisible(false)');
               currentLevelId=false
       }
    }
//		alert(3)
	}*/
//	eval(level+'.children[0].setVisible(true)');
}




function markB(level) {
	if (!level || !markedLevel) return
	eval(level+'_contenth.setVisible(true)');
	main.setSize(navWidth,350)
	if(markedLevel == level) {
		eval(markedLevel+'_contentact.setVisible(false)');
	}
	
  if (markedId != level) {
	  currentOver = level
	  unMarkB(markedId)
  }
}

function selectB(level) {
	if (!level) return
	eval(level+'_contentact.setVisible(true)');
}

function unMarkB(level) {
	if (!level || !markedLevel) return
	eval(markedLevel+'_contentact.setVisible(true)');
	eval(level+'_contenth.setVisible(false)');
	
  if (markedId != level) {
	  selectB(markedId)
	  currentOver = false
  } else {
	  
  }
  setTimeout("reset_timeed()",600);
}

function setPath (theinternalid) {
	markedId=theinternalid
}

function reset_timeed() {
//	debug("reset timed: "+currentLevelId +" "+currentOver)
	if (currentLevelId && currentOver==false) {
		reset_level1(currentLevelId)
//    debug("reset "+markedId)
		if (markedId!=false) {
	    //markB(markedId)
    }
//		debug("reset "+markedLevel)
/*    if (markedLevel!=false) {    
	    open_level1(markedLevel)
    }*/
  } else {
  	return
  }
}

DynAPI.onUnload = function() {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

DynAPI.onLoad = function() {
	reset();
	
	listener_level0_link = new EventListener(DynAPI.document)
	/* deactivated href on level 0, 20040611
listener_level0_link.onclick = function(e){  
//							debug('klick '+e.getSource())
		this_id = e.getSource ()
		this_name = this_id.getDef ()
		if (Level1 != true) {
			callHref(makeLinkUrl(this_id.thisid))
		}
//					    debug('level0 klick '+e.getSource()+" "+this_name+" "+this_id.thisid)
							
	}*/
	/*listener_level0_link.onmouseover = function(e){
		this_id = e.getSource ()
		this_name = this_id.getDef ()
	//debug('leve0_Link over '+e.getSource()+" "+this_name)
		if (currentOver != this_name) {
//								 debug("Do mo l1")
		close_level1(getcurrentLevelId())
			open_level1(this_name)
      		markB(this_name)
		}

	}*/
						
		listener_level0_link.onmousemove = function(e){
//							debug('over '+e.getSource())
		this_id = e.getSource ()
		this_name = this_id.getDef ()
	//debug('leve0_Link over '+e.getSource()+" "+this_name)
		if (currentOver != this_name) {
//								 debug("Do mo l1")
		close_level1(getcurrentLevelId())
			open_level1(this_name)
      		markB(this_name)
		}
	}
	listener_level0_link.onmouseout = function(e){
//							debug('out '+e.getSource())
		this_id = e.getSource ()
		this_name = this_id.getDef ()
		unMarkB(this_name)

							//debug('leve0_Link out  '+e.getSource()+" "+this_name)
//							close_level1(this_name)
	}
	listener_level1 = new EventListener(DynAPI.document)
	listener_level1.onclick = function(e){
		this_id = e.getSource ()
		this_name = this_id.getDef ()
		Level1=true
						  //alert('level1 klick '+e.getSource()+" "+this_name+" "+this_id.thisid)
	}
	listener_level1.onmouseover = function(e){
		this_id = e.getSource ()
		this_name = this_id.getDef ()
		Level1=true
		markB(this_name.slice(0,this_name.lastIndexOf('_')))
//    open_level1(this_id.parent.getDef())

  						//debug('level1  over '+e.getSource()+" ")
	}
	listener_level1.onmouseout = function(e){
		this_id = e.getSource ()
		this_name = this_id.getDef ()
		Level1=false
		//alert(this_name)
		close_level1(this_name.slice(0,this_name.lastIndexOf('_')))
		unMarkB(this_name.slice(0,this_name.lastIndexOf('_')))
						  //debug('level1  out '+e.getSource()+" "+this_name)
	}

/*	listener_level1_link = new EventListener(DynAPI.document)
	listener_level1_link.onclick = function(e){
		this_id = e.getSource ()
		this_name = this_id.getDef ()
//							debug('level_Link 1 klick '+e.getSource()+" "+this_name+" block??"+this_id.childrensize)
		callHref(makeLinkUrl(this_id.thisid))
   	if (this_id.childrensize>0) {
    }
	}
            
	listener_level1_link.onmouseover = function(e){
//							debug('out '+e.getSource())
//		this_id = e.getSource ()
//	this_name = this_id.getDef ()
//		markB(this_name)
							//debug('level_Link  over '+e.getSource()+" "+this_name)
	}
            
	listener_level1_link.onmouseout = function(e){
//							debug('out '+e.getSource())
//		this_id = e.getSource ()
//		this_name = this_id.getDef ()
//		unMarkB(this_name)
							//debug('level_Link  out '+e.getSource()+" "+this_name)
	}*/
            
		trees = init();

  var currenttree = trees[0];
	main = new DynLayer('main',0,0,0,0,'',true,1)
	eval('level'+0+' = new DynLayer("level0",0,0,0,0,"",true,2)')
	main.setVisible(true)
//	main.moveTo(leftlevel0,offsetlevel0);
	main.setSize(navWidth,100)
	level0.setSize(navWidth,500)
	for(i=0;i<currenttree.length;i++) {
		if (currenttree[i]) {
			create_level0_link(i,currenttree[i][0],currenttree[i][1])
			if (currenttree[i][0]==jumpto) {
      	t_level = "level0_link"+i
        setPath (t_level)
			}
			subtable = Array("<table id=menutable cellpadding=0 cellspacing=0>","</table>");
			thetable = subtable[0]+"";
			for(e=0;e<currenttree[i][2].length;e++) {
				if (tree[i][2][e]) {
					//create_level1_link(e,currenttree[i][2][e][0],currenttree[i][2][e][1],i,currenttree[i][2][e][2].length)
					if (currenttree[i][2][e][0]==jumpto) {
						markedLevel = "level0_link"+i
            setPath ("level0_link"+i)
			thetable+= "<tr><td id=menucellSel"
					} else {
					thetable+= "<tr><td onClick=\"window.location.href='"+Url+currenttree[i][2][e][0]+"'\" onMouseOver=\"this.id='menucellSel'\" onMouseOut=\"this.id='menucell'\" id=menucell"
					}
					thetable+= "><a href=\""+Url+currenttree[i][2][e][0]+"\">"+currenttree[i][2][e][1]+"</a></td></tr>";
					if (e!=currenttree[i][2].length-1) thetable+= "<tr><td height=1 id=menucellline><img src=fileadmin/menu/line_hori_menu.gif height=1 width=180></td></tr>";
					
					
				}
			}
			thetable+=subtable[1];
			create_level1(i,thetable)
			if (currenttree[i][0]==jumpto) {
				
      	markedLevel = "level0_link"+i
			}
		}
	}
	//markB(markedLevel) 

	selectB(markedLevel) //Select the current item
   
	DynAPI.document.addChild(main)
	main.addChild(level0)
	MoveToCenter ()
//  alert(this.tree()) 
// STyleswitcher init//
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
MoveToCenter();
}

function MoveToCenter () {
	var sw = 0, sh = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		sw = window.innerWidth;
		sh = window.innerHeight;
	
		//check for safari
		var ua = navigator.userAgent.toLowerCase();
		this.safari = ua.indexOf("safari")>-1;
		if( this.safari &&  sw < 950) { 
			 sw=950; 
			main.moveTo(((sw/2)-valueMovetocenter),offsetlevel0);//218
		} else if(this.safari) { 
			main.moveTo(((sw/2)-valueMovetocenter),offsetlevel0);//218
		} else if(is.ns && is.v >=5) {
			if(document.getElementById("empty") && document.getElementById("empty").offsetWidth < sw) {
				main.moveTo(((sw/2)-valueMovetocenter-10),offsetlevel0);
			} else {
				main.moveTo(((sw/2)-valueMovetocenter-1),offsetlevel0);
			}
		} else if (is.opera && is.v >= 6) {
			if(sw < 950) { sw=950; }
			if(document.getElementById("empty") && document.getElementById("empty").offsetWidth < sw && sw > 950) {
				main.moveTo(((sw/2)-valueMovetocenter-10),offsetlevel0);
			} else {
			main.moveTo(((sw/2)-valueMovetocenter-1),offsetlevel0);
			}
		} else {
			main.moveTo(((sw/2)-valueMovetocenter-10),offsetlevel0);
		}
		window.status = "hier";
	} else if( document.documentElement &&
			  ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			//IE 6+ in 'standards compliant mode'
			sw = document.documentElement.clientWidth;
			sh = document.documentElement.clientHeight;
		if(sw < 950) { sw=950; }
		main.moveTo(((sw/2)-valueMovetocenter),offsetlevel0);//218
		  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			//IE 4 compatible
			sw = document.body.clientWidth;
			sh = document.body.clientHeight;
		if(sw < 950) { sw=950; }
		main.moveTo(((sw/2)-valueMovetocenter),offsetlevel0);//218
	}
		
		
	

setTimeout ('MoveToCenter()', 500);	
}
