var MN_PageMenu = {};
var MN_Tpl = TplJsProcMake();

MN_PageMenu.getMenuHTML = function(menuArray, menuTplId, menuLevel, menuParent)
 {
  if (menuLevel == null)
   {
    menuLevel = 0;
   }

  menuLevel++;

  if (typeof(menuArray) == 'undefined')
   {
    return '';
   }

  var tpl_item_id = menuTplId+'_L'+menuLevel+'_item';

  var menuHTML = '';

  for(var i=0;i<menuArray.length;i++)
   {
    var childHTML = '';

    if (typeof(menuArray[i]) != 'undefined')
     {
      if (menuArray[i].tailFunc != null)
       {
        childHTML += menuArray[i].tailFunc(menuArray[i]);
       }

      if (menuArray[i].submenu != null)
       {
        childHTML += MN_PageMenu.getMenuHTML(menuArray[i].submenu, menuTplId, menuLevel, menuArray);
       }

      menuHTML += MN_Tpl.getHTMLById(tpl_item_id,{item:menuArray[i],childHTML:childHTML,level:menuLevel});
     }
   }

  if (menuHTML == '')
   {
    return '';
   }
  else
   {
    return MN_Tpl.getHTMLById(menuTplId,{innerHTML:menuHTML});
   }
 }

MN_PageMenu.toggleChilds = function(el)
 {
  var child = el.getElementsByTagName('ul');
  var a     = el.getElementsByTagName('a');

  if (child.item(0) != null)
   {
    if (child[0].style.display == 'none' || child[0].style.display.length == 0)
     {
      child[0].style.display = 'block';
      a[0].className = (a[0].getAttribute('disable')=='true'?'page_menu_item_disabled menu_item_select':'menu_item_select');
     }
    else
     {
      child[0].style.display = 'none';
      a[0].className = (a[0].getAttribute('disable')=='true'?'page_menu_item_disabled':'');
     }
   }
 }

MN_PageMenu.SiteMenu = function(holderElement, menuArray, menuTplId)
 {
  this.menuArray     = menuArray;
  this.holderElement = holderElement;

  this.holderElement.innerHTML = MN_PageMenu.getMenuHTML(menuArray, menuTplId);
  var listHtmlItemCache = false;

  this.setSelectedItem = function(menuItemId)
   {
    if (!listHtmlItemCache)
     {
      listHtmlItemCache = holderElement.getElementsByTagName('a');
     }

    for(var i=0;i<listHtmlItemCache.length;i++)
     {
      if (listHtmlItemCache[i].getAttribute('item_id') == menuItemId)
       {
        var curr_item_level = listHtmlItemCache[i].getAttribute('level');

        if (curr_item_level > 1)
         {
          var parent = listHtmlItemCache[i];

          if (curr_item_level == 3)
           {
            parent = parent.parentNode.parentNode.parentNode;
           }

          MN_PageMenu.toggleChilds(parent);
         }

        listHtmlItemCache[i].className = 'menu_item_select';
       }
      else
       {
        listHtmlItemCache[i].className = (listHtmlItemCache[i].getAttribute('disable')=='true'?'page_menu_item_disabled':'');
       }
     }
   }
 }

