// 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','',35, 280);
//AddMenuitem('agalerie', null, '', 'web_de/inc/izk.gif', '', 42, 383);
//AddMenuitem('azak', null, '', 'web_de/inc/zak.gif', '', 35, 500);
//AddMenuitem('azak', null, '', 'web_de/inc/izkz.gif', '', 41, 591);

// linkes menue - MenuID,ParentID, Link, rel. Gifpfad, Alt, y, x
AddMenuitem('home', null, 'web_de/azak/sam/default.htm','web_de/inc/home_w.gif','Home',70, 10);
AddMenuitem('firma', null, 'web_de/azak/artists.asp?initial=S','web_de/inc/kuenstler_w.gif','Kuenstler',100, 10);
//AddMenuitem('aktuell', null, 'web_de/aktuell/default.htm','web_de/inc/neu_w.gif','Aktuell in der Galerie',130, 10);
//AddMenuitem('news', null, 'web_de/news/default.htm','web_de/inc/news_w.gif','News',160, -12);
AddMenuitem('presse', null, 'web_de/azak/sam/default_03.htm','web_de/inc/2003_w.gif','Ausstellungen 2003',130, 10);
AddMenuitem('kontakt', null, 'web_de/azak/sam/kontakt.htm','web_de/inc/kontakt_w.gif','Kontakt',160, 10);




// 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-2010 by Kleine-Gunk</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]);
}
