document.onmousemove = CheckCursor;

var childID=0;
var prevID=0;
var ChName = "child";//Префикс для ID подменю
var ParName = "parent";//Префикс для ID меню верх. уровня

FadeObjects = new Object();
FadeTimers = new Object();


function ResetWidth() {
		for (var t=0; t<tWidthArray.length; t++){
		Tname = tWidthArray[t][0];
		Twidth = tWidthArray[t][1];
		document.all[Tname].style.width = Twidth;
	}
}

function printWidth() {
	tWidthArray = new Array();
	for (var t=0; t<divNumbers.length; t++) {
		num = divNumbers[t];
		divNameC  = "child"  + num;
		tableName = "tDiv"   + num;
		cW = document.all[divNameC].offsetWidth;
		tWidthArray[t] = Array(tableName,cW,num);
	}
}


function Fade(item, destOp, rate, delta, ID){
	if (!document.all) return;
	if (item != "[object]"){  
	    setTimeout("Fade("+item+","+destOp+","+rate+","+delta+","+ID+")",0);
	    return;
	}
	clearTimeout(FadeTimers[item.sourceIndex]);
	direction = 1;
	if (item.filters.alpha.opacity > destOp) {
	    direction = -1;
	}
	item.filters.alpha.opacity+=direction*delta;
	if (item.filters.alpha.opacity != destOp) {
	    FadeObjects[item.sourceIndex]=item;
	    FadeTimers[item.sourceIndex]=setTimeout("Fade(FadeObjects["+item.sourceIndex+"],"+destOp+","+rate+","+delta+","+ID+")",rate);
	}
	else if (item.filters.alpha.opacity < 50) {
		item.style.visibility = "hidden";
	}
}

function CheckCursor() {
	if (document.all) {
		var x = (window.event.clientX + document.body.scrollLeft);
		var y = (window.event.clientY + document.body.scrollTop);
	}
//	status=("x:"+x+" y:"+y);
//	status += ("   childID:"+childID);
//	status += ("   prevID:"+prevID);
	if (childID!=0){
		childTop=document.all[ChName+childID].offsetTop;
		childHeight=document.all[ChName+childID].offsetHeight;
		childLeft = document.all[ChName+childID].offsetLeft;;
		if (x<childLeft || y>childHeight+childTop || y<parentTop-10 || x>parentLeft+childWidth){
//			setTimeout('hideMenu('+childID+')', 200);
			hideMenu(childID);
			childID=0;
		}
	}
}

function calcMenu(parentID){
	prevID = childID; //Запоминаем предыдущее открытое меню 
	if (prevID!=0)hideMenu(prevID); //Принудительно гасим предыдущее открытое меню, если условие закрытия меню не сработало (пред. меню открыто, и наводимся на другое меню)
	parentWidth=document.all[ParName+parentID].offsetWidth;
	parentLeft=document.all[ParName+parentID].offsetLeft;
	parentTop=document.all[ParName+parentID].offsetTop;
	
	childID=parentID;
	childWidth=document.all[ChName+childID].offsetWidth;
	
	//Устанавливаем ширину меню
	ch_width = 0;
	if (childWidth<parentWidth) {
		ch_width = parentWidth;
		for (var t=0; t<tWidthArray.length; t++){
			if (tWidthArray[t][2] == childID) {
				tWidthArray[t][1] = parentWidth;//Устанавливаем ширину таблицы
				ResetWidth();
			}
		}
	}
	else ch_width = childWidth;
	document.all[ChName+childID].style.width = ch_width;//Устанавливаем ширину слоя
	//Устанавливаем отступ меню сверху
	document.all[ChName+childID].style.top = parentTop + 15;
	
	//Устанавливаем отступ меню слева
	if (parentLeft+ch_width>document.body.clientWidth) document.all[ChName+childID].style.left = document.body.clientWidth - ch_width;
	else document.all[ChName+childID].style.left = parentLeft;
	
	showMenu(childID);
}

function showMenu(childID){
	Obj = document.all[ChName+childID];
	document.all[ChName+childID].style.visibility = "visible";
	Fade(Obj,96,1,8, childID)
}

function hideMenu(childID){
	Obj = document.all[ChName+childID];
	Fade(Obj,0,1,8, childID);
}
