var submenu = 'submenu_';
var menuItem = 'menu_';

var lPrev='';
var lParent='';
var lTimeout=false;

/*my variables*/
var lHref='';
var lFirstTime=true;
var lCurEl;
var lIndex1;

var addMCurrent = null;
var addMFirst = true;
var flag = false;
var addMPrev = null;

/*Browser initialization*/
var isOpera=self.opera
var ie=document.all&&document.getElementById&&!isOpera
var ns6=document.getElementById&&!document.all

/*Event initialization*/
function init(){
	//if (!parent.document.getElementById('toolbarframe'))
		//document.getElementById('pointer').style.display = "none";
		
	setRightClass(document.getElementById('addMenuTbl'));
	
	if(ie||isOpera){
		document.onmouseover=ieEvent;
		document.onclick=ieEvent;
	}else{
		document.addEventListener("mouseover", menuOver, true)
		document.addEventListener("click", menuClick, true)
	}
}
/*IE event initialization*/
function ieEvent(){
	if(event.type == 'click')
	menuClick(event);	

	if(event.type == 'mouseover')
	menuOver(event);	
}
/*Click on menutd cell*/
function menuClick(pEv){
	if (!parent.document.getElementById('toolbarframe')){
		if(pEv.srcElement) lEl=pEv.srcElement;
			else lEl=pEv.target;
			
			if(lElem=getEl(lEl)) {
				lIndex1=lElem.id.substr(5);
			
				if (lTextEl = document.getElementById('textLink'+lIndex1)){
					lHref=lTextEl.href;
				}
			}
			if(lHref!="")
			location.href=lHref;		
	}
}

function menuOver(pEv) {
	
	if(pEv.srcElement) lEl=pEv.srcElement;
	else lEl=pEv.target;
	if(lTimeout) window.clearTimeout(lTimeout);
	
	lEl=getEl(lEl);
	
	lTimeout=setTimeout("changeClass(lEl)", 10);
	lTimeout=setTimeout("menu(lEl)", 50);	
	
}

function changeClass(pEl) {
	if(pEl && lFirstTime) {	
		if(addMPrev)
			if(addMPrev.className != pEl.className)
				addMPrev.className = 'addMenuTbl';
			
		if(pEl.className == 'addMenuTbl' || pEl.className == 'addMenuTblOv') {
			pEl.className = 'addMenuTblOv';
			
			
			
			
			addMPrev = pEl;
			return;
		}
			
		lCurEl = pEl;
		lIndex1=lCurEl.id.substr(5);
		if (document.getElementById(submenu+lIndex1) || getHref(lIndex1) || lCurEl.className=='current'){
			switch(lCurEl.className){
				case "menutd":
						lCurEl.className='menutdOv';
						break;
				case "current":
						lCurEl.className='current over';
						break;						
				case "dmenutd21":
						lCurEl.className='dmenutd21a';
						break;
				case "menu2td":
						lCurEl.className='menu2tdOv';
						break;
				case "current2":
						lCurEl.className='current2 over';
						break;						
				case "dmenu2td21":
						lCurEl.className='dmenu2td21a';
						break;												
			}
			lFirstTime=false;
		}
	}else{
		if(!lFirstTime){
			if (pEl.id != lCurEl.id){
				switch(lCurEl.className){
					case "menu2tdOv":
							lCurEl.className='menu2td';
							break;							
					case "current2 over":
							lCurEl.className='current2';
							break;							
					case "dmenu2td21a":
							lCurEl.className='dmenu2td21';
							break;	
					case "menutdOv":
							lCurEl.className='menutd';
							break;
					case "current over":
							lCurEl.className='current';
							break;						
					case "dmenutd21a":
							lCurEl.className='dmenutd21';
							break;													
				}
				lFirstTime = true;
			}
		}
	}
}

function getHref (pIndex){
	if (lTextEl = document.getElementById('textLink'+pIndex)){
		return true;
	}else{
		return false;
	}
}



function menu(pEl) {
	if(pEl) {				
			
		var lBr=new Array();
		var lIndex=lEl.id.substr(5);
		if (lIndex.indexOf('_')==-1){
			/*Если одно меню, то необходимо раскомментировать эту строчку, а те что ниже - закомментировать*/
			lParent=document.getElementById(submenu);
			
			
			/*Если два и более меню, здесь описывается условия выбора меню и перехода между ними*/
			/*if(lIndex < 100){
				lParent=document.getElementById('submenu1'); 
				if (lPrev!='') {
					closeNode(lPrev, 1);
					lPrev='';
				}
			}else{
				lParent=document.getElementById('submenu2'); 
				if (lPrev!='') {
					closeNode(lPrev, 1);
					lPrev='';
				}				 
			}*/
			
			
		}
		else {
			lParent=document.getElementById(submenu+lIndex.substr(0, lIndex.lastIndexOf('_'))).rows[0].cells[0];
			/*если елемент 2-го и выше уровня, то переход на субменю этого уровня*/
			if(lParent.childNodes[0].tagName=='TABLE')
				lParent=lParent.childNodes[0];
			else lParent=lParent.childNodes[1];
		}

		if (document.getElementById(submenu+lIndex) && document.getElementById(submenu+lIndex).style.display=='block')
			closeNode(lIndex, -1);

		openParentNode('_'+lIndex);

		if(lIndex.indexOf('_')==-1 && lIndex!=lPrev && document.getElementById(submenu+lIndex))
			lPrev=lIndex;
/*закрывает выпадающее меню следующего уровня при переходе на другой элемент меню текущего уровня*/
		lCh=lParent.rows; /*lCh - массив, который состоит елементов подменю*/
		for (var i=0;i<lCh.length;i++) {
			lC=lCh[i].cells; /*lC - массив, который состоит из набора ячеек текущего елемента подменю*/
			for (var j=0;j<lC.length;j++)
				if (lC[j].id.substr(0, 5)==menuItem && lC[j].id!=lEl.id)
					lBr[lBr.length]=lC[j].id.substr(5);
		}

		for(var z=0;z<lBr.length;z++)
			if(document.getElementById(submenu+lBr[z]) && document.getElementById(submenu+lBr[z]).style.display=='block')
				closeNode(lBr[z], 1);
	}
	else if (lPrev!='') {
		closeNode(lPrev, 1);
		lPrev='';
	}
}

function closeNode(pIndex, pF) {
	if (pF==1) {
		document.getElementById(submenu+pIndex).style.display='none';				/*закрывает текущий элемент*/
		document.getElementById(submenu+pIndex).style.visibility='hidden';
	}

	for (var i=1; document.getElementById(menuItem+pIndex+'_'+i);i++)
		if(document.getElementById(submenu+pIndex+'_'+i) && document.getElementById(submenu+pIndex+'_'+i).style.display=='block')
			closeNode(pIndex+'_'+i, 1);
}

function openParentNode(pIndex){ /*pIndex=_1_1*/
	while(pIndex.indexOf('_')!=-1){
		if(e=document.getElementById(submenu.substr(0, 7)+pIndex)) {
			e.style.display='block';
			e.style.visibility='visible';
		}
		pIndex=pIndex.substr(0, pIndex.lastIndexOf('_'));
	}
}

function getEl(el) {
	if(el && el.tagName) {
		while (el.tagName.toLowerCase() != "body") {
			
			
			if (el.className) {
				if (el.className == 'addMenuTbl' || el.className == 'addMenuTblOv') {
					addMCurrent = el;
					//changeAddMenuTblClass(el);
					//el.className = 'addMenuTblOv';
					//clearTimeout(lTimeout);
					//flag = true;
					return el;
				}
			}
			
			
			if (el.id.substr(0, 5) == menuItem) {				
				flag = false;
				return el;				
			}
			if ((el.id.substr(0, 8) == submenu) && el.id.length>8)
				el=document.getElementById(menuItem+el.id.substr(8));
			else	el = el.parentNode;
		}
	}
	clearTimeout(lTimeout);
	(addMCurrent) ? addMCurrent.className = 'addMenuTbl': addMCurrent = null;
	return false;
}

/*
function getAddMenuEl(el) {
	if(el && el.tagName) {
		while (el.id.toLowerCase() != "ebpt") {
			if (el.className == 'addMenuTbl' || el.className == 'addMenuTblOv')
				return el;			
		}
	} return false;
}*/

function changeAddMenuTblClass(el) {	
	
	//if (el.className == 'addMenuTbl') {	
		el.className = 'addMenuTblOv';
		//addMFirst = (addMFirst) ? false : true;
	//} else {
	//	el.className = 'addMenuTbl';			
	//}
	
	//addMCurrent = el;
}

/*
function addMenuOver(pEv) {
	if (!parent.document.getElementById('toolbarframe')) {
		pEv = (pEv) ? pEv : window.event;
		pEv = (pEv.srcElement) ? pEv.srcElement : pEv.target;	
		
		changeAddMenuTblClass(getAddMenuEl(pEv));
	}
}*/


if(ie || isOpera) {	
	window.attachEvent("onload", init);
	//document.attachEvent("onmouseover", addMenuOver);
} else {	
	window.addEventListener("load", init, true);
	//document.addEventListener("mouseover", addMenuOver, true);
}


function setRightClass(obj) {	
	if (!parent.document.getElementById('templateframe') && obj) {			
		var childNodes;
		var i;
		if(childNodes = obj.childNodes) {
			//childNodes = obj.childNodes;
			for(i=0; i<childNodes.length; i++) {
				
				if(childNodes[i].nodeType == 1 && childNodes[i].className == "addMenuTblTd_") {
					childNodes[i].className = "addMenuTblTd";					
					return true;
				} else if (childNodes[i].nodeType == 1) {
					setRightClass(childNodes[i]);
				}
			}	
				
		} else {
			return false;	
		}
	}
}

//addMenuTbl