// Для работы меню
// 1. Повесить событие onMouseOver = menu_show на кнопку
// 2. Повесить событие onMouseOut = menu_hide на кнопку
// 3. Повесить событие onMouseOut = menu_hide на DIV
// menuid - ID DIV
// elementid - ID кнопки

var m_id = new Array('d1');
var e_id = new Array('e1');
var menu_count = 1;

var hideTimeOut = 200;
var offsetX = 5;
var offsetY = -15;

var coordX = 0;
var coordY = 0;

function menu_hideall() {
	var div;
	var menuid;
		
	for(i=0;i<menu_count;i++) {
		menuid = m_id[i];
		elementid = e_id[i];
		
		ret = menu_mouseIn(menuid, elementid);
		if(ret==false) {
			div = menu_findObj(menuid);
			if(div) {
				div.style.visibility = 'hidden';
			} //else window.status = "Ваш браузер не поддерживает всплывающее меню.4";
		}
	}
}

// Ищет обьекты меню
function menu_findObj(theObj, theDoc)
{
	/*var p, i, foundObj;
  
	if(!theDoc) theDoc = document;
	if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
	{
	  	theDoc = parent.frames[theObj.substring(p+1)].document;
	  	theObj = theObj.substring(0,p);
	}
	if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
	for (i=0; !foundObj && i < theDoc.forms.length; i++) 
	  	foundObj = theDoc.forms[i][theObj];
	for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
	  	foundObj = findObj(theObj,theDoc.layers[i].document);
	if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
	  
	return foundObj;*/
	return document.getElementById(theObj);
}

// Показывает меню
function menu_show(menuid, elementid) {
	menu_hideall();

	var div = menu_findObj(menuid);
	var e = menu_findObj(elementid);

	if((div)&&(e)) {
		var y = e.offsetTop;
		var x = e.offsetLeft;
		var STYLE = div.style;
		
		var i = e.offsetParent;
		
		while(i.tagName!='BODY') {
			y += i.offsetTop;
			x += i.offsetLeft;
			i = i.offsetParent;
		}
		
		x += offsetX;
		y += e.offsetHeight + offsetY;
		
		STYLE.top = y;
		STYLE.left = x;
		
		STYLE.visibility = 'visible';
	} //else window.status = "Ваш браузер не поддерживает всплывающее меню.1";
}

// Создает таймер на убирание меню
function menu_hide(menuid, elementid) {
	setTimeout("menu_onTimer('" + menuid + "', '" + elementid + "')", hideTimeOut);
}

// Убирает меню с экрана
function menu_del(menuid) {
	var div = menu_findObj(menuid);
	if(div) {
		var STYLE = div.style;
		STYLE.visibility = 'hidden';
	} //else window.status = "Ваш браузер не поддерживает всплывающее меню.2";
}

// Событие по таймеру на убирание меню (скрывает меню если курсор не в области меню)
function menu_onTimer(menuid, elementid) {
	var ret = menu_mouseIn(menuid, elementid);
	if(ret==false) menu_del(menuid);
}

function menu_mouseIn(menuid, elementid) {
	var div = menu_findObj(menuid);
	if(div) {
		var x = div.offsetLeft;
		var y = div.offsetTop;
		var h = div.offsetHeight;
		var w = div.offsetWidth;
		
		/*var i = div.offsetParent;
		
		while(i.tagName!='BODY') {
			y += i.offsetTop;
			x += i.offsetLeft;
			i = i.offsetParent;
		}*/
		//alert(coordY + ' ' + y);
		if((coordX > x)&&(coordX < x + w)&&(coordY > y)&&(coordY < y + h)) return true;
	} //else window.status = "Ваш браузер не поддерживает всплывающее меню.3";

	var div = menu_findObj(elementid);
	if(div) {
		var x = div.offsetLeft;
		var y = div.offsetTop;
		var h = div.offsetHeight;
		var w = div.offsetWidth;
		
		var i = div.offsetParent;
		
		while(i.tagName!='BODY') {
			y += i.offsetTop;
			x += i.offsetLeft;
			i = i.offsetParent;
		}
		//alert(coordY + ' ' + y);
		if((coordX > x)&&(coordX < x + w)&&(coordY > y)&&(coordY < y + h)) {
			return true;
		}
	} //else window.status = "Ваш браузер не поддерживает всплывающее меню.3";
	
	return false;
}

function onmove() {
	coordX = event.x;
	coordY = event.y + document.body.scrollTop;
	//menu_hideall();
}

document.onmousemove = onmove;
