function BTN_Preload()
{
  var d=document;
  if(d.images)
  {
    if(!d.BTN_preload)
      d.BTN_preload=new Array();
    var i, j=d.BTN_preload.length, a=BTN_Preload.arguments;
    for(i = 0; i < a.length; i++)
    {
      if (a[i].indexOf("#") != 0)
      {
        d.BTN_preload[j]=new Image;
        d.BTN_preload[j++].src=a[i];
      }
    }
  }
  BTN_Action('load','group1','Eingang', 'images/main-up.jpg',   'images/main-dn.jpg');
  BTN_Action('load','group1','News',    'images/news-up.jpg',   'images/news-dn.jpg');
  BTN_Action('load','group1','Lage',    'images/lage-up.jpg',   'images/lage-dn.jpg');
  BTN_Action('load','group1','Karte',   'images/karte-up.jpg',  'images/karte-dn.jpg');
  BTN_Action('load','group1','Bilder',  'images/bilder-up.jpg', 'images/bilder-dn.jpg');
  BTN_Action('load','group1','Schnack', 'images/schnack-up.jpg','images/schnack-dn.jpg');
  BTN_Action('load','group1','Links',   'images/links-up.jpg',  'images/links-dn.jpg');
  BTN_Action('load','group1','Fun',     'images/fun-up.jpg',    'images/fun-dn.jpg');
}

function BTN_Locate(name, doc)
{
  var p,i,x;
  
  if(!doc)
    doc=document;
    
  p = name.indexOf("?");
  if(name.indexOf("?") > 0 && parent.frames.length)
  {
    doc = parent.frames[name.substring(p+1)].document;
    name = name.substring(0,p);
  }
  
  if(!(x = doc[name]) && doc.all)
    x = doc.all[name];
  for (i = 0; !x && i < doc.forms.length; i++)
    x = doc.forms[i][name];
  for (i = 0; !x && doc.layers && i < doc.layers.length; i++)
    x = BTN_Locate(name, doc.layers[i].document);

  return x;
}

function BTN_Btn_Data(group, name)
{
  this.name  = name;
  this.img   = BTN_Locate(name);
  this.state = -1;
  this.group = group;
  this.srcs  = new Array();
}

function BTN_InitImage(data)
{
  var i;
  
  data.img = BTN_Locate(data.name);
  if (data.img)
  {
    data.state = -1;
    for (i = 0; i < data.srcs.length && data.state == -1; i++)
    {
      if (data.img.src == data.srcs[i])
        data.state = i;
    }
    
    if (!data.srcs[0] && img)   // up
      data.srcs[0] = data.img.src;
    if (!data.srcs[1])          // down
      data.srcs[1] = data.srcs[0];
    if (!data.srcs[2])          // up+over
      data.srcs[2] = data.srcs[0];
    if (!data.srcs[3])          // down+over
      data.srcs[3] = data.srcs[1];
  }
}

function BTN_Action(event, group, name)
{
  var i, j, img, args = BTN_Action.arguments;

  if (!this.BTN_btn_data)
    this.BTN_btn_data = new Array();

  if (event == "load" && args.length > 3)
  {
    var j;
    
    i = 0;
    while (i < BTN_btn_data.length
           && (BTN_btn_data[i].name != name || BTN_btn_data[i].group != group))
      i++;

    if (i == BTN_btn_data.length) // nicht gefunden ->neu
      BTN_btn_data[i] = new BTN_Btn_Data(group, name);
    img = BTN_btn_data[i].img;
      
    for (j = 0; j < 3; j++)
    {
      if (j+3 < args.length)
      {
        if (args[j+3])
        {
           BTN_btn_data[i].srcs[j] = args[j+3];
           if (img &&
               BTN_btn_data[i].srcs[j] &&
               BTN_btn_data[i].srcs[j] == img.src)
            BTN_btn_data[i].state = j;
        }
      }
    }
  }
  if (event == "down")
  {
    var s, newState;
    for (i = 0; i < BTN_btn_data.length; i++)
    {
      if (BTN_btn_data[i].group == group)
      {
        if (!BTN_btn_data[i].img)
          BTN_InitImage( BTN_btn_data[i] );
        img = BTN_btn_data[i].img;
        newState = BTN_btn_data[i].name == name ? 1 : 0;
        s = BTN_btn_data[i].srcs[newState];
        if (s && img && s != img.src)
          img.src = s;
        BTN_btn_data[i].state = newState;
      }
    }
  }
  if (event == "up")
  {
  }
  if (event == "over" || event == "out")
  {
    var offs = (event == "over") ? 2 : -2;
    var cmp  = (offs == 2) ? 0 : 2;
    
    for (i = 0; i < BTN_btn_data.length; i++)
    {
      if (BTN_btn_data[i].group == group
          && BTN_btn_data[i].name == name
          && BTN_btn_data[i].state >= cmp
          && BTN_btn_data[i].state < cmp+2)
      {
        if (!BTN_btn_data[i].img)
          BTN_InitImage(BTN_btn_data[i]);
        img = BTN_btn_data[i].img;
        
        newState = BTN_btn_data[i].state +offs;
        s = BTN_btn_data[i].srcs[newState];
        if (s && img && s != img.src)
          img.src = s;
        BTN_btn_data[i].state = newState;
      }
    }    
  }
}
