var stepCount=0;

var mtmr;

var gLsx;

var gLsy1;

var gLsy2;

var gLobj;

var gLobjnum;



function showMenu(obj,num)

{

if(!checkVer){return;}

if(num == gLobjnum || !arrPos[num]){return;}

clearMenu();

var x=obj.offsetLeft;

var y1=pxToBlock-(pxToStart+pxToEnd+pxToOne*arrPos[num]);

var y2=pxToBlock;

var objMove;

eval("objMove=document.all.mmenu"+num);

 gLsx=x;

 gLsy1=y1;

 gLsy2=y2;

 gLobj=objMove;

 gLobjnum=num;

mtmr=setInterval("moveMenu()",20);

return;

}



function clearMenu()

{

if(!gLobjnum){return false;}

if(mtmr){clearInterval(mtmr);}

gLsx='';

gLsy1='';

gLsy2='';

gLobjnum='';

stepCount=0;

if(gLobj)

{

gLobj.style.left="0px";

gLobj.style.top="-1000px";

}

}



function moveMenu()

{

gLobj.style.left=gLsx+"px";

gLobj.style.top=gLsy1+stepCount+"px";

stepCount+=pxStep;

	if(stepCount>gLsy2-gLsy1)

	{

	stepCount=0;

	clearInterval(mtmr);

	}

}



function checkMenu()

{

elCheck=event.srcElement;

while (elCheck != null)

{

if(null != elCheck.getAttribute('reliseShow'))

{

return true;

}

elCheck=elCheck.parentElement;

}

clearMenu();

}

function openurl(where,iw,ih, res){

  irand = parseInt(Math.random()*255);

  iLeftPosition = (screen.width) ? (screen.width-iw)/2 : 0; iTopPosition = (screen.height) ? (screen.height-ih)/2 : 0;

  var resize='maximize=no,resizable=0,scrollbars=no';

  if (res==1){

     resize='maximize=yes,resizable=1,scrollbars=yes'

  }

  isettings ='height='+ih+',width='+iw+',top='+iTopPosition+',left='+iLeftPosition+',toolbar=no,directories=no,status=no,menubar=no,location=no,copyhistory=no'+resize

  Neww=open(where,"displayWindow"+irand,isettings);

  Neww.focus();

}

//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////


over_level2_state	= false;
over_level1_object	= false;
over_timeout		= false;
timeout_value		= 300;

class_level1        = "item1";
class_level10       = "level1last";
class_level2        = "level2";
class_active		= "_active";

function init_menu()
{
	td = document.getElementById("menu1"); 
	levels = td.getElementsByTagName("a");

	for (i=0; i < levels.length; i++)
	{
		if(levels[i].className == class_level1 || levels[i].className == class_level10) 
		{
			levels[i].onmouseover	= show_level2;
			levels[i].onmouseout	= hide_level2;
		
			levels2 = levels[i].parentNode.getElementsByTagName("div");

			if (levels2[0])
			{
				levels2[0].onmouseover	= show_level2;
				levels2[0].onmouseout	= hide_level2;
			}
		}
	}  
}

function resize_menu(level1)
{
	//levels2 = level1.parentNode.getElementsByTagName("div");
	//if (levels2[0])
	//	levels2[0].style.left  = level1.parentNode.offsetLeft+level1.offsetLeft;
}

function display_level2(level1)
{
	level2 = level1.parentNode.getElementsByTagName("div");
	if (level2[0]) display(level2[0]);
}

/*
	При наведении на любой уровень удаляет удаление по timeout
	При наведении на первый уровень показывает меню второго уровня
*/
function show_level2()
{
/* debug("show_level2 -> "+this.className); */
	erase_timeout();
	over_level2_state = true;		
	
	if (this.className != class_level1 && this.className != class_level10)
		return;
	
	if(over_level1_object == this)
		return;
		
    if (over_level1_object) 
    {
    	state_level(over_level1_object, 0);
    	display_level2(over_level1_object);
    }

    over_level1_object = this;
    state_level(over_level1_object, 1);    
    display_level2(over_level1_object);
    //resize_menu(over_level1_object);

	over_level2_state = true;
}

function hide_level2()
{            
	erase_timeout();
	over_level2_state = false;
    over_timeout = window.setTimeout("hide_level2_timeout();", timeout_value); 
}

function hide_level2_timeout()
{
/* debug("hide_level2_timeout -> overstate="+over_level2_state); */
    if(over_level2_state)
		return;
	if(over_level1_object)
	{
		state_level(over_level1_object, 0);
		display_level2(over_level1_object);
		over_level1_object = false;
	}
}

function erase_timeout()
{
/* debug("erase_timeout -> over_timeout="+over_timeout); */
	if(over_timeout) 
		window.clearTimeout(over_timeout);
	over_timeout = false;
}

/*
	Добавляет к имени класса постфикс state_level в зависимости от параметра state
	Это необходимо для выделения пункта меню с активным меню следующего уровня
*/
function state_level(lev, state)
{
return false;
	if(!lev) return;

	if(state)
		lev.className = lev.className+class_active;
	else
		lev.className = lev.className.substr(0, lev.className.indexOf(class_active));
}

/*
	Вспомогательная функция
	Позволяет корректно определить положение блока на экране
	по родителю
*/
function getElementPosition (offsetTrail)
{
  var offsetLeft = 0;
  var offsetTop = 0;
  while (offsetTrail) {
    offsetLeft += offsetTrail.offsetLeft;
    offsetTop += offsetTrail.offsetTop;
    offsetTrail = offsetTrail.offsetParent;
  }

  return {left:offsetLeft, top:offsetTop};
}


/*
	Вспомогатльная функция
	Задает способ скрывания и показывания блоков
	Переводит блок в противоположное состояние
*/
function display(object)
{
	class_hide = '_hide';

	reg_exp		= new RegExp(class_hide+"$");
	class_name 	= object.className;

	if(reg_exp.test(class_name))
		object.className = class_name.replace(reg_exp, '');
	else
		object.className = object.className+class_hide;
}
