cm=null;                    // сюда будем запоминать 
                                // видимый слой. Начальное 
                               // значение - null.
hide_delay=0;       // Время задержки (в м.с.) авто-закр.
                              // меню. 
tstat=0;  

isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;

function switchDiv(objElement,bolVisible) {
	
	if(isNS4||isIE4) {
		if(!bolVisible) {
			objElement.visibility ="hidden"
		} else {
			objElement.visibility ="visible"
		}     
	} else if (isIE5 || isNS6) {
		if(!bolVisible){
			objElement.style.display = "none";
		} else {
			objElement.style.display = "";
		}
	}

	return 1;
}

function getPos(el,sProp) {
	
	var iPos = 0;
	
	while (el!=null) {
		iPos+=el["offset" + sProp]
		el = el.offsetParent
	}
	
	return iPos

}

function getelementbyid(myid) {
	
	if (isNS4){
		objElement = document.layers[myid];
	} else if (isIE4) {
		objElement = document.all[myid];
	}else if (isIE5 || isNS6) {
		objElement = document.getElementById(myid);
	}
	
	return(objElement);
}

function show(el,m) {

// Если имеется видимый слой,
// сделать его невидимым.

 if (cm!=null) {
 switchDiv(cm,false);
 }


// Если указано название слоя для отображения,
// то:
// 1) Получаем его объект;
// 2) X слоя = X яйчейки;
// 3) Y слоя = Y яйчейки + высота яйчейки;
// 4) Делаем слой видимым;
// 5) Сохраняем копию слоя в cm.  


 if (m!=null) {
 m=getelementbyid(m);
 m.style.left = getPos(el,"Left")+"px";
 m.style.top =  getPos(el,"Top")+el.offsetHeight+"px";
 switchDiv(m,true);
 cm=m;
 }

}

function hidemenu() {

// Устанавливаем задержку равную 
// hide_delay м.с. с помощью таймера; 

timer1=setTimeout("show(null,null)",hide_delay);

// Устанавливаем tstat=1 - признак, того, что таймер запущен.
tstat=1;

return 1;
}

function cancelhide() {
 if (tstat==1) {
 clearTimeout(timer1);
 tstat=0;
 }
return 1;
}

function myshow(el,m) {

// Если имеется видимый слой,
// сделать его невидимым.

 if (cm!=null) {
 switchDiv(cm,false);
 }


// Если указано название слоя для отображения,
// то:
// 1) Получаем его объект;
// 2) X слоя = X яйчейки;
// 3) Y слоя = Y яйчейки + высота яйчейки;
// 4) Делаем слой видимым;
// 5) Сохраняем копию слоя в cm.  


 if (m!=null) {
 m=getelementbyid(m);
 m.style.left = getPos(el,"Left")+"px";
 m.style.top =  getPos(el,"Top")+el.offsetHeight+"px";
 switchDiv(m,true);
 cm=m;
 }

}