var lngDocumentWidth=990, lngDocumentHeight=60000;
var alibMenuIDs=[];
var blnMenusSupported=(Nav.type=='N' && Nav.version>=5) || (Nav.type=='E' && Nav.version>=5);
var blnMenusEnabled=true;
var strObjectBase='libMenu';
var strClassName='libMenu';
var intSubLevels=0;
if(!document.getElementById) document.getElementById=document.all;

function cMenu(pstrKey,plngID) {
	this.ID=(new String(pstrKey)).concat('x',new String(plngID));
	this.options=[];
	this.strInterfaceId='objInterface';
	this.AddOption=cMenu_AddOption;
	this.Build=cMenu_Build;
	this.Relocate=cMenu_Relocate;
	this.Show=cMenu_Show;
	this.X=0;
	this.Y=0;
	eval('alibMenuIDs.ID' + this.ID + '=this');
	this.ParentID = null;
	this.objRow	  = null;
	this.objMenu  = null;
	this.objHook  = null;
}

function cMenu_AddOption(pstrCaption, pstrLink) {
	var lintNew=this.options.length, lobjOption, lobjSubMenu=null;
	if(arguments.length>=3) {
		lobjSubMenu=arguments[2];
		lobjSubMenu.ParentID=this.ID;
	}
	lobjOption=new cMenu_Option(pstrCaption, pstrLink, lobjSubMenu);
	return this.options[lintNew]=lobjOption;
}

function cMenu_Build() {
	var lstrRow, lintOption, lstrCaption, lstrLink, lstrLinkJS, lobjOption, lobjSubMenu, lintX, lintY, lstrRowID;
	lstrRowID=(this.ParentID != null ? strObjectBase + 'LightS' + this.ID : '');
	document.write('<DIV Class="' + strClassName + '" ID="' + strObjectBase + 'ID' + this.ID + '" Style="position:absolute; visibility:hidden;"><TABLE Class="' + strClassName + '" OnMouseOut="SetMenu(\'' + this.ID + '\',false); SetRow(\'' + lstrRowID + '\',false)" OnMouseOver="SetMenu(\'' + this.ID + '\',true); SetRow(\'' + lstrRowID + '\',true)" CellSpacing=0 CellPadding=0 Border=0 BGColor=white>');
	for(lintOption=0;lintOption<this.options.length;lintOption++) {
		lobjOption=this.options[lintOption]
		lstrCaption=lobjOption.Caption;

//		lstrLink='<A HRef="' + lobjOption.Link + '">';
//		lstrLinkJS=( lobjOption.Link=='' ? '' : 'location.href=\'' + lobjOption.Link + '\'' );
//		lstrLink='<A HRef="javascript:' + lobjOption.Link + '">';
		lstrLink='<A>';
		lstrLinkJS=( lobjOption.Link=='' ? '' : lobjOption.Link );

		lobjSubMenu=lobjOption.SubMenu
		if(lobjSubMenu==null) {
			lstrRowID=strObjectBase + 'Light' + this.ID + '-' + lintOption;
			lstrRow='<TR><TD>';
			lstrRow+='<TABLE ID="' + lstrRowID + '" OnClick="' + lstrLinkJS + '" OnMouseOver="SetMenu(\'' + this.ID + '\',true); SetRow(\'' + lstrRowID + '\',true)" OnMouseOut="SetRow(\'' + lstrRowID + '\',false)" CellSpacing=0 CellPadding=1 Border=0 Width="100%"><TR><TD NoWrap Class=Caption>';
			lstrRow+=lstrLink + lstrCaption + '</A>';
			lstrRow+='</TD><TD Class=Icon>&nbsp;</TD></TR></TABLE>';
			lstrRow+='</TD></TR>';
		} else {
			lstrRowID=strObjectBase + 'LightS' + lobjSubMenu.ID;
			lstrRow='<TR><TD ID="' + strObjectBase + 'Hook' + lobjSubMenu.ID + '" OnMouseOver="SetMenu(\'' + lobjSubMenu.ID + '\',true); SetRow(\'' + lstrRowID + '\',true)" OnMouseOut="SetMenu(\'' + lobjSubMenu.ID + '\',false); SetRow(\'' + lstrRowID + '\',false)">';
			lstrRow+='<TABLE ID="' + lstrRowID + '" OnClick="' + lstrLinkJS + '" CellSpacing=0 CellPadding=1 Border=0 Width="100%"><TR><TD NoWrap Class=Caption>';
			lstrRow+=lstrLink + lstrCaption + '</A>';
			lstrRow+='</TD><TD Align=Right Class=Icon>';
			lstrRow+='&nbsp;' + '<IMG Src="Interface/Img/arrow_r.gif" Width=4 Height=8 Border=0>';
			lstrRow+='</TD></TR></TABLE>';
			lstrRow+='</TD></TR>';
		}
		document.write(lstrRow);
	}
	document.write('</TABLE></DIV>');
	for(lintOption=0;lintOption<this.options.length;lintOption++) {
		lobjOption=this.options[lintOption];
		lobjSubMenu=lobjOption.SubMenu;
		if(lobjSubMenu!=null) lobjSubMenu.Build();
	}
}
// parameters: x, y, intParentX, ox, oy
function cMenu_Relocate(pintX, pintY, pintParentX, pintOffsetX, pintOffsetY) {
	var lintOption, lobjOption, lobjSubMenu, lintX, lintY, llngRowHeight, lobjTable;
	var lintParentX = (pintParentX!=undefined && pintParentX!=null ? pintParentX : -1 );

	if(pintX!=undefined) this.X=pintX;
	if(pintY!=undefined) this.Y=pintY;
	var lintOffsetX = 0;	if(pintOffsetX!=undefined && lintParentX>=0) lintOffsetX=pintOffsetX;
	var lintOffsetY = 0;	if(pintOffsetY!=undefined && lintParentX>=0) lintOffsetY=pintOffsetY;
	lobjTable=document.getElementById(strObjectBase + 'ID' + this.ID);
	var objInterface=document.getElementById(this.strInterfaceId);
	lngDocumentWidth=globalX(objInterface)+objectWidth(objInterface); //alert(lngDocumentWidth);
	if(this.X + lintOffsetX + lobjTable.offsetWidth > lngDocumentWidth)
		this.X=( lintParentX>=0 ? lintParentX - lintOffsetX : lngDocumentWidth ) - lobjTable.offsetWidth
	else
		this.X+=lintOffsetX;
	if(this.X<0) this.X=0;
	if(this.Y + lobjTable.offsetHeight > lngDocumentHeight)
		this.Y=lngDocumentHeight - lobjTable.offsetHeight;
	lobjTable.style.left = this.X + 'px';
	lobjTable.style.top  = this.Y + 'px';
	lobjTable.style.zIndex=20;
	llngRowsHeight=this.Y;
//if(lintParentX==-1) alert(this.options.length);
	for(lintOption=0;lintOption<this.options.length;lintOption++) {
		lobjOption=this.options[lintOption];
		lobjSubMenu=lobjOption.SubMenu;
		if(lobjSubMenu==null) {
//			llngRowsHeight+=objectHeight(document.getElementById(strObjectBase + 'Light' + this.ID + '-' + lintOption));
		} else {
//			llngRowHeight=document.getElementById(strObjectBase + 'Hook' + lobjSubMenu.ID).offsetHeight;
			lintX=this.X+document.getElementById(strObjectBase + 'ID' + this.ID).offsetWidth;
//			lintY=this.Y+llngRowHeight*lintOption;
			lintY=llngRowsHeight+lintOffsetY;
			lobjSubMenu.Relocate(lintX,lintY,this.X,pintOffsetX,pintOffsetY);
			llngRowsHeight+=objectHeight(document.getElementById(strObjectBase + 'Hook' + lobjSubMenu.ID));
		}
	}
	this.objMenu = document.getElementById(strObjectBase + 'ID' + this.ID);
	this.objHook = document.getElementById(strObjectBase + 'Hook' + this.ID);
}

function cMenu_Show() {
	this.objMenu.style.visibility='visible';
}

function SetRow(pstrID, pblnStatus) {
	if(blnMenusSupported && pstrID!='') {
		var lobjRow=document.getElementById(pstrID);
		if(lobjRow) lobjRow.className = ( pblnStatus ? 'On' : '' );
	}
}

function SetMenu(pstrKeyID, pblnVisible) {
	if(!blnMenusSupported || !blnMenusEnabled) return;
	var lobj=eval('alibMenuIDs.ID' + pstrKeyID);
//if(pblnVisible) alert('alibMenuIDs.ID' + pstrKeyID);
	if(lobj) {
		var lobjMenu = lobj.objMenu;
		var lobjHook = lobj.objHook;
		if(lobjMenu && lobjHook) {
			var lstrVisible=(pblnVisible ? 'visible' : 'hidden');
			lobjMenu.style.visibility=lstrVisible;
			if(lobj.ParentID != null) SetMenu(lobj.ParentID,pblnVisible);
		}
	}
}

function cMenu_Option(pstrCaption, pstrLink, pobjSubMenu) {
	this.Caption=pstrCaption;
	this.Link=pstrLink;
	this.SubMenu=pobjSubMenu;
	this.Menu=pobjSubMenu;
}
/*
function globalX(pobj) {
	var llngLeft=pobj.offsetLeft;
	if(pobj.offsetParent)
		llngLeft+=globalX(pobj.offsetParent);
	return llngLeft;
}

function globalY(pobj) {
	var llngTop=pobj.offsetTop;
	if(pobj.offsetParent)
		llngTop+=globalY(pobj.offsetParent);
	return llngTop;
}
*/
