var TimingDName="";  //obsahuje jmeno menu ktere by se melo zavrit
var TimingID=0;      //je cislo ktere se pred kazdym zavolani m_timeout() zvysi a tak muzeme v m_timeout() porovnanim s tim jakou hodnotu to melo kdyz se to volalo a jakou to ma ted rict, zda je tento timer opravdu ten posledni
var LockTimer=false; //zajistuje aby se casovana funkce m_timeout() nezacala provadet uprostred jine, chranene funkce ktera pracuje z promenymy ktere ovlivnuji m_timeout()

var jsDOM0 = (document.all);
var jsDOM1 = (document.getElementById);

function getObj(name)
{
  if (typeof name == "object")
    return name;

  if (jsDOM1)
    return document.getElementById(name);

  if (jsDOM0)
    return eval('document.all.'+name);
  else
   return null;
}

function m_over_menu(Menu)
{
	LockTimer=true;
	//
	if (TimingDName!="")
  {
    if (TimingDName!=Menu)
    { //jeste je videt jine menu
		  getObj(TimingDName).style.display='none'; //schovame to jine menu co jeste bylo videt
		}
	}
	//
	getObj(Menu).style.display='block';
	TimingID++;    //znemoznime akce vsem timerum ktere volaly m_timeout() a jeste neprobehly
	TimingDName="";
	//
	LockTimer=false;

	return true;
}

function m_out_menu(Menu)
{
	LockTimer=true;
	//
	++TimingID;
	setTimeout("m_timeout("+TimingID.toString()+")",750);
	TimingDName=Menu;
	//
	LockTimer=false;

	return true;
}

function m_timeout(CalledWithTimingID)
{
  //V CalledWithTimingID je predano jake cislo mel TimingID v dobe volani

	while(LockTimer)
    ; //pokud je timer uzamcen, cekame nez se odemkne
	//
	if(TimingID==CalledWithTimingID)
  { //pokud je nyni TimingID stejny jako v dobe volani, vime ze toto volani nebylo zruseno a provedeme prislusne akce
		getObj(TimingDName).style.display='none';
	}
}



