/**
 * Projekt akberoun.cz
 * Hlavni menu + submenu
 * Marek Lapis <marek at lapis dot cz>
 * 30.12 2006
 */

// Globals
var menu;

// Onload function
function loadMainMenu()
{
  menu = new MainMenu();
}

// class MainMenu : begin
function MainMenu ()
{
  this.itemsHolderId   = "menuMain";
  this.itemsTagName    = "a";
  this.itemsClassName  = "mainMenuItem";
  
  this.itemImgSrcMask = "images/menu-item-#-over.jpg";
  this.itemSubmenuIdMask = "mainSubmenu#";

  this.holder = document.getElementById(this.itemsHolderId);
  
  if (this.holder) {
    this.items = this.initItems();
    this.count = this.initSize(this.items);
  }
}

MainMenu.prototype.initItems = function ()
{
  if (this.holder)
  {
    var items = new Array();
    var elem  = this.holder.getElementsByTagName(this.itemsTagName);
    
    if (!elem)
      return null;

    var id = 0;

    for (var i = 0; i < elem.length; i++) {
      if (elem[i].className == this.itemsClassName)
      {
        var item = 
        {
          id       : id,
          elem     : elem[i],
          imgOver  : new Image(),
          submenu  : new Submenu(this.itemSubmenuIdMask.replace("#", id))
        }
        item.imgOver.src = this.itemImgSrcMask.replace("#", id);
        items.push(item);

        id++;
      }
    }

    if (items.length > 0)
      return items;
    else
      return null;
  }
  else
    return null;
}

MainMenu.prototype.initSize = function (items)
{
  if (!items)
    return 0;
  else
    return items.length;
}

MainMenu.prototype.setOverState = function (itemNumber)
{
  if (this.items[ itemNumber ]) {
    this.setStyleBgImage(itemNumber);
    this.items[ itemNumber ].submenu.show();
  }
}

MainMenu.prototype.setOutState = function (itemNumber)
{
  if (this.items[ itemNumber ]) {
    this.removeStyleBgImage(itemNumber);
    this.items[ itemNumber ].submenu.hide();
  }
}

MainMenu.prototype.setStyleBgImage = function (itemNumber)
{
  if (this.items[ itemNumber ]) {
    this.items[ itemNumber ].elem.style.backgroundImage = "url(" + this.items[ itemNumber ].imgOver.src + ")";
  }
}

MainMenu.prototype.removeStyleBgImage = function (itemNumber)
{
  if (this.items[ itemNumber ]) {
    this.items[ itemNumber ].elem.style.backgroundImage = "none";
  }
}
// class MainMenu : end


// class Submenu : begin
function Submenu(elemId)
{
  this.elem = (document.getElementById(elemId)) ? document.getElementById(elemId) : null;
}

Submenu.prototype.show = function()
{
  if (this.elem) {
    this.elem.style.visibility = "visible";
  }
}

Submenu.prototype.hide = function()
{
  if (this.elem)
    this.elem.style.visibility = "hidden";
}
// class Submenu : end

