/************************************************************************************
	(c) Ger Versluis 2000 version 5.5 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7)
	Updated 19 July, 2003 by GV for CSS CompatMode	
	Updated 08 January, 2003 by Wolfram Research Inc. for use on specific applications	
	HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites	
	For info write to menus@burmees.nl							        
	This script featured on Dynamic Drive DHTML code library: http://www.dynamicdrive.com
*************************************************************************************/
var FrstLoc, ScLoc, DcLoc, ScWinWdth, cWinHght, FrstWinWdth, FrstWinHght, ScLdAgainWin, FirstColPos, SecColPos, DocColPos, CntrTxt, TxtClose, TxtOpen, ImgStr;

var AgntUsr   = navigator.userAgent.toLowerCase();
var AppVer    = navigator.appVersion.toLowerCase();
var DomYes    = document.getElementById ? 1 : 0;
var NavYes    = ((AgntUsr.indexOf('mozilla') != -1) && (AgntUsr.indexOf('compatible') == -1)) ? 1 : 0;
var ExpYes    = (AgntUsr.indexOf('msie') != -1) ? 1 : 0;
var Opr       = (AgntUsr.indexOf('opera') != -1) ? 1 : 0;
var Opr6orles = (window.opera && navigator.userAgent.search(/opera.[1-6]/i) != -1); //DynamicDrive.com added code
	
if (Opr) {
	NavYes = 1; 
	ExpYes = 0;
}
	 
var DomNav    = DomYes && NavYes ? 1 : 0;
var DomExp    = DomYes && ExpYes ? 1 : 0;
var Nav4      = NavYes && !DomYes && document.layers ? 1 : 0;
var Exp4      = ExpYes && !DomYes && document.all ? 1 : 0;
var Exp6Plus  = (AppVer.indexOf("msie 6") != -1 || AppVer.indexOf("msie 7") != -1) ? 1 : 0
var PosStrt   = ((NavYes || ExpYes || Opr) && !(Opr6orles)) ? 1 : 0;
var P_X       = DomYes ? "px" : "", FHtml = null, ScHtml = null, FCmplnt = 0, SCmplnt = 0;
var RcrsLvl   = 0, FrstCreat = 1, Loadd = 0, Creatd = 0, IniFlg, AcrssFrms = 1, FrstCntnr = null, CurrntOvr = null, CloseTmr = null;
var Ztop      = 100;
var ShwFlg    = 0;
var M_StrtTp  = StartTop, M_StrtLft = StartLeft;
var StaticPos = 0;
var M_Hide    = Nav4 ? 'hide' : 'hidden';
var M_Show    = Nav4 ? 'show' : 'visible';
var Par       = (parent.frames[0] && (FirstLineFrame != SecLineFrame)) ? parent : window;
var Doc       = Par.document;
var Bod       = Doc.body;
var Trigger   = (NavYes && !(Opr)) ? Par : Bod;

MenuTextCentered = ((MenuTextCentered == 1) || (MenuTextCentered == 'center')) ? 'center' : ((MenuTextCentered == 0) || (MenuTextCentered != 'right')) ? 'left' : 'right';
WbMstrAlrts = ["Item not defined: ", "Item needs height: ", "Item needs width: "];

if (Trigger.onload) Dummy = Trigger.onload;
Trigger.onload = Go;

function Dummy() { return; }

function CnclSlct() { return false; }

function RePos() {
	FrstWinWdth = ExpYes ? (FCmplnt ? FHtml.clientWidth : FrstLoc.document.body.clientWidth) : FrstLoc.innerWidth;
	FrstWinHght = ExpYes ? (FCmplnt ? FHtml.clientHeight : FrstLoc.document.body.clientHeight) : FrstLoc.innerHeight;
	ScWinWdth   = ExpYes ? (SCmplnt ? ScHtml.clientWidth : ScLoc.document.body.clientWidth) : ScLoc.innerWidth;
	ScWinHght   = ExpYes ? (SCmplnt ? ScHtml.clientHeight : ScLoc.document.body.clientHeight) : ScLoc.innerHeight;
	if (MenuCentered == 'justify' && FirstLineHorizontal) {
		FrstCntnr.style.width = FrstWinWdth+P_X;
		var LftXtra = ((DomNav && !Opr) || FCmplnt) ? LeftPaddng : 0;
		ClcJus();
		var P = FrstCntnr.FrstMbr, W = Menu1[5], i;
		for (i = 0; i < NoOffFirstLineMenus; i++) {
			P.style.width = W+P_X;P = P.PrvMbr;
		}
	}
	StaticPos = -1;
	if (TargetLoc) ClcTrgt();
	if (MenuCentered) ClcLft();
	if (MenuVerticalCentered) ClcTp();
	PosMenu(FrstCntnr, StartTop, StartLeft);
}

function UnLoaded() {
	if (CloseTmr) clearTimeout(CloseTmr);
	Loadd = 0; 
	Creatd = 0;
	if (HideTop) {
		var FCStyle = Nav4?FrstCntnr:FrstCntnr.style;
		FCStyle.visibility = M_Hide;
	}
}

function ReDoWhole() {
	if ((ScWinWdth != ScLoc.innerWidth) || (ScWinHght != ScLoc.innerHeight) || (FrstWinWdth != FrstLoc.innerWidth) || (FrstWinHght != FrstLoc.innerHeight)) {
		Doc.location.reload();
	}
}

function Check(WMnu, NoOf) {
	var i, 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(0,array); 
			return false;
		}
		else if ((i == 0) && (!ArrayLoc[array][4])) {
			WbMstrAlrt(1,array); 
			return false;
		}
		else if ((i == 0) && (!ArrayLoc[array][5])) {
			WbMstrAlrt(2,array); 
			return false;
		}
		else if (ArrayLoc[array][3] && !(Check(array+'_',ArrayLoc[array][3]))) {
			return false;
		}
	}
	return true;
}

function WbMstrAlrt(No,Xtra) {
	return confirm(WbMstrAlrts[No] + Xtra + '   ');
}

function Go() {
	var font_size_type = (!(Nav4) && (FontSizeType == 'px') ) ? 'size' : 'point-size';
	
	Dummy();
	if (Loadd || !PosStrt) return;
	BeforeStart();
	Creatd = 0; 
	Loadd  = 1;
	//status = 'Building menu';
	
	if ((FirstLineFrame == "") || !(parent.frames[FirstLineFrame])) {
		FirstLineFrame = SecLineFrame;
		
		if ((FirstLineFrame == "") || !(parent.frames[FirstLineFrame])) {
			FirstLineFrame = SecLineFrame = DocTargetFrame;
			
			if ((FirstLineFrame == "") || !(parent.frames[FirstLineFrame])) {
				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 && !(Check('Menu',NoOffFirstLineMenus)) ) {
		//status = 'build aborted';
		return;
	}
	
	FrstLoc = (FirstLineFrame != "") ? parent.frames[FirstLineFrame] : window;
	ScLoc   = (SecLineFrame != "")   ? parent.frames[SecLineFrame]   : window;
	DcLoc   = (DocTargetFrame != "") ? parent.frames[DocTargetFrame] : window;
	
	if (FrstLoc == ScLoc) AcrssFrms = 0;
	if (AcrssFrms) FirstLineHorizontal = MenuFramesVertical ? 0 : 1;
	
	if (Exp6Plus || Opr) {
		FHtml = FrstLoc.document.getElementsByTagName("HTML")[0];
		ScHtml = ScLoc.document.getElementsByTagName("HTML")[0];
		FCmplnt = (FrstLoc.document.compatMode.indexOf("CSS") == -1) ? 0 : 1;
		SCmplnt = (ScLoc.document.compatMode.indexOf("CSS") == -1) ? 0 : 1;
	}
	
	// If Explorer, then set the width and heights differently as that without...
	if (ExpYes) { 
		if (FCmplnt) { 
			FrstWinWdth  = FHtml.clientWidth;
			FrstWinHght  = FHtml.clientHeight;
		}
		else { 
			FrstWinWdth  = FrstLoc.document.body.clientWidth;
			FrstWinHght  = FrstLoc.document.body.clientHeight;
		}
		
		if (SCmplnt) { 
			ScWinWdth    = ScHtml.clientWidth;
			ScWinHght    = ScHtml.clientHeight;
		}
		else { 
			ScWinWdth    = ScLoc.document.body.clientWidth;
			ScWinHght    = ScLoc.document.body.clientHeight;
		}
		
		FirstColPos      = FrstLoc.document.body;
		SecColPos        = ScLoc.document.body;
		DocColPos        = ScLoc.document.body;
		Trigger.onresize = RePos;
	}
	else if(Nav4) { 
		FrstWinWdth      = FrstLoc.innerWidth;
		FrstWinHght      = FrstLoc.innerHeight;
		ScWinWdth        = ScLoc.innerWidth;
		ScWinHght        = ScLoc.innerHeight;
		
		FirstColPos      = FrstLoc.document;
		SecColPos        = ScLoc.document;
		DocColPos        = DcLoc.document;
		Trigger.onresize = ReDoWhole;
	
		CntrTxt          = (MenuTextCentered != 'left') ? "<div align='" + MenuTextCentered + "'>" : "";
		TxtClose         = "</font>" + ((MenuTextCentered != 'left') ? "</div>" : "");
		TxtOpen          = CntrTxt + "<font face = '" + FontFamily + "' " + font_size_type + " = '" + FontSize + "'>";
	}
	else { 
		FrstWinWdth      = FrstLoc.innerWidth;
		FrstWinHght      = FrstLoc.innerHeight;
		ScWinWdth        = ScLoc.innerWidth;
		ScWinHght        = ScLoc.innerHeight;
		
		FirstColPos      = FrstLoc.document.body;
		SecColPos        = ScLoc.document.body;
		DocColPos        = ScLoc.document.body;
		Trigger.onresize = RePos;
	}
	
	if (TakeOverBgColor) FirstColPos.bgColor = AcrssFrms ? SecColPos.bgColor : DocColPos.bgColor;
	if ((MenuCentered == 'justify') && FirstLineHorizontal) ClcJus();
	if (FrstCreat) {
		FrstCntnr = CreateMenuStructure('Menu', NoOffFirstLineMenus);
		FrstCreat = AcrssFrms ? 0 : 1;
	}
	else { 
		CreateMenuStructureAgain('Menu', NoOffFirstLineMenus);
	}
	
	if (TargetLoc) ClcTrgt();
	if (MenuCentered) ClcLft();
	if (MenuVerticalCentered) ClcTp();
	
	PosMenu(FrstCntnr, StartTop, StartLeft);
	IniFlg = 1;
	Initiate();
	Creatd = 1;
	
	if (AcrssFrms) {
		ScLdAgainWin = ExpYes ? ScLoc.document.body : ScLoc;
		ScLdAgainWin.onunload = UnLoaded;
	}
	
	AfterBuild();
	
	if ((MenuVerticalCentered == 'static') && !(AcrssFrms)) setInterval('KeepPos() ', 250);
	
	//status = 'Menu ready for use';
}

function KeepPos() {
	var TS = ExpYes ? SCmplnt ? ScHtml.scrollTop : FrstLoc.document.body.scrollTop : FrstLoc.pageYOffset;
	if (TS != StaticPos) {
		var FCStyle = Nav4 ? FrstCntnr : FrstCntnr.style;
		FrstCntnr.OrgTop = StartTop + TS;StaticPos = TS;
		FCStyle.top = FrstCntnr.OrgTop + P_X;
	}
}

function ClcJus() {
	var a = BorderBtwnElmnts ? 1 : 2,b = BorderBtwnElmnts ? BorderWidth : 0;
	var Size = Math.round(((FrstWinWdth - a * BorderWidth) / NoOffFirstLineMenus) -b), i, j;
	for (i = 1; i < NoOffFirstLineMenus + 1; i++) {
		j = eval('Menu'+i);
		j[5] = Size;
	}
	StartLeft = 0;
}

function ClcTrgt() {
	var TLoc = Nav4 ? FrstLoc.document.layers[TargetLoc] : DomYes ? FrstLoc.document.getElementById(TargetLoc) : FrstLoc.document.all[TargetLoc];
	StartTop = M_StrtTp;
	StartLeft = M_StrtLft;
	if (DomYes) {
		while(TLoc) {
			StartTop += TLoc.offsetTop;
			StartLeft += TLoc.offsetLeft;
			TLoc = TLoc.offsetParent;
		}
	}
	else {	
		StartTop += Nav4 ? TLoc.pageY : TLoc.offsetTop;
		StartLeft += Nav4 ? TLoc.pageX : TLoc.offsetLeft;
	}
}

function ClcLft() {
	if (MenuCentered != 'left' && MenuCentered != 'justify') {
		var Size = FrstWinWdth - (!Nav4 ? parseInt(FrstCntnr.style.width) : FrstCntnr.clip.width);
		StartLeft = M_StrtLft;
		StartLeft += MenuCentered == 'right' ? Size : Size / 2;
	}
}

function ClcTp() {
	if (MenuVerticalCentered != 'top' && MenuVerticalCentered != 'static') {
		var Size = FrstWinHght - (!Nav4 ? parseInt(FrstCntnr.style.height) : FrstCntnr.clip.height);
		StartTop = M_StrtTp;
		StartTop += MenuVerticalCentered == 'bottom' ? Size : Size / 2;
	}
}

function PosMenu(CntnrPntr,Tp,Lt) {
	RcrsLvl++;
	
	var Topi, Lefti, Hori, SubTp, SubLt;
	var LvlBorderWidth = ( (RcrsLvl != 1) && (SeparateSubBorder == 1) ) ? BorderSubWidth : BorderWidth;
	var Cmplnt     = (RcrsLvl == 1) ? FCmplnt : SCmplnt;
	var LftXtra    = ((DomNav && !Opr) || Cmplnt) ? LeftPaddng : 0;
	var TpXtra     = ((DomNav && !Opr) || Cmplnt) ? TopPaddng : 0;
	var Cntnr      = CntnrPntr;
	var Mmbr       = Cntnr.FrstMbr;
	var CntnrStyle = !Nav4 ? Cntnr.style : Cntnr;
	var MmbrStyle  = !Nav4 ? Mmbr.style : Mmbr;
	var PadL       = Mmbr.value.indexOf('<') == -1 ? LftXtra : 0;
	var PadT       = Mmbr.value.indexOf('<') == -1 ? TpXtra : 0;
	var MmbrWt     = !Nav4 ? parseInt(MmbrStyle.width) + PadL : MmbrStyle.clip.width;
	var MmbrHt     = !Nav4 ? parseInt(MmbrStyle.height) + PadT : MmbrStyle.clip.height;
	var CntnrWt    = !Nav4 ? parseInt(CntnrStyle.width) : CntnrStyle.clip.width;
	var CntnrHt    = !Nav4 ? parseInt(CntnrStyle.height) : CntnrStyle.clip.height;
	
	if ((RcrsLvl == 1) && AcrssFrms) !MenuFramesVertical ? Tp = FrstWinHght - CntnrHt + (Nav4 ? 4 : 0) : Lt = RightToLeft ? 0 : FrstWinWdth - CntnrWt + (Nav4 ? 4 : 0);
	if ((RcrsLvl == 2) && AcrssFrms) !MenuFramesVertical ? Tp = 0 : Lt = RightToLeft ? ScWinWdth - CntnrWt : 0;
	if ((RcrsLvl == 2) && AcrssFrms) {
		Tp += VerCorrect;
		Lt += HorCorrect;
	}
	
	CntnrStyle.top  = (RcrsLvl == 1) ? Tp + P_X : 0;
	CntnrStyle.left = (RcrsLvl == 1) ? Lt + P_X : 0;
	Cntnr.OrgTop    = Tp;
	Cntnr.OrgLeft   = Lt;
	
	if ((RcrsLvl == 1) && FirstLineHorizontal) {
		Hori = 1;
		Lefti = CntnrWt - MmbrWt - 2 * LvlBorderWidth;
		Topi = 0;
	}
	else {
		Hori = Lefti = 0;
		Topi = CntnrHt - MmbrHt - 2 * LvlBorderWidth;
	}
	
	while (Mmbr != null) {
		MmbrStyle.left = Lefti + LvlBorderWidth + P_X;
		MmbrStyle.top  = Topi  + LvlBorderWidth + P_X;
		
		if (Nav4) Mmbr.CmdLyr.moveTo(Lefti + LvlBorderWidth, Topi + LvlBorderWidth);
		if (Mmbr.ChildCntnr) {
			if (RightToLeft) ChldCntnrWdth = Nav4 ? Mmbr.ChildCntnr.clip.width : parseInt(Mmbr.ChildCntnr.style.width);
			
			if (Hori) {	
				SubTp = Topi + MmbrHt + 2 * LvlBorderWidth;
				SubLt = RightToLeft ? Lefti + MmbrWt - ChldCntnrWdth : Lefti;
			}
			else{	
				SubLt = RightToLeft ? Lefti - ChldCntnrWdth + ChildOverlap * MmbrWt + LvlBorderWidth : Lefti + (1 - ChildOverlap) * MmbrWt + LvlBorderWidth;
				SubTp = RcrsLvl == 1 && AcrssFrms ? Topi : Topi + ChildVerticalOverlap * MmbrHt;
			}
			
			PosMenu(Mmbr.ChildCntnr, SubTp, SubLt);
		}
		
		Mmbr = Mmbr.PrvMbr;
		
		if (Mmbr) {	
			MmbrStyle = !Nav4 ? Mmbr.style : Mmbr;
			PadL = Mmbr.value.indexOf('<') == -1 ? LftXtra : 0;
			PadT = Mmbr.value.indexOf('<') == -1 ? TpXtra : 0;
			MmbrWt = !Nav4 ? parseInt(MmbrStyle.width) + PadL : MmbrStyle.clip.width;
			MmbrHt = !Nav4 ? parseInt(MmbrStyle.height) + PadT : MmbrStyle.clip.height;
			Hori ? Lefti -= BorderBtwnElmnts ? (MmbrWt + LvlBorderWidth) : (MmbrWt) : Topi -= BorderBtwnElmnts ? (MmbrHt + LvlBorderWidth) : (MmbrHt);
		}
	}
	
	RcrsLvl--;
}

function Initiate() {
	if (IniFlg) {
		Init(FrstCntnr);
		IniFlg = 0;
		if (ShwFlg) AfterCloseAll();
		ShwFlg = 0;
	}
}

function Init(CntnrPntr) {
	var Mmbr = CntnrPntr.FrstMbr;
	var MCStyle = Nav4 ? CntnrPntr : CntnrPntr.style;
	RcrsLvl++;
	MCStyle.visibility = RcrsLvl == 1 ? M_Show : M_Hide;
	while (Mmbr != null) {
		if (Mmbr.Hilite) {
			Mmbr.Hilite = 0;
			if (KeepHilite) LowItem(Mmbr);
		}
		if (Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr);
		Mmbr = Mmbr.PrvMbr;
	}
	RcrsLvl--;
}

function ClearAllChilds(Pntr) {
	var CPCCStyle;
	while (Pntr) {
		if (Pntr.Hilite) {
			Pntr.Hilite = 0;
			if (KeepHilite) LowItem(Pntr);
			if (Pntr.ChildCntnr) {
				CPCCStyle = Nav4 ? Pntr.ChildCntnr : Pntr.ChildCntnr.style;
				CPCCStyle.visibility = M_Hide;
				ClearAllChilds(Pntr.ChildCntnr.FrstMbr);
			}
			
			break;
		}
		
		Pntr = Pntr.PrvMbr;
	}
}

function GoTo() {
	if (this.LinkTxt) {
		status = '';
		var HP = Nav4 ? this.LowLyr : this;
		LowItem(HP);
		this.LinkTxt.indexOf('javascript:') != -1 ? eval(this.LinkTxt) : DcLoc.location.href = this.LinkTxt;
	}
}

function HiliteItem(P) {
	if (Nav4) {
		if (P.ro) P.document.images[P.rid].src = P.ri2;
		else {	
			if (P.HiBck) P.bgColor = P.HiBck;
			if (P.value.indexOf('<img') == -1) {
				P.document.write(P.Ovalue);
				P.document.close() }
		}
	}
	else {	
		if (P.ro) {	
			var Lc = P.Level == 1 ? FrstLoc : ScLoc;
			Lc.document.images[P.rid].src = P.ri2 
		}
		else {	
			if (P.HiBck) P.style.backgroundColor = P.HiBck;
			if (P.HiFntClr) P.style.color = P.HiFntClr; 
		} 
	}
	P.Hilite = 1;
}

function LowItem(P) {
	if (P.ro) {	
		if (Nav4) { 
			P.document.images[P.rid].src = P.ri1;
		}
		else {	
			var Lc = P.Level == 1?FrstLoc:ScLoc;
			Lc.document.images[P.rid].src = P.ri1;
		}
	}
	else {	
		if (Nav4) {	
			if (P.LoBck) P.bgColor = P.LoBck;
			if (P.value.indexOf('<img') == -1) {
				P.document.write(P.value);
				P.document.close();
			}
		}
		else {	
			if (P.LoBck) P.style.backgroundColor = P.LoBck;
			if (P.LwFntClr) P.style.color = P.LwFntClr;
		}
	}
}

function OpenMenu() {	
	if (!Loadd || !Creatd) return;
	var CCnt, ThisHt, ThisWt, HP, ThisLft, ThisTp;
	var AcrssFrmsLevel1 = (AcrssFrms && (this.Level == 1)) ? true : false;
	var TpScrlld = ExpYes ? SCmplnt ? ScHtml.scrollTop : ScLoc.document.body.scrollTop : ScLoc.pageYOffset;
	var LScrlld  = ExpYes ? SCmplnt ? ScHtml.scrollLeft : ScLoc.document.body.scrollLeft : ScLoc.pageXOffset;
	
	if (Nav4) { 
		CCnt     = this.LowLyr.ChildCntnr;
		ThisHt   = this.clip.height;
		ThisWt   = this.clip.width;
		HP       = this.LowLyr;
		ThisLft  = AcrssFrmsLevel1 && !FirstLineHorizontal ? 0 : this.Container.left;
		ThisTp   = AcrssFrmsLevel1 && FirstLineHorizontal ? 0 : this.Container.top;
	}
	else { 
		CCnt     = this.ChildCntnr;
		ThisHt   = parseInt(this.style.height);
		ThisWt   = parseInt(this.style.width);
		HP       = this;
		ThisLft  = AcrssFrmsLevel1 && !FirstLineHorizontal ? 0 : parseInt(this.Container.style.left);
		ThisTp   = AcrssFrmsLevel1 && FirstLineHorizontal ? 0 : parseInt(this.Container.style.top);
	}
	
	CurrntOvr = this;
	IniFlg = 0;
	ClearAllChilds(this.Container.FrstMbr);
	HiliteItem(HP);
	
	if (CCnt != null) {
		var CCW, CCH, ChCntTL, SubLt, SubTp;
		
		if (!ShwFlg) { 
			ShwFlg = 1; 
			BeforeFirstOpen(); 
		}
		
		if (Nav4) { 
			CCW     = this.LowLyr.ChildCntnr.clip.width;
			CCH     = this.LowLyr.ChildCntnr.clip.height;
			ChCntTL = this.LowLyr.ChildCntnr;
		}
		else { 
			CCW     = parseInt(this.ChildCntnr.style.width);
			CCH     = parseInt(this.ChildCntnr.style.height);
			ChCntTL = this.ChildCntnr.style;
		}
		
		if (AcrssFrmsLevel1) { 
			SubLt   = CCnt.OrgLeft+ThisLft + LScrlld;
			SubTp   = CCnt.OrgTop+ThisTp + TpScrlld;
		}
		else { 
			SubLt   = CCnt.OrgLeft + ThisLft;
			SubTp   = CCnt.OrgTop + ThisTp;
		}
		
		if (MenuWrap) {
			if (RightToLeft) {
				if (SubLt < LScrlld) SubLt = this.Level == 1 ? LScrlld : SubLt + (CCW + (1 - 2 * ChildOverlap) * ThisWt);
				if (SubLt + CCW > ScWinWdth + LScrlld) SubLt = ScWinWdth + LScrlld - CCW;
			}
			else {
				if (SubLt + CCW > ScWinWdth + LScrlld) SubLt = this.Level == 1 ? ScWinWdth + LScrlld - CCW : SubLt - (CCW + (1 - 2 * ChildOverlap) * ThisWt);
				if (SubLt < LScrlld) SubLt = LScrlld;
			}
			
			if (SubTp + CCH > TpScrlld + ScWinHght) SubTp = this.Level == 1 ? SubTp = TpScrlld + ScWinHght - CCH : SubTp - CCH + (1 - 2 * ChildVerticalOverlap) * ThisHt;
			if (SubTp < TpScrlld) SubTp = TpScrlld;
		}
		
		ChCntTL.top = SubTp+P_X;
		ChCntTL.left = SubLt+P_X;
		ChCntTL.visibility = M_Show;
	}
	
	status = this.LinkTxt;
}

function OpenMenuClick() {
	if (!Loadd || !Creatd) return;
	var HP = Nav4 ? this.LowLyr : this;
	CurrntOvr = this;
	IniFlg = 0;
	ClearAllChilds(this.Container.FrstMbr);
	HiliteItem(HP);
	status = this.LinkTxt;
}

function CloseMenu() {
	if (!Loadd || !Creatd) return;
	if (!KeepHilite) {
		var HP = Nav4 ? this.LowLyr: this;
		LowItem(HP);
	}
	status = '';
	if (this == CurrntOvr) {
		IniFlg = 1;
		if (CloseTmr) clearTimeout(CloseTmr);
		CloseTmr = setTimeout('Initiate(CurrntOvr) ', DissapearDelay);
	}
}

function CntnrSetUp(Wdth,Hght,NoOff) {
	var x = RcrsLvl == 1?BorderColor:BorderSubColor;
	this.FrstMbr = null;
	this.OrgLeft = this.OrgTop = 0;
	if (x) this.bgColor = x;
	if (Nav4) {	
		this.visibility = 'hide';
		this.resizeTo(Wdth,Hght);
	}
	else {	
		if (x) this.style.backgroundColor = x;
		this.style.width = Wdth+P_X;
		this.style.height = Hght+P_X;
		this.style.fontFamily = FontFamily;
		this.style.fontWeight = FontBold?'bold':'normal';
		this.style.fontStyle = FontItalic?'italic':'normal';
		this.style.fontSize = FontSize + (Nav4 ? 'pt' : FontSizeType);
		this.style.zIndex = RcrsLvl+Ztop;
	}
}

function MbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght) {
	var t, T, L, W, H, S, a, b, c, d;
	var RcrsLvlOneHorizontal  = ((RcrsLvl == 1) && FirstLineHorizontal) ? true : false;
	var RcrsLvlOneUnfoldClick = ((RcrsLvl == 1) && UnfoldsOnClick) ? true : false;
	var MemVal   = eval(WhatMenu + '[0]');
	var Location = ScLoc;
	var Cmplnt   = SCmplnt;
	var LftXtra  = 0;
	var TpXtra   = 0;
	
	if (RcrsLvl == 1) { 
		Location = FrstLoc;
		Cmplnt   = FCmplnt;
		a        = LowBgColor;
		b        = HighBgColor;
		c        = FontLowColor;
		d        = FontHighColor;
	}
	else { 
		a        = LowSubBgColor;
		b        = HighSubBgColor;
		c        = FontSubLowColor;
		d        = FontSubHighColor;
	}
	
	if ((DomNav && !Opr) || Cmplnt) { 
		LftXtra  = LeftPaddng;
		TpXtra   = TopPaddng;
	}
	
	this.PrvMbr         = PrMmbr;
	this.Level          = RcrsLvl;
	this.LinkTxt        = eval(WhatMenu + '[1]');
	this.Container      = MmbrCntnr;
	this.ChildCntnr     = null;
	this.Hilite         = 0;
	this.style.overflow = 'hidden';
	this.style.cursor   = ExpYes && (this.LinkTxt || RcrsLvlOneUnfoldClick ) ? 'hand' : 'default';
	this.style.cursor   = !(ExpYes) && (this.LinkTxt || RcrsLvlOneUnfoldClick ) ? 'pointer' : '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 + "\" width = \"" + Wdth + "\" height = \"" + Hght + "\">";
	}
	
	this.value = MemVal;
	this.LoBck = a;
	this.LwFntClr = c;
	this.HiBck = b;
	this.HiFntClr = d;
	this.style.color = this.LwFntClr;
	this.style.textAlign = MenuTextCentered;
	
	if (this.LoBck) this.style.backgroundColor = this.LoBck;
	if (eval(WhatMenu+'[2]') ) this.style.backgroundImage = "url(\'"+eval(WhatMenu+'[2]') +"\') ";
	
	if (MemVal.indexOf('<') == -1) {
		this.style.width = Wdth-LftXtra + P_X;
		this.style.height = Hght-TpXtra + P_X;
		this.style.paddingLeft = LeftPaddng + P_X;
		this.style.paddingTop = TopPaddng + P_X;
	}
	else{	
		this.style.width = Wdth + P_X;
		this.style.height = Hght + P_X;
	}
	
	if (MemVal.indexOf('<') == -1 && DomYes) {
		t = Location.document.createTextNode(MemVal); this.appendChild(t);
	}
	else {
		this.innerHTML = MemVal;
	}
	
	if (eval(WhatMenu + '[3]') && ShowArrow) {
		a = RcrsLvlOneHorizontal ? 3 : RightToLeft ? 6 : 0;
		S = Arrws[a];
		W = Arrws[a+1];
		H = Arrws[a+2];
		T = RcrsLvlOneHorizontal ? Hght - H - 2 : (Hght - H) / 2;
		L = ArrowLeft ? 2 : Wdth - W - 2;
		
		if (DomYes) {
			t                = Location.document.createElement('img'); this.appendChild(t);
			t.style.position = 'absolute';
			t.src            = S;
			t.style.width    = W+P_X;
			t.style.height   = H+P_X;
			t.style.top      = T+P_X;
			t.style.left     = L+P_X;
		}
		else {	
			MemVal += "<div style = 'position:absolute; top:" + T + "; left:" + L + "; width:" + W + "; height:" + H + ";visibility:inherit'><img src = '" + S + "'></div>";
			this.innerHTML = MemVal;
		}
	}
	
	if (ExpYes) { 
		this.onselectstart = CnclSlct;
		this.onmouseover   = RcrsLvlOneUnfoldClick ? OpenMenuClick : OpenMenu;
		this.onmouseout    = CloseMenu;
		this.onclick       = RcrsLvlOneUnfoldClick && eval(WhatMenu + '[3]') ? OpenMenu : GoTo;
	}
	else {
		RcrsLvlOneUnfoldClick ? this.addEventListener('mouseover', OpenMenuClick, false) : this.addEventListener('mouseover', OpenMenu, false);
		this.addEventListener('mouseout', CloseMenu, false);
		RcrsLvlOneUnfoldClick && eval(WhatMenu + '[3]') ? this.addEventListener('click', OpenMenu, false) : this.addEventListener('click', GoTo, false);
	}
}

function NavMbrSetUp(MmbrCntnr, PrMmbr, WhatMenu, Wdth, Hght) {
	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 = TxtOpen + this.value + TxtClose;
	this.Ovalue = TxtOpen + this.Ovalue + TxtClose;
	this.LoBck = a;
	this.HiBck = b;
	this.ChildCntnr = null;
	this.PrvMbr = PrMmbr;
	this.Hilite = 0;
	this.visibility = 'inherit';
	
	if (this.LoBck) this.bgColor = this.LoBck;
	this.resizeTo(Wdth,Hght);
	if (!AcrssFrms && 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]') && ShowArrow) {
		a = ((RcrsLvl == 1) && FirstLineHorizontal) ? 3 : (RightToLeft ? 6 : 0);
		this.CmdLyr.ImgLyr = new Layer(Arrws[a+1], this.CmdLyr);
		this.CmdLyr.ImgLyr.visibility = 'inherit';
		this.CmdLyr.ImgLyr.top = RcrsLvl == 1 && FirstLineHorizontal ? Hght - Arrws[a + 2] - 2 : (Hght - Arrws[a + 2]) / 2;
		this.CmdLyr.ImgLyr.left = 2;
		this.CmdLyr.ImgLyr.width = Arrws[a+1];
		this.CmdLyr.ImgLyr.height = Arrws[a+2];
		ImgStr = "<img src = '" + Arrws[a] + "' width='" + Arrws[a + 1] + "' height='" + Arrws[a + 2] + "'>";
		this.CmdLyr.ImgLyr.document.write(ImgStr);
		this.CmdLyr.ImgLyr.document.close();
	}
}

function CreateMenuStructure(MName, NumberOf) {
	RcrsLvl++;
	var RcrsLvlOneHorizontal = ((RcrsLvl == 1) && FirstLineHorizontal) ? true : false;
	var LvlBorderWidth = ((RcrsLvl != 1) && (SeparateSubBorder == 1) ) ? BorderSubWidth : BorderWidth;
	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) ? FrstLoc : ScLoc;
	
	if (RcrsLvlOneHorizontal) {
		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) * LvlBorderWidth : Wdth + 2 * LvlBorderWidth;
		Hght = MenuHeight + 2 * LvlBorderWidth;
	}
	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) * LvlBorderWidth : Hght + 2 * LvlBorderWidth;
		Wdth = MenuWidth + 2 * LvlBorderWidth;
	}
	
	if (DomYes) {
		var MmbrCntnr = Location.document.createElement("div");
		MmbrCntnr.style.position = 'absolute';
		MmbrCntnr.style.visibility = 'hidden';
		Location.document.body.appendChild(MmbrCntnr);
	}
	else {	
		if (Nav4) {
			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 (Exp4) {	
		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]');
		
		if (RcrsLvlOneHorizontal) { 
			Wdth = eval(WMnu + '[5]') ? eval(WMnu + '[5]') : MenuWidth;
			Hght = MenuHeight
		}
		else { 
			Wdth = MenuWidth;
			Hght = eval(WMnu + '[4]') ? eval(WMnu + '[4]') : MenuHeight;
		}
		
		if (DomYes) {
			Mbr = Location.document.createElement("div");
			Mbr.style.position = 'absolute';
			Mbr.style.visibility = 'inherit';
			MmbrCntnr.appendChild(Mbr);
		}
		else {
			Mbr = Nav4 ? new Layer(Wdth,MmbrCntnr) : Location.document.all[WMnu];
		}
		
		Mbr.SetUp = Nav4 ? 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, PrvMmbr, Mbr = FrstCntnr.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--;
}


