var leftOffset,topOffset;
var key=0;
var lastID="";
var visibleIDs = new Array;
if(isNaN(leftOffset)) leftOffset=0;
if(isNaN(topOffset)) topOffset=0;

function getPos(el){
	for (var lx=0,ly=0;el!=null;
		lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
	return {x:lx,y:ly}
}

function beginShowLayer(elID,thisLayer,dir) {
	var pos,el,thisEl;
	el=document.getElementById(elID);
	thisEl=document.getElementById(thisLayer);
	pos=getPos(thisEl);
	if(dir=="down"){
		el.style.left=(pos.x+leftOffset);
		el.style.top=(pos.y+thisEl.offsetHeight+topOffset);
	} else {
		el.style.left=(pos.x+thisEl.offsetWidth+leftOffset);
		el.style.top=(pos.y+topOffset);
	}
	el.style.visibility="visible";
	//document.getElementById('info').innerHTML='beginShow ';
}

function showThisLayer(elID){
	var inArray=false;
	if(elID!=lastID){
		lastID=elID;
		
		for(var i=1; i<=visibleIDs.length; i++) {
			if(elID==visibleIDs[i]) {
				inArray=true;
				break
			}
		}

		if(inArray==false) {
			key++;
			visibleIDs[key]=elID;
			//document.getElementById('info2').innerHTML=key+" ";
		}
		
		//document.getElementById('info').innerHTML=document.getElementById('info').innerHTML+'showThis ';
		document.getElementById(elID).style.visibility="visible";
	}
}

function hideLayer(elID){
	document.getElementById(elID).style.visibility="hidden";
}

function hideThisLayer(elID){
	lastID="";
	setTimeout("checkMenu()",300);
}

function hideMenu(s){
	lastID="";
	setTimeout("checkMenu()",s);
}

function checkMenu() {
	if(lastID=="") {
		for(var i=1; i<=visibleIDs.length; i++) {
			if(visibleIDs[i]) document.getElementById(visibleIDs[i]).style.visibility="hidden";
		}
		key=0;
		visibleIDs = new Array;
	} else
	if(lastID!=visibleIDs[key]) {
		document.getElementById(visibleIDs[key]).style.visibility="hidden";
		delete visibleIDs[key];
		key--;
	}
	//document.getElementById('info').innerHTML=document.getElementById('info').innerHTML+'check ';
}
