
//-- Original:  Angus Turnbull -->
//-- Web Site:  http://gusnz.cjb.net -->

var mna=0;
var mnak=0;

var mna_2=0;
var mnak_2=0;

var isDOM = (document.getElementById ? true : false); 
var isIE4 = ((document.all && !isDOM) ? true : false);

// var backgroundImageMj ='url(Grafika/FonasMJ.jpg)';
// var backgroundImageMja='url(Grafika/FonasMJa.jpg)';

// var backgroundImageMP= 'url(Grafika/FonasMP.jpg)';    
// var backgroundImageMPa='url(Grafika/FonasMPa.jpg)';    

var PrelImg = new Array()

  PrelImg[0] = new Image(); PrelImg[0].src='ImgV/FonasM0.jpg';
  PrelImg[1] = new Image(); PrelImg[1].src='ImgV/FonasM0a.jpg';

function Gyliui(ng) 
{
  GylisN=1;
  GylisT="";

  if ( ng==2 ) { GylisN=2; GylisT="../"; } 
  if ( ng==3 ) { GylisN=3; GylisT="../../"; } 
  if ( ng==4 ) { GylisN=4; GylisT="../../../"; } 
  if ( ng==5 ) { GylisN=5; GylisT="../../../../"; } 
  if ( ng==6 ) { GylisN=6; GylisT="../../../../../"; } 
  if ( ng==7 ) { GylisN=7; GylisT="../../../../../../"; } 

  PrelImg[0].src=GylisT + 'ImgV/FonasM0.jpg';
  PrelImg[1].src=GylisT + 'ImgV/FonasM0a.jpg';
}


function getRef(id) 
{
  if (isDOM) return document.getElementById(id);
  if (isIE4) return document.all[id];
}

function getSty(id) 
{
  return (getRef(id).style);
} 

// Hide timeout.

var popTimer = 0;

// Array showing highlighted menu items.

var litNow = new Array();

function popOver(menuNum, itemNum) 
{
  clearTimeout(popTimer);
  hideAllBut(menuNum,0);
  litNow = getTree(menuNum, itemNum);  

  changeCol(litNow, true, menu[menuNum][itemNum].text);
  targetNum = menu[menuNum][itemNum].target;

  mnak=itemNum;

//  alert("PopOver: " + menuNum + ", " + itemNum + ", " +  menu[menuNum][itemNum].target+ ", " +  menu[menuNum][itemNum].text);

  if (targetNum > 0) 
  {
    thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
    thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
    
    if ( menuNum==0 ) thisY=menu[0][0].ref.top; 

    menu[targetNum][0].ref.left = parseInt(thisX + menu[targetNum][0].x) + 'px';
    menu[targetNum][0].ref.top = parseInt(thisY + menu[targetNum][0].y) + 'px';     
    menu[targetNum][0].ref.visibility = 'visible';  
  }
}

function popOut(menuNum, itemNum) 
{
  if ((menuNum == 0) && !menu[menuNum][itemNum].target)
  {
    mnak=0;
    hideAllBut(0,1);
  }  
  else
  {
    mnak=0;
    popTimer = setTimeout('hideAllBut(0,1)', 400);
  }  
}


function ShowPop(menuNum, itemNum) 
{
  litNow = getTree(menuNum, itemNum);  
  changeCol(litNow, true, menu[menuNum][itemNum].text);
  targetNum = menu[menuNum][itemNum].target;

  if (targetNum > 0) 
  {
    thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
    thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
    
    if ( menuNum==0 ) thisY=menu[0][0].ref.top; 
    
    menu[targetNum][0].ref.left = parseInt(thisX + menu[targetNum][0].x) + 'px';
    menu[targetNum][0].ref.top = parseInt(thisY + menu[targetNum][0].y) + 'px';     
    menu[targetNum][0].ref.visibility = 'visible';  
  }
}

function getTree(menuNum, itemNum) 
{
  // Array index is the menu number. The contents are null (if that menu is not a parent)
  // or the item number in that menu that is an ancestor (to light it up).

  itemArray = new Array(menu.length);

  while(1) 
  {
    itemArray[menuNum] = itemNum;

  // If we've reached the top of the hierarchy, return.
 
    if (menuNum == 0) return itemArray;

    itemNum = menu[menuNum][0].parentItem;
    menuNum = menu[menuNum][0].parentMenu;
  }
}

// Pass an array and a boolean to specify colour change, true = over colour.

function changeCol(changeArray, isOver, Text) 
{
  for (menuCount = 0; menuCount < changeArray.length; menuCount++) 
  {
    if (changeArray[menuCount]) 
    {
      if ( isOver && Text.length>0 ) newCol = menu[menuCount][0].overCol;
      if ( !isOver ) newCol = menu[menuCount][0].backCol;

 // Change the colours of the div/layer background.     

      with (menu[menuCount][changeArray[menuCount]].ref) 
      {
        backgroundColor = newCol; 
          
        if ( menuCount==0 && isOver )  backgroundPosition='bottom left';
        if ( menuCount==0 && !isOver ) backgroundPosition='top left';    

        if ( menuCount==0 && isOver ) backgroundImage='url('+PrelImg[1].src+')';
        if ( menuCount==0 && !isOver ) backgroundImage='url('+PrelImg[0].src+')';    

//        if ( menuCount>=1 && isOver ) backgroundImage=backgroundImageMPa;   //'url(Grafika/FonasMPa.jpg)';
//        if ( menuCount>=1 && !isOver ) backgroundImage=backgroundImageMP;   //'url(Grafika/FonasMP.jpg)';    
      }
    }
  }
}


function popEsu(menuNum, itemNum) 
{
  clearTimeout(popTimer);
  hideAllBut(menuNum,0);
  litNow = getTree(menuNum, itemNum);  

  mnak=itemNum;

// alert("PopEsu: " + menuNum + ", " + itemNum + ", " +  menu[menuNum][itemNum].text);
}

function changeTxtCol(changeArray, isOver, Text) 
{
  for (menuCount = 0; menuCount < changeArray.length; menuCount++) 
  {
    if (changeArray[menuCount]) 
    {
      if ( isOver && Text.length>0 ) newCol = menu[menuCount][0].overCol;
      if ( !isOver ) newCol = menu[menuCount][0].backCol;

 // Change the colours of the div/layer background.     

 alert("ChangeTxtCol: " + menuCount + ", " +  menu[menuCount][changeArray[menuCount]].textClass);

      with (menu[menuCount][changeArray[menuCount]].ref) 
      {
        textClass = 'ItemMenuAText'; 
        backgroundColor = newCol; 
          
        if ( menuCount==0 && isOver )  backgroundPosition='bottom left';
        if ( menuCount==0 && !isOver ) backgroundPosition='top left';    

        if ( menuCount==0 && isOver ) backgroundImage='url('+PrelImg[1].src+')';
        if ( menuCount==0 && !isOver ) backgroundImage='url('+PrelImg[0].src+')';    
      }
    }
  }
}

function hideAllBut(menuNum,mode) 
{
  var keepMenus = getTree(menuNum, 1);
  
  for (count = 0; count < menu.length; count++)
  {
    if (!keepMenus[count])
    {
      menu[count][0].ref.visibility = 'hidden';          
    }  
  }
  
  changeCol(litNow, false,"");
  
  if ( mode>0 ) ShowPop(0,mna);
  
}


// *** MENU CONSTRUCTION FUNCTIONS ***

function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass, newLine) 
{
// True or false - a vertical menu?

  this.isVert = isVert;

// The popout indicator used (if any) for this menu.

  this.popInd = popInd

// Position and size settings.

  this.x = x;
  this.y = y;                 
  this.width = width;

// Colours of menu and items.

  this.overCol = overCol;
  this.backCol = backCol;

// The stylesheet class used for item borders and the text within items.

  this.borderClass = borderClass;
  this.textClass = textClass;

// Parent menu and item numbers, indexed later.

  this.parentMenu = null;
  this.parentItem = null;

// Reference to the object's style properties (set later).

  this.ref = null;
}

function Item(text, href, frame, length, spacing, target, newLine) 
{
  this.text = text;
  this.href = href;
  this.frame = frame;
  this.length = length;
  this.spacing = spacing;
  this.target = target;

  this.newLine = newLine;

// Reference to the object's style properties (set later).

  this.ref = null;
}

function writeMenus() 
{
  if ( !isDOM && !isIE4 ) return;

  hrefg = "#";

  mna=Esu;
  mna_2=Esu_2;
  AtextClass='ItemMenuAText';
  
  for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) 
  {
    // Variable for holding HTML for items and positions of next item.

    var str = '', itemX = 0, itemY = 0;

    // Remember, items start from 1 in the array (0 is menu object itself, above).
    // Also use properties of each item nested in the other with() for construction.

    for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) 
    {
      if ( currMenu==0 && newLine>0 ) { itemX = 0; itemY = itemY + width+2; }
      if ( currMenu==0 && (newLine==2 || newLine==4) ) { itemY = itemY + 14; }

      var itemID = 'menu' + currMenu + 'item' + currItem;

      hrefg = "#"; lhrefg=menu[currMenu][currItem].href.length;
      
      if ( lhrefg>1 ) 
      {
        lhrefg=lhrefg;
        hrefg=menu[currMenu][currItem].href.substring(lhrefg-1,lhrefg);  
      }
            
//      if ( currMenu == 1 ) alert(currMenu + ", " + currItem  + ", " + menu[currMenu][currItem].href + ", " + lhrefg + ", " + hrefg);

      // The width and height of the menu item - dependent on orientation!

      var w = (isVert ? width : length);
      var h = (isVert ? length : width);
      var mh = h;

      if ( isDOM ) mh-=5;
      if ( currMenu==0 && newLine==3 ) { mh = mh + 14; }
      if ( currMenu==0 && newLine==4 ) { mh = mh + 28; }
      

      // Create a div or layer text string with appropriate styles/properties.
      // Thanks to Paul Maden (www.paulmaden.com) for helping debug this in IE4, apparently
      // the width must be a miniumum of 3 for it to work in that browser.

      if (isDOM || isIE4) 
      {
        str += '<div id="' + itemID + '"';
        str += ' style="position: absolute; left:' + itemX + 'px; top:' + itemY + 'px; width:' + w + 'px; height:' + mh + 'px; visibility:inherit; ';
        str += ' margin-left:0px; ';
        if ( currMenu == 0 ) str += ' padding:4px; padding-right:0px; ';
        if ( currMenu >  0 ) str += ' padding:4px; ';

        if (backCol) str += 'background:' + backCol + '; ';

        if ( currMenu == 0 ) 
        { 
          str += 'background-image:url('+PrelImg[0].src+'); ';   
          str += 'background-position: 0 0px; ';
        } 

//        if ( currMenu >  0 ) str += 'background-image:url(Grafika/FonasMP.jpg)'; 
        str += '" ';
      }

      if (borderClass) str += 'class="' + borderClass + '" ';

      // Add mouseover handlers and finish div/layer.

      str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';

      // Add contents of item (default: table with link inside).
      // In IE/NS6+, add padding if there's a border to emulate NS4's layer padding.
      // If a target frame is specified, also add that to the <a> tag.

      if ( currMenu == 0 ) 
      {
        if ( currItem == mna )
        {
          str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (borderClass ? 0 : 0) + '">';
          str += '<tr><td align="right" valign="top" height="' + (h - 7) + '">';
          if ( hrefg!="#" ) str += '<a class="' + AtextClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a>';
          else str += '<span class="ItemMenuNoALink">' + text + '</span>';
          str += '</td>';
        }
        else
        {
          str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (borderClass ? 0 : 0) + '">';
          str += '<tr><td align="right" valign="top" height="' + (h - 7) + '">';
          if ( hrefg!="#" ) str += '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a>';
            else str += '<span class="ItemMenuNoLink">' + text + '</span>';
          str += '</td>';
        }           
      }
      
      if ( currMenu >= 1 && currMenu < 20 )
      { 
        if ( currItem == mna_2 )
        {
          str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (borderClass ? 0 : 0) + '">';
          str += '<tr><td align="right" valign="top" height="' + (h - 5) + '">';
          if ( hrefg!="#" ) str += '<a class="' + AtextClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text +  '</a>';
            else str += '<span class="ItemMenuNoALink">' + text + '</span>';
          str += '</td>';
        }  
        else
        {
          str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (borderClass ? 0 : 0) + '">';
          str += '<tr><td align="right" valign="top" height="' + (h - 5) + '">';
          if ( hrefg!="#" ) str += '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text +  '</a>';
            else str += '<span class="ItemMenuNoLink">' + text + '</span>';
          str += '</td>';
        
        } 
      }

      if ( currMenu >= 20 )
      { 
        str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (borderClass ? 0 : 0) + '">';
        str += '<tr><td align="right" valign="top" height="' + (h - 5) + '">';
        if ( hrefg!="#" ) str += '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text +  '</a>';
          else str += '<span class="ItemMenuNoLink">' + text + '</span>';
        str += '</td>';
      }
      
      if (target > 0) 
      {
        // Set target's parents to this menu item.

        menu[target][0].parentMenu = currMenu;
        menu[target][0].parentItem = currItem;

        // Add a popout indicator.

        if (popInd) str += '<td class="' + textClass + '"width="12" align="right" valign="top">' + popInd + '</td>';
      }

      str += '</tr></table>' + '</div>';

      if (isVert) itemY += length + spacing + 2;
        else itemX += length + spacing;
    }

    if (isDOM) 
    {
      var newDiv = document.createElement('div');
      document.getElementsByTagName('body').item(0).appendChild(newDiv);
      newDiv.innerHTML = str;
      ref = newDiv.style;
      ref.position = 'absolute';
      ref.left = '0px';
      ref.top = '0px';
      ref.visibility = 'hidden';            
    }

//   alert(str);

// Insert a div tag to the end of the BODY with menu HTML in place for IE4.

    if (isIE4) 
    {
      document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
      ref = getSty('menu' + currMenu + 'div');
    }

    for (currItem = 1; currItem < menu[currMenu].length; currItem++) 
    {
      itemName = 'menu' + currMenu + 'item' + currItem;
      if (isDOM || isIE4) menu[currMenu][currItem].ref = getSty(itemName);
    }
    
//    if ( currMenu == 1 ) alert(str);
  }

  with(menu[0][0]) 
  {
    ref.left = x;
    ref.top = y;
    ref.visibility = 'visible';
  }
}



// *** OPTIONAL CODE FROM HERE DOWN ***

// These two lines handle the window resize bug in NS4. See <body onResize="...">.
// I recommend you leave this here as otherwise when you resize NS4's width menus are hidden.

var popOldWidth = window.innerWidth;
nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()');


// This is a quick snippet that captures all clicks on the document and hides the menus
// every time you click. Use if you want.

//document.onclick = clickHandle;

//function clickHandle(evt)
//{
//  hideAllBut(0);
//}


// This is just the moving command for the example.

//function moveRoot()
//{
//  with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
//}




