ncbi_menu.js
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:39k
源码类别:

生物技术

开发平台:

C/C++

  1. /**
  2.  * Menu 0.8 990602
  3.  * by gary smith, July 1997
  4.  * Copyright (c) 1997-1999 Netscape Communications Corp.
  5.  *
  6.  * Netscape grants you a royalty free license to use or modify this
  7.  * software provided that this copyright notice appears on all copies.
  8.  * This software is provided "AS IS," without a warranty of any kind.
  9.  */
  10. function dynamiccontentNS6(el,content){
  11.   if (document.getElementById){
  12.     rng = document.createRange();
  13.     rng.setStartBefore(el);
  14.     htmlFrag = rng.createContextualFragment(content);
  15.     while (el.hasChildNodes())
  16.       el.removeChild(el.lastChild);
  17.     el.appendChild(htmlFrag);
  18.   }
  19. }
  20. function Menu(label) {
  21.     this.version = "0.8 [menu.js; Menu; 990602]";
  22.     this.type = "Menu";
  23.     this.fontSize = 14;
  24.     this.fontWeight = "plain";
  25.     this.fontFamily = "arial,helvetica,espy,sans-serif";
  26.     this.fontColor = "#000000";
  27.     this.fontColorHilite = "#ffffff";
  28.     this.bgColor = "#555555";
  29.     this.menuBorder = 1;
  30.     this.menuItemBorder = 1;
  31.     this.menuItemBgColor = "#cccccc";
  32.     this.menuLiteBgColor = "#ffffff";
  33.     this.menuBorderBgColor = "#777777";
  34.     this.menuHiliteBgColor = "#000084";
  35.     this.menuContainerBgColor = "#cccccc";
  36.     this.childMenuIcon = "images/arrows.gif";
  37.     this.childMenuIconHilite = "images/arrows2.gif";
  38.     this.items = new Array();
  39.     this.actions = new Array();
  40.     this.colors = new Array();
  41.     this.mouseovers = new Array();
  42.     this.mouseouts = new Array();
  43.     this.childMenus = new Array();
  44.     this.addMenuItem = addMenuItem;
  45.     this.addMenuSeparator = addMenuSeparator;
  46.     this.writeMenus = writeMenus;
  47.     this.showMenu = showMenu;
  48.     this.onMenuItemOver = onMenuItemOver;
  49.     this.onMenuItemOut = onMenuItemOut;
  50.     this.onMenuItemDown = onMenuItemDown;
  51.     this.onMenuItemAction = onMenuItemAction;
  52.     this.hideMenu = hideMenu;
  53.     this.hideChildMenu = hideChildMenu;
  54.     this.mouseTracker = mouseTracker;
  55.     this.setMouseTracker = setMouseTracker;
  56.     if (!window.menus) window.menus = new Array();
  57.     this.label = label || "menuLabel" + window.menus.length;
  58.     window.menus[this.label] = this;
  59.     window.menus[window.menus.length] = this;
  60.     if (!window.activeMenus) window.activeMenus = new Array();
  61.     if (!window.menuContainers) window.menuContainers = new Array();
  62.     if (!window.mDrag) {
  63.         window.mDrag    = new Object();
  64.         mDrag.startMenuDrag = startMenuDrag;
  65.         mDrag.doMenuDrag    = doMenuDrag;
  66.         this.setMouseTracker();
  67.     }
  68.     if (window.MenuAPI) MenuAPI(this);
  69. }
  70. function addMenuItem(label, action, color, mouseover, mouseout) {
  71.     this.items[this.items.length] = label;
  72.     this.actions[this.actions.length] = action;
  73.     this.colors[this.colors.length] = color;
  74.     this.mouseovers[this.mouseovers.length] = mouseover;
  75.     this.mouseouts[this.mouseouts.length] = mouseout;
  76. }
  77. function addMenuSeparator() {
  78.     this.items[this.items.length] = "separator";
  79.     this.actions[this.actions.length] = "";
  80.     this.menuItemBorder = 0;
  81. }
  82. function writeMenus(container) {
  83.     if (!window.attemptCount)
  84.        window.attemptCount = 1;
  85.     if (!container && document.layers) {
  86.         if (eval("document.width"))
  87.             container = new Layer(1000);
  88.     } else if (!container && document.all) {
  89.         if (!document.all["menuContainer"])
  90.             document.writeln('<SPAN ID="menuContainer"></SPAN>');
  91.         container = document.all["menuContainer"];
  92.     } else if (!container && document.getElementById && document.getElementsByTagName("BODY")) {
  93.         if (!document.getElementById("menuContainer")) {
  94.    container = document.createElement("DIV") 
  95.    container.id = "menuContainer" 
  96.    document.getElementsByTagName("BODY").item(0).appendChild(container)
  97.    container.style.backgroundColor = this.menuContainerBgColor
  98. } else {
  99.    container = document.getElementById("menuContainer")
  100. }
  101.     }
  102.     if (!container && window.attemptCount < 10) {
  103.         window.delayWriteMenus = this.writeMenus;
  104.         window.menuContainerBgColor = this.menuContainerBgColor;
  105.         window.attemptCount++;
  106.         setTimeout('delayWriteMenus()', 3000);
  107.         return;
  108.     }
  109.     container.isContainer = "menuContainer" + menuContainers.length;
  110.     menuContainers[menuContainers.length] = container;
  111.     container.menus = new Array();
  112.     for (var i=0; i<window.menus.length; i++)
  113.         container.menus[i] = window.menus[i];
  114.     window.menus.length = 0;
  115.     var countMenus = 0;
  116.     var countItems = 0;
  117.     var top = 0;
  118.     var content = '';
  119.     var mouseOut = '';
  120.     if (!document.getElementById) mouseOut = ' onMouseOut="hideMenu(this);"';
  121.     var proto;
  122.     for (var i=0; i<container.menus.length; i++, countMenus++) {
  123.         var menu = container.menus[i];
  124.         proto = menu.prototypeStyles || this.prototypeStyles || menu;
  125.         content += ''+
  126.         '<DIV ID="menuLayer'+ countMenus +'" STYLE="position:absolute;left:10;top:'+ (i * 100) +';visibility:hidden;">n'+
  127.         '  <DIV ID="menuLite'+ countMenus +'" STYLE="position:absolute;left:'+ proto.menuBorder +';top:'+ proto.menuBorder +';visibility:hide;"'+mouseOut+'>n'+
  128.         '    <DIV ID="menuFg'+ countMenus +'" STYLE="position:absolute;left:1;top:1;visibility:hide;cursor:pointer;cursor:hand;">n'+
  129.         '';
  130.         var x=i;
  131.         for (var i=0; i<menu.items.length; i++) {
  132.             var item = menu.items[i];
  133.             var childMenu = false;
  134.             var defaultHeight = 20;
  135.             var defaultIndent = 15;
  136.             if (item.label) {
  137.                 item = item.label;
  138.                 childMenu = true;
  139.             } else if (item.indexOf(".gif") != -1 && item.indexOf("<IMG") == -1) {
  140.                 item = '<IMG SRC="' + item + '" NAME="menuItem'+ countItems +'Img">';
  141.                 defaultIndent = 0;
  142.                 if (document.layers) {
  143.                     defaultHeight = null;
  144.                 }
  145.             }
  146.             proto.menuItemHeight = proto.menuItemHeight || defaultHeight;
  147.             proto.menuItemIndent = proto.menuItemIndent || defaultIndent;
  148.             var itemProps = 'visibility:hide;font-Family:' + proto.fontFamily +';font-Weight:' + proto.fontWeight + ';fontSize:' + proto.fontSize + ';';
  149.             if (document.all || document.getElementById)
  150.                 itemProps += 'font-size:' + proto.fontSize + ';" onMouseOver="onMenuItemOver(null,this);" onMouseOut="onMenuItemOut(null,this);" onClick="onMenuItemAction(null,this);';
  151.             var dTag    = '<DIV ID="menuItem'+ countItems +'" STYLE="position:absolute;left:0;top:'+ (i * proto.menuItemHeight) +';'+ itemProps +'">';
  152.             var dText   = '<DIV ID="menuItemText'+ countItems +'" STYLE="position:absolute;left:' + proto.menuItemIndent + ';top:0;color:'+ proto.fontColor +';">'+ item +'</DIV>n<DIV ID="menuItemHilite'+ countItems +'" STYLE="position:absolute;left:' + proto.menuItemIndent + ';top:0;color:'+ proto.fontColorHilite +';visibility:hidden;">'+ item +'</DIV>';
  153.             if (item == "separator") {
  154.                 content += ( dTag + '<DIV ID="menuSeparator'+ countItems +'" STYLE="position:absolute;left:1;top:2;"></DIV>n<DIV ID="menuSeparatorLite'+ countItems +'" STYLE="position:absolute;left:1;top:2;"></DIV>n</DIV>');
  155.             } else if (childMenu) {
  156.                 content += ( dTag + dText + '<DIV ID="childMenu'+ countItems +'" STYLE="position:absolute;left:0;top:3;'+ itemProps +'"><IMG SRC="'+ proto.childMenuIcon +'"></DIV>n</DIV>');
  157.             } else {
  158.                 content += ( dTag + dText + '</DIV>');
  159.             }
  160.             countItems++;
  161.         }
  162.         content += '      <DIV ID="focusItem'+ countMenus +'" STYLE="position:absolute;left:0;top:0;visibility:hide;" onClick="onMenuItemAction(null,this);">&nbsp;</DIV>n';
  163.         content += '   </DIV>n  </DIV>n</DIV>n';
  164.         i=x;
  165.     }
  166.     if (!container) return;
  167.     if (container.innerHTML) {
  168.         container.innerHTML=content;
  169.     } else if (!document.all && document.getElementById) {
  170. dynamiccontentNS6(container,content)
  171.     } else {
  172.         container.document.open("text/html");
  173.         container.document.writeln(content);
  174.         container.document.close();
  175.     }
  176.     proto = null;
  177.     if (document.layers) {
  178.         container.clip.width = window.innerWidth;
  179.         container.clip.height = window.innerHeight;
  180.         container.onmouseout = this.hideMenu;
  181.         container.menuContainerBgColor = this.menuContainerBgColor;
  182.         for (var i=0; i<container.document.layers.length; i++) {
  183.             proto = container.menus[i].prototypeStyles || this.prototypeStyles || container.menus[i];
  184.             var menu = container.document.layers[i];
  185.             container.menus[i].menuLayer = menu;
  186.             container.menus[i].menuLayer.Menu = container.menus[i];
  187.             container.menus[i].menuLayer.Menu.container = container;
  188.             var body = menu.document.layers[0].document.layers[0];
  189.             body.clip.width = proto.menuWidth || body.clip.width;
  190.             body.clip.height = proto.menuHeight || body.clip.height;
  191.             for (var n=0; n<body.document.layers.length-1; n++) {
  192.                 var l = body.document.layers[n];
  193.                 l.Menu = container.menus[i];
  194.                 l.menuHiliteBgColor = proto.menuHiliteBgColor;
  195.                 l.document.bgColor = proto.menuItemBgColor;
  196.                 l.saveColor = proto.menuItemBgColor;
  197.                 l.mouseout  = l.Menu.mouseouts[n];
  198.                 l.mouseover = l.Menu.mouseovers[n];
  199.                 l.onmouseover = proto.onMenuItemOver;
  200.                 l.onclick = proto.onMenuItemAction;
  201.                 l.action = container.menus[i].actions[n];
  202.                 l.focusItem = body.document.layers[body.document.layers.length-1];
  203.                 l.clip.width = proto.menuItemWidth || body.clip.width + proto.menuItemIndent;
  204.                 l.clip.height = proto.menuItemHeight || l.clip.height;
  205.                 if (n>0) l.top = body.document.layers[n-1].top + body.document.layers[n-1].clip.height + proto.menuItemBorder;
  206.                 l.hilite = l.document.layers[1];
  207.                 l.document.layers[1].isHilite = true;
  208.                 if (l.document.layers[0].id.indexOf("menuSeparator") != -1) {
  209.                     l.hilite = null;
  210.                     l.clip.height -= l.clip.height / 2;
  211.                     l.document.layers[0].document.bgColor = proto.bgColor;
  212.                     l.document.layers[0].clip.width = l.clip.width -2;
  213.                     l.document.layers[0].clip.height = 1;
  214.                     l.document.layers[1].document.bgColor = proto.menuLiteBgColor;
  215.                     l.document.layers[1].clip.width = l.clip.width -2;
  216.                     l.document.layers[1].clip.height = 1;
  217.                     l.document.layers[1].top = l.document.layers[0].top + 1;
  218.                 } else if (l.document.layers.length > 2) {
  219.                     l.childMenu = container.menus[i].items[n].menuLayer;
  220.                     l.icon = proto.childMenuIcon;
  221.                     l.iconHilite = proto.childMenuIconHilite;
  222.                     l.document.layers[2].left = l.clip.width -13;
  223.                     l.document.layers[2].top = (l.clip.height / 2) -4;
  224.                     l.document.layers[2].clip.left += 3;
  225.                     l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
  226.                 }
  227.             }
  228.             body.document.bgColor = proto.bgColor;
  229.             body.clip.width  = l.clip.width +1;
  230.             body.clip.height = l.top + l.clip.height +1;
  231.             body.document.layers[n].clip.width = body.clip.width;
  232.             body.document.layers[n].captureEvents(Event.MOUSEDOWN);
  233.             body.document.layers[n].onmousedown = proto.onMenuItemDown;
  234.             //body.document.layers[n].onfocus = proto.onMenuItemDown;
  235.             body.document.layers[n].onmouseout = proto.onMenuItemOut;
  236.             body.document.layers[n].Menu = l.Menu;
  237.             body.document.layers[n].top = -30;
  238.             menu.document.bgColor = proto.menuBorderBgColor;
  239.             menu.document.layers[0].document.bgColor = proto.menuLiteBgColor;
  240.             menu.document.layers[0].clip.width = body.clip.width +1;
  241.             menu.document.layers[0].clip.height = body.clip.height +1;
  242.             menu.clip.width = body.clip.width + (proto.menuBorder * 2) +1;
  243.             menu.clip.height = body.clip.height + (proto.menuBorder * 2) +1;
  244.             if (menu.Menu.enableTracker) {
  245.                 menu.Menu.disableHide = true;
  246.                 setMenuTracker(menu.Menu);
  247.             }
  248.         }
  249.     } else if (document.all) {
  250.         var menuCount = 0;
  251.         for (var x=0; x<container.menus.length; x++) {
  252.             var menu = container.document.all("menuLayer" + x);
  253.             container.menus[x].menuLayer = menu;
  254.             container.menus[x].menuLayer.Menu = container.menus[x];
  255.             container.menus[x].menuLayer.Menu.container = menu;
  256.             proto = container.menus[x].prototypeStyles || this.prototypeStyles || container.menus[x];
  257.             proto.menuItemWidth = proto.menuItemWidth || 200;
  258.             menu.style.backgroundColor = proto.menuBorderBgColor;
  259.             for (var i=0; i<container.menus[x].items.length; i++) {
  260.                 var l = container.document.all["menuItem" + menuCount];
  261.                 l.Menu = container.menus[x];
  262.                 proto = container.menus[x].prototypeStyles || this.prototypeStyles || container.menus[x];
  263.                 l.style.pixelWidth = proto.menuItemWidth;
  264.                 l.style.pixelHeight = proto.menuItemHeight;
  265.                 if (i>0) l.style.pixelTop = container.document.all["menuItem" + (menuCount -1)].style.pixelTop + container.document.all["menuItem" + (menuCount -1)].style.pixelHeight + proto.menuItemBorder;
  266.                 l.style.fontSize = proto.fontSize;
  267.                 l.style.backgroundColor = proto.menuItemBgColor;
  268.                 l.style.visibility = "inherit";
  269.                 l.saveColor = proto.menuItemBgColor;
  270.                 l.menuHiliteBgColor = proto.menuHiliteBgColor;
  271.                 l.action = container.menus[x].actions[i];
  272.                 l.hilite = container.document.all["menuItemHilite" + menuCount];
  273.                 l.focusItem = container.document.all["focusItem" + x];
  274.                 l.focusItem.style.pixelTop = -30;
  275.                 l.mouseover = l.Menu.mouseovers[x];
  276.                 l.mouseout  = l.Menu.mouseouts[x];
  277.                 var childItem = container.document.all["childMenu" + menuCount];
  278.                 if (childItem) {
  279.                     l.childMenu = container.menus[x].items[i].menuLayer;
  280.                     childItem.style.pixelLeft = l.style.pixelWidth -11;
  281.                     childItem.style.pixelTop = (l.style.pixelHeight /2) -4;
  282.                     childItem.style.pixelWidth = 30 || 7;
  283.                     childItem.style.clip = "rect(0 7 7 3)";
  284.                     l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
  285.                 }
  286.                 var sep = container.document.all["menuSeparator" + menuCount];
  287.                 if (sep) {
  288.                     sep.style.clip = "rect(0 " + (proto.menuItemWidth - 3) + " 1 0)";
  289.                     sep.style.backgroundColor = proto.bgColor;
  290.                     sep = container.document.all["menuSeparatorLite" + menuCount];
  291.                     sep.style.clip = "rect(1 " + (proto.menuItemWidth - 3) + " 2 0)";
  292.                     sep.style.backgroundColor = proto.menuLiteBgColor;
  293.                     l.style.pixelHeight = proto.menuItemHeight/2;
  294.                     l.isSeparator = true
  295.                 }
  296.                 menuCount++;
  297.             }
  298.             proto.menuHeight = (l.style.pixelTop + l.style.pixelHeight);
  299.             var lite = container.document.all["menuLite" + x];
  300.             lite.style.pixelHeight = proto.menuHeight +2;
  301.             lite.style.pixelWidth = proto.menuItemWidth + 2;
  302.             lite.style.backgroundColor = proto.menuLiteBgColor;
  303.             var body = container.document.all["menuFg" + x];
  304.             body.style.pixelHeight = proto.menuHeight + 1;
  305.             body.style.pixelWidth = proto.menuItemWidth + 1;
  306.             body.style.backgroundColor = proto.bgColor;
  307.             container.menus[x].menuLayer.style.pixelWidth  = proto.menuWidth || proto.menuItemWidth + (proto.menuBorder * 2) +2;
  308.             container.menus[x].menuLayer.style.pixelHeight = proto.menuHeight + (proto.menuBorder * 2) +2;
  309.             if (menu.Menu.enableTracker) {
  310.                 menu.Menu.disableHide = true;
  311.                 setMenuTracker(menu.Menu);
  312.             }
  313. }
  314.         container.document.all("menuContainer").style.backgroundColor = container.menus[0].menuContainerBgColor;
  315.         container.document.saveBgColor = container.document.bgColor;
  316.       } else if (document.getElementById) {
  317.         var menuCount = 0;
  318.         for (var x=0; x<container.menus.length; x++) {
  319.             var menu = document.getElementById("menuLayer" + x);
  320.             container.menus[x].menuLayer = menu;
  321.             container.menus[x].menuLayer.Menu = container.menus[x];
  322.             container.menus[x].menuLayer.Menu.container = menu;
  323.             proto = container.menus[x].prototypeStyles || this.prototypeStyles || container.menus[x];
  324.             proto.menuItemWidth = proto.menuItemWidth || 200;
  325.             menu.style.backgroundColor = proto.menuBorderBgColor;
  326.             for (var i=0; i<container.menus[x].items.length; i++) {
  327.                 var l = document.getElementById("menuItem" + menuCount);
  328.                 l.Menu = container.menus[x];
  329.                 proto = container.menus[x].prototypeStyles || this.prototypeStyles || container.menus[x];
  330.                 l.style.width = proto.menuItemWidth;
  331.                 l.style.height = proto.menuItemHeight;
  332.                 if (i>0) l.style.top = document.getElementById("menuItem" + (menuCount -1)).style.pixelTop + document.getElementById("menuItem" + (menuCount -1)).style.height + proto.menuItemBorder;
  333.                 l.style.fontSize = proto.fontSize;
  334.                 l.style.backgroundColor = proto.menuItemBgColor;
  335.                 l.style.visibility = "inherit";
  336.                 l.saveColor = proto.menuItemBgColor;
  337.                 l.menuHiliteBgColor = proto.menuHiliteBgColor;
  338.                 l.action = container.menus[x].actions[i];
  339.                 l.hilite = document.getElementById("menuItemHilite" + menuCount);
  340.                 l.focusItem = document.getElementById("focusItem" + x);
  341.                 l.focusItem.style.top = -30;
  342.                 l.mouseover = l.Menu.mouseovers[x];
  343.                 l.mouseout  = l.Menu.mouseouts[x];
  344.                 l.onmouseover = proto.onMenuItemOver;
  345.                 var childItem = document.getElementById("childMenu" + menuCount);
  346.                 if (childItem) {
  347.                     l.childMenu = container.menus[x].items[i].menuLayer;
  348.                     childItem.style.left = l.style.width -11;
  349.                     childItem.style.top = (l.style.height /2) -4;
  350.                     childItem.style.width = 30 || 7;
  351.                     childItem.style.clip = "rect(0,7,7,3)";
  352.                     l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
  353.                 }
  354.                 var sep = document.getElementById("menuSeparator" + menuCount);
  355.                 if (sep) {
  356.                     sep.style.clip = "rect(0," + (proto.menuItemWidth - 3) + ",1,0)";
  357.                     sep.style.backgroundColor = proto.bgColor;
  358.                     sep = document.getElementById("menuSeparatorLite" + menuCount);
  359.                     sep.style.clip = "rect(1," + (proto.menuItemWidth - 3) + ",2,0)";
  360.                     sep.style.backgroundColor = proto.menuLiteBgColor;
  361.                     l.style.height = proto.menuItemHeight/2;
  362.                     l.isSeparator = true
  363.                 }
  364.                 menuCount++;
  365.             }
  366.             proto.menuHeight = (parseInt(l.style.top) + parseInt(l.style.height));
  367.             var lite = document.getElementById("menuLite" + x);
  368.             lite.style.height = proto.menuHeight +2;
  369.             lite.style.width = proto.menuItemWidth + 2;
  370.             lite.style.backgroundColor = proto.menuLiteBgColor;
  371.             var body = document.getElementById("menuFg" + x);
  372.             body.style.height = proto.menuHeight + 1;
  373.             body.style.width = proto.menuItemWidth + 1;
  374.             body.style.backgroundColor = proto.bgColor;
  375.             container.menus[x].menuLayer.style.width  = proto.menuWidth || proto.menuItemWidth + (proto.menuBorder * 2) +2;
  376.             container.menus[x].menuLayer.style.height = proto.menuHeight + (proto.menuBorder * 2) +2;
  377.             if (menu.Menu.enableTracker) {
  378.                 menu.Menu.disableHide = true;
  379.                 setMenuTracker(menu.Menu);
  380.             }
  381. }
  382.         container.style.backgroundColor = container.menus[0].menuContainerBgColor;
  383.         container.saveBgColor = container.bgColor;
  384.     }
  385.     window.wroteMenu = true;
  386. }
  387. function onMenuItemOver(e, l, a) {
  388.     l = l || this;
  389.     a = a || window.ActiveMenuItem;
  390.     if (document.layers) {
  391.         if (a) {
  392.             a.document.bgColor = a.saveColor;
  393.             if (a.hilite) a.hilite.visibility = "hidden";
  394.             if (a.childMenu) a.document.layers[1].document.images[0].src = a.icon;
  395.         } else {
  396.             a = new Object();
  397.         }
  398.         if (this.mouseover && this.id != a.id) {
  399.             if (this.mouseover.length > 4) {
  400.                 var ext = this.mouseover.substring(this.mouseover.length-4);
  401.                 if (ext == ".gif" || ext == ".jpg") {
  402.                     this.document.layers[1].document.images[0].src = this.mouseover;
  403.                 } else {
  404.                     eval("" + this.mouseover);
  405.                 }
  406.             }
  407.         }
  408.         if (l.hilite) {
  409.             l.document.bgColor = l.menuHiliteBgColor;
  410.             l.zIndex = 1;
  411.             l.hilite.visibility = "inherit";
  412.             l.hilite.zIndex = 2;
  413.             l.document.layers[1].zIndex = 1;
  414.             l.focusItem.zIndex = this.zIndex +2;
  415.         }
  416.         l.focusItem.top = this.top;
  417.         l.Menu.hideChildMenu(l);
  418.     } else if (l.style) {
  419.         document.onmousedown=l.Menu.onMenuItemDown;
  420.         if (a) {
  421.             a.style.backgroundColor = a.saveColor;
  422.             if (a.hilite) a.hilite.style.visibility = "hidden";
  423.         } else {
  424.             a = new Object();
  425. }
  426.         if (l.mouseover && l.id != a.id) {
  427.             if (l.mouseover.length > 4) {
  428.                 var ext = l.mouseover.substring(l.mouseover.length-4);
  429.                 if (ext == ".gif" || ext == ".jpg") {
  430.                     l.document.images[l.id + "Img"].src = l.mouseover;
  431.                 } else {
  432.                     eval("" + l.mouseover);
  433.                 }
  434.             }
  435.         }
  436. if (l.isSeparator) return;
  437.         l.style.backgroundColor = l.menuHiliteBgColor;
  438.         if (l.hilite) {
  439.             l.style.backgroundColor = l.menuHiliteBgColor;
  440.             l.hilite.style.visibility = "inherit";
  441.         }
  442. if (l.style.pixelTop) {
  443.           l.focusItem.style.pixelTop = l.style.pixelTop;
  444. } else {
  445.           l.focusItem.style.top = l.style.top;
  446.         }
  447.         if (isNaN(l.zIndex)) {
  448.            l.zIndex = 1;
  449.         }
  450.         l.focusItem.style.zIndex = l.zIndex +1;
  451.         l.zIndex = 1;
  452.         l.Menu.hideChildMenu(l);
  453.     }
  454.     window.ActiveMenuItem = l;
  455. }
  456. function onMenuItemOut(e, l, a) {
  457.     l = l || this;
  458.     a = a || window.ActiveMenuItem;
  459.     if (l.id.indexOf("focusItem")) {
  460.         if (a && l.top) {
  461.           l.top = -30;
  462.   if (a.mouseout && a.id != l.id) {
  463.     if (a.mouseout.length > 4) {
  464.       var ext = a.mouseout.substring(a.mouseout.length-4);
  465.       if (ext == ".gif" || ext == ".jpg") {
  466. a.document.layers[1].document.images[0].src = a.mouseout;
  467.       } else {
  468. eval("" + a.mouseout);
  469.       }
  470.     }
  471.   }
  472.         } else if (a && l.style) {
  473.           document.onmousedown=null;
  474.           window.event.cancelBubble=true;
  475.   if (l.mouseout) {
  476.     if (l.mouseout.length > 4) {
  477.       var ext = l.mouseout.substring(l.mouseout.length-4);
  478.       if (ext == ".gif" || ext == ".jpg") {
  479. l.document.images[l.id + "Img"].src = l.mouseout;
  480.       } else {
  481. eval("" + l.mouseout);
  482.       }
  483.     }
  484.   }
  485.         }
  486.     }
  487. }
  488. function onMenuItemAction(e, l) {
  489.     l = window.ActiveMenuItem;
  490.     if (!l) return;
  491.     if (!ActiveMenu.Menu.disableHide) hideActiveMenus(ActiveMenu.menuLayer);
  492.     if (l.action) {
  493.         eval("" + l.action);
  494.     }
  495. }
  496. function showMenu(menu, x, y, child) {
  497.     if (!window.wroteMenu) return;
  498.     if (document.layers) {
  499.         if (menu) {
  500.             var l = menu.menuLayer || menu;
  501.             if (typeof(menu) == "string") {
  502.                 for (var n=0; n < menuContainers.length; n++) {
  503.                     l = menuContainers[n].menus[menu];
  504.                     for (var i=0; i<menuContainers[n].menus.length; i++) {
  505.                         if (menu == menuContainers[n].menus[i].label) l = menuContainers[n].menus[i].menuLayer;
  506.                         if (l) break;
  507.                     }
  508.                 }
  509. if (!l) return;
  510.             }
  511.             l.Menu.container.document.bgColor = null;
  512.             l.left = 1;
  513.             l.top = 1;
  514.             hideActiveMenus(l);
  515.             if (this.visibility) l = this;
  516.             window.ActiveMenu = l;
  517.             window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);
  518.             setTimeout('if(window.ActiveMenu)window.ActiveMenu.Menu.setMouseTracker();', 300);
  519.         } else {
  520.             var l = child;
  521.         }
  522.         if (!l) return;
  523.         for (var i=0; i<l.layers.length; i++) {
  524.             if (!l.layers[i].isHilite)
  525.                 l.layers[i].visibility = "inherit";
  526.             if (l.layers[i].document.layers.length > 0)
  527.                 showMenu(null, "relative", "relative", l.layers[i]);
  528.         }
  529.         if (l.parentLayer) {
  530.    offX = 14; offY = 0;
  531.             if (x != "relative")
  532.                 l.parentLayer.left = x || window.pageX || 0;
  533.             if (y != "relative")
  534.                 l.parentLayer.top = y || window.pageY || 0;
  535.             if (l.parentLayer.left + l.clip.width + offX > window.pageXOffset + window.innerWidth) 
  536.                 l.parentLayer.left = (window.pageXOffset + window.innerWidth - l.clip.width - offX);
  537.             if (l.parentLayer.top + l.clip.height + offY > window.pageYOffset + window.innerHeight)
  538.                 l.parentLayer.top = (window.pageYOffset + window.innerHeight - l.clip.height - offY);
  539.             if (l.parentLayer.isContainer) {
  540.                 l.Menu.xOffset = window.pageXOffset;
  541.                 l.Menu.yOffset = window.pageYOffset;
  542.                 l.parentLayer.clip.width = window.ActiveMenu.clip.width +2;
  543.                 l.parentLayer.clip.height = window.ActiveMenu.clip.height +2;
  544.                 if (l.parentLayer.menuContainerBgColor) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor;
  545.             }
  546.         }
  547.         l.visibility = "inherit";
  548.         if (l.Menu) l.Menu.container.visibility = "inherit";
  549.     } else if (document.all) {
  550.         var l = menu.menuLayer || menu;
  551.         hideActiveMenus(l);
  552.         if (typeof(menu) == "string") {
  553.             l = document.all[menu];
  554.             for (var n=0; n < menuContainers.length; n++) {
  555.                 l = menuContainers[n].menus[menu];
  556.                 for (var i=0; i<menuContainers[n].menus.length; i++) {
  557.                     if (menu == menuContainers[n].menus[i].label) l = menuContainers[n].menus[i].menuLayer;
  558.                     if (l) break;
  559.                 }
  560.             }
  561.         }
  562.         window.ActiveMenu = l;
  563.         l.style.visibility = "inherit";
  564.         if (x != "relative")
  565.             l.style.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0;
  566.         if (y != "relative")
  567.             l.style.pixelTop = y || (window.pageY + document.body.scrollTop) || 0;
  568. if ( l.style.pixelLeft + l.style.pixelWidth > document.body.scrollLeft + document.body.clientWidth) {
  569.            l.style.pixelLeft = document.body.scrollLeft + document.body.clientWidth - l.style.pixelWidth;
  570. }
  571. if ( l.style.pixelTop + l.style.pixelHeight > document.body.scrollTop + document.body.clientHeight) {
  572.    l.style.pixelTop = document.body.scrollTop + document.body.clientHeight - l.style.pixelHeight;
  573. }
  574.         l.Menu.xOffset = document.body.scrollLeft;
  575.         l.Menu.yOffset = document.body.scrollTop;
  576.     } else if (document.getElementById) {
  577.         var l = menu.menuLayer || menu;
  578.         hideActiveMenus(l);
  579.         if (typeof(menu) == "string") {
  580.             l = document.getElementById(menu);
  581.             for (var n=0; n < menuContainers.length; n++) {
  582.                 l = menuContainers[n].menus[menu];
  583.                 for (var i=0; i<menuContainers[n].menus.length; i++) {
  584.                     if (menu == menuContainers[n].menus[i].label) l = menuContainers[n].menus[i].menuLayer;
  585.                     if (l) break;
  586.                 }
  587.             }
  588.         }
  589.         window.ActiveMenu = l;
  590. offX = 14; offY = 0;
  591.         l.style.visibility = "inherit";
  592.         if (x != "relative")
  593.             l.style.left = x || parseInt(window.pageX) || 0;
  594.         if (y != "relative")
  595.             l.style.top = y || parseInt(window.pageY) || 0;
  596. if ( parseInt(l.style.left) + parseInt(l.style.width) + offX > window.pageXOffset + window.innerWidth) {
  597.            l.style.left = window.pageXOffset + window.innerWidth - parseInt(l.style.width) - offX;
  598. }
  599. if ( parseInt(l.style.top) + parseInt(l.style.height) + offY > window.pageYOffset + window.innerHeight) {
  600.    l.style.top = window.pageYOffset + window.innerHeight - parseInt(l.style.height) - offY;
  601. }
  602.         l.Menu.xOffset = window.pageXOffset;
  603.         l.Menu.yOffset = window.pageYOffset;
  604.         l.Menu.container.style.background = l.Menu.menuContainerBgColor;
  605.     }
  606.     if (menu) {
  607.         window.activeMenus[window.activeMenus.length] = l;
  608.     }
  609. }
  610. function hideMenu(e) {
  611.     var l = e || window.ActiveMenu;
  612.     if (!l) return true;
  613.     if (l.menuLayer) {
  614.         l = l.menuLayer;
  615.     } else if (this.visibility) {
  616.         l = this;
  617.     }
  618.     if (l.menuLayer) {
  619.         l = l.menuLayer;
  620.     }
  621.     var a = window.ActiveMenuItem;
  622.     document.saveMousemove = document.onmousemove;
  623.     document.onmousemove = mouseTracker;
  624.     if (a && document.layers) {
  625.         a.document.bgColor = a.saveColor;
  626.         a.focusItem.top = -30;
  627.         if (a.hilite) a.hilite.visibility = "hidden";
  628.         if (a.childMenu) a.document.layers[1].document.images[0].src = a.icon;
  629.         if (mDrag.oldX <= e.pageX+3 && mDrag.oldX >= e.pageX-3 && mDrag.oldY <= e.pageY+3 && mDrag.oldY >= e.pageY-3) {
  630.             if (a.action && window.ActiveMenu) setTimeout('window.ActiveMenu.Menu.onMenuItemAction();', 2);
  631.         } else if (document.saveMousemove == mDrag.doMenuDrag) {
  632.             if (window.ActiveMenu) return true;
  633.         }
  634.     } else if (window.ActiveMenu && (document.all||document.getElementById)) {
  635.         document.onmousedown=null;
  636.         if (a) {
  637.             a.style.backgroundColor = a.saveColor;
  638.             if (a.hilite) a.hilite.style.visibility = "hidden";
  639.         }
  640.         if (document.saveMousemove == mDrag.doMenuDrag) {
  641.             return true;
  642.         }
  643. }
  644.     if (window.ActiveMenu) {
  645.         if (window.ActiveMenu.Menu) {
  646.             if (window.ActiveMenu.Menu.disableHide) return true;
  647.             e = window.event || e;
  648.             if (!window.ActiveMenu.Menu.enableHideOnMouseOut && e.type == "mouseout") return true;
  649.         }
  650.     }
  651.     hideActiveMenus(l);
  652.     return true;
  653. }
  654. function hideChildMenu(menuLayer) {
  655.     var l = menuLayer || this;
  656.     for (var i=0; i < l.Menu.childMenus.length; i++) {
  657.         if (document.layers) {
  658.             l.Menu.childMenus[i].visibility = "hidden";
  659.         } else if (document.all || document.getElementById) {
  660.             l.Menu.childMenus[i].style.visibility = "hidden";
  661.         }
  662.         l.Menu.childMenus[i].Menu.hideChildMenu(l.Menu.childMenus[i]);
  663.     }
  664.     if (l.childMenu) {
  665.         if (document.layers) {
  666.             l.Menu.container.document.bgColor = null;
  667.             l.Menu.showMenu(null,null,null,l.childMenu.layers[0]);
  668.             l.childMenu.zIndex = l.parentLayer.zIndex +1;
  669.             l.childMenu.top = l.top + l.parentLayer.top + l.Menu.menuLayer.top;
  670.             if (l.childMenu.left + l.childMenu.clip.width > window.innerWidth) {
  671.                 l.childMenu.left = l.parentLayer.left - l.childMenu.clip.width + l.Menu.menuLayer.top + 15;
  672.                 l.Menu.container.clip.left -= l.childMenu.clip.width;
  673.             } else if (l.Menu.childMenuDirection == "left") {
  674.                 l.childMenu.left = l.parentLayer.left - l.parentLayer.clip.width;
  675.                 l.Menu.container.clip.left -= l.childMenu.clip.width;
  676.             } else {
  677.                 l.childMenu.left = l.parentLayer.left + l.parentLayer.clip.width  + l.Menu.menuLayer.left -5;
  678.             }
  679.             l.Menu.container.clip.width += l.childMenu.clip.width +100;
  680.             l.Menu.container.clip.height += l.childMenu.clip.height;
  681.             l.document.layers[1].zIndex = 0;
  682.             l.document.layers[1].document.images[0].src = l.iconHilite;
  683.             l.childMenu.visibility = "inherit";
  684.         } else if (document.all) {
  685.             l.childMenu.style.zIndex = l.Menu.menuLayer.style.zIndex +1;
  686.             l.childMenu.style.pixelTop = l.style.pixelTop + l.Menu.menuLayer.style.pixelTop;
  687.             if (l.childMenu.style.pixelLeft + l.childMenu.style.pixelWidth > document.width) {
  688.                 l.childMenu.style.pixelLeft = l.childMenu.style.pixelWidth + l.Menu.menuLayer.style.pixelTop + 15;
  689.             } else if (l.Menu.childMenuDirection == "left") {
  690.                 //l.childMenu.style.pixelLeft = l.parentLayer.left - l.parentLayer.clip.width;
  691.             } else {
  692.                 l.childMenu.style.pixelLeft = l.Menu.menuLayer.style.pixelWidth + l.Menu.menuLayer.style.pixelLeft -5;
  693.             }
  694.             l.childMenu.style.visibility = "inherit";
  695.         } else if (document.getElementById) {
  696.             l.childMenu.style.zIndex = l.Menu.menuLayer.style.zIndex +1;
  697.             l.childMenu.style.top = l.style.top + l.Menu.menuLayer.style.top;
  698.             if (l.childMenu.style.left + l.childMenu.style.width > document.width) {
  699.                 l.childMenu.style.left = l.childMenu.style.width + l.Menu.menuLayer.style.top + 15;
  700.             } else if (l.Menu.childMenuDirection == "left") {
  701.                 //l.childMenu.style.pixelLeft = l.parentLayer.left - l.parentLayer.clip.width;
  702.             } else {
  703.                 l.childMenu.style.left = l.Menu.menuLayer.style.width + l.Menu.menuLayer.style.left -5;
  704.             }
  705.             l.childMenu.style.visibility = "inherit";
  706.         }
  707.         if (!l.childMenu.disableHide)
  708.             window.activeMenus[window.activeMenus.length] = l.childMenu;
  709.     }
  710. }
  711. function hideActiveMenus(l) {
  712.     if (!window.activeMenus) return;
  713.     for (var i=0; i < window.activeMenus.length; i++) {
  714.     if (!activeMenus[i]) return;
  715.         if (activeMenus[i].visibility && activeMenus[i].Menu) {
  716.             activeMenus[i].visibility = "hidden";
  717.             activeMenus[i].Menu.container.visibility = "hidden";
  718.     if (document.getElementById) {
  719.               activeMenus[i].Menu.container.left = 0;
  720.             } else {
  721.               activeMenus[i].Menu.container.clip.left = 0;
  722.             }
  723.         } else if (activeMenus[i].style) {
  724.             activeMenus[i].style.visibility = "hidden";
  725.         }
  726.     }
  727.     document.onmousemove = mouseTracker;
  728.     window.activeMenus.length = 0;
  729. }
  730. function mouseTracker(e) {
  731.     e = e || window.Event || window.event;
  732.     window.pageX = e.pageX || e.clientX;
  733.     window.pageY = e.pageY || e.clientY;
  734. }
  735. function setMouseTracker() {
  736.     if (document.captureEvents) {
  737.         document.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
  738.     }
  739.     document.onmousemove = this.mouseTracker;
  740.     document.onmouseup = this.hideMenu;
  741. }
  742. function setMenuTracker(menu) {
  743.     if (!window.menuTrackers) window.menuTrackers = new Array();
  744.     menuTrackers[menuTrackers.length] = menu;
  745.     window.menuTrackerID = setInterval('menuTracker()',10);
  746. }
  747. function menuTracker() {
  748.     for (var i=0; i < menuTrackers.length; i++) {
  749.         if (!isNaN(menuTrackers[i].xOffset) && document.layers) {
  750.             var off = parseInt((menuTrackers[i].xOffset - window.pageXOffset) / 10);
  751.             if (isNaN(off)) off = 0;
  752.             if (off < 0) {
  753.                 menuTrackers[i].container.left += -off;
  754.                 menuTrackers[i].xOffset += -off;
  755.             } else if (off > 0) {
  756.                 menuTrackers[i].container.left += -off;
  757.                 menuTrackers[i].xOffset += -off;
  758.             }
  759.         }
  760.         if (!isNaN(menuTrackers[i].yOffset) && document.layers) {
  761.             var off = parseInt((menuTrackers[i].yOffset - window.pageYOffset) / 10);
  762.             if (isNaN(off)) off = 0;
  763.             if (off < 0) {
  764.                 menuTrackers[i].container.top += -off;
  765.                 menuTrackers[i].yOffset += -off;
  766.             } else if (off > 0) {
  767.                 menuTrackers[i].container.top += -off;
  768.                 menuTrackers[i].yOffset += -off;
  769.             }
  770.         }
  771.         if (!isNaN(menuTrackers[i].xOffset) && document.body) {
  772.             var off = parseInt((menuTrackers[i].xOffset - document.body.scrollLeft) / 10);
  773.             if (isNaN(off)) off = 0;
  774.             if (off < 0) {
  775.                 menuTrackers[i].menuLayer.style.pixelLeft += -off;
  776.                 menuTrackers[i].xOffset += -off;
  777.             } else if (off > 0) {
  778.                 menuTrackers[i].menuLayer.style.pixelLeft += -off;
  779.                 menuTrackers[i].xOffset += -off;
  780.             }
  781.         }
  782.         if (!isNaN(menuTrackers[i].yOffset) && document.body) {
  783.             var off = parseInt((menuTrackers[i].yOffset - document.body.scrollTop) / 10);
  784.             if (isNaN(off)) off = 0;
  785.             if (off < 0) {
  786.                 menuTrackers[i].menuLayer.style.pixelTop += -off;
  787.                 menuTrackers[i].yOffset += -off;
  788.             } else if (off > 0) {
  789.                 menuTrackers[i].menuLayer.style.pixelTop += -off;
  790.                 menuTrackers[i].yOffset += -off;
  791.             }
  792.         }
  793.     }
  794. }
  795. function onMenuItemDown(e, l) {
  796.     l = l || window.ActiveMenuItem || this;
  797.     if (!l.Menu) {
  798.     } else {
  799.         if (document.layers) {
  800.             mDrag.dragLayer = l.Menu.container;
  801.             mDrag.startMenuDrag(e);
  802.         } else {
  803.             mDrag.dragLayer = l.Menu.container.style;
  804.             mDrag.startMenuDrag(e);
  805.             window.event.cancelBubble=true;
  806.         }
  807.     }
  808. }
  809. function startMenuDrag(e) {
  810.     if (document.layers) {
  811.         if (e.which > 1) {
  812.             if (window.ActiveMenu) ActiveMenu.Menu.container.visibility = "hidden";
  813.             window.ActiveMenu = null;
  814.             return true;
  815.         }
  816.         document.captureEvents(Event.MOUSEMOVE);
  817.         var x = e.pageX;
  818.         var y = e.pageY;
  819.     } else {
  820.         var x = window.event.clientX;
  821.         var y = window.event.clientY;
  822.     }
  823.     mDrag.offX = x;
  824.     mDrag.offY = y;
  825.     mDrag.oldX = x;
  826.     mDrag.oldY = y;
  827.     if (!ActiveMenu.Menu.disableDrag) document.onmousemove = mDrag.doMenuDrag;
  828.     return false;
  829. }
  830. function doMenuDrag(e) {
  831.     if (document.layers) {
  832.         mDrag.dragLayer.moveBy(e.pageX-mDrag.offX,e.pageY-mDrag.offY);
  833.         mDrag.offX = e.pageX;
  834.         mDrag.offY = e.pageY;
  835.     } else if (document.all) {
  836.         mDrag.dragLayer.pixelLeft = window.event.offsetX;
  837.         mDrag.dragLayer.pixelTop  = window.event.offsetY;
  838.         return false; //for IE
  839.     } else if (document.getElementById) {
  840.         mDrag.dragLayer.left = window.event.offsetX;
  841.         mDrag.dragLayer.top  = window.event.offsetY;
  842.         return false; //for ns6
  843.     }
  844. }