var lngDocumentWidth=770, lngDocumentHeight=400;
var alibMenuIDs=[];
var blnMenusSupported=(Nav.type=='N' && Nav.version>=5) || (Nav.type=='E' && Nav.version>=5);
var blnMenusEnabled=false;
var strObjectBase='libMenu';
var strClassName='libMenu';
if(!document.getElementById) document.getElementById=document.all;

function cMenu(pstrKey,plngID) {
	this.ID=(new String(pstrKey)).concat('x',new String(plngID));
	this.options=[];
	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 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="images/arrow_r.gif" Width=4 Height=8 Border=0>';
			lstrRow+='</TD></TR></TABLE>';
			lstrRow+='</TD></TR>';
		}
		document.write(lstrRow);
	}
	document.write('</TABLE></DIV>');
	var llngRowHeight;
	for(lintOption=0;lintOption<this.options.length;lintOption++) {
		lobjOption=this.options[lintOption];
		lobjSubMenu=lobjOption.SubMenu;
		if(lobjSubMenu!=null) lobjSubMenu.Build();
	}
}

function cMenu_Relocate() {
	var lintOption, lobjOption, lobjSubMenu, lintX, lintY, llngRowHeight, lobjTable;
	var lintParentX = (arguments.length >= 3 && arguments[2]!=null ? arguments[2] : -1 );
	var lintOffsetX = 10;
	if(arguments.length>=2) {
		this.X=arguments[0];
		this.Y=arguments[1];
	}
	if(arguments.length>=4) lintOffsetX=arguments[3];
	lobjTable=document.getElementById(strObjectBase + 'ID' + this.ID);
	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=2;
	for(lintOption=0;lintOption<this.options.length;lintOption++) {
		lobjOption=this.options[lintOption];
		lobjSubMenu=lobjOption.SubMenu;
		if(lobjSubMenu!=null) {
			llngRowHeight=document.getElementById(strObjectBase + 'Hook' + lobjSubMenu.ID).offsetHeight;
			lintX=this.X+document.getElementById(strObjectBase + 'ID' + this.ID).offsetWidth;
			lintY=this.Y+llngRowHeight*lintOption;
			lobjSubMenu.Relocate(lintX,lintY+2,this.X);
		}
	}
	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(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;
}