var msie_version=false;

if(isMSIE)
{
    msie_version = get_msie_version();
}

// class "Menucollection_class":

function Menucollection_class()
{
    this.count=0;
    this.elements=new Array();
    this.active=0;
}

Mcoll=Menucollection_class.prototype

Mcoll.size = function()
{
    return this.elements.length;
}

Mcoll.add = function(id,parent_id)
{
    menu_el = new Menu_class(id,parent_id);

    this.elements[this.size()]=menu_el;

    el_count = this.size()-1;
    this.elements[el_count].coll_num=el_count;

    return el_count;
}

Mcoll.isincollection = function(id)
{
    var place = false;

    for (k in this.elements)
    {
        if(this.elements[k].id == id) place=k;
    }
    return place;
}

// class "Menu_class":

function Menu_class(id,parent)
{
    this.have_sub_menu = false;
    this.coll_num = null;

    this.sub_coll_nums=new Array();

    this.parent_id=parent;
    this.id=id;
    this.tm=null;
    this.status='CLOSED';
    this.dofade='IN';
    this.layer=layer(this.id);

    var c;
    for(c=1;c<10;c++)
    {
        var submenu = "sub"+id+"_"+c;
        
        if(document.getElementById(submenu))
        {
            nnn = menu_coll.isincollection(submenu)

            if(!nnn)
            {
                nnn = menu_coll.add(submenu,id);
            }
            this.sub_coll_nums[this.sub_coll_nums.length]=nnn;
            this.have_sub_menu = true;
        }
    }

    this.GLOWING=1, this.LIT=2, this.FADING=3;
    this.GLOWSPEED=40, this.FADESPEED=40; this.CLOSESPEED=20;

    this.m_bg = new Array();
    this.m_txt = new Array();
    this.sm_bg = new Array();
    this.sm_txt = new Array();
    this.bg_gradient = new Array();
    this.text_gradient = new Array();

    this.m_bg[0]="#4A6069"; this.m_txt[0]="#FFFFFF";
    this.m_bg[1]="#708188"; this.m_txt[1]="#FFFFFF";
    this.m_bg[2]="#96A3A8"; this.m_txt[2]="#FFFFFF";
    this.m_bg[3]="#BBC3C6"; this.m_txt[3]="#FFFFFF";
    this.m_bg[4]="#E2E6E7"; this.m_txt[4]="#4A6069";

    this.sm_bg[0]="#4A6069"; this.sm_txt[0]="#FFFFFF";
    this.sm_bg[1]="#708188"; this.sm_txt[1]="#FFFFFF";
    this.sm_bg[2]="#96A3A8"; this.sm_txt[2]="#FFFFFF";
    this.sm_bg[3]="#BBC3C6"; this.sm_txt[3]="#FFFFFF";
    this.sm_bg[4]="#E2E6E7"; this.sm_txt[4]="#4A6069";

  if (document.getElementById(this.id).className=="submenu")
  {
    this.bg_gradient=this.sm_bg;
    this.text_gradient=this.sm_txt;
  }
  else
  {
    this.bg_gradient=this.m_bg;
    this.text_gradient=this.m_txt;
  }


    this.fade_i=0;
    this.fade_j=this.bg_gradient.length;
}

M=Menu_class.prototype
M.fadein = function()
{
  if(this.dofade=='IN')
  {
    var menu_number = this.coll_num;
    var counter = this.bg_gradient.length;

    element=this.layer;

    if(this.dark_tm) {clearTimeout(this.dark_tm); this.dark_tm=null; this.fade_i=this.fade_j+1;
    }

    if (this.fade_i<counter)
    {
        element.setBgColor(this.bg_gradient[this.fade_i]);
        document.getElementById(this.id).style.color  = this.text_gradient[this.fade_i];
        this.light_tm=setTimeout(function() {menu_coll.elements[menu_number].fadein()},menu_coll.elements[menu_number].GLOWSPEED); //this.GLOWSPEED);
    }
    else
    {
        this.fade_i=0; this.fade_j=this.bg_gradient.length; clearTimeout(this.light_tm); this.light_tm=null; return;
    }
    this.fade_i++;
  }

}
M.fadeout = function()
{
  if(this.dofade=='OUT')
  {
    var menu_number = this.coll_num;

    element=this.layer;

    if(this.light_tm) {clearTimeout(this.light_tm); this.light_tm=null; this.fade_j=this.fade_i;//-1;
    }

    this.fade_j--;
    if (this.fade_j>=0)
    {
        element.setBgColor(this.bg_gradient[this.fade_j]);
        document.getElementById(this.id).style.color  = this.text_gradient[this.fade_j];
        this.dark_tm=setTimeout(function() {menu_coll.elements[menu_number].fadeout()},menu_coll.elements[menu_number].FADESPEED); //this.FADESPEED);
    }
    else
    {
        this.fade_j=this.bg_gradient.length; this.fade_i=0; clearTimeout(this.dark_tm); this.dark_tm=null; return;
    }
  }

}
M.cancelCloseMenu = function()
{
    if(this.tm) {clearTimeout(this.tm); this.tm=null;}
}
M.initiateHideMenu = function()
{
    var menu_number = this.coll_num;
    this.tm=setTimeout(function()
    {
        menu_coll.elements[menu_number].collaps();
    }
    ,this.CLOSESPEED);

}
M.expand = function()
{
    if(this.tm) {this.cancelCloseMenu();}
    else
    {
        this.dofade='IN';
        this.fadein();

      if(this.have_sub_menu)
      {
        var sub_num = ''; l = this.sub_coll_nums.length;
        absTop = this.layer.getAbsoluteTop();
        absLeft = this.layer.getAbsoluteLeft();
        menu_Height = this.layer.getHeight();
        submenu_Height = menu_coll.elements[this.sub_coll_nums[0]].layer.getHeight();

        for(var i = 0; i < l; i++) 
        {
            sub_num = this.sub_coll_nums[i];
            if(i==0)
                menu_coll.elements[sub_num].layer.moveTo(absLeft, absTop + menu_Height*(i+1))
            else
                menu_coll.elements[sub_num].layer.moveTo(absLeft, absTop + (submenu_Height*(i+1)) + (menu_Height-submenu_Height))
        
            menu_coll.elements[sub_num].layer.show();
        }
        this.status='OPENED';
      }
    }
}
M.collaps = function()
{
    this.dofade='OUT';
    this.fadeout();

    if(this.have_sub_menu)
    {
        var sub_num = ''; l = this.sub_coll_nums.length;
        for(var i = 0; i < l; i++) 
        {
            sub_num = this.sub_coll_nums[i];
            menu_coll.elements[sub_num].layer.hide();
        }
        this.status='CLOSED';
    }

    this.cancelCloseMenu();
}

function collection(){
    return new Menucollection_class()
}

if(!self.menu_coll)
{
    var menu_coll = collection();
}

function showMenu(event)
{
    elem = getActiveElement(event);
if(use_full_menu())
{
    numb = menu_coll.isincollection(elem.id);
    if(!numb)
    {
        numb = menu_coll.add(elem.id,null);
    }

    menu_coll.elements[numb].expand();
}
else
{
    elem.style.color  = '#ffffff';
    elem.style.backgroundColor  = '#091A28';
}
if(msie_version && msie_version['major']<6)
{
    if(elem.currentStyle.cursor=='pointer' || elem.currentStyle.cursor=='auto')
        elem.style.cursor = 'hand';
}
}

function hideMenu(event)
{
    elem = getActiveElement(event);

if(use_full_menu())
{
    numb = menu_coll.isincollection(elem.id);
    if(numb)
    {
        menu_coll.elements[numb].initiateHideMenu()
    }
}
else
{
    elem.style.color  = '#0f2721';
    elem.style.backgroundColor  = '#C9885C';
}
}

function showSubMenu(event)
{

    elem = getActiveElement(event);
    
    numb = menu_coll.isincollection(elem.id);
    if(numb)
    {
        parent_id=menu_coll.elements[numb].parent_id;
        parent_num = menu_coll.isincollection(parent_id);
        menu_coll.elements[parent_num].cancelCloseMenu();
    }
    menu_coll.elements[numb].expand();

}

function hideSubMenu(event)
{
    elem = getActiveElement(event);

    numb = menu_coll.isincollection(elem.id);

    if(numb)
    {
        parent_id=menu_coll.elements[numb].parent_id;
        parent_num = menu_coll.isincollection(parent_id);
        menu_coll.elements[numb].initiateHideMenu();
        menu_coll.elements[parent_num].initiateHideMenu();
    }
}

function getActiveElement(event)
{
    if (event && event.target)
    elem = eval(event.target); //FireFox
    else
    if(window.event) elem = window.event.srcElement; //IE5

    if (elem.parentNode && (elem.parentNode.className == 'submenu' || elem.parentNode.className == 'menu'))
    elem=elem.parentNode;

    return elem;
}

function use_full_menu()
{
    var full_menu=1;

    if(isMSIE)
    {
        full_menu=0;

        if(msie_version['major']>5)
          full_menu=1;
        else 
         if((msie_version['major']==5) && (msie_version['minor']>0))
            full_menu=1;
    }
    return full_menu;   
}

function get_msie_version()
{
    if(isMSIE)
    {
        var version = new Array();
        var str = navigator.appVersion;
        var j = str.split(";");
        version['os'] = j[2];
        j = j[1].split(" ");
        j = j[2].split(".");
        version['major'] = j[0];
        version['minor'] = j[1];
        return version;
    }
    return undefined;
}