/************************************************************************************
    (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	
    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 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 Opr6orless = 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 ) && !Opr6orless ? 1 : 0;
var P_X = DomYes ? "px" : "", FHtml = null, ScHtml = null, FCmplnt = 0, SCmplnt = 0;
var FrstLoc, ScLoc, DcLoc;
var ScWinWdth, ScWinHght, FrstWinWdth, FrstWinHght;
var ScLdAgainWin;
var FirstColPos, SecColPos, DocColPos;
var RcrsLvl = 0;
var FrstCreat = 1, Loadd = 0, Creatd = 0, IniFlg, AcrssFrms = 1;
var FrstCntnr = null, CurrntOvr = null, CloseTmr = null;
var CntrTxt, TxtClose, ImgStr;
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
      }

      if( i == 0 )
      {
         if( !ArrayLoc[array][4] )
         {
            WbMstrAlrt ( 1, array );
            return false
         }

         if( !ArrayLoc[array][5] )
         {
            WbMstrAlrt ( 2, array );
            return false
         }
      }

      if( ArrayLoc[array][3] )
         if( !Check ( array + '_', ArrayLoc[array][3] ) )
            return false
   }
   return true
}

function WbMstrAlrt(No, Xtra)
{
   return confirm ( WbMstrAlrts[No] + Xtra + '   ' )
}

function Go()
{
   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 )
   {
      if( !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
   }
   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( Nav4 )
   {
      CntrTxt = MenuTextCentered != 'left' ? "<div align='" + MenuTextCentered + "'>" : "";
      TxtClose = "</font>" + MenuTextCentered != 'left' ? "</div>" : ""
   }
   FirstColPos = Nav4 ? FrstLoc.document : FrstLoc.document.body;
   SecColPos = Nav4 ? ScLoc.document : ScLoc.document.body;
   DocColPos = Nav4 ? DcLoc.document : ScLoc.document.body;

   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
   }
   Trigger.onresize = Nav4 ? ReDoWhole : RePos;
   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 Cmplnt = RcrsLvl == 1 ? FCmplnt : SCmplnt;
   var LftXtra = ( DomNav && !Opr ) || Cmplnt ? LeftPaddng : 0;
   var TpXtra = ( DomNav && !Opr ) || Cmplnt ? TopPaddng : 0;
   var Topi, Lefti, Hori;
   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;
   var SubTp, SubLt;

   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;
   Cntnr.OrgTop = Tp;
   CntnrStyle.left = RcrsLvl == 1 ? Lt + P_X : 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 )
   {
      MmbrStyle.left = Lefti + BorderWidth + P_X;
      MmbrStyle.top = Topi + BorderWidth + P_X;

      if( Nav4 )
         Mmbr.CmdLyr.moveTo( Lefti + BorderWidth, Topi + BorderWidth );

      if( Mmbr.ChildCntnr )
      {
         if( RightToLeft )
            ChldCntnrWdth = Nav4 ? 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 && 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 + BorderWidth )
                 : ( MmbrWt )
             : Topi -= BorderBtwnElmnts
                 ? ( MmbrHt + BorderWidth )
                 : ( 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 TpScrlld = ExpYes ? SCmplnt ? ScHtml.scrollTop : ScLoc.document.body.scrollTop : ScLoc.pageYOffset;
   var LScrlld = ExpYes ? SCmplnt ? ScHtml.scrollLeft : ScLoc.document.body.scrollLeft : ScLoc.pageXOffset;
   var CCnt = Nav4 ? this.LowLyr.ChildCntnr : this.ChildCntnr;
   var ThisHt = Nav4 ? this.clip.height : parseInt ( this.style.height );
   var ThisWt = Nav4 ? this.clip.width : parseInt ( this.style.width );
   var ThisLft =
       AcrssFrms && this.Level == 1
           && !FirstLineHorizontal
               ? 0
               : Nav4
                   ? this.Container.left
                   : parseInt ( this.Container.style.left );
   var ThisTp =
       AcrssFrms && this.Level == 1
           && FirstLineHorizontal
               ? 0
               : Nav4
                   ? this.Container.top
                   : parseInt ( this.Container.style.top );
   var HP = Nav4 ? this.LowLyr : this;
   CurrntOvr = this;
   IniFlg = 0;
   ClearAllChilds ( this.Container.FrstMbr );
   HiliteItem ( HP );

   if( CCnt != null )
   {
      if( !ShwFlg )
      {
         ShwFlg = 1;
         BeforeFirstOpen()
      }
      var CCW = Nav4 ? this.LowLyr.ChildCntnr.clip.width : parseInt ( this.ChildCntnr.style.width );
      var CCH = Nav4 ? this.LowLyr.ChildCntnr.clip.height : parseInt ( this.ChildCntnr.style.height );
      var ChCntTL = Nav4 ? this.LowLyr.ChildCntnr : this.ChildCntnr.style;
      var SubLt = AcrssFrms && this.Level == 1 ? CCnt.OrgLeft + ThisLft + LScrlld : CCnt.OrgLeft + ThisLft;
      var SubTp = AcrssFrms && 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 > 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 + 'pt';
      this.style.zIndex = RcrsLvl + Ztop
   }
}

function MbrSetUp(MmbrCntnr, PrMmbr, WhatMenu, Wdth, Hght)
{
   var Location = RcrsLvl == 1 ? FrstLoc : ScLoc;
   var MemVal = eval ( WhatMenu + '[0]' );
   var t, T, L, W, H, S;
   var a, b, c, d;
   var Cmplnt = RcrsLvl == 1 ? FCmplnt : SCmplnt;
   var LftXtra = ( DomNav && !Opr ) || Cmplnt ? LeftPaddng : 0;
   var TpXtra = ( DomNav && !Opr ) || Cmplnt ? TopPaddng : 0;
   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 || ( 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 + "\" width=\"" + Wdth + "\" height=\"" + Hght + "\">"
   }
   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 + 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 = RcrsLvl == 1 && FirstLineHorizontal ? 3 : RightToLeft ? 6 : 0;
      S = Arrws[a];
      W = Arrws[a + 1];
      H = Arrws[a + 2];
      T = RcrsLvl == 1 && FirstLineHorizontal ? Hght - H - 2 : ( Hght - H ) / 2;
      L = RightToLeft ? 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 = RcrsLvl == 1 && UnfoldsOnClick ? OpenMenuClick : OpenMenu;
      this.onmouseout = CloseMenu;
      this.onclick = RcrsLvl == 1 && UnfoldsOnClick && eval ( WhatMenu + '[3]' ) ? OpenMenu : GoTo
   }
   else
   {
      RcrsLvl == 1
          && UnfoldsOnClick
              ? this.addEventListener( 'mouseover', OpenMenuClick, false )
              : this.addEventListener( 'mouseover', OpenMenu, false );
      this.addEventListener( 'mouseout', CloseMenu, false );
      RcrsLvl == 1 && UnfoldsOnClick
          && 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 = 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.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 = RightToLeft ? 2 : Wdth - Arrws[a + 1] - 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 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( 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( 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]' );
      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( 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--
}