<!-- Begin
// <!-- Original:  Fredrik Fridsten (fredrik.fridsten@home.se) -->
// <!-- Web Site:  http://hem.passagen.se/dred -->
// <!-- Extensions:  Luc Van hamme luc.vhamme@tiscali.be -->
// 


var usePictures = 1; // use pictures?  1 = yes, 0 = no

var lastTitleId;
var lastClicked;
var lastmove;
var visible;
var hidden;
var titleHeight = 19+1; // Depends on title style! Real title height + 1 for separator line
var itemHeight  = 14; // Depends on submenu style!
var borders     = 0;  // Is 2*borderwidth of submenu style!
                      // for borders, put the following in the style: border: 1px solid #DDDD00;


if (document.layers) 
   {
   // Netscape
   visible = 'show';
   hidden = 'hide';
   }
else if (document.all) 
   {
   // Microsoft
   visible = 'visible';
   hidden = 'hidden';
   }
else if (document.getElementById)
   {
   // Older Netscape
   visible = 'visible';
   hidden = 'hidden';
   }


function onlyNewbrowsers() 
{
if (navigator.appName == "Netscape" && parseInt(navigator.appVersion,10) <= 4) 
   {
   window.alert('You are using an older version of Netscape, containing some serious flaws.\nPlease upgrade to a more recent version.');
   }
else
   {
   ;
   }
}

function getTitleIndex(String)
{
for (var i = 0; i < this.NofTitles; i++)
   {
   if (String == this.Titles[i].Id) 
      {
      return i;
      }
   }
return -1;
}

function getRef(Title, Item)
{
var Ident;
var m = this.getTitleIndex(Title); 
if (m == -1) return "";

Ident = makeMenuIdentifier(Title,Item);
if (this.Titles[m].Id == Ident) 
   {
   return this.Titles[m].Ref;
   }
else
   {
   for (var Menu = 0; Menu < this.Titles[m].NofTitles; Menu++)
      {
      if (this.Titles[m].Titles[Menu].Id == Ident) 
         {
         return this.Titles[m].Titles[Menu].Ref;
         }
      }
   }
return "";
}

function openActiveMenu()
{
var activeTopic = getActiveTopic();
var m = this.getTitleIndex(getTitleIdentifier(activeTopic)); 
if (m == -1) return false;

// If the active topic is an item, do as if it is clicked on
if (this.Titles[m].Id != activeTopic) itemClick(activeTopic);

// Don't toggle if already open
if (this.Titles[m].Id != lastTitleId) toggle(this.Titles[m].Id);
}

// Set the "open" picture
function picopen(title) 
{

pic = ('pic' + title);
if (document.layers) 
   {
   document.layers[title].document.images[pic].src = "scripts/opened.gif";
   }
else if (document.all) 
   {
   document.all(pic).src = "scripts/opened.gif";
   }
else if (document.getElementById)
   {
   document.images[pic].src = "scripts/opened.gif";
   }
}

// Set the "close" picture
function picclose(title) 
{

pic = ('pic' + title);
if (document.layers) 
   {
   document.layers[title].document.images[pic].src = "scripts/closed.gif";
   }
else if (document.all) 
   {
   document.all(pic).src = "scripts/closed.gif";
   }
else if (document.getElementById)
   {
   document.images[pic].src = "scripts/closed.gif";
   }
}

function lasttoggle(TitleId,move) 
{
if (TitleId != "") 
   {
   var m = this.getTitleIndex(TitleId); 
   if (this.Titles[m].NofTitles != 0)
      {
      for (var k = 0; k < this.Titles[m].NofTitles; k++)
         {
         if (document.layers) 
            {
            submenu = document.layers[this.Titles[m].Titles[k].Id];
            }
         else if (document.all) 
            {
            submenu = document.all(this.Titles[m].Titles[k].Id).style;
            }
         else if (document.getElementById)
            {
            submenu = document.getElementById(this.Titles[m].Titles[k].Id).style;
            }
         if (submenu.visibility == visible) 
            {
            submenu.visibility = hidden;
            picclose(TitleId); // Remove this if you don't use pictures
            }
         }
      for (var i = (m+1); i < this.NofTitles; i++) 
         {
         if (document.layers) 
            {
            document.layers[this.Titles[i].Id].top -= move;
            }
         else if (document.all) 
            {
            document.all(this.Titles[i].Id).style.pixelTop -= move;
            }
         else if (document.getElementById)
            {
            document.getElementById(this.Titles[i].Id).style.top = (parseInt(document.getElementById(this.Titles[i].Id).style.top,10) - move) + "px";
            }
         }
      }
   }
}

// Do the actual work of moving submenus
function toggle(TitleId) 
{
var move  = 0;
var myMove = 0;
menuFrame = getMenuFrame();
if (menuFrame == null) return;

if (TitleId == "")
   {
   // Close the open menu
   menuFrame.myMenu.lasttoggle(lastTitleId,lastmove);
   lastTitleId = TitleId; 
   lastmove = move;
   // Give the open menu a "non-clicked look"
   showActive("");
   return;
   }
   
var m = menuFrame.myMenu.getTitleIndex(TitleId); 
if (m == -1) return false;

// window.alert("toggle'("+TitleId+"',"+move+")");
if (menuFrame.myMenu.Titles[m].NofTitles == 0)
   {
   // There could be another menu open
   if (lastTitleId != TitleId) menuFrame.myMenu.lasttoggle(lastTitleId,lastmove);
   lastTitleId = TitleId;
   lastmove = move;
   }
else
   {
   move  = menuFrame.myMenu.Titles[m].NofTitles*itemHeight+borders;
   }
for (var k = 0; k < menuFrame.myMenu.Titles[m].NofTitles; k++)
   {
   if (document.layers) 
      {
      submenu = document.layers[menuFrame.myMenu.Titles[m].Titles[k].Id];
      }
   else if (document.all) 
      {
      submenu = document.all(menuFrame.myMenu.Titles[m].Titles[k].Id).style;
      }
   else if (document.getElementById)
      {
      submenu = document.getElementById(menuFrame.myMenu.Titles[m].Titles[k].Id).style;
      }
   if (submenu.visibility == visible) 
      {
      submenu.visibility = hidden;
      if (k == 0)
         {
         if (usePictures) picclose(menuFrame.myMenu.Titles[m].Id);
         myMove = -move;
         }
      lastTitleId = "";
      }
   else 
      {
      submenu.visibility = visible;
      if (k == 0)
         {
         if (lastTitleId != TitleId) menuFrame.myMenu.lasttoggle(lastTitleId,lastmove);
         if (usePictures) picopen(menuFrame.myMenu.Titles[m].Id);
         myMove = move;
         lastTitleId = TitleId;
         lastmove = move;
         }
      }
   }
   
for (var i = (m+1); i < menuFrame.myMenu.NofTitles; i++) 
   {
   if (document.layers) 
      {
      document.layers[menuFrame.myMenu.Titles[i].Id].top += myMove;
      }
   else if (document.all) 
      {
      document.all(menuFrame.myMenu.Titles[i].Id).style.pixelTop += myMove;
      }
   else if (document.getElementById)
      {
      document.getElementById(menuFrame.myMenu.Titles[i].Id).style.top = (parseInt(document.getElementById(menuFrame.myMenu.Titles[i].Id).style.top,10) + myMove) + "px";;
      }
   } 
}

function showActive(Ident)
{
// Toggle the "active look" of titles and items
// The normal functioning of <a> links is messed up, 
// because opening the submenus of a title is done by clicking - making the title the active link
if (lastClicked != "") changeFontStyle(lastClicked, "normal");
if (Ident != "")       changeFontStyle(Ident, "italic");
// window.alert(lastClicked+ " // "+Ident);
lastClicked = Ident;
}

function titleClick(titleId)
{
var m;
toggle(titleId);
menuFrame = getMenuFrame();
if (menuFrame == null) return;

m = menuFrame.myMenu.getTitleIndex(titleId); 
// window.alert("titleClick("+titleId+"), m = "+m);
if (m >= 0 && menuFrame.myMenu.Titles[m].NofTitles == 0) showActive(titleId);
}

function itemClick(itemId)
{
showActive(itemId);
}

//====================================

function changeFontStyle(Ident, myFontStyle)
{
// myFontStyle can be "italic" or "normal"
if (document.layers) 
   {
   document.layers[Ident].document.fontStyle = myFontStyle;
   }
else if (document.all) 
   {
   document.all(Ident).style.fontStyle = myFontStyle;
   }
else if (document.getElementById)
   {
   document.getElementById(Ident).style.fontStyle = myFontStyle;
   }
   //font-style: italic;
}

// Change background colour of title
function changebgcolor(Ident)
{
// var color = "#C4D8EC";
var color = "#BFD4BE";
// window.alert('Id is: '+Ident);
// window.alert('Topic is: '+getActiveTopic());
if (document.layers) 
   {
   document.layers[Ident].document.bgColor = color;
   }
else if (document.all) 
   {
   document.all(Ident).style.backgroundColor = color;
   }
else if (document.getElementById)
   {
   document.getElementById(Ident).style.backgroundColor = color;
   }
}

function resetbgcolor(Ident)
{
//var color = "#A0C0E0";
var color = "#B1CAB0";
if (document.layers) 
   {
   document.layers[Ident].document.bgColor = color;
   }
else if (document.all) 
   {
   document.all(Ident).style.backgroundColor = color;
   }
else if (document.getElementById)
   {
   document.getElementById(Ident).style.backgroundColor = color;
   }

}



function addTitle(Title, Ref, Target)
{
var myTitle = new frameMenu(0);

myTitle.Label     = Title;
myTitle.Ref       = Ref;
myTitle.Target    = Target;
this.Titles[this.NofTitles] = myTitle;
this.NofTitles++;

myTitle.Id = makeMenuIdentifier(Title,"");

}

function addItem(Item, Ref, Target)
{

var TitleNr = this.NofTitles-1;
if (TitleNr >= 0)
   {
   var myItem = new frameMenu(-1);

   myItem.Label  = Item;
   myItem.Ref    = Ref;
   myItem.Target = Target;
   myTitle = this.Titles[TitleNr];
   myTitle.Titles[myTitle.NofTitles] = myItem;
   myTitle.NofTitles++;
   myItem.Id = makeMenuIdentifier(myTitle.Id,Item);
   }
}

function writeMenu()
{
var l     = 0;
var myPos = 0;
var myString;

// Initialize lastTitleId and lastmove to values that don't occur in the list
lastTitleId = "";
lastClicked  = "";
lastmove = 0;
// document.write('<br><br><br><br><br><br><br>Debug info:<br>');
// window.alert("Ready to write menu");

myString = "";
for (var i = 0; i < this.NofTitles; i++)
   {
   // -- For first item, write:
   // <div class="title" id="title1" style="top: 0px"> 
   //    <img name="pictitle1" src="closed.gif" border="0"><a href="#" onclick="javascript: toggle(Id,2*14+2); return false">Label</a>
   // OR: <a href="Ref" target="Target">Label</a> 
   // OR: a mix of both
   // </div>

   myPos = this.TopPos + i*titleHeight;

   myString += '<div class=\"title0\" id=\"'+this.Titles[i].Id+'\" style=\"top: '+myPos+'px\">\n';
   if (this.Titles[i].NofTitles > 0) 
      {
	   myString += '<img name=\"pic'+this.Titles[i].Id+'\" src=\"scripts/closed.gif\" border=\"0\">\n';
      }
   else
      {
      myString += '<img name=\"pic'+this.Titles[i].Id+'\" src=\"scripts/none.gif\" border=\"0\">\n';
      }
   if (this.Titles[i].Ref != "" && this.Titles[i].Ref != " ")
      {
      myString += '<a class=\"title1\" href=\"'+this.Titles[i].Ref+'\" target=\"'+this.Titles[i].Target+'\" ';
      }
   else
      {
      myString += '<a class=\"title1\" href=\"#\" ';
//      myString += '<a class=\"title1\" href=\"javascript:void(0)\" ';
      }
   myString += 'onclick=\"javascript: titleClick(';
   myString += "\'" + this.Titles[i].Id + "\'";
   myString += '); return true\"';
   myString += ' onMouseOver=\"javascript: changebgcolor(';
   myString += "\'" + this.Titles[i].Id + "\'";
   myString += '); return false\"';
   myString += ' onMouseOut=\"javascript: resetbgcolor(';
   myString += "\'" + this.Titles[i].Id + "\'";
   myString += '); return false\"';
   myString += '>\n&nbsp;'+this.Titles[i].Label+'</a></div>\n';

   // -- For all items, write:
   // <div class="submenu" id="submenu1" style="top: 20px">
   //  <a href="reference1" target="right">Item label</a><br>
   // </div>
   for (var j = 0; j < this.Titles[i].NofTitles; j++)
      {
      var Item = this.Titles[i].Titles[j];
      myPos = this.TopPos + (i+1)*titleHeight - 1 + j*itemHeight;
	  myString += '<div class=submenu id=\"'+Item.Id+'\" style=\"top: '+myPos+'px\">\n';
      myString += '<a class=submenu1 href=\"'+Item.Ref+'\" target=\"'+Item.Target+'\"';
      myString += ' onclick=\"javascript: itemClick(';
      myString += "\'"+Item.Id+"\'";
      myString += '); return true\"';
	  myString += '>&nbsp;&nbsp;'+Item.Label+'</a></div>\n';
      }
   }
// window.alert(myString);
document.write(myString);

this.openActiveMenu();
}

function setTopPos(Pos)
{
this.TopPos = Pos;
}

function frameMenu(myTop)
{
//window.alert('in frameMenu()');

this.TopPos    = myTop;  // Indicates the offset from the top of the frame
this.NofTitles = 0;
this.Label     = "";
this.Id        = "";
this.Ref       = "";
this.Target    = "";
this.bgColor   = 0;
this.focusbgColor = 0;
this.Titles    = new Array();
this.addTitle  = addTitle;
this.addItem   = addItem;
this.getTitleIndex = getTitleIndex;
this.getRef    = getRef;
this.writeMenu = writeMenu;
this.setTopPos = setTopPos;
this.openActiveMenu = openActiveMenu;
this.lasttoggle = lasttoggle;
//window.alert('frameMenu() wordt verlatens');
}


//  End -->

