var mn_items=new Object; var mn_open=new Array(); var mn_dyn=new Object; var mn_cols=new Object; var close_timer=false; var last_out=false; var scroll_timer=false; var last_scroll=false; var scroll_menu=false; var nohighlight=false; function mnCr(name) { var p=new Object; mn_items[name]=p; return p; } function mnOnScroll() { if (scroll_timer) window.clearTimeout(scroll_timer); else { var st=document.getElementById("steh"); if (st) { st.style.top=0; } else return; } scroll_timer=window.setTimeout("setStehPos()",100); } function checkScroll() { var pos=mnGetPagePos(); if (pos.y!=last_scroll.y) { last_scroll=pos; mnOnScroll(); } } function mnInit(bar,lbar,sub,lsub) { mn_cols.bar=bar; mn_cols.lbar=lbar; mn_cols.sub=sub; mn_cols.lsub=lsub; window.onscroll=mnOnScroll; window.onresize=window.onscroll; last_scroll=mnGetPagePos(); mnOnScroll(); window.setInterval("checkScroll()",150); } function setStehPos() { var st=document.getElementById("steh"); if (st) { var page=mnGetPagePos(); last_scroll=page; st.style.top=page.y; } scroll_timer=false; } function mnSetPos(e,x,y) { e.style.left=x; e.style.top=y; } var mn_rechts=true; function mnOpenSub(name,parentname,e) { if (mn_open[mn_open.length-1]==name) return; var sub=document.getElementById("mn"+name); mnSetPos(sub,-5000,-5000); var left=new Object; var right=new Object; var closeid=false; var page=mnGetPagePos(); if (e) { // an klick-position darstellen var x=e.clientX+page.x; var y=e.clientY+page.y; right.x=x-5; right.y=y-5; left.x=x+5; left.y=right.y; } else { // unter bzw. neben button darstellen var hor=false; var par=document.getElementById("mn"+parentname); if (!par) { hor=true; par=document.getElementById("mi"+parentname) || document.getElementById("mt"+parentname); } if (par) { var mn=mnGetParentMenu(par); closeid=mn; var pos=mnGetPos(par); if (!sub) { alert("menue "+name+"ist nicht definiert"); return false;} right.x=hor ? pos.x : pos.x+pos.width; right.y=hor ? pos.y+pos.height : pos.y; left.x=hor ? page.x+page.width : pos.x; left.y=right.y; if (hor && right.x<=2) right.x=2; mnHighlight(par,true); mn_items[parentname].light=true; if (!mn_items[name]) mn_items[name]=new Object; mn_items[name].parentlight=parentname; } else { return false; } } mnClosePath(closeid); mnPositionSub(sub,mnGetPos(sub),right,left); mn_open[mn_open.length]=name; sub.style.zIndex=5000+mn_open.length; sub.style.visibility="visible"; } function mnPositionSub(sub,size,right,left,rek) { var page=mnGetPagePos(); var x=0; var id=mnSplitId(sub.id); var item=mn_items[id.id]; if (!item) { mn_items[id.id]=new Object; item=mn_items[id.id]; } if (mn_rechts) { if (right.x+size.width>page.x+page.width) { if (rek) { x=0; } else { mn_rechts=false; return mnPositionSub(sub,size,right,left,true); } } else { x=right.x; } item.mn_rechts=true; } else { if (left.x-size.widthpage.y+page.height) { y=page.y+page.height-size.height; if (ypage.y+page.height) { var scpos=mnGetPos(sc); sc.style.top=page.y+page.height-scpos.height; sc.style.left=pos.x; sc.style.width=pos.width-(isIE ? 0 : 2); sc.style.visibility="visible"; scroll_menu=obj; } else { sc.style.visibility="hidden"; } } function mnHideScroll() { if (scroll_menu) { document.getElementById("mnscrollup").style.visibility="hidden"; document.getElementById("mnscrolldown").style.visibility="hidden"; scroll_menu=false; } } function mnScrollIn(but) { if (scroll_menu) { if (close_timer) window.clearTimeout(close_timer); close_timer=false; but.style.backgroundColor=mn_cols.lsub; } else { mnHideScroll(); } } function mnScrollOut(but) { if (scroll_menu) { close_timer=window.setTimeout("mnClosePath()",500); but.style.backgroundColor=mn_cols.sub; } else { mnHideScroll(); } } function mnScroll(but) { if (!scroll_menu) { mnHideScroll(); return; } var pos=mnGetPos(scroll_menu); var page=mnGetPagePos(); var y=0; if (but.id=="mnscrollup") { y=pos.y+page.height*0.5; if (y>page.y) y=page.y; } else { y=pos.y-page.height*0.5; if (y+pos.height=0;i--) { if (name==mn_open[i]) break; document.getElementById("mn"+mn_open[i]).style.visibility="hidden"; var it=mn_items[mn_open[i]]; if (it.parentlight) { mn_items[it.parentlight].light=false; mnHighlight(document.getElementById("mn"+it.parentlight) || document.getElementById("mi"+it.parentlight) || document.getElementById("mt"+it.parentlight),false); } mn_open.length--; } if (mn_open.length==0) mn_rechts=true; else { mn_rechts=mn_items[mn_open[mn_open.length-1]].mn_rechts; } mnHideScroll(); } function mnCl(obj) { var id=mnSplitId(obj.id); var m=mn_items[id.id]; if (!m.sb) mnClosePath(); if (m.cl) { var f="function onclick() { "+m.cl+";return true;}; onclick();"; if (!eval(f)) return; } if (m.ln) { var w=window.open(m.ln,m.tg || "_self",""); w.focus(); } } function mnSplitId(id) { var o=new Object; o.typ=id.substr(0,2); o.id=id.substr(2); return o; } function mnIn(obj) { var id=mnSplitId(obj.id); if (close_timer) window.clearTimeout(close_timer); close_timer=false; var p=mnGetParentMenu(obj); if (p && last_out!=id.id) mnClosePath(p); last_out=false; mnHighlight(obj,true,id); if (id.typ=="mn") { if (mn_items[id.id].sb) { mnCl(obj); } } setStatus(mn_items[id.id].st || ""); mnCheckScroll(document.getElementById("mn"+p)); } function mnSepIn() { if (close_timer) window.clearTimeout(close_timer); close_timer=false; } function mnSepOut() { close_timer=window.setTimeout("mnClosePath()",500); } function mnHighlight(obj,light,id) { if (!id) id=mnSplitId(obj.id); if (id.id==nohighlight) return; if (id.typ=="mn") { for (var i=0;i