// mn: setzt y-Koordinate, also vertikale Position der Menüpunktes fest: Style = top:mn. Abstand = height. Untermenüpunkte fangen bei mn - 1 an
// und überlappen daher etwas mit dem Ende des vorigen Hauptmenüpunktes

var GesBr = screen.availWidth - 45;
var GesHoeh = screen.availHeight - screen.availHeight * 0.22;
var HTitel = parseInt (GesHoeh / 18);
var BTitel = parseInt (GesBr / 2);
var HMenue = parseInt (GesHoeh / 4);
var BMenue = parseInt (GesBr * 0.4);
var HBild = parseInt (GesHoeh / 2 - 215);
var BBild = parseInt (GesBr / 8 - 90);
var HUntSchr = parseInt (HBild + 380 + GesHoeh / 5 - 87);
var BUntSchr = parseInt (BBild + 30);
var HSprAusw = parseInt (GesHoeh * 0.7);
var BSprAusw = parseInt (BMenue - GesBr * 0.28);
var HLogo = HSprAusw;
// var BLogo = parseInt (GesBr - 500);
var BLogo = parseInt (GesBr * 0.55);
var auf_zu = false // true or false, false = close the previous item_panel first when opening a new one 
 
var height = 20; // height of the menu headers
var iheight = 15; // height of the menu items

var hgf_titel = "#33CC33" // Hintergrundfarbe Menüpunkte ohne Untermenü nach Beenden des Überstreichens: Grünton
var tf_titel = "#000000" // Textfarbe Menüpunkt ohne Link und Untermenü
var over_hgf_titel = "#009966" // Hintergrundfarbe Menüpunkte ohne Untermenü beim Überstreichen: Grünton
var over_tf_titel = "#0000FF" // Textfarbe beim Überstreichen der Menüpunkte ohne Link und Untermenü: blau

var hgf_unter = "#339900" // Hintergrundfarbe Menüunterpunkt
var tf_unter = "#000000" // Textfarbe Menüunterpunkt
var over_hgf_unter = "#99FF00" // Farbe beim Überstreichen der Menüunterpunkte: hellgrüngelb
var over_tf_unter = "#663399" // Textfarbe beim Überstreichen der Menüunterpunkte: lila
 
var speed = 0; // time between changing heigth of the item_panel
var steps = 1; // changing heigth in steps of
var timerID = "";
var N = (document.all) ? 0 : 1;
var width = 352

var self_menu = new Array();

var prevnr = -1;
var prevc = -1;
var vvorbereite = "stop";
var step = 0;


function faerbe_titel(obj)
{
 document.getElementById(obj).style.backgroundColor = over_hgf_titel;
 document.getElementById(obj).style.color = over_tf_titel
}
var prevnr = -1;
var prevc = -1;
var vvorbereite = "stop";
var step = 0;

function faerbe_untertitel(obj)
{
 document.getElementById(obj).style.backgroundColor = over_hgf_unter;
 document.getElementById(obj).style.color = over_tf_unter
}
var prevnr = -1;
var prevc = -1;
var vvorbereite = "stop";
var step = 0;

function end_vorbereite()
{
 if (step == 1) vorbereite();
 else {if (timerID != "") clearTimeout(timerID);}
}


function e_zieh_runter(nr,to,nowv)
{
 if((nowv + steps) >= to) {vsteps = to - nowv;}
 else {vsteps = steps;}
 name = "down" + (nr-1);
 obj = document.getElementById(name).style.clip = "rect(0,"+width+","+(nowv+vsteps)+",0)";
 for (i=nr;i<self_menu.length;i++)
 {
  name = "down" + i;
  obj = document.getElementById(name);
  obj.style.top = parseInt(obj.style.top)+vsteps;
 }
 nowv+=vsteps;
 if(nowv < to) timerID = setTimeout("e_zieh_runter("+nr+","+to+","+nowv+")",speed);
 else {timerID = "";if(startid != "stop") oeffne_alle(); else end_vorbereite()}
}


function e_zieh_hoch(nr,to,nowv)
{
 if((nowv-steps) <= to) {vsteps = nowv-to;nowv = 0;if(to == -1) vstep = nowv}
 else {vsteps = steps;}
 name = "down" + (nr-1);
 obj = document.getElementById(name).style.clip = "rect(0,"+width+","+nowv+",0)";
 for (i=nr;i<self_menu.length;i++)
 {
  name = "down" + i;
  obj = document.getElementById(name);
  obj.style.top = parseInt(obj.style.top)-vsteps;
 }
 nowv-=vsteps;
 if(nowv > to) timerID = setTimeout("e_zieh_hoch("+nr+","+to+","+nowv+")",speed);
 else {timerID = "";end_vorbereite();}
}

var lb = new Array();


function oeffne_alle()
{
 startid = lb[open_part];
 for(i=0;i<self_menu.length;i++)
 {
  if(self_menu[i][3] == startid) 
  {
  open_part++;
  prevnr = i;
  prevc = startid;
  zieh_runter(i,startid);
  i==self_menu.length;
  }
 }
 if(open_part == lb.length) startid = "stop";
 
}

 
function vorbereite(nr,c)
{
 if (auf_zu)
 {
  if (prevnr == -1)
  {
   if (self_menu[nr+1][2] == 0)
   {
   prevnr = nr;
   prevc = c;
   }
   else
   {
   prevnr = -1;
   prevc = -1;
   }
   step = 0;
   zieh_runter(nr,c);
  }
  else
  {
  if((step == 0) && (prevnr != -1))
  {
    if (self_menu[nr+1][2] == 1)
    {
     step = 0;
     prevnr = -1;
     prevc = -1;
	 zieh_runter(nr,c);
    }
    else
    {
    step = 1;
    zieh_runter(prevnr,prevc);
    prevnr = nr;
    prevc = c;
    }
  }
  else
  {
    step = 0;	
    zieh_runter(prevnr,prevc);
  }
 }}
 else 
 	   { 
 	   	zieh_runter(nr,c);
	   	vvorbereite = "stop"
	   }
}



function zieh_runter(nr,c)
{
 if (timerID == "")
 {
 to = self_menu[nr+1][1]
 begin = nr + 2;
 if (timerID != "") clearTimeout(timerID);
 if (self_menu[nr+1][2] == 0)
 {
  self_menu[nr+1][2] = 1;
  if(nr == self_menu.length-2) {to++;}
  e_zieh_runter(begin,to,0);
 }
 else
 {
  to = 0;
  self_menu[nr+1][2] = 0;
  name = "down"+(nr+2);
  open_item = 0;
  for(i=0;i<nr;i++)
  {
   if(self_menu[i][2] == 1) 
		open_item += self_menu[i][1];
  }
  if (N == false) {open_item-= (c*1)};
  if (nr== self_menu.length-2)
		{
		val = self_menu[self_menu.length-1][1];
		to=-1;
		}
  	else
		val = parseInt(document.getElementById(name).style.top) -(open_item)-(c*height);
  e_zieh_hoch(begin,to,val);
 }
 }
}


function s (text)
{
document.write (text);
}


function startup(nr)
{
 schreib_menu();
 if(nr)
 {
 if(((nr.indexOf("|") != -1) || (nr.indexOf("all") != -1)) && (auf_zu == true))
 	alert("Fehler: Die Auf-Zu-Eigenschaft kann nur mit maximal einem vorgegebenen Menüpunkt benutzt werden.");
 if (nr == "all")
 {
 j = 0;
 for(i=0;i<self_menu.length;i++)
 {
  if(self_menu[i][3] != -2) {lb[j] = self_menu[i][3];j++;}
 }
 }
 else
 {
 lb = nr.split("|");
 }
 oeffne_alle();
 }
 else startid = "stop";
}
//free JavaScripts on http://www.ScriptBreaker.com
var startid = 0;
var open_part = 0;


function entfaerbe_titel(obj)
{
 document.getElementById(obj).style.backgroundColor = hgf_titel;
 document.getElementById(obj).style.color = tf_titel
}

function entfaerbe_untertitel(obj)
{
 document.getElementById(obj).style.backgroundColor = hgf_unter;
 document.getElementById(obj).style.color = tf_unter
}


function schreib_menu()
{
// h: Höhe des Untermenüs
smc = 0; // count the position of the self_menu: Ist damit gleich der Gesamtsumme der Haupt- und Untermenüpunkte
s("<div style='position:absolute'>");
mn = 0;
mni = 1; //möglicherweise Zahl der Hauptmenüpunkte
start = -1;
  
for(i=0;i<Link.length;i++)
  	{
  	la = Link[i].split("|");
	switch (la[0])
		{
     	case "0":  // Hauptmenüpunkt
   
	    	if(start == 0)  // Neuer Hauptmenüeintrag nach Untermenü
    	  		{
      			s("</div>");
      			h =  csmc * iheight; // Höhe des Untermenüs = Zahl der Untermenüpunkte * Höhe eines Untermenüstreifens
      			tmn = mn;
      			self_menu[smc] = new Array(tmn,h,0,-2);
      			smc++;
      			}
     		csmc = 0;
		 	if (la[2]) // Punkt ohne Untermenü, aber mit Link. Bei Mausklick zum Link springen
				{
    			s("<div class='menu_mit_link' style='top:"+mn+";height:"+height+"' id='down"+smc+"'");
		    	s("' onmouseover='faerbe_titel(this.id)' onmouseout='entfaerbe_titel(this.id)'><a href='"+la[2]+"' style='text-decoration:none; color:black'");				
		    	if (la[3] != "")
					s("' target='" + la[3] + "' ");
	    		s(">&nbsp;" + la[1] + "</A></DIV>");	
				self_menu[smc] = new Array(mn,height,0,mni);
    			smc++;
     			mni++;
    			mn+=height;
				start = 1;
				}
		  	  else  // Punkt ohne Untermenü und ohne Link = reine Überschrift
				{
	    		s("<div class='menutitel' style='top:"+mn+";height:"+height+"' id='down"+smc+"'>&nbsp;"+ la[1] + "</div>");	

				self_menu[smc] = new Array(mn,height,0,mni);
	    		smc++;
     			mni++;
    			mn+=height;
				start = 1;
				}
   
			mn--;
		break;
		case "1": // Menüpunkt mit Untermenü, aber ohne Link auf ihm selbst 
      
   			if(start == 0) 
     			{
      			s("</div>");
      			h =  csmc * iheight;
      			tmn = mn;
      			self_menu[smc] = new Array(tmn,h,0,-2);
      			smc++;
	      		mn--;
     			}
     		csmc = 0;
	    	s("<div class='menu_m_untermenu' style='top:"+mn+";height:"+height+"' id='down"+smc+"' onclick='vorbereite("+smc+","+mni+")'>&nbsp;"+ la[1] + "</div>");
    		self_menu[smc] = new Array(mn,height,0,mni);
	    	smc++;
    		mni++;
	    	mn+=height;
    		start = 1;
   		break;
   
 		case "2": // Menüpunkte des 1. Untermenüs
   
     		if(start == 1) 
     			{
      			if(N)
					mn+=2; // 2 Pixel Abstand des nächsten "Häuschens gibt doppelten = dicken Strich beim nächsten Hauptmenüpunkt
       			s("<div class='item_panel' id='down"+smc+"' style='top:"+mn+"'>");
       			start = 0;
     			}
    
    		s("<a href='"+la[2]+"'");
		    if (la[3] != "")
				s(" target='" + la[3] + "' ");
		    s("><div class='item' id='d"+i+"' style='height:"+iheight);
		    if (N)
				s(";width:150");
		    s("' onmouseover='faerbe_untertitel(this.id)' onmouseout='entfaerbe_untertitel(this.id)'>&nbsp;&nbsp;"+ la[1] + "</div></a>");
		    csmc++;
	    break;
		}   
  	}
  	if (start == 0) //  Wechsel vom Unterpunkt- zum Hauptpunkt-Design
   		{
     	s("</div>");
     	h =  csmc * iheight; //h gibt Gesamtbreite ['Höhe'] aller Untermenüstreifen an. Beginn eines Untermenüs bei tmn, Ende bei h + tmn
		tmn = mn + 5;
		self_menu[smc] = new Array(tmn,h,0,-2);
     	name = "down" + (self_menu.length-1);
     	obj = document.getElementById(name);
     	obj.style.borderBottomColor = "darkblue";
     	obj.style.borderBottomWidth = 1;
     	obj.style.borderBottomStyle = "solid";
   		}
	s("</div>");
}
