var NN4=document.layers?true:false;
var NN6=(navigator.appName == "Netscape")&&!NN4;
var layerRef=NN4?"document":NN6?"":"document.all";
var styleRef=NN4?"":".style";
var suff=NN4?"nn4":"";

function getElementById(anId){
	if (anId)
		if (NN4){
			var objRes=eval("window.document."+anId);
			if (objRes)
				return objRes;
			objRes=eval(document.anchors[anId]);
			if (objRes)
				return objRes;
			for(var i=0;i<document.layers.length;i++)
				if (!objRes){
					objRes=eval(document.layers[i].document.anchors[anId]);
					if (objRes)
						objRes.parent=eval(document.layers[i]);
				}
			return objRes;
		}
		else
			return window.document.getElementById(anId);
	else
		return null;
}
function getCoordsById(anId){
	var obj=getElementById(anId);
	return getCoords(obj)
}
function getCoordsByIdNN4(anId){
	var obj=getElementById(anId);
	return getCoordsNN4(obj)
}
function getCoords(anObj){
	var objRes=new Object();
	objRes.left=objRes.top=objRes.width=objRes.height=0;
	with(objRes){
		width+=anObj.offsetWidth;
		height+=anObj.offsetHeight;
		for(var i=anObj;i!=null;i=i.offsetParent){
			left+=i.offsetLeft;
			top+=i.offsetTop;
		}
	}
	return objRes;
}
function getCoordsNN4(anObj, anEndObj){
	var objRes=new Object();
	objRes.left=objRes.top=objRes.width=objRes.height=0;
	with(objRes){
		left=anObj.x;
		top=anObj.y;
		width=anEndObj.x-left;
		height=anEndObj.y-top;
		if (height==0) height=14;
		if (anObj.parent){
			left+=anObj.parent.x;
			top+=anObj.parent.y;
		}
	}
	return objRes;
}
function getPadCoordsNN4(anObj){
	var objRes=new Object();
	objRes.left=objRes.top=objRes.width=objRes.height=0;
	with(objRes){
		left=anObj.left;
		top=anObj.top;
		width=anObj.clip.width;
		height=anObj.clip.height;
	}
	return objRes;
}


function showMenu(strMenuId, numLev){
	var objItem=getElementById(strMenuId+"item"+suff);
	var objEnd=getElementById(strMenuId+"itemendnn4");
	var objPad=getElementById(strMenuId+"pad");
	var objCoords=NN4?getCoordsNN4(objItem,objEnd):getCoords(objItem);
	var objPadCoords=NN4?getPadCoordsNN4(objPad):getCoords(objPad);
	if (numLev==1)
		// eval("objPad"+styleRef+".left="+parseInt(objCoords.left+(objCoords.width-objPadCoords.width)/2+28));
		eval("objPad"+styleRef+".left=" + parseInt(objCoords.left) + " + 7");
	else
		eval("objPad"+styleRef+".left="+(objCoords.left+objCoords.width));

	if (numLev==1)
		eval("objPad"+styleRef+".top="+(objCoords.top+objCoords.height+4));
	else
/*
		if (!NN4&&!NN6&&(objCoords.top-document.body.scrollTop)<(document.body.offsetHeight-objCoords.height)/2)
*/
			eval("objPad"+styleRef+".top="+(objCoords.top-1));
/*
		else
			eval("objPad"+styleRef+".top="+(objCoords.top+objCoords.height+1-objPadCoords.height));
*/

	eval("objPad"+styleRef+".visibility='visible'");
}

function hideMenu(strMenuId){
	var objPad=getElementById(strMenuId+"pad");
	eval("objPad"+styleRef+".visibility='hidden'");
}

var Hist=new Array(), HistLen=0;

function CutHist(MenuID, lbForce){
	var f=0;
  for(var i=1;i<=HistLen;++i)
    if (Hist[i]==MenuID)
      f=(lbForce)?(i-1):i;
  HistLen=f;
}

function AddToHist(MenuID){
	HistLen+=1;
	Hist[HistLen]=MenuID;
}

function ShowHist(){
	for(var i=1;i<=HistLen;++i)
		showMenu(Hist[i], i);
}

function HideHist(){
	for(var i=1;i<=HistLen;++i)
		hideMenu(Hist[i]);
}


var gDesc="";

function DeferredOverItem(strCurr,strDesc){
  HideHist();
  CutHist(strCurr);
  AddToHist(strDesc);
  ShowHist();
//  gDesc=strDesc;

var objPad=getElementById(strDesc+"itema");

if (objPad!=null) {

if (objPad.className=="menuItem") {
objPad.className="menuItemSel";
}
if (objPad.className=="menuItemPadList") {
objPad.className="menuItemPadListSel";
}
var objPad=getElementById(strDesc+"item");
objPad.className="menuItemTdSel";
}
}
function DeferredOutItem(strDesc){
  HideHist();
  CutHist(strDesc, true);
  ShowHist();
	hideMenu(strDesc);
//	gDesc="";

}

function DeferredOverMenu(strCurr){
  HideHist();
  CutHist(strCurr);
  if (gDesc)
    AddToHist(gDesc);
  ShowHist();
}

function DeferredOutMenu(){
  HideHist();
}


var gnActTimerID=0, gtActTimeStart=0, gnActDelay=0, gcActProcStr="";
function clearActTimer(){
	if (gnActTimerID){
		clearTimeout(gnActTimerID);
		gnActTimerID=0;
		gtActTimeStart=0;
		gcActProcStr="";
	}
}

function setActTimer(lcCommand, lnDelay){
	clearActTimer();
	lcCommand+="; clearActTimer();";
	gtActTimeStart=new Date();
	gnActDelay=lnDelay;
	gcActProcStr=lcCommand;
	return setTimeout(lcCommand, lnDelay);
}

function processTimer(){
	if (gtActTimeStart){
		if (((new Date())-gtActTimeStart)>=gnActDelay){
			if ((typeof(gcActProcStr)=="string")&&gcActProcStr){
				eval(gcActProcStr);
			}
			clearActTimer()
		}
	}
}


var gnDelayIn=0, gnDelayOut=200;
function OverItem(strCurr,strDesc,lbForce){
	if (lbForce){
		clearActTimer();
		DeferredOverItem(strCurr,strDesc);
	}else
		gnActTimerID=setActTimer("DeferredOverItem('"+strCurr+"','"+strDesc+"')", gnDelayIn);
  gDesc=strDesc;
}

function OutItem(strDesc){
	gnActTimerID=setActTimer("DeferredOutItem('"+strDesc+"')", gnDelayOut);
  gDesc="";
var objPad=getElementById(strDesc+"itema");

if (objPad!=null) {

if (objPad.className=="menuItemSel") {
objPad.className="menuItem";
}
if (objPad.className=="menuItemPadListSel") {
objPad.className="menuItemPadList";
}
var objPad=getElementById(strDesc+"item");
objPad.className="menuItemTd";
}
  
}

function OverMenu(strCurr){
	gnActTimerID=setActTimer("DeferredOverMenu('"+strCurr+"')", gnDelayIn);
}

function OutMenu(){
	gnActTimerID=setActTimer("DeferredOutMenu()", gnDelayOut);
}

