//--------------------------------------------Установка констант---------------------------------------------------------------------
defaultClassName='mainmenu';
defaultItemClassName='item';
defaultItemClassNameArrow='itemarrow';
var number=0;
var menucount=0;
var menuindex=0;
//--------------------------------------------Поле функций---------------------------------------------------------------------

function combineMenu()
{
newElm=crElm('div');
var length = arguments.length;
number=0;
if (length > 0) 
	{this.width=arguments[0];
	newElm.style.width = this.width;
	} else {newElm.style.width=150;}
if ((length>1)&&(arguments[1].length>0))
	{
	newElm.className=arguments[1];
	} else {newElm.className=defaultClassName;}
if (length>3)
	{
	this.initialLeft=arguments[2];
	this.initialTop=arguments[3];
	} else {
	this.initialLeft=0;
	this.initialTop=0;
	}
newElm.style.position='absolute';
newElm.handle=this;
newElm.style.zIndex=5+(++menucount);
menuindex++;
newElm.id='mymenu'+(++menucount);
if (document.getElementById('contentfor')) {upperwindow=document.getElementById('contentfor');} else {upperwindow=document.body;}
upperwindow.appendChild(newElm);
newElm.onmouseover=function ()
{MenuObj=this;
while (MenuObj.handle)
	{MenuObj=MenuObj.handle;
	}
clearTimeout(MenuObj.timer);

MenuObj=this.handle;
if (MenuObj.handle)
{
for (i=0;i<MenuObj.handle.mObj.childNodes.length;i++)
	{
	if (MenuObj.handle.mObj.childNodes[i].isSubMenu)
		{
		if (MenuObj.handle.mObj.childNodes[i].subMenu==this.handle)
			{MenuObj.handle.mObj.childNodes[i].className=defaultItemClassName+'hover';
			}
		}
	}
}


}
newElm.onmouseout= function ()
{
MenuObj=this;
while (MenuObj.handle)
	{MenuObj=MenuObj.handle;
	}
MenuObj.timer=setTimeout('hideAllMenus("'+this.id+'")',500);
}
this.mObj=newElm;
this.i=0;
this.handle=null;
this.items=new Array();
//Функции и процедуры
this.addMenuItem=addMenuItem;
this.hideMenu=hideMenu;
this.initm=initm;
this.timer=null;
this.direction='right';
this.left=0;
this.top=0;
this.hide=function ()
	{this.mObj.style.visibility='hidden';
	}
this.show=function()
	{this.mObj.style.visibility='visible';
	}
this.moveTo=function ()
	{this.mObj.style.left=this.left;
	this.mObj.style.top=this.top;
	}
this.hide();
}

function addMenuItem(MenuObj)
{
addElm=crElm('a');
addNode=document.createTextNode(MenuObj.textNode);
addElm.appendChild(addNode);
addElm.parent=this;
addElm.href='javascript:';
addElm.style.width=this.width-4;
addElm.number=number;
number++;
addElm.className=defaultItemClassName;
addElm.isSubMenu=false;
addElm.subMenu=null;
addElm.actionOnClick=MenuObj.actionOnClick;
//Назначение функций
addElm.setSubMenu=setSubMenu;
addElm.onmouseover=OnMsOvr;
addElm.onmouseout=OnMsOut;
addElm.onclick=OnMsClk;
this.mObj.appendChild(addElm);
if (MenuObj.nodeName=='') {this.items[this.items.length]=addElm;} else {this.items[MenuObj.nodeName]=addElm;}
}

function hideAllMenus(id)
{ 
start=document.getElementById(id);
MenuObj=start.childNodes[0].parent;
while (MenuObj.handle)
	{MenuObj=MenuObj.handle;}
MenuObj.hideMenu(true);
}

function hideMenu()
{
if (this.mObj)
{
for (this.i=0;this.i<this.mObj.childNodes.length;this.i++)
{this.mObj.childNodes[this.i].className=this.mObj.childNodes[this.i].className.replace('hover','');
if (this.mObj.childNodes[this.i].isSubMenu)
	{
	this.mObj.childNodes[this.i].subMenu.hide();
	subObj=this.mObj.childNodes[this.i].subMenu;
	subObj.hideMenu();
	}
}
if (arguments.length>0) {if (arguments[0]==true) this.hide();}
}
}
function OnMsOvr(e)
{
MenuObj=this.parent;
while (MenuObj.handle)
	{MenuObj=MenuObj.handle;
	}
clearTimeout(MenuObj.timer);
this.parent.hideMenu();
for (i=0;i<this.parent.mObj.childNodes.length;i++)
	{this.parent.mObj.childNodes[i].className=this.parent.mObj.childNodes[i].className.replace('hover','');
	}

if (this.isSubMenu)
	{this.subMenu.show();}

// this.className=this.className+'hover';
}

function OnMsOut(e)
{
MenuObj=this.parent;
while (MenuObj.handle)
	{MenuObj=MenuObj.handle;
	}
}

function OnMsClk(e)
{
action=this.actionOnClick;
if  (action!='')
{
if (action.indexOf("link:") == 0) {
      location.href = action.substr(5);
    }
 if (action.indexOf("code:")==0) {
	eval(action.substr(5));
}

if (!e) {
    var e = window.event;
    e.cancelBubble = true;
  }
	if (e.stopPropagation) {
    e.stopPropagation();
  }
 }
return false;
}

function MenuItem()
{
this.textNode=arguments[0];
this.nodeName=arguments[1];
this.actionOnClick=arguments[2];
}

function setSubMenu(MenuObj)
{
this.isSubMenu=true;
this.subMenu=MenuObj;
addArrow=crElm('img');
addArrow.src='/images/site/arrow.gif';
addArrow.className='addarrow';
addArrow.hspace='2';
addArrow.vspace='7';
this.appendChild(addArrow);
MenuObj.direction=this.parent.direction;
MenuObj.handle=this.parent;
left1=0;
if (MenuObj.direction=='right')
{left1=parseInt(this.parent.left)+parseInt(this.parent.width);}
if ((left1>700)||(MenuObj.direction=='left')) {left1=this.parent.left-MenuObj.width;this.parent.direction='left';}
MenuObj.left=left1;
top1=0;
top1=parseInt(this.parent.top)+parseInt(this.number*24);
MenuObj.top=top1;
MenuObj.moveTo();
MenuObj=null;
}

function crElm(tagname)
{
return document.createElement(tagname);
}

function showMenu(MenuObj)
{
MenuObj.show();
MenuObj.timer=setTimeout('hideAllMenus("'+MenuObj.mObj.id+'")',3000);
return false;
}

function initm()
{
for (i=0;i<_menuItems.length;i++)
	{
	this.addMenuItem(new MenuItem(_menuItems[i][0],_menuItems[i][1],_menuItems[i][2]));
	}
if ((this.initialLeft>0)&&(this.initialTop>0))
{
this.left=this.initialLeft;
if (this.left+this.width>700) this.left=this.left-this.width;
this.top=this.initialTop-this.mObj.childNodes.length*23-10;
this.moveTo();
}
}
