//Funktionen um ein Auswahlmen&uuml; zu erzeugen
function namosw_list(parent, visible, width, height, font, size, fgColor, bgColor, indent, hbgColor) {
  this.additem = namosw_l_additem;
  this.addlist = namosw_l_addlist;
  this.make    = namosw_l_make;
  this.write   = namosw_l_write;
  this.show    = namosw_l_show;
  this.update  = namosw_l_update;
  this.updateparent = namosw_l_updateparent;
  this.items = new Array();
  this.id = document.namosw_lists.length;
  this.parent_id = 0;
  this.x = 0;
  this.y = 0;
  this.visible = visible;
  this.width    = width;
  this.height   = height;
  this.parent   = parent;
  this.indent = indent;
  this.bgColor  = bgColor;
  this.hbgColor = hbgColor;

  this.font_start = '';
  this.font_end   = '';

  this.font_start = '<font color=' + fgColor;
  if (font != '') this.font_start += ' face=\"' + font + '\"';
  if (size != '' && size.indexOf('pt', 0) == -1) this.font_start += ' size=' + size;
  this.font_start += '>';
  if (size.indexOf('pt', 0) != -1) {
    this.font_start += '<span style="font-size:' +size+ ';">';
    this.font_end    = '</span>';
  }
  this.font_end += '</font>';

  this.made     = false;
  this.shown    = false;
  document.namosw_lists[document.namosw_lists.length] = this;
}

function namosw_l_setclip(layer, left, right, top, bottom) {
  if (navigator.appName.indexOf('Netscape', 0) != -1) {
    layer.clip.left   = left;
    layer.clip.right  = right;
    layer.clip.top    = top;
    layer.clip.bottom = bottom;
  } else {
    layer.style.pixelWidth  = right-left;
    layer.style.pixelHeight = bottom-top;
    layer.style.clip  = "rect(" + top + "," + right + "," + bottom + "," + left + ")";
  }
}

function namosw_l_write() {
  var layer, clip, str;
  for(var i = 0; i < this.items.length; i++) {
    layer = this.items[i];
    if (navigator.appName.indexOf('Netscape', 0) != -1)
      layer.visibility = "hidden";
    else
      layer.style.visibility = "hidden";
    str = "";

    str += "<table width="+this.width+" nowrap border='0' cellpadding='0' cellspacing='0'><tr>";
    if (0 < this.indent) str += "<td width="+this.indent+" nowrap>&nbsp;</td>";
    if (layer.type == 'list') {
      str += "<td width=15  valign='middle' nowrap><a";
      if (navigator.appName.indexOf('Netscape', 0) != -1) str += " href=\"javascript:void(0);\"";
      else                                                str += " style=\"cursor:hand;\"";
      str += " onclick=\"namosw_l_expand("+layer.list.id+");\"><img src=\"../graphics/collapsed.gif\" name=\"_img"+layer.list.id+"\" border='0'></a></td>";
    } else {
      str += "<td width=15 nowrap>&nbsp;</td>";
    }
    str += "<td height="+(this.height-3)+" width="+(this.width-15-this.indent)+" valign='middle' align='left'>";

    if (layer.url)       str += "<a href=\"" + layer.url + "\" target=\"" + layer.frame + "\" style=\"text-decoration:underline;\">";
    if (this.font_start) str += this.font_start;
    str += layer.text;
    if (this.font_end) str += this.font_end;
    if (layer.url)       str += "</a>";

    str += "</td></table>";

    if (navigator.appName.indexOf('Netscape', 0) != -1) {
      layer.document.writeln(str);
      layer.document.close();
    } else {
      layer.innerHTML = str;
    }
    if (layer.type == 'list' && layer.list.visible)
      this.items[i].list.write();
  }
  this.made = true;
}

function namosw_l_show() {
  var layer;
  for(var i = 0; i < this.items.length; i++) {
    layer = this.items[i];
    namosw_l_setclip(layer, 0, this.width, 0, this.height-1);
    if (navigator.appName.indexOf('Netscape', 0) != -1) {
      if (layer.oBgColor) layer.document.bgColor = layer.oBgColor;
      else layer.document.bgColor = this.bgColor;
    } else {
      if (layer.oBgColor) layer.style.backgroundColor = layer.oBgColor;
      else layer.style.backgroundColor = this.bgColor;
    }
    if (layer.type == 'list' && layer.list.visible)
      layer.list.show();
  }
  this.shown = true;
}

function namosw_l_update(parent_visible, x, y) {
  var top = y, layer, list;
  for(var i = 0; i < this.items.length; i++) {
    layer = this.items[i];
    list  = layer.list;
    if (this.visible && parent_visible) {
      if (navigator.appName.indexOf('Netscape', 0) != -1) {
	layer.visibility = "visible";
	layer.top = top;
	layer.left = x;
      } else {
	layer.style.visibility = "visible";
	layer.style.pixelTop   = top;
	layer.style.pixelLeft  = x;
//	if (layer.url) layer.style.cursor = "hand";
      }
      top += this.height;
    } else {
      if (navigator.appName.indexOf('Netscape', 0) != -1) layer.visibility = "hidden";
      else layer.style.visibility = "hidden";
    }
    if (layer.type == 'list') {
      if (list.visible) {
        if (!list.made)  list.write();
        if (!list.shown) list.show();
        if (navigator.appName.indexOf('Netscape', 0) != -1) layer.document.images[0].src = "../graphics/collapsed.gif";
	else eval('document.images._img'+list.id+'.src = "../graphics/collapsed.gif"');
      } else {
	if (navigator.appName.indexOf('Netscape', 0) != -1) layer.document.images[0].src = "../graphics/expanded.gif";
	else eval('document.images._img'+list.id+'.src = "../graphics/expanded.gif"');
      }
      if (list.made)
        top = list.update(this.visible && parent_visible, x, top);
    }
  }
  return top;
}

function namosw_l_updateparent(parent_id) {
  this.parent_id = parent_id;
  for(var i = 0; i < this.items.length; i++)
    if (this.items[i].type == 'list')
      this.items[i].list.updateparent(parent_id);
}

function namosw_l_expand(i) {
  document.namosw_lists[i].visible = !document.namosw_lists[i].visible;
  list = document.namosw_lists[document.namosw_lists[i].parent_id];
  list.update(true, list.x, list.y);
}

function namosw_l_make(x, y) {
  this.updateparent(this.id);
  this.write();
  this.show();
  this.update(true, x, y);
  this.x = x;
  this.y = y;
}

function namosw_l_additem(text, url, frame) {
  var layer = null;
  if (navigator.appName.indexOf('Netscape', 0) != -1 && this.parent)
    layer = eval('this.parent.document.layers.namoswlistitem'+document.namosw_lists.lid);
  else
    layer = eval('document.all.namoswlistitem'+document.namosw_lists.lid);
  if (layer == null) {
    if (navigator.appName.indexOf('Netscape', 0) != -1)
      layer = this.parent ? new Layer(this.width, this.parent) : new Layer(this.width);
  }
  if (layer == null) return;

  if (url)   layer.url   = url;
  if (frame) {
    if (frame.indexOf('parent.') != 0)
      layer.frame = "_" + frame;
    else
      layer.frame = frame.substring(7, frame.length);
  }
  layer.type = 'item';
  layer.text = text;
  this.items[this.items.length] = layer;
  if (this.hbgColor) layer.hbgColor = this.hbgColor;
  if (this.bgColor)  layer.oBgColor = this.bgColor;
  if (layer.captureEvents)
    layer.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT|Event.MOUSEUP);
  layer.onmouseover = namosw_l_onmouseover;
  layer.onmouseout  = namosw_l_onmouseout;
//  layer.onmouseup   = namosw_l_onmouseup;
  document.namosw_lists.lid++;
}

function namosw_l_addlist(list, text, url, frame) {
  var layer = null;

  if (navigator.appName.indexOf('Netscape', 0) != -1 && this.parent)
    layer = eval('this.parent.document.layers.namoswlistitem'+document.namosw_lists.lid);
  else
    layer = eval('document.all.namoswlistitem'+document.namosw_lists.lid);
  if (layer == null) {
    if (navigator.appName.indexOf('Netscape', 0) != -1)
      layer = this.parent ? new Layer(this.width, this.parent) : new Layer(this.width);
  }
  if (layer == null) return;

  if (url)   layer.url   = url;
  if (frame) {
    if (frame.indexOf('parent.') != 0)
      layer.frame = "_" + frame;
    else
      layer.frame = frame.substring(7, frame.length);
  }
  layer.list = list;
  layer.type = 'list';
  layer.text = text;
  this.items[this.items.length] = layer;
  list.parent = this;
  if (this.hbgColor) layer.hbgColor = this.hbgColor;
  if (this.bgColor)  layer.oBgColor = this.bgColor;
  if (layer.captureEvents)
    layer.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT|Event.MOUSEUP);
  layer.onmouseover = namosw_l_onmouseover;
  layer.onmouseout  = namosw_l_onmouseout;
//  layer.onmouseup   = namosw_l_onmouseup;
  document.namosw_lists.lid++;
}

function namosw_l_onmouseover()
{
  if (this.hbgColor) {
    if (navigator.appName.indexOf('Netscape', 0) != -1)
      this.bgColor = this.hbgColor;
    else
      this.style.backgroundColor = this.hbgColor;
  }
  if (this.url) self.status = this.url;
}

function namosw_l_onmouseout()
{
  if (this.hbgColor) {
    if (navigator.appName.indexOf('Netscape', 0) != -1)
      this.bgColor = this.oBgColor;
    else
      this.style.backgroundColor = this.oBgColor;
  }
  if (this.url) self.status = '';
}

function namosw_l_onmouseup()
{
  if (this.url) {
    if (this.frame == 'blank') {
      window.open(this.url, 'win1');
    } else {
      var frame_obj;
      if ((frame_obj = eval(this.frame)) != null)
        frame_obj.location = this.url;
    }
  }
}

function namosw_init_list(top_layer)
{
  if (parseInt(navigator.appVersion) < 4)
    return;
  if (top_layer == '')
    return;

  document.namosw_lists     = new Array();
  document.namosw_lists.lid = 0;

  var layer;
  if (navigator.appName.indexOf('Netscape', 0) != -1)
    layer = document.layers[top_layer];
  else
    layer = document.all[top_layer];

  var string = "";
  for (i = 0; i < 30; i++) {
    string = string + "<div id='namoswlistitem" + (document.namosw_lists.lid+i) + "' " +
                      "style='position: absolute;'></div>";
  }
  layer.innerHTML += string;

  add_menu_items(layer);
  // Ab hier sind die Einstellung zum &Auml;ndern, vor ist der n&ouml;tige JScript-Code!



  l1.make(0, 14);
}