// navbar.js - hb@ec-logic.com - 20.11.2001
// Globale Variablen für crossbrowser funktionen
var dom = (document.getElementById) ? true : false;
var ns = (document.layers) ? true : false;
var ie = (document.all) ? true : false;
var ie4 = ie && !dom;
var mac = (navigator.appVersion.indexOf("Mac") != -1);
var ver=parseInt(navigator.appVersion);
var active = null;
var showverb='visible';
if ((ns) && ver == 4) showverb='show';
var hideverb='hidden';
// menu array
var menu = new Array();
// array für preload images
var imgs = new Array;
var prel = false;
var active = null;
var activeparent = null;
var strRoot = '/';
if (typeof(dx) == 'undefined')
	var dx=0;
if (typeof(dy) == 'undefined')
	var dy=0;

// main menue - MenuID,ParentID, Link, rel. Gifpfad, Alt, y, x
//AddMenuitem('agalerie', null, '','web_de/inc/galerie.gif','artoz Galerie',35, 280);
//AddMenuitem('amedia', null, '', 'web_de/inc/media.gif', 'artoz-media', 35, 405);
//AddMenuitem('azak', null, '', 'web_de/inc/zak.gif', 'Galerie ZAK', 35, 500);
//AddMenuitem('apartner', null, 'web_de/apartner/default.htm', 'web_de/inc/partner.gif', 'Unsere Partner', 35, 610);

// linkes menue - MenuID,ParentID, Link, rel. Gifpfad, Alt, y, x
//AddMenuitem('home', null, 'web_de/home/default.htm','web_de/inc/home_w.gif','Home',70, -8);
//AddMenuitem('firma', null, 'web_de/firma/default.htm','web_de/inc/firma_w.gif','Über uns',100, 9);
//AddMenuitem('aktuell', null, 'web_de/aktuell/default.htm','web_de/inc/neu_w.gif','Aktuelle Ausstellungen',130, 10);
//AddMenuitem('news', null, 'web_de/news/default.htm','web_de/inc/news_w.gif','News',160, -12);
//AddMenuitem('presse', null, 'web_de/nnews/default.htm','web_de/inc/2003_w.gif','Ausstellungen 2003',190, 10);
//AddMenuitem('kontakt', null, 'web_de/kontakt/default.htm','web_de/inc/kontakt_w.gif','kontakt',220, -5);
//AddMenuitem('form', null, 'web_de/nnews/Kunst_Zeit.pdf', 'web_de/inc/form_w.gif','Formular',490, 115);
//AddMenuitem('kurs', null, 'web_de/kurse/kurse.htm','web_de/inc/kurs_w.gif','Kurse und Seminare',280, 10);
//AddMenuitem('rosenrot', null, 'web_de/kurse/default.asp','web_de/inc/figuren_w.gif','Kostüm- und Figurenwerkstatt Katharina Rosenrot',285, 6);
//AddMenuitem('auktion', null, 'web_de/auktion/default.htm','web_de/inc/versteigerung_w.gif','Lizitation in Heidenheim',620, 10);
//AddMenuitem('heid', null, 'web_de/auktion/default.htm','web_de/inc/heidenheim_w.gif','Lizitation in Heidenheim',635, 10);

// artoz Galerie
AddMenuitem('kuenstler', 'agalerie', 'web_de/agalerie/kuenstler/default.htm', 'web_de/inc/kunstler_w.gif', 'artoz Kuenstler', 70, 285);
AddMenuitem('projekte', 'agalerie', 'web_de/agalerie/projekte/default.htm', 'web_de/inc/projekt_w.gif', 'artoz Projekte', 70, 355);

// artoz media
AddMenuitem('spengler', 'amedia', 'web_de/amedia/spengler/default.htm', 'web_de/inc/spengler_w.gif', 'Textil- und Kostuemdesign', 71, 300);
AddMenuitem('textil', 'amedia', 'web_de/amedia/textil/default.htm', 'web_de/inc/textil_w.gif', 'Textil- und Kostuemdesign', 70, 680);
AddMenuitem('grafik', 'amedia', 'web_de/amedia/grafik/default.htm', 'web_de/inc/grafik_w.gif', 'Grafik', 70, 450);
AddMenuitem('web', 'amedia', 'web_de/amedia/web/default.htm', 'web_de/inc/web_w.gif', 'Weberstellung', 70, 405);
AddMenuitem('gestaltung', 'amedia', 'web_de/amedia/gestaltung/default.htm', 'web_de/inc/loesung_w.gif', 'Bühne, Wanddeko, Kunst am Bau', 70, 507);

// samples
AddMenuitem('sk', 'za k', 'web_de/products/default.htm', 'web_de/inc/overview_w.gif', '', 500, 500);

// galerie Zak
//AddMenuitem('sam', 'azak', 'web_de/azak/sam/default.htm', 'web_de/inc/gunk_w.gif', 'Sammlung Kleine-Gunk', 70, 510);
//AddMenuitem('zkuenstler', 'azak', 'web_de/azak/artists.asp?initial=S', 'web_de/inc/zakkunstler_w.gif', 'Kuenstler', 70, 640);

// ----------------------------------------------
// Menühilfsfunktionen
// ----------------------------------------------
function AddMenuitem(id, strParent, strUrl, strImg, strAlt, top, left)
{
   if (strUrl == null || strUrl.length == 0)
      menu[menu.length] = new Menuitem(id, strParent, null, strRoot+strImg, strAlt, top+dy, left+dx);
   else if (strUrl.indexOf("javascript:") >= 0)
      menu[menu.length] = new Menuitem(id, strParent, strUrl, strRoot+strImg, strAlt, top+dy, left+dx);
   else
      menu[menu.length] = new Menuitem(id, strParent, strRoot+strUrl, strRoot+strImg, strAlt, top+dy, left+dx);
}
// ----------------------------------------------
// unteres Menü
// ----------------------------------------------
function BottomMenu(strLoc)
{
   var urls = new Array();
   var names = new Array();
   urls[urls.length] = 'web_de/pub/default.htm';
   //urls[urls.length] = 'web_de/pub/doku.htm';
   //urls[urls.length] = 'web_de/uarchiv/default.htm';
   urls[urls.length] = 'web_de/imp/default.htm';
   //urls[urls.length] = 'web_de/download/default.htm';

   names[names.length] = 'Publikationen';
   //names[names.length] = 'Dokumentation';
   //names[names.length] = 'Archiv';
   names[names.length] = 'Impressum';
   //names[names.length] = 'Presse Download';

	document.writeln('<TFOOT align=center><tr align="center"><td colspan="3">');
   for (i=0;i<urls.length;i++)
   {
      if (names[i] == strLoc)
         document.writeln (names[i] + '|');
      else
         document.writeln ('<a href="'+ strRoot + urls[i] + '">' + names[i] + '</a>|');
      if (i == 2)
	      document.writeln('</td></tr><tr align="center"><td colspan="3">');
   }
   document.writeln ('</td></tr>');
   document.writeln ('<tr><td colspan="3"> © 1999-2009 by artoz</td></tr><TFOOT>');

}
// -----------------------------
// menupunkt objekt konstruktor
function Menuitem(id, strParent, strUrl, strImg, strAlt, top, left)
{
   this.mid = id;
   this.parent = strParent;
   this.url = strUrl;
   this.img = strImg;
   this.imgr = strImg.replace('_w', '_r'); // active image
   this.alt = strAlt;
   this.top = top;
   this.left = left;
}
// ------------------------------------
// menüpunkt ausgeben
function drawitem (mnu)
{
   if (mnu.mid == null)
      return null;

   var imgname;
   var vis;
   if (active == mnu.mid || activeparent == mnu.mid)
      imgname = mnu.imgr;
   else
      imgname = mnu.img;
      
   if (active == mnu.parent || active == mnu.mid || mnu.parent == null || activeparent == mnu.parent)
      vis = showverb;
   else
      vis = hideverb;

   if ((ie) && ver >= 4)
   {
      document.write ('<div style="position:absolute;top:'+mnu.top+'px;left:'+mnu.left+'px;z-index:9;'+
                      'visibility:'+vis+'" id="'+mnu.mid+'" ONMOUSEOVER="Showmenu(this.id);">');
      if (mnu.url == null)
         document.write ('<a href="javascript:Showmenu(\''+mnu.mid+'\');"><img name="' + mnu.mid + 'i" src="'+imgname+
                         '" border="0" alt="'+mnu.alt+'"></a>');
      else
         document.write ('<a href="'+mnu.url+'"'+
                         '><img name="' + mnu.mid + 'i" src="'+imgname+'" border="0" alt="'+
                         mnu.alt+'"></a>');
      document.write ('</div>');
   }
   else if ((ns) && ver >=4 && ver < 5)
   {
      document.writeln ('<layer id="'+mnu.mid+'" z-index=9 top='+mnu.top+' left='+mnu.left+
                        ' visibility='+vis+' ONMOUSEOVER="Showmenu(this.id);">');
      if (mnu.url == null)
         document.writeln ('<a href="javascript:Showmenu(\''+mnu.mid+'\');"><img name="' + mnu.mid + 'i" src="'+imgname+'" border="0" alt="'+mnu.alt+'"></a>');
      else
         document.writeln ('<a href="'+mnu.url+'"><img name="' + mnu.mid + 'i" src="'+imgname+'" border="0" alt="'+mnu.alt+'"></a>');
      document.writeln ('</layer>');
   }
   else if (dom) // netscape 6 and gecko render engine
   {
      document.write ('<div style="position:absolute;top:'+mnu.top+'px;left:'+mnu.left+'px;z-index:9');
      document.write(';visibility:'+vis);
      document.write ('" id="'+mnu.mid+'" ONMOUSEOVER="Showmenu(this.id);">');
      if (mnu.url == null)
         document.write ('<a href="'+'javascript:Showmenu(\''+mnu.mid+'\');'+'"><img name="' + mnu.mid + 'i" src="'+imgname+'" border="0" alt="'+mnu.alt+'"></a>');
      else
         document.write ('<a href="'+mnu.url+'"><img name="' + mnu.mid + 'i" src="'+imgname+'" border="0" alt="'+mnu.alt+'"></a>');
      document.write ('</div>');
   }
   return null;
}
// -------------------------------
// Menüpunkt DIV nach ID suchen
function GetItem(name)
{
   if (name == null)
      return null;
   if (ie)
      return document.all[name];
   else if (ns)
      return document.layers[name];
   else if (dom)
      return document.getElementById(name);
   return null;
}
// -------------------------------
// Menüpunkt nach ID suchen
function GetMnuItem(name)
{
   for (i=0;i<menu.length;i++)
   {
//    match?
      if (menu[i].mid == name)
         return menu[i];
   }
   return null;
}
// ---------------------------------------
// Style eines DIV suchen um Sichtbarkeit zu ändern
function GetStyle(name)
{
   if (name == null || name.length == 0)
      return null;
   if (ie)
      return document.all[name].style;
   else if (ns)
      return document.layers[name];
   else if (dom)
      return document.getElementById(name).style;
   else
      return null;
}
// -------------------------------------------
// Menügif von aktiv nach inaktiv umschalten
function SetImgState(name,activeFlag)
{
   if (document.images) 
   {
      var m = GetMnuItem(name);
      if (m != null)
      {
         if (activeFlag == true)
	         document[name+'i'].src = m.imgr;
	      else
	         document[name+'i'].src = m.img;
	   }
   }
}
// -------------------------------------------
// Menüpunkt und/oder Untermenüpunkte anzeigen
function Showmenu (name)
{
// if name isnt valid or active menu is the same as last one do nothing
   if (name == null || name.length == 0 || active == name)
      return;

   var parent = Getparent(name);
   if ((Getparent(active) == null && Getparent(name) == null) || (Getparent(active) != Getparent(name) && Getparent(name) != active))
      Hideoldmenu (active);
   SetImgState (active,false);
   SetImgState (name,true);
   active = name;
   for (i=0;i<menu.length;i++)
   {
//    show new submenu
      if (menu[i].parent == active && active != null)
      {
         entry=GetItem(menu[i].mid);
         if (entry != null)
            GetStyle(menu[i].mid).visibility=showverb;
      }
   }
// highlight parent too
   SetImgState (parent,true);
   return;
}
// -------------------------------------------
// Menüpunkt und/oder Untermenüpunkte verstecken
function Hideoldmenu (name)
{
   if (name == null || name.length == 0)
      return;
// get root item to hide
   var strHide = name;
   var parent = null;
   if (Getparent(name) != null)
      strHide = Getparent(name);
// walk all menus
   for (i=0;i<menu.length;i++)
   {
//    if menu has no parent dont hide == topmenu
      if (menu[i].parent != null)
      {
//       hide submenus of given menu item
         if (menu[i].parent == strHide)
         {
            entry = GetItem(menu[i].mid);
            if (entry != null)
               GetStyle(menu[i].mid).visibility=hideverb;
         }
      }
   }
// dim parent too
   var parent = Getparent(name);
   SetImgState (parent,false);
   return;
}
// -------------------------------------------
// Elternmenüpunkt eines Menüpunktes finden
function Getparent (name)
{
   if (name == null || name.length == 0)
      return null;
// walk all menus
   for (i=0;i<menu.length;i++)
   {
//    do names match?
      if (menu[i].mid == name)
         return menu[i].parent;
   }
   return null;
}
// -------------------------------------------
// Preload Hilfefunktion
function NewImage(strname)
{
   var img = null;
   img = new Image();
   img.src = strname;
   return img;
}
// -------------------------------------------
// preload images
function Init() // preload images
{
   var nLen = menu.length;
   for (i=0;i<nLen;i++)
   {
      imgs[imgs.length] = NewImage(menu[i].img);
      imgs[imgs.length] = NewImage(menu[i].imgr);
   }
   prel = true;
}
// --------- MAIN LOOP ----------------
// make menu
var nLen = menu.length;
for (i=0;i<nLen;i++)
{
   drawitem (menu[i]);
}
