
/*********************************************************************************************************************************************
*	(c) Ger Versluis 2000 version 5 9 October 2001						*
*	You may use this script on non commercial sites.						*
*	For info write to menus@burmees.nl							*
*       This script featured on Dynamic Drive DHTML code library: http://www.dynamicdrive.com
**********************************************************************************************************************************************/


function ElementDimensions(elem)
{
	this.width = elem.offsetWidth;
	this.height = elem.offsetHeight;
	var tmp = elem;
	this.left = this.top = 0;
	while(tmp.offsetParent)
	{
		this.left += tmp.offsetLeft;
		this.top += tmp.offsetTop;
		tmp = tmp.offsetParent;
	}
}

// Gobal variables

var UserAgent = navigator.userAgent.toLowerCase();
var UseDom = (document.getElementById) ? 1 : 0;
var IsMozilla = (UserAgent.indexOf('mozilla') != -1 && UserAgent.indexOf('compatible') == -1) ? 1 : 0;
var IsIE = (UserAgent.indexOf('msie')!=-1) ? 1 : 0;
var IsOpera = UserAgent.match(/opera [5-9]/i);
var IsDomMozilla = (UseDom && IsMozilla) ? 1 : 0;
var IsDomIE = (UseDom && IsIE) ? 1 : 0;
var IsNav4 = (IsMozilla && !UseDom && document.layers) ? 1 : 0;
var IsIE4 = (IsIE && !UseDom && document.all) ? 1 : 0;
var PosStrt = ((IsMozilla || IsIE) && !IsOpera) ? 1 : 0;

var FirstLineFrame, SecondLineFrame, DocTargetFrame;
var SecondLineWinWidth, SecondLineWinHeight, FirstLineWinWidth, FirstLineWinWidth;
var ScLdAgainWin;
var FirstColPos, SecColPos, DocColPos;
var RcrsLvl = 0;
var FrstCreat = 1,Loadd = 0,Creatd = 0, IniFlg, AcrossFrames = 1;
var FirstContainer = null, CurrntOvr = null, CloseTmr = null;
var CntrTxt, TxtClose, ImgStr;
var Ztop = 100;
var ShwFlg = 0;
var M_StrtTp = StartTop, M_StrtLft = StartLeft;
var LftXtra = (IsDomMozilla) ? LeftPaddng : 0;
var TpXtra = (IsDomMozilla) ? TopPaddng: 0;
var M_Hide = (IsNav4) ? 'hide' : 'hidden';
var M_Show = (IsNav4) ?'show' : 'visible';
var Par= (parent.frames[0] && FirstLineFrame != SecLineFrame) ? parent : window;
var Doc = Par.document;
var Bod = Doc.body;
var Trigger = (IsMozilla) ? Par : Bod;

MenuTextCentered = (MenuTextCentered==1 || MenuTextCentered=='center') ? 'center' : (MenuTextCentered==0 || MenuTextCentered != 'right') ? 'left' : 'right';
WbMstrAlrts=["No such frame: ","Item not defined: ","Item needs height: ","Item needs width: ","Item OK ","Menu tree OK"];

if(Trigger.onload)
	Dummy = Trigger.onload;
if(IsDomMozilla && !IsOpera)
	Trigger.addEventListener('load',Go,false);
else
	Trigger.onload = Go;

function Dummy() {return;} // Executes user onload when found

function CnclSlct() {return false;} // Prevents text select on menu items.

function RepositionWindow() {	// Repositions menu after resize IE and Moz
	var FirstContainerStyle = (!IsNav4) ? FirstContainer.style : FirstContainer;
	FirstLineWinWidth = (IsIE) ? FirstLineFrame.document.body.clientWidth : FirstLineFrame.innerWidth;
	FirstLineWinWidth = (IsIE) ? FirstLineFrame.document.body.clientHeight : FirstLineFrame.innerHeight;
	SecondLineWinWidth = (IsIE) ? SecondLineFrame.document.body.clientWidth : SecondLineFrame.innerWidth;
	SecondLineWinHeight = (IsIE) ? SecondLineFrame.document.body.clientHeight : SecondLineFrame.innerHeight;
	if(TargetLoc)
		ClcTrgt();
	if(MenuCentered)
		ClcLft();
	if(MenuVerticalCentered)
		ClcTp();
	PosMenu(FirstContainer,StartTop,StartLeft);
}

function UnLoaded() { // Disables menu when document gets unloaded
	if(typeof(CloseTmr)!='undefined' && CloseTmr)
		clearTimeout(CloseTmr);
	Loadd=0;
	Creatd=0;
	if(HideTop) {
		var FCStyle = (IsNav4) ? FirstContainer : FirstContainer.style;
		FCStyle.visibility = M_Hide;
	}
}

function Ns4WinResize(){ // Reloads after resize NS4 only
	if(SecondLineWinWidth != SecondLineFrame.innerWidth
		|| SecondLineWinHeight != SecondLineFrame.innerHeight
		|| FirstLineWinWidth != FirstLineFrame.innerWidth
		|| FirstLineWinWidth != FirstLineFrame.innerHeight
	) {
		Doc.location.reload();
	}
}

function Check(WMnu,NoOf){ // Checks menu tree
	var i,Hg,Wd,La,Li,Nof,array,ArrayLoc;
	ArrayLoc = (parent.frames[0]) ? parent.frames[FirstLineFrame] : self;
	for (i=0; i < NoOf; i++) {
		array = WMnu + eval(i + 1);
		if(!ArrayLoc[array]) {
			WbMstrAlrt(1,array);
			return false;
		}
		La=ArrayLoc[array][0];
		Li=ArrayLoc[array][1];
		Nof=ArrayLoc[array][3];
		if(i==0){
			if(!ArrayLoc[array][4]) {
				WbMstrAlrt(2,array);
				return false;
			}
			if(!ArrayLoc[array][5]) {
				WbMstrAlrt(3,array);
				return false;
			}
		}
		Hg = ArrayLoc[array][4];
		Wd = ArrayLoc[array][5];
		if(!WbMstrAlrt(4,'\n\n'+array+'\nwidth: '+Wd+'\nheight: '+Hg+'\nLabel: '+La+'\nLink: '+Li+'\nNo of sub items: '+Nof)) {
			WebMasterCheck = 0;
			return true;
		}
		if(ArrayLoc[array][3])
		{
			if(!Check(array+'_',ArrayLoc[array][3]))
				return false;
		}
	}
	return true
}	

function WbMstrAlrt(No, Xtra) {
	if(WebMasterCheck)
		return confirm(WbMstrAlrts[No]+Xtra+'   ');
}

function Go() { // Main function
	Dummy();
	if(Loadd || !PosStrt)
		return;
	BeforeStart();
	Creatd = 0;
	Loadd = 1;
	status = 'Building menu';
	if (FrstCreat) {
		if (FirstLineFrame == "" || !parent.frames[FirstLineFrame]) {
			WbMstrAlrt(0, FirstLineFrame);
			FirstLineFrame = SecLineFrame;
		}
		if (FirstLineFrame == "" || !parent.frames[FirstLineFrame]) {
			WbMstrAlrt(0, SecLineFrame);
			FirstLineFrame = SecLineFrame = DocTargetFrame;
		}
		if (FirstLineFrame == "" || !parent.frames[FirstLineFrame]) {
			WbMstrAlrt(0, DocTargetFrame);
			FirstLineFrame = SecLineFrame = DocTargetFrame = '';
		}
		if (SecLineFrame == "" || !parent.frames[SecLineFrame])
			SecLineFrame = DocTargetFrame;
		if (SecLineFrame == "" || !parent.frames[SecLineFrame])
			SecLineFrame = DocTargetFrame = FirstLineFrame;
		if (DocTargetFrame == "" || !parent.frames[DocTargetFrame])
			DocTargetFrame = SecLineFrame;
		if(WebMasterCheck) {
			if(!Check('Menu',NoOffFirstLineMenus))
				return;
			else WbMstrAlrt(5,'');
		}
		FirstLineFrame = (FirstLineFrame != "") ? parent.frames[FirstLineFrame] : window;
		SecondLineFrame = (SecLineFrame != "") ? parent.frames[SecLineFrame] : window;
		DocTargetFrame = (DocTargetFrame!="") ? parent.frames[DocTargetFrame] : window;
		if (FirstLineFrame == SecondLineFrame)
			AcrossFrames=0;
		if (AcrossFrames)
			FirstLineHorizontal = (MenuFramesVertical) ? 0 : 1;
		FirstLineWinWidth = (IsIE) ? FirstLineFrame.document.body.clientWidth : FirstLineFrame.innerWidth;
		FirstLineWinWidth = (IsIE) ? FirstLineFrame.document.body.clientHeight : FirstLineFrame.innerHeight;
		SecondLineWinWidth = (IsIE) ? SecondLineFrame.document.body.clientWidth : SecondLineFrame.innerWidth;
		SecondLineWinHeight = (IsIE) ? SecondLineFrame.document.body.clientHeight : SecondLineFrame.innerHeight;
		if(IsNav4) {
			CntrTxt = (MenuTextCentered != 'left') ? "<div align='" + MenuTextCentered + "'>" : "";
			TxtClose = "</font>" + (MenuTextCentered != 'left') ? "</div>" : ""
		}
	}
	FirstColPos = (IsNav4) ? FirstLineFrame.document : FirstLineFrame.document.body;
	SecColPos = (IsNav4) ? SecondLineFrame.document : SecondLineFrame.document.body;
	DocColPos = (IsNav4) ? DocTargetFrame.document : SecondLineFrame.document.body;
	if (TakeOverBgColor)
		FirstColPos.bgColor = (AcrossFrames) ? SecColPos.bgColor : DocColPos.bgColor;
	if(FrstCreat) {
		FirstContainer = CreateMenuStructure('Menu',NoOffFirstLineMenus);
		FrstCreat = (AcrossFrames) ? 0 : 1;
	}
	else
		CreateMenuStructureAgain('Menu',NoOffFirstLineMenus);
	if (TargetLoc)
		ClcTrgt();
	if (MenuCentered)
		ClcLft();
	if (MenuVerticalCentered)
		ClcTp();
	PosMenu(FirstContainer, StartTop, StartLeft);
	IniFlg = 1;
	Initiate();
	Creatd = 1; 
	ScLdAgainWin = (IsIE) ? SecondLineFrame.document.body : SecondLineFrame;
	ScLdAgainWin.onunload = UnLoaded;
	//if(IsIE)FirstLineFrame.document.body.onselectstart=CnclSlct;
	Trigger.onresize = (IsNav4) ? Ns4WinResize : RepositionWindow;
	AfterBuild();
	status='Menu ready for use';
}

function ClcTrgt(){ // Calculates StartTop and Left when positioning is relative
	var TLoc = (IsNav4) ? FirstLineFrame.document.layers[TargetLoc] : (UseDom) ? FirstLineFrame.document.getElementById(TargetLoc) : FirstLineFrame.document.all[TargetLoc];
	var ED = new ElementDimensions(TLoc);
	StartTop = M_StrtTp + ED.top;
	StartLeft = M_StrtLft + ED.left;
	//alert('ED.top = ' + ED.top + '; ED.left = ' + ED.left + '; M_StrtTp = ' + M_StrtTp + '; M_StrtLft = ' + M_StrtLft);
	//StartTop += (IsNav4) ? TLoc.pageY : TLoc.offsetTop;
	//StartLeft += (IsNav4) ? TLoc.pageX :TLoc.offsetLeft;
}

function ClcLft(){ // Calculates StartTop and Left when menu is centered
	if(MenuCentered!='left') {
		var Size = FirstLineWinWidth - ((!IsNav4) ? parseInt(FirstContainer.style.width) : FirstContainer.clip.width);
		StartLeft = M_StrtLft;
		StartLeft += (MenuCentered=='right') ? Size : Size / 2;
	}
}

function ClcTp() { // Calculates StartTop and Left when menu is centered
	if(MenuVerticalCentered != 'top') {	
		var Size = FirstLineWinWidth - ((!IsNav4) ? parseInt(FirstContainer.style.height) : FirstContainer.clip.height);
		StartTop = M_StrtTp;
		StartTop += (MenuVerticalCentered == 'bottom') ? Size : Size / 2;
	}
}

function PosMenu(CntnrPntr,Tp,Lt) { // Positions menu elements
	var Topi, Lefti, Hori;
	var Cntnr = CntnrPntr;
	var Mmbr = Cntnr.FrstMbr;
	var CntnrStyle = (!IsNav4) ? Cntnr.style: Cntnr;
	var MmbrStyle = (!IsNav4) ? Mmbr.style : Mmbr;
	var PadL = (Mmbr.value.indexOf('<') == -1) ? LftXtra : 0;
	var PadT = (Mmbr.value.indexOf('<') == -1) ? TpXtra : 0;
	var MmbrWt = (!IsNav4) ? parseInt(MmbrStyle.width) + PadL : MmbrStyle.clip.width;
	var MmbrHt = (!IsNav4) ? parseInt(MmbrStyle.height) + PadT : MmbrStyle.clip.height;
	var CntnrWt = (!IsNav4) ? parseInt(CntnrStyle.width) : CntnrStyle.clip.width;
	var CntnrHt = (!IsNav4) ? parseInt(CntnrStyle.height) : CntnrStyle.clip.height;
	var SubTp, SubLt;
	RcrsLvl++;
	if (RcrsLvl == 1 && AcrossFrames)
		(!MenuFramesVertical) ? Tp = FirstLineWinWidth - CntnrHt + ((IsNav4) ? 4 : 0) : Lt = (RightToLeft) ? 0 : FirstLineWinWidth - CntnrWt + ((IsNav4) ? 4 : 0);
	if (RcrsLvl == 2 && AcrossFrames)
		(!MenuFramesVertical) ? Tp=0 : Lt = (RightToLeft) ? SecondLineWinWidth - CntnrWt : 0;
	if (RcrsLvl == 2 && AcrossFrames) {
		Tp+=VerCorrect;
		Lt+=HorCorrect
	}
	CntnrStyle.top = (RcrsLvl == 1) ? Tp : 0;
	Cntnr.OrgTop = Tp;
	CntnrStyle.left = (RcrsLvl == 1) ? Lt : 0;
	Cntnr.OrgLeft = Lt;
	if (RcrsLvl == 1 && FirstLineHorizontal) {
		Hori=1;
		Lefti = CntnrWt - MmbrWt - 2 * BorderWidth;
		Topi=0;
	}
	else {
		Hori = Lefti = 0;
		Topi = CntnrHt - MmbrHt - 2 * BorderWidth;
	}
	while (Mmbr!=null) {
		PadL = (Mmbr.value.indexOf('<') == -1) ? LftXtra : 0;
		PadT = (Mmbr.value.indexOf('<') == -1) ? TpXtra : 0;
		MmbrStyle.left = Lefti + BorderWidth;
		MmbrStyle.top = Topi + BorderWidth;
		if (IsNav4)
			Mmbr.CmdLyr.moveTo(Lefti + BorderWidth,Topi + BorderWidth);
		if (Mmbr.ChildCntnr) {
			if (RightToLeft)
				ChldCntnrWdth = (IsNav4) ? Mmbr.ChildCntnr.clip.width : parseInt(Mmbr.ChildCntnr.style.width);
			if (Hori) {
				SubTp = Topi + MmbrHt + 2 * BorderWidth; 
				SubLt = (RightToLeft) ? Lefti + MmbrWt - ChldCntnrWdth : Lefti;
			}
			else {
				SubLt = (RightToLeft) ? Lefti - ChldCntnrWdth + ChildOverlap * MmbrWt + BorderWidth : Lefti + (1 - ChildOverlap) * MmbrWt + BorderWidth; 
				SubTp = (RcrsLvl == 1 && AcrossFrames) ? Topi : Topi + ChildVerticalOverlap * MmbrHt;
			}
			PosMenu(Mmbr.ChildCntnr, SubTp, SubLt)
		}
		Mmbr = Mmbr.PrvMbr;
		if(Mmbr){
			MmbrStyle = (!IsNav4) ? Mmbr.style : Mmbr;
			MmbrWt = (!IsNav4) ? parseInt(MmbrStyle.width) + PadL : MmbrStyle.clip.width;
			MmbrHt = (!IsNav4) ? parseInt(MmbrStyle.height) + PadT : MmbrStyle.clip.height;
			if (Hori)
				Lefti -= (BorderBtwnElmnts) ? (MmbrWt + BorderWidth) : (MmbrWt);
			else
				Topi -= (BorderBtwnElmnts) ? (MmbrHt + BorderWidth) : (MmbrHt);
		}
	}
	RcrsLvl--;
}

function Initiate() { // Resets menu's visiblity
	if(IniFlg) {
		Init(FirstContainer);
		IniFlg = 0;
		if (ShwFlg)
			AfterCloseAll();
		ShwFlg = 0;
	}
}

function Init(CntnrPntr) {
	var Mmbr = CntnrPntr.FrstMbr;
	var MCStyle = (IsNav4) ? CntnrPntr : CntnrPntr.style;
	RcrsLvl++;
	MCStyle.visibility = (RcrsLvl == 1) ? M_Show : M_Hide;
	CntnrPntr.Sflg = (RcrsLvl == 1) ? 1 : 0;
	while(Mmbr != null) {
		if(Mmbr.ChildCntnr)
			Init(Mmbr.ChildCntnr);
		Mmbr = Mmbr.PrvMbr;
	}
	RcrsLvl--;
}

function ClearAllChilds(Pntr, ChldPntr){ // Hides no longer wanted elements
	var CPCCStyle;
	while (Pntr) {
		if(Pntr.ChildCntnr && Pntr.ChildCntnr.Sflg) {
			CPCCStyle = (IsNav4) ? Pntr.ChildCntnr : Pntr.ChildCntnr.style;
			if (Pntr.ChildCntnr != ChldPntr) {
				CPCCStyle.visibility = M_Hide;
				Pntr.ChildCntnr.Sflg = 0;
			}
			ClearAllChilds(Pntr.ChildCntnr.FrstMbr, ChldPntr);
		}
		Pntr=Pntr.PrvMbr;
	}
}

function GoTo(){ // Triggered by mouse click
	if(this.LinkTxt) {
		status=''; 
		if (IsNav4) {
			if(this.LowLyr.LoBck)
				this.LowLyr.bgColor = this.LowLyr.LoBck;
			if(this.LowLyr.value.indexOf('<img') == -1) {
				this.LowLyr.document.write(this.LowLyr.value);
				this.LowLyr.document.close();
			}
		}
		else{
			if(this.LoBck)
				this.style.backgroundColor = this.LoBck;
			if(this.LwFntClr)
				this.style.color = this.LwFntClr;
		}
		if (this.LinkTxt.indexOf('javascript:') != -1)
			eval(this.LinkTxt);
		else
			DocTargetFrame.location.href = this.LinkTxt;
	}
}

function OpenMenu() {	// Triggered by mouse over
	if (!Loadd || !Creatd)
		return;
	var TpScrlld = (IsIE) ? SecondLineFrame.document.body.scrollTop : SecondLineFrame.pageYOffset;
	var LScrlld = (IsIE) ? SecondLineFrame.document.body.scrollLeft : SecondLineFrame.pageXOffset;
	var CCnt = (IsNav4) ? this.LowLyr.ChildCntnr : this.ChildCntnr;
	var ThisHt = (IsNav4) ? this.clip.height : parseInt(this.style.height);
	var ThisWt = (IsNav4) ? this.clip.width : parseInt(this.style.width);
	var ThisLft = (AcrossFrames && this.Level == 1 && !FirstLineHorizontal) ? 0 : (IsNav4) ? this.Container.left : parseInt(this.Container.style.left);
	var ThisTp = (AcrossFrames && this.Level == 1 && FirstLineHorizontal) ? 0 : (IsNav4) ? this.Container.top : parseInt(this.Container.style.top);
	var CRoll = (IsNav4) ? this.LowLyr.ro : this.ro;
	CurrntOvr = this;
	IniFlg = 0;
	ClearAllChilds(this.Container.FrstMbr, CCnt);
	if (CRoll) {
		if (IsNav4)
			this.LowLyr.document.images[this.LowLyr.rid].src=this.LowLyr.ri2;
		else {
			var Lc = (this.Level==1) ? FirstLineFrame : SecondLineFrame;
			Lc.document.images[this.rid].src = this.ri2;
		}
	}
	else {
		if (IsNav4) {
			if (this.LowLyr.HiBck)
				this.LowLyr.bgColor = this.LowLyr.HiBck;
			if(this.LowLyr.value.indexOf('<img')==-1) {
				this.LowLyr.document.write(this.LowLyr.Ovalue);
				this.LowLyr.document.close();
			}
		}
		else {
			if (this.HiBck)
				this.style.backgroundColor = this.HiBck;
			if(this.HiFntClr)
				this.style.color=this.HiFntClr;
		}
	}
	if(CCnt != null) {
		if (!ShwFlg) {
			ShwFlg=1;
			BeforeFirstOpen();
		}
		CCnt.Sflg = 1;
		var CCW = (IsNav4) ? this.LowLyr.ChildCntnr.clip.width : parseInt(this.ChildCntnr.style.width);
		var CCH = (IsNav4) ? this.LowLyr.ChildCntnr.clip.height : parseInt(this.ChildCntnr.style.height);
		var ChCntTL = (IsNav4) ? this.LowLyr.ChildCntnr : this.ChildCntnr.style;
		var SubLt = (AcrossFrames && this.Level == 1) ? CCnt.OrgLeft + ThisLft + LScrlld : CCnt.OrgLeft + ThisLft;
		var SubTp = (AcrossFrames && this.Level == 1) ? CCnt.OrgTop + ThisTp + TpScrlld : CCnt.OrgTop + ThisTp;
		if (MenuWrap) {
			if (RightToLeft) {
				if(SubLt<LScrlld)
					SubLt = (this.Level == 1) ? LScrlld : SubLt + (CCW + (1 - 2 * ChildOverlap) * ThisWt);
				if(SubLt + CCW > SecondLineWinWidth + LScrlld)
					SubLt = SecondLineWinWidth + LScrlld - CCW;
			}
			else{
				if(SubLt + CCW > SecondLineWinWidth + LScrlld)
					SubLt = (this.Level == 1) ? SecondLineWinWidth + LScrlld - CCW : SubLt - (CCW + (1 - 2 * ChildOverlap) * ThisWt);
				if(SubLt < LScrlld)
					SubLt=LScrlld;
			}
			if(SubTp + CCH > TpScrlld + SecondLineWinHeight)
				SubTp = (this.Level == 1) ? SubTp = TpScrlld + SecondLineWinHeight - CCH : SubTp - CCH + (1 - 2 * ChildVerticalOverlap) * ThisHt;
			if(SubTp < TpScrlld)
				SubTp = TpScrlld;
		}
		ChCntTL.top = SubTp;
		ChCntTL.left = SubLt;
		ChCntTL.visibility = M_Show;
	}
	status = this.LinkTxt;
}	

function OpenMenuClick(){ // Triggered by mouse over
	if (!Loadd || !Creatd)
		return;
	var CCnt = (IsNav4) ? this.LowLyr.ChildCntnr : this.ChildCntnr;
	var CRoll = (IsNav4) ? this.LowLyr.ro : this.ro;
	CurrntOvr = this;
	IniFlg = 0;
	ClearAllChilds(this.Container.FrstMbr, CCnt);
	if (CRoll){
		if(IsNav4)
			this.LowLyr.document.images[this.LowLyr.rid].src = this.LowLyr.ri2;
		else {
			var Lc=(this.Level == 1) ? FirstLineFrame : SecondLineFrame;
			Lc.document.images[this.rid].src = this.ri2;
		}
	}
	else {
		if (IsNav4) {
			if (this.LowLyr.HiBck)
				this.LowLyr.bgColor = this.LowLyr.HiBck;
			if (this.LowLyr.value.indexOf('<img')==-1) {
				this.LowLyr.document.write(this.LowLyr.Ovalue);
				this.LowLyr.document.close();
			}
		}
		else {
			if(this.HiBck)
				this.style.backgroundColor = this.HiBck;
			if(this.HiFntClr)
				this.style.color = this.HiFntClr;
		}
	}
	status = this.LinkTxt;
}	

function CloseMenu() {	 // Triggered by mouse out
	if(!Loadd || !Creatd)
		return;
	var CRoll = (IsNav4) ? this.LowLyr.ro : this.ro;
	if (CRoll) {
		if(IsNav4)
			this.LowLyr.document.images[this.LowLyr.rid].src = this.LowLyr.ri1;
		else {
			var Lc = (this.Level == 1) ? FirstLineFrame : SecondLineFrame;
			Lc.document.images[this.rid].src = this.ri1;
		}
	}
	else{
		if(IsNav4) {
			if (this.LowLyr.LoBck)
				this.LowLyr.bgColor = this.LowLyr.LoBck;
			if (this.LowLyr.value.indexOf('<img') == -1) {
				this.LowLyr.document.write(this.LowLyr.value);
				this.LowLyr.document.close();
			}
		}
		else {
			if (this.LoBck)
				this.style.backgroundColor = this.LoBck;
			if (this.LwFntClr)
				this.style.color = this.LwFntClr;
		}
	}
	status='';
	if (this == CurrntOvr) {
		IniFlg = 1;
		if (CloseTmr)
			clearTimeout(CloseTmr);
		CloseTmr = setTimeout('Initiate(CurrntOvr)', DissapearDelay);
	}
}

function CntnrSetUp(Wdth, Hght, NoOff) {	// Sets up layer that holds group of elements
	var x = (RcrsLvl == 1) ? BorderColor : BorderSubColor;
	this.FrstMbr = null;
	this.OrgLeft = this.OrgTop = 0;
	this.Sflg = 0;
	if (x)
		this.bgColor = x;
	if(IsNav4) {
		this.visibility = 'hide';
		this.resizeTo(Wdth, Hght);
	}
	else{
		if(x)
			this.style.backgroundColor = x;
		this.style.width = Wdth;
		this.style.height = Hght;
		this.style.fontFamily = FontFamily;
		this.style.fontWeight = (FontBold) ? 'bold' : 'normal';
		this.style.fontStyle = (FontItalic) ? 'italic' : 'normal';
		this.style.fontSize = FontSize + 'pt';
		this.style.zIndex = RcrsLvl + Ztop;
	}
}

function MbrSetUp(MmbrCntnr, PrMmbr, WhatMenu, Wdth, Hght){ // Sets up element IE & NS6
	var Location = (RcrsLvl == 1) ? FirstLineFrame : SecondLineFrame;
	var MemVal = eval(WhatMenu + '[0]');
	var t, T, L, W, H, S;
	var a, b, c, d;
	this.PrvMbr = PrMmbr;
	this.Level = RcrsLvl;
	this.LinkTxt = eval(WhatMenu + '[1]');
	this.Container = MmbrCntnr;
	this.ChildCntnr = null;
	this.style.overflow = 'hidden';
	this.style.cursor = (IsIE && (this.LinkTxt || (RcrsLvl == 1 && UnfoldsOnClick))) ? 'hand' : 'default';
	this.ro = 0;
	if (MemVal.indexOf('rollover') != -1) {
		this.ro = 1;
		this.ri1 = MemVal.substring(MemVal.indexOf(':') + 1, MemVal.lastIndexOf(':'));
		this.ri2 = MemVal.substring(MemVal.lastIndexOf(':') + 1,MemVal.length);
		this.rid = WhatMenu + 'i';
		MemVal = "<img src='" + this.ri1 + "' name='" + this.rid + "'>";
	}
	this.value = MemVal;
	if(RcrsLvl == 1) {
		a = LowBgColor;
		b = HighBgColor;
		c = FontLowColor;
		d = FontHighColor;
	}
	else {
		a = LowSubBgColor;
		b = HighSubBgColor;
		c = FontSubLowColor;
		d = FontSubHighColor;
	}
	this.LoBck = a;
	this.LwFntClr = c;
	this.HiBck = b;
	this.HiFntClr = d; 
	this.style.color = this.LwFntClr;
	if(this.LoBck)
		this.style.backgroundColor = this.LoBck;
	this.style.textAlign = MenuTextCentered;
	if (eval(WhatMenu + '[2]'))
		this.style.backgroundImage = "url(\'" + eval(WhatMenu + '[2]') + "\')";
	if(MemVal.indexOf('<')==-1) {
		this.style.width = Wdth - LftXtra;
		this.style.height = Hght-TpXtra;
		this.style.paddingLeft = LeftPaddng;
		this.style.paddingTop = TopPaddng;
	}
	else {
		this.style.width = Wdth;
		this.style.height = Hght
	}
	if(MemVal.indexOf('<') == -1 && UseDom) {
		t = Location.document.createTextNode(MemVal);
		this.appendChild(t);
	}
	else
		this.innerHTML = MemVal;
	if(eval(WhatMenu + '[3]')) {
		S = (RcrsLvl == 1 && FirstLineHorizontal) ? '/tridown.gif' : (RightToLeft) ? '/trileft.gif' : '/tri.gif';
		W = (RcrsLvl == 1 && FirstLineHorizontal) ? 10 : 5;
		H = (RcrsLvl == 1 && FirstLineHorizontal) ? 5 : 10;
		T = (RcrsLvl== 1 && FirstLineHorizontal) ? Hght - 7 : Hght / 2 - 5;
		L = (RcrsLvl == 1 && FirstLineHorizontal) ? Wdth - 12 : Wdth - 7;
		if(UseDom) {
			t = Location.document.createElement('img');
			this.appendChild(t);
			t.style.position = 'absolute';
			t.src = S;
			t.style.width = W;
			t.style.height = H;
			t.style.top = T;
			t.style.left = L;
		}
		else {
			MemVal += "<div style='position:absolute; top:" + T + "; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit'><img src='"+S+"'></div>";
			this.innerHTML = MemVal;
		}
	}
	if(IsIE) {
		this.onmouseover = (RcrsLvl == 1 && UnfoldsOnClick) ? OpenMenuClick : OpenMenu;
		this.onmouseout = CloseMenu; 
		this.onclick = (RcrsLvl == 1 && UnfoldsOnClick && eval(WhatMenu + '[3]')) ? OpenMenu : GoTo;
	}
	else {
		if (RcrsLvl == 1 && UnfoldsOnClick)
			this.addEventListener('mouseover',OpenMenuClick,false)
		else
			this.addEventListener('mouseover',OpenMenu,false); 
		this.addEventListener('mouseout',CloseMenu,false);
		if (RcrsLvl == 1 && UnfoldsOnClick && eval(WhatMenu + '[3]'))
			this.addEventListener('click',OpenMenu,false);
		else
			this.addEventListener('click',GoTo,false);
	}
}

function NavMbrSetUp(MmbrCntnr, PrMmbr, WhatMenu, Wdth, Hght){ // Sets up element NS4
	var a, b, c, d;
	if (RcrsLvl==1) {
		a=LowBgColor;
		b=HighBgColor;
		c=FontLowColor;
		d=FontHighColor;
	}
	else {
		a=LowSubBgColor;
		b=HighSubBgColor;
		c=FontSubLowColor;
		d=FontSubHighColor;
	}
	this.value = eval(WhatMenu + '[0]');
	this.ro = 0;
	if(this.value.indexOf('rollover') != -1) {
		this.ro = 1;
		this.ri1 = this.value.substring(this.value.indexOf(':') + 1, this.value.lastIndexOf(':'));
		this.ri2 = this.value.substring(this.value.lastIndexOf(':') + 1, this.value.length);
		this.rid = WhatMenu + 'i';
		this.value = "<img src='" + this.ri1 + "' name='" + this.rid + "'>";
	}
	if (LeftPaddng && this.value.indexOf('<') == -1 && MenuTextCentered == 'left')
		this.value = '&nbsp\;' + this.value;
	if(FontBold)
		this.value = this.value.bold();
	if(FontItalic)
		this.value = this.value.italics();
	this.Ovalue = this.value;
	this.value = this.value.fontcolor(c);
	this.Ovalue = this.Ovalue.fontcolor(d);
	this.value = CntrTxt + "<font face='" + FontFamily + "' point-size='" + FontSize + "'>" + this.value + TxtClose;
	this.Ovalue = CntrTxt + "<font face='" + FontFamily + "' point-size='" + FontSize + "'>" + this.Ovalue + TxtClose;
	this.LoBck = a;
	this.HiBck = b;
	this.ChildCntnr = null;
	this.PrvMbr = PrMmbr;
	this.visibility = 'inherit';
	if (this.LoBck)
		this.bgColor = this.LoBck;
	this.resizeTo(Wdth, Hght);
	if(!AcrossFrames && eval(WhatMenu + '[2]'))
		this.background.src = eval(WhatMenu+'[2]');
	this.document.write(this.value);
	this.document.close();
	this.CmdLyr=new Layer(Wdth,MmbrCntnr);
	this.CmdLyr.Level=RcrsLvl;
	this.CmdLyr.LinkTxt=eval(WhatMenu+'[1]');
	this.CmdLyr.visibility='inherit';
	this.CmdLyr.onmouseover=(RcrsLvl==1&&UnfoldsOnClick)?OpenMenuClick:OpenMenu;
	this.CmdLyr.onmouseout=CloseMenu;
	this.CmdLyr.captureEvents(Event.MOUSEUP);
	this.CmdLyr.onmouseup=(RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]'))?OpenMenu:GoTo;
	this.CmdLyr.LowLyr=this;
	this.CmdLyr.resizeTo(Wdth,Hght);
	this.CmdLyr.Container=MmbrCntnr;
	if(eval(WhatMenu+'[3]')){
		this.CmdLyr.ImgLyr=new Layer(10,this.CmdLyr);
		this.CmdLyr.ImgLyr.visibility='inherit';
		this.CmdLyr.ImgLyr.top=(RcrsLvl==1&&FirstLineHorizontal)?Hght-7:Hght/2-5;
		this.CmdLyr.ImgLyr.left=(RcrsLvl==1&&FirstLineHorizontal)?Wdth-12:Wdth-7;
		this.CmdLyr.ImgLyr.width=(RcrsLvl==1&&FirstLineHorizontal)?10:5;
		this.CmdLyr.ImgLyr.height=(RcrsLvl==1&&FirstLineHorizontal)?5:10;
		ImgStr=(RcrsLvl==1&&FirstLineHorizontal)?"<img src='tridown.gif'>":(RightToLeft)?"<img src='trileft.gif'>":"<img src='tri.gif'>";
		this.CmdLyr.ImgLyr.document.write(ImgStr);
		this.CmdLyr.ImgLyr.document.close();
	}
}

function CreateMenuStructure(MName, NumberOf){
	RcrsLvl++;
	var i, NoOffSubs, Mbr, Wdth=0, Hght=0;
	var PrvMmbr = null;
	var WMnu = MName + '1';
	var MenuWidth = eval(WMnu + '[5]');
	var MenuHeight = eval(WMnu + '[4]');
	var Location = (RcrsLvl == 1) ? FirstLineFrame : SecondLineFrame;
	if (RcrsLvl == 1 && FirstLineHorizontal) {
		for(i=1 ; i<NumberOf + 1; i++) {
			WMnu = MName + eval(i);
			Wdth = (eval(WMnu + '[5]')) ? Wdth + eval(WMnu + '[5]') : Wdth+MenuWidth;
		}
		Wdth = (BorderBtwnElmnts) ? Wdth + (NumberOf + 1) * BorderWidth : Wdth + 2 * BorderWidth ;
		Hght = MenuHeight + 2 * BorderWidth;
	}
	else {
		for (i = 1; i < NumberOf + 1; i++) {
			WMnu = MName + eval(i);
			Hght = (eval(WMnu + '[4]')) ? Hght + eval(WMnu + '[4]') : Hght + MenuHeight;
		}
		Hght = (BorderBtwnElmnts) ? Hght + (NumberOf + 1) * BorderWidth : Hght + 2 * BorderWidth;
		Wdth = MenuWidth + 2 * BorderWidth;
	}
	if (UseDom) {
		var MmbrCntnr = Location.document.createElement("div");
		MmbrCntnr.style.position = 'absolute';
		MmbrCntnr.style.visibility = 'hidden';
		MmbrCntnr.id = WMnu;
		Location.document.body.appendChild(MmbrCntnr);
	}
	else
	{
		if(IsNav4)
			var MmbrCntnr=new Layer(Wdth,Location)
		else{
			WMnu+='c';
			Location.document.body.insertAdjacentHTML("AfterBegin","<div id='"+WMnu+"' style='visibility:hidden; position:absolute;'><\/div>"); 
			var MmbrCntnr = Location.document.all[WMnu];
		}
	}
	MmbrCntnr.SetUp = CntnrSetUp;
	MmbrCntnr.SetUp(Wdth, Hght, NumberOf);
	if (IsIE4){
		MmbrCntnr.InnerString='';
		for(i = 1; i < NumberOf + 1; i++) {
			WMnu = MName + eval(i);
			MmbrCntnr.InnerString += "<div id='"+WMnu+"' style='position:absolute;'><\/div>";
		}
		MmbrCntnr.innerHTML = MmbrCntnr.InnerString;
	}
	for(i=1; i < NumberOf + 1; i++) {
		WMnu = MName+eval(i);
		NoOffSubs = eval(WMnu + '[3]');
		Wdth = (RcrsLvl == 1 && FirstLineHorizontal) ? (eval(WMnu + '[5]')) ? eval(WMnu + '[5]') : MenuWidth : MenuWidth;
		Hght = (RcrsLvl == 1 && FirstLineHorizontal) ? MenuHeight : (eval(WMnu + '[4]')) ? eval(WMnu + '[4]') : MenuHeight;
		if (UseDom) {
			Mbr = Location.document.createElement("div");
			Mbr.style.position = 'absolute';
			Mbr.style.visibility = 'inherit';
			MmbrCntnr.appendChild(Mbr);
		}
		else
			Mbr = (IsNav4) ? new Layer(Wdth,MmbrCntnr) : Location.document.all[WMnu];
		Mbr.SetUp = (IsNav4) ? NavMbrSetUp : MbrSetUp;
		Mbr.SetUp(MmbrCntnr, PrvMmbr, WMnu, Wdth, Hght);
		if (NoOffSubs)
			Mbr.ChildCntnr = CreateMenuStructure(WMnu+'_', NoOffSubs);
		PrvMmbr = Mbr;
	}
	MmbrCntnr.FrstMbr = Mbr;
	RcrsLvl--;
	return MmbrCntnr;
}

function CreateMenuStructureAgain(MName, NumberOf){
	var i, WMnu, NoOffSubs;
	var PrvMmbr, Mbr = FirstContainer.FrstMbr;
	RcrsLvl++;
	for(i = NumberOf; i > 0; i--) {
		WMnu = MName + eval(i);
		NoOffSubs = eval(WMnu + '[3]');
		PrvMmbr = Mbr;
		if (NoOffSubs)
			Mbr.ChildCntnr = CreateMenuStructure(WMnu + '_', NoOffSubs);
		Mbr = Mbr.PrvMbr;
	}
	RcrsLvl--;
}