/* Droeppez Dynamische Menuestruktur
 * (c) 2002 Ulrich Kritzner
 * Die Verwendung dieses Scripts in kommerziellen Seiten ist kostenpflichtig
 */

var ddm_FillIn="&nbsp; &nbsp; &nbsp; &nbsp;";
var ddm_menus=new Array();
var ddm_mcount=0;

function ddm_GetDivSection()
{
  if (this.divsection)
    return;
  if (window.document.all)
    this.divsection=eval("window.document.all."+this.name);
  else
    if (typeof(window.document.getElementById)=="function")
      this.divsection=window.document.getElementById(this.name);
    else
      this.divsection=eval("window.document."+this.name);
}

function ddm_AddEntry(entryname,href,target)
{
  this.menupoints[this.entries]=entryname;
  this.mhrefs[this.entries]=0;
  this.hrefs[this.entries]=href;
  this.targets[this.entries]=target;
  this.menuflags[this.entries]=0;
  this.entries++;
}

function ddm_AddSubMenu(menuname,href,target)
{
  this.menupoints[this.entries]=new DynaMenu(menuname);
  this.mhrefs[this.entries]="javascript:ddm_menus["+this.number+"].ChangeSubMenu("+this.entries+");";
  this.hrefs[this.entries]=href;
  this.targets[this.entries]=target;
  this.menupoints[this.entries].supermenu=this;
  this.menuflags[this.entries]=1;
  this.entries++;
  return this.menupoints[this.entries-1];
}

function ddm_CloseAll()
{
  var i;
  for (i=0;i<this.entries;i++)
  {
    if (this.menuflags[i]==2)
    {
      this.menuflags[i]=1;
      this.menupoints[i].CloseAll();
    }
  }
}

function ddm_ChangeSubMenu(entry)
{
  if (this.menuflags[entry]==1)
    this.menuflags[entry]=2;
  else
    if (this.menuflags[entry]==2)
    {
      this.menuflags[entry]=1;
      this.menupoints[entry].CloseAll();
    }
  this.Paint();
}

function ddm_GetText()
{
  var text="",fillin="",i,myobject=this;
  while (myobject.supermenu)
  {
    myobject=myobject.supermenu;
    fillin+=ddm_FillIn;
  }
  for (i=0;i<this.entries;i++)
  {
    text+=fillin;
    if (this.mhrefs[i])
      text+="<a href=\""+this.mhrefs[i]+"\">";
    else
      if (this.hrefs[i])
      {
        text+="<a href=\""+this.hrefs[i]+"\"";
        if (this.targets[i])
          text+="target=\""+this.targets[i]+"\"";
        text+=">";
      }
    if (this.menuflags[i]==0)
      text+="<img src=\"point.gif\" alt=\"\" border=\"0\"> "+this.menupoints[i];
    if (this.menuflags[i]==1)
      text+="<img src=\"closed.gif\" alt=\"\" border=\"0\"> ";
    if (this.menuflags[i]==2)
      text+="<img src=\"open.gif\" alt=\"\" border=\"0\"> ";
    if (this.mhrefs[i])
    {
      text+="</a>";
      if (this.hrefs[i])
      {
        text+="<a href=\""+this.hrefs[i]+"\"";
        if (this.targets[i])
          text+="target=\""+this.targets[i]+"\"";
        text+=">";
      }
      text+=this.menupoints[i].name
    }
    if (this.hrefs[i])
      text+="</a>";
    text+="<br>\n";
    if (this.menuflags[i]==2)
      text+=this.menupoints[i].GetText();
  }
  return text;
}

function ddm_Paint()
{
  if (this.supermenu)
  {
    this.supermenu.Paint();
    return;
  }
  this.GetDivSection();
  if (this.divsection.innerHTML)
    this.divsection.innerHTML=this.GetText();
  else
  {
    this.divsection.document.open();
    this.divsection.document.write(this.GetText());
    this.divsection.document.close();
  }
}

function DynaMenu(menuname)
{
  this.supermenu=0;
  this.divsection=0;
  this.name=menuname;
  this.entries=0;
  this.menupoints=new Array();
  this.hrefs=new Array();
  this.mhrefs=new Array();
  this.targets=new Array();
  this.menuflags=new Array();
  this.AddEntry=ddm_AddEntry;
  this.AddSubMenu=ddm_AddSubMenu;
  this.GetText=ddm_GetText;
  this.CloseAll=ddm_CloseAll;
  this.ChangeSubMenu=ddm_ChangeSubMenu;
  this.GetDivSection=ddm_GetDivSection;
  this.Paint=ddm_Paint;
  this.number=ddm_mcount;
  ddm_menus[this.number]=this;
  ddm_mcount++;
}
