/**  * Fusion 8 DHTML Menus *//*****************************************Global Parameters*****************************************/var GLOBAL_LoadedImages  = new Array();var GLOBAL_CurrentItem   = "";var GLOBAL_Close         = null;var GLOBAL_Hide          = null;var GLOBAL_items         = new NOF_OpenedItems();var GLOBAL_slideItem     = null;var GLOBAL_slideSpeed    = 10; //Defines how fast the slide submenus will unfoldvar GLOBAL_slidePixel    = 0; var GLOBAL_slideMinOffset = -800;var GLOBAL_slideMaxOffset = 800;var useDebuger   = false;/**  DOM compliant browsers*/function NOF_DOMBrowser() {  this.getMenuItemLayerStartString = function getMenuItemLayerStartString(menuItemId, parentId) {    parentId = ( (parentId != null) && (parentId != "undefined") && (typeof(parentId) != "undefined"))                  ? new String(parentId + CONSTANTS.MENU_LAYER_SUFIX) : null;    menuItemId += CONSTANTS.MENU_LAYER_SUFIX;        var isAutoClose = typeof(C_MENU_AUTO_CLOSE) == "undefined" || C_MENU_AUTO_CLOSE == true ? "true" : "false";    return '<DIV ID="' + menuItemId + '" isautoclose="' + isAutoClose + '" STYLE="z-index:5; filter:blendTrans(duration=0.5)" onmouseover="NOF_KeepOpen(\'' + menuItemId + '\', ' + parentId + ')" onmouseout="NOF_KeepClose()">';  }  this.getMenuItemLayerEndString = function getMenuItemLayerEndString() {    return '</DIV>';  }  /** method showMenuItem  *@parameter image Image object - item parent  *@parameter item String or Object coresponding to a layer  *@parameter offsetX:  horizontal offset distance from parent  *@parameter offsetY:  vertical offset distance from parent  *@parameter direction Horizontal = false, Vertical = true  */  this.showMenuItem = function showMenuItem(image, item, offsetX, offsetY, openEffect) {    if (typeof(item) == "string")      item   = this.getItem(item)    image    = typeof(image) == "string" ? this.getItem(image) : image;    var top  = this.findItemTopOffset(image);    var left = this.findItemLeftOffset(image);    var slideDirection = "";    if (openEffect.indexOf("left") > -1 || openEffect.indexOf("Left") > -1 ) {        top  += offsetY;         left -= offsetX;        slideDirection = "left";    } else if (openEffect.indexOf("top") > -1 || openEffect.indexOf("Top") > -1 ) {        top   -= offsetY;        left += offsetX;        slideDirection = "top";    } else if (openEffect.indexOf("right") > -1 || openEffect.indexOf("Right") > -1 ) {        top  += offsetY;         left += offsetX;        slideDirection = "right";    } else { // Bottom        top   += offsetY;        left += offsetX;        slideDirection = "bottom";    }     if (item == null  || typeof(item.style) == "undefined" || item.style == null )      return;    item.style.top  = top;    item.style.left = left;          item.style.visibility = "visible";         if (openEffect.indexOf("slide") > -1)      this.slideEffect(item, slideDirection);    else if (openEffect.indexOf("fade") > -1)      this.fadeEffect(item);      }  this.hideMenuItem = function hideMenuItem(item) {    if (typeof(item) == "string")      item = this.getItem(item)        if ( item == null || typeof(item) == "undefined" || item == "")      return;    item.style.visibility = "hidden";  }  this.findItemLeftOffset = function findItemLeftOffset(item) {    var offset = item.offsetLeft;    if (item.offsetParent)      offset += this.findItemLeftOffset(item.offsetParent);    return offset;  }  this.findItemTopOffset = function findItemTopOffset(item) {    var offset = item.offsetTop;    if (item.offsetParent)      offset += this.findItemTopOffset(item.offsetParent);    return offset;  }  this.getItem = function getItem(itemId) {        return document.getElementById(itemId);  }  this.getItemAttribute = function getItemAttribute(itemId, attrId) {      if (this.getItem(itemId)) {      var attr = this.getItem(itemId).attributes;      return eval("attr." + attrId.toLowerCase() + ".value");    }  }  this.debug = function debug(txt) {    var container = this.getItem("debug");    if ( useDebuger )      container.value += txt + "\n";  }  this.fadeEffect = function fadeEffect(item) {            item.style.visibility = "hidden";       item.filters.blendTrans.Apply();      item.filters.blendTrans.Play();      item.style.visibility = "visible";   }  this.slideEffect = function slideEffect(item, margin) {    GLOBAL_slideItem = item;    this.setItemClip('rect(auto, auto, auto, auto)');    GLOBAL_slidePixel = (margin == "top" || margin == "left") ? 100 : 0;    this.playEffect(margin);  }  this.playEffect = function playEffect(margin) {    var clip = GLOBAL_slideItem.style.clip;    if (clip.indexOf("-") > 0) // NS7.x fix      return;    if (GLOBAL_slidePixel < GLOBAL_slideMinOffset || GLOBAL_slidePixel > GLOBAL_slideMaxOffset)           return;    var rect = 'rect(';    if (margin == "top") {      GLOBAL_slidePixel -= 3;      rect += GLOBAL_slidePixel +'px auto auto auto)';    } else if (margin == "right") {      GLOBAL_slidePixel += 3;       rect += 'auto ' + GLOBAL_slidePixel +'px auto auto)';    } else if (margin == "bottom") {      GLOBAL_slidePixel += 3;      rect += 'auto auto ' + GLOBAL_slidePixel + 'px auto)';    } else {//left      GLOBAL_slidePixel -= 3;      rect += 'auto auto auto ' + GLOBAL_slidePixel + 'px)';    }    this.setItemClip(rect);     setTimeout('browser.playEffect("' + margin + '")', GLOBAL_slideSpeed);      }  this.setItemClip = function setItemClip(rect) {    GLOBAL_slideItem.style.clip = rect;   }  this.getLayerTag = function getLayerTag() { return "div" };}/**  Netscape 6+ and Mozilla*/function NOF_BrowserNetscapeNavigator() {  //Event capture  window.onclick= HideMenu;    this.fadeEffect = function fadeEffect() { return; };  return this;}NOF_BrowserNetscapeNavigator.prototype = new NOF_DOMBrowser;/**  Internet Explorer 5+*/function NOF_BrowserInternetExplorer() {  //Event capture  document.onmouseup = HideMenu;}NOF_BrowserInternetExplorer.prototype = new NOF_DOMBrowser;/**  Nestcape Navigator version 4.x*/function NOF_BrowserNetscape4x() {  this.getMenuItemLayerStartString = function getMenuItemLayerStartString(menuItemId, parentId) {    parentId = ( (parentId != null) && (parentId != "undefined") && (typeof(parentId) != "undefined"))                  ? new String(parentId + CONSTANTS.MENU_LAYER_SUFIX) : null;    menuItemId += CONSTANTS.MENU_LAYER_SUFIX;        var isAutoClose = typeof(C_MENU_AUTO_CLOSE) == "undefined" || C_MENU_AUTO_CLOSE == true ? "true" : "false";    return '<layer ID="' + menuItemId + '" isautoclose="' + isAutoClose + '" onmouseover="NOF_KeepOpen(\'' + menuItemId + '\', ' + parentId + ')" onmouseout="NOF_KeepClose()">';  }  this.getMenuItemLayerEndString = function getMenuItemLayerEndString() {    return '</layer>';  }      this.getImageParent = function getImageParent(imageObject){      for (var position = 0; position < document.layers.length; position++) {            var layer = document.layers[position];      for (var imagePosition = 0; imagePosition < layer.document.images.length; imagePosition++) {          if (layer.document.images[imagePosition].name == imageObject.name) {         return layer;        }      }         }    return null;      }  /** method showMenuItem  *@parameter image Image object - item parent  *@parameter item String or Object coresponding to a layer  *@parameter offsetX:  horizontal offset distance from parent  *@parameter offsetY:  vertical offset distance from parent  *@parameter direction Horizontal = false, Vertical = true  */  this.showMenuItem = function showMenuItem(image, item, offsetX, offsetY, openEffect) {    var parent = this.getImageParent(image);    var itemId = image;    if (typeof(item) == "string")      item   = this.getItem(item)      image    = typeof(image) == "string" ? this.getItem(image) : image;    var top  = this.findItemTopOffset(image);    var left = this.findItemLeftOffset(image);    if (parent != null) {      left += parent.pageX;      top += parent.pageY;    }    var slideDirection = "";    if (openEffect.indexOf("left") > -1 || openEffect.indexOf("Left") > -1 ) {        top  += offsetY;         left -= offsetX;        slideDirection = "left";    } else if (openEffect.indexOf("top") > -1 || openEffect.indexOf("Top") > -1 ) {        top   -= offsetY;        left += offsetX;        slideDirection = "top";    } else if (openEffect.indexOf("right") > -1 || openEffect.indexOf("Right") > -1 ) {        top  += offsetY;         left += offsetX;        slideDirection = "right";    } else { // Bottom        top   += offsetY;        left  += offsetX;        slideDirection = "bottom";    }    if (typeof(item) == "undefined")      return;    item.y = parseInt(top);    item.x = parseInt(left);       item.visibility = "visible";         if (openEffect.indexOf("slide") > -1)      this.slideEffect(item, slideDirection);    else if (openEffect.indexOf("fade") > -1) {            this.fadeEffect(item);    }  }  this.hideMenuItem = function hideMenuItem(item) {    if (typeof(item) == "string")      item = this.getItem(item)        if ( item == null || typeof(item) == "undefined" || item == "")      return;    item.visibility = "hide";  }  this.findItemLeftOffset = function findItemLeftOffset(item) {    return item.x;    }  this.findItemTopOffset = function findItemTopOffset(item) {    return item.y;  }  this.getItem = function getItem(itemId) {        if (itemId == "")      return;    var item = eval("document.layers['" + itemId + "']");    return item;  }  this.getItemAttribute = function getItemAttribute(itemId, attrId) {    return eval("document.layers['" + itemId.toLowerCase() + "']." + attrId);  }  this.getLayerTag = function getLayerTag() { return "layer" };  this.slideEffect = function slideEffect(item, margin) {    GLOBAL_slideItem  = item;    GLOBAL_slidePixel = (margin == "bottom" || margin == "left") ? 200 : 0;    this.playEffect(margin);  }  this.playEffect = function playEffect(margin) {    if (GLOBAL_slidePixel < GLOBAL_slideMinOffset || GLOBAL_slidePixel > GLOBAL_slideMaxOffset)      return;     if (margin == "top") {      GLOBAL_slideItem.clip.bottom = GLOBAL_slidePixel += 1;    } else if (margin == "right") {      GLOBAL_slideItem.clip.right = GLOBAL_slidePixel += 1;    } else if (margin == "bottom") {      GLOBAL_slideItem.clip.top = GLOBAL_slidePixel -= 1;    } else {//left      GLOBAL_slideItem.clip.left = GLOBAL_slidePixel -= 1;    }    setTimeout('browser.playEffect("' + margin + '")', GLOBAL_slideSpeed);      }}NOF_BrowserNetscape4x.prototype = new NOF_DOMBrowser;/** NOF.BrowserFactory*@return The associate class for the browser*/function NOF_BrowserFactory() {    var agt = navigator.userAgent.toLowerCase();    var is_major = parseInt(navigator.appVersion);    var is_minor = parseFloat(navigator.appVersion);    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));    var is_nav2 = (is_nav && (is_major == 2));    var is_nav3 = (is_nav && (is_major == 3));    var is_nav4 = (is_nav && (is_major == 4));    var is_nav4up = (is_nav && (is_major >= 4));    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||                          (agt.indexOf("; nav") != -1)) );    var is_nav6 = (is_nav && (is_major == 5));    var is_nav6up = (is_nav && (is_major >= 5));    var is_gecko = (agt.indexOf('gecko') != -1);    var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));    var is_ie3    = (is_ie && (is_major < 4));    var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );    var is_ie4up  = (is_ie && (is_major >= 4));    var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );    var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));    var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);    var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);    var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );    var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);    var is_opera = (agt.indexOf("opera") != -1);    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);    this.getBrowser = function getBrowser() {          if (is_ie5up) {           return new NOF_BrowserInternetExplorer();      }       if (is_nav6up) {        return new NOF_BrowserNetscapeNavigator();      }      if (is_opera5up) {        return new NOF_BrowserInternetExplorer();              }      if (is_nav4) {        return new NOF_BrowserNetscape4x();      }    }}var browserFactory  = new NOF_BrowserFactory();var browser         = browserFactory.getBrowser();/*****************************************NOF.Menu Constants*****************************************/var CONSTANTS = {  MENU_TYPE_IMAGE : "Image",  MENU_TYPE_TEXT  : "Text",  BUTTON_TYPE_IMAGE : "image",  BUTTON_TYPE_TEXT  : "text",  MENU_TABLE_HEADER : '<table border="0" cellspacing="0" cellpadding="0">',  MENU_TABLE_END :    '</table>',  MOUSE_OVER_IMAGE : 1,  MOUSE_OUT_IMAGE  : 2,  MENU_ITEM_HORIZONTAL : false,  MENU_ITEM_VERTICAL   : true,  MENU_LAYER_SUFIX : "LYR",  NOT_A_MAIN_ITEM : 1,    MENU_REFRESH_TIME : 600}/** * NOF_Menu*/function NOF_Menu() {  return this;}/** * NOF_Menu_Item*/function NOF_Menu_Item() {  this.id           = arguments[0]; //div id  this.orientation  = arguments[1];  this.openEffect   = arguments[2];  this.offsetX      = arguments[3];  this.offsetY      = arguments[4];  this.buttons = new Array();    this.submenuHeight = 0;  for (var i = 5; i < arguments.length; i++)    this.buttons[i - 5] = arguments[i];  this.getPosition = function () {    return new Array(this.offsetX, this.offsetY);  }  this.getOffsetX = function getOffsetX() { return this.offsetX;}  this.getOffsetY = function getOffsetY() { return this.offsetY;}  this.getOpenEffect = function getOffsetY() { return this.openEffect;}  this.getOrientation = function getOrientation() { return this.orientation; }  return this;}/** @name NOF_Menu_Button@parameter normal   : image name (src) or text (link value), depending on button type : image or text.@parameter rollover : rollover image name or css attributes, depending on button type : image or text.@parameter submenu  : a NOF_Menu_Item instance.*/function NOF_Menu_Button(link, normal, rollover, submenu) {  this.link     = link;  this.normal   = normal;  this.rollover = rollover != "" ? rollover : normal;  this.submenu  = submenu;  this.hasSubmenu = function hasSubmenu() {    return (this.submenu != null)  }  this.type = function type() {    if (typeof(this.rollover) == "object")      return CONSTANTS.BUTTON_TYPE_TEXT;    else if (typeof(this.rollover) == "string")      return CONSTANTS.BUTTON_TYPE_IMAGE;    else       return null;  }  return this;}/** *@name NOF_Main_Menu*@description Menu generation - HTML code insertion in page*@parameter NOF_Menu_Item menuItem*@parameter parentId (another NOF_Menu_Item) of NOF_Menu_Item menuItem*/function NOF_Main_Menu(menuItem, parentId) {  if(typeof(menuItem) == "undefined")    return;  var menuItemId        = menuItem.id;  var buffer            = browser.getMenuItemLayerStartString(menuItemId, parentId) + '<table width="10" border="' + C_MENU_BORDER + '" cellspacing="' + C_MENU_SPACING + '" cellpadding="0" bgcolor="' + C_MENU_BGCOLOR + '">';  var i                 = 0;  buffer += '<tr>';  while (i < menuItem.buttons.length) {    var menuButton      = menuItem.buttons[i];    if (menuButton == null) // If page is excluded from navigation then  button is 'null'      return;    var submenuId = "";     if (menuButton.hasSubmenu() && menuButton.submenu) {      submenuId = menuButton.submenu.id;    }    var link            = menuButton.link; // Link to Page    var image           = menuButton.normal; // Image - menu cell    var rollOverButton  = menuButton.rollover; // Roll over image - loaded onmouseover,     var isImageMenu     = menuButton.type() == CONSTANTS.BUTTON_TYPE_IMAGE ? true : false;    var imageName       = isImageMenu ? menuItemId + 's' + i : 'NavigationButton_' + menuItemId + '_' + i;    var isVertical      = menuItem.orientation == "vertical" ? true : false;    // Extract link target and href    var target          = '';    if (link.indexOf(' target=') != -1) {      target            = link.substr(link.indexOf(' target=') + 8);      link              = link.substr(0, link.indexOf(' target='));    }    // Append buttons on vertical or horizontal    buffer += (isVertical && i > 1) ? '<tr><td>' : '<td>';    // Append button link and mouse over event    buffer += '<a style="text-decoration:none; cursor:hand;" href="' + link + '" ';    buffer += 'onMouseOver="F_roll(\'' + imageName + '\' ,' + CONSTANTS.MOUSE_OVER_IMAGE + ', \'' + menuItemId + '\', \''+                               CONSTANTS.NOT_A_MAIN_ITEM + '\')" onMouseOut="F_roll(\'' + imageName + '\' ,' +                               CONSTANTS.MOUSE_OUT_IMAGE + ', \''+menuItemId+'\', \'' + CONSTANTS.NOT_A_MAIN_ITEM + '\')"';    // Append button link target    buffer += target.length ? ' target="' + target + '">' : '>';       // If button is image then append <img> tag, otherwise append <div>    buffer += isImageMenu ? '<img border="0" src="' + image + '"' : '<' + browser.getLayerTag() + ' ';    if (typeof(rollOverButton) != "undefined" || rollOverButton.length || !isImageMenu) {      // This item has a submenu      if (submenuId != "") {        var submenu = menuButton.submenu;        if (isImageMenu) {          buffer += 'id="' + imageName + '" name="' + imageName +                     '" onLoad="F_loadRollover(this,\'' + rollOverButton + '\', new Array(\'' + submenuId + '\',\'' + submenu.getOrientation() + '\' , \'' + submenu.getOpenEffect() + '\', ' + submenu.getOffsetX() + ',' + submenu.getOffsetY() + '))"';        } else {          NOF_MenuLoadRollOver(imageName, rollOverButton, new Array(submenuId, submenu.getOrientation(), submenu.getOpenEffect(), submenu.getOffsetX(), submenu.getOffsetY() ));                    buffer += 'id="' + imageName + '" name="' + imageName + '" class="' + imageName +  '" ' ;          // Text menu has inline css          if (typeof(menuButton.rollover) == "object")            buffer+= ' style="' + rollOverButton[0] + '"';         }      }       // No submenu, simple rollover      else {        if (isImageMenu)          buffer += 'id="' + imageName + '" name="' + imageName +                     '" onLoad="F_loadRollover(this,\'' + rollOverButton + '\',0)"';        else {          NOF_MenuLoadRollOver(imageName, rollOverButton, 0);          buffer += 'id="' + imageName + '" name="' + imageName + '" class="' + imageName + '" ';          // Text menu has inline css          if (typeof(menuButton.rollover) == "object")            buffer+= ' style="' + rollOverButton[0] +'"';        }      }    }     // For text buttons 'image' is the name appears on it.     buffer += isImageMenu ? '></a></td>' :                       '><' + browser.getLayerTag() + ' id="' + imageName + '_padding" style="padding:' + rollOverButton[1] + '" padding="' + rollOverButton[1] + '" paddingOver="' + rollOverButton[3] + '">'  + image +                       '</' + browser.getLayerTag() + '></' + browser.getLayerTag() + '></a></td>';     buffer += isVertical ? "</tr>" : "";    i++;   }  buffer += CONSTANTS.MENU_TABLE_END + browser.getMenuItemLayerEndString();  document.writeln(buffer);    var k = 0;  while (k < menuItem.buttons.length) {    if (menuItem.buttons[k].hasSubmenu()) {      NOF_Main_Menu(menuItem.buttons[k].submenu, menuItem.id);          }    k++;  }}/** *@name NOF.MenuLoadRollOverImage*@parameter button:*@parameter buttonName: *@parameter submenu: Array(int offsetX, int offsetY, String submenuId, boolean ??).*/function NOF_MenuLoadRollOver(button, buttonName, submenu) {  // Check if button is image  if (button && button.src &&          (null == button.out || typeof(button.out) == typeof(void(0)))) {    var imageSrc   = button.src;    button.out     = new Image();    button.out.src = imageSrc;    button.over    = new Image();    if (buttonName.lastIndexOf('/') >= 0 || buttonName.lastIndexOf('\\') >= 0) {      imageSrc = buttonName;    } else {      var i = imageSrc.lastIndexOf('/');      if (i < 0)           i = imageSrc.lastIndexOf('\\');      if (i < 0)          imageSrc = buttonName;      else             imageSrc = imageSrc.substring(0, i + 1) + buttonName;    }    button.over.src                  = imageSrc;    button.submenu                   = submenu;       GLOBAL_LoadedImages[button.name] = button;  // Button is text  } else {          if (typeof(buttonName) == "object") {        if (typeof(GLOBAL_LoadedImages[button]) == "undefined") {          GLOBAL_LoadedImages[button + "Normal"]  = buttonName[0];          GLOBAL_LoadedImages[button + "Over"]    = buttonName[2];            GLOBAL_LoadedImages[button]             = submenu;          }        return;      }      if (typeof(submenu) != "undefined"  && typeof(button) == "string" && typeof(GLOBAL_LoadedImages[button]) == "undefined")           GLOBAL_LoadedImages[button]  = submenu;             }}/** *@name NOF.MenuRollButton*@description Show rollover cell*@parameter buttonName: image name*@parameter over: 1 means mouse over (load rollverimage) , 0 means mouseout (load original image).*/function NOF_MenuRollButton(buttonName, over, layerId, isNotMainItem) {     var rollType    = (over == CONSTANTS.MOUSE_OVER_IMAGE) ? "over" : "out"; // Defined in NOF_MenuLoadRollOver    var isOver      = (over == CONSTANTS.MOUSE_OVER_IMAGE) ? true : false;    var rollOver    = GLOBAL_LoadedImages[buttonName];      if (typeof(rollOver) == "undefined")      return;      var menuType = typeof(rollOver.src) == "undefined" ? CONSTANTS.MENU_TYPE_TEXT :                                                          CONSTANTS.MENU_TYPE_IMAGE;        if (menuType == CONSTANTS.MENU_TYPE_IMAGE) { // Image menu      var imageRollSrcString  = "rollOver." + rollType + ".src";       if (rollOver)          rollOver.src = eval(imageRollSrcString) ? eval(imageRollSrcString) : "";             } else if (menuType == CONSTANTS.MENU_TYPE_TEXT){ // Text menu                     if (typeof(buttonName) == "string") {          browser.getItem(buttonName).className = isOver ? buttonName + "Hover" : buttonName;                if (browser.getItem(buttonName + "_padding")){              browser.getItem(buttonName + "_padding").style.padding = isOver ?                               browser.getItem(buttonName + "_padding").paddingOver :                               browser.getItem(buttonName + "_padding").padding;          }            if (typeof(browser.getItem(buttonName).style) != "undefined")            browser.getItem(buttonName).style.cssText = isOver ?                             GLOBAL_LoadedImages[buttonName + "Over"] :                             GLOBAL_LoadedImages[buttonName + "Normal"];         }      } else // Undefined menu type        return;      if ((isNotMainItem == null || typeof(isNotMainItem) == "undefined" ) && over == CONSTANTS.MOUSE_OUT_IMAGE) {         GLOBAL_CurrentItem = "";      GLOBAL_items.removeAll();        }          var hasSubmenu = null;    if (menuType == CONSTANTS.MENU_TYPE_IMAGE)      hasSubmenu = rollOver.submenu;    else if (menuType == CONSTANTS.MENU_TYPE_TEXT)      hasSubmenu = typeof(rollOver) == "object";      if (hasSubmenu) {      if (over == CONSTANTS.MOUSE_OVER_IMAGE) {        if ( layerId && typeof(layerId) != "undefined" && layerId != "null") {          if (GLOBAL_Close != null)            clearTimeout(GLOBAL_Close);          GLOBAL_items.removeSubitems(layerId + CONSTANTS.MENU_LAYER_SUFIX);        } else          GLOBAL_items.removeAll();          if (menuType == CONSTANTS.MENU_TYPE_IMAGE)          NOF_MenuOpenItem(rollOver, rollOver.submenu, layerId);        else          NOF_MenuOpenItem(buttonName, rollOver, layerId);       }      else { // MOUSE_OUT_IMAGE        if (menuType == CONSTANTS.MENU_TYPE_IMAGE)          NOF_MenuCloseItem(rollOver.submenu);        else          NOF_MenuCloseItem(rollOver);      }        } else if (over == CONSTANTS.MOUSE_OVER_IMAGE ) { // This image doesn't have a submenu, only a rollover button              if ( layerId && typeof(layerId) != "undefined" && layerId != "null" ) {          GLOBAL_CurrentItem = layerId + CONSTANTS.MENU_LAYER_SUFIX;          GLOBAL_items.removeSubitems(GLOBAL_CurrentItem);        } else // Only for html - always visible - menu part                    browser.hideMenuItem(GLOBAL_CurrentItem);    }}/** *@name NOF.MenuOpenItem*@description Opens (visibility = 'visible') one menu item*@parameter image Image object that is parent for this submenu*@parameter imageSubmenu : Array(offset, layerId, horizontal) :*      offsetX - distance from parent left*      offsetY - distance from parent top*      layerId - layer ID that will be opened*      horizontal - indicates if it's horizontal or vertical. True = vertical, False = horizontal*@parameter parentId*@parameter*/function NOF_MenuOpenItem(image, submenu, parentId) {  var layerId       = submenu[0] + CONSTANTS.MENU_LAYER_SUFIX;   var orientation   = submenu[1];  var openEffect    = submenu[2];  var offsetX       = submenu[3];  var offsetY       = submenu[4];  GLOBAL_items.addItem(layerId, parentId);  GLOBAL_CurrentItem = layerId; // Current opened layer   browser.showMenuItem(image, layerId, offsetX, offsetY, openEffect);}/** *@name NOF.MenuCloseItem*@description Close a menu item if mouse is out of it but not on his child.*@parameter*/function NOF_MenuCloseItem(imageSubmenu) {  if (imageSubmenu[0]) {    var layerId  = imageSubmenu[0] + CONSTANTS.MENU_LAYER_SUFIX;       // If mouse outside a cell that belongs to main menu (root) - close it    if (GLOBAL_items.toArray().length == 1)      GLOBAL_CurrentItem = 0;      GLOBAL_Close = setTimeout("NOF_MenuHideItem('" + layerId + "')", CONSTANTS.MENU_REFRESH_TIME/4);  }}/** *@name NOF.MenuHideItem*@description *@parameter itemId */function NOF_MenuHideItem(itemId) {  if (itemId && itemId != null && GLOBAL_CurrentItem != itemId) { // Close item if mouse not over it    browser.hideMenuItem(itemId);  }}/** *@name NOF_KeepOpen*@description Keeps a menu item (child) opened when mouse over it*@parameter item Layer (Div) object*/function NOF_KeepOpen(itemId, parentId) {      GLOBAL_CurrentItem = itemId;  if (GLOBAL_Hide != null)    for (var i = 0; i < GLOBAL_Hide.length; i++)        clearTimeout(GLOBAL_Hide[i]);}/** *@name NOF_KeepClose*@description Keeps a menu item (child) closed when mouse out of it*/function NOF_KeepClose() {    GLOBAL_CurrentItem = "";  setTimeout("NOF_CloseChilds()", CONSTANTS.MENU_REFRESH_TIME);}/** *@name NOF_CloseChilds*@description Close submenus when mouse goes out of layer*/function NOF_CloseChilds() {  var itemsList = GLOBAL_items.toArray();  GLOBAL_Hide   = new Array();    if (GLOBAL_CurrentItem == "" || GLOBAL_CurrentItem == 0)        for (var i in itemsList)      if (itemsList[i])        GLOBAL_Hide[i] = setTimeout("browser.hideMenuItem('" + itemsList[i] + "')", CONSTANTS.MENU_REFRESH_TIME/4);                 if (!isMenuAutoClose()) {    itemsList = GLOBAL_items.toArray();    // Keep visible current opened submenus    for ( var i in itemsList )       if (itemsList[i])        NOF_KeepOpen(itemsList[i]);        }  }function isMenuAutoClose() {  var itemsList = GLOBAL_items.toArray();  if  (itemsList[0] && itemsList[0].length) {   var autoClose = browser.getItemAttribute(itemsList[0], "isautoclose");     if ( autoClose == "true")       return true;     else        return false;  }  return false;   }/***@name HideMenu()*@description Hide menu when click outside his area. Used in 'Non auto close navbars'.*/function HideMenu() {    if (isMenuAutoClose())    return;  var itemsList = GLOBAL_items.toArray();  if (GLOBAL_Hide == null)    GLOBAL_Hide = new Array();   for (var i in itemsList)    if (itemsList[i] && itemsList[i].length) {      GLOBAL_items.removeItem(itemsList[i]);           GLOBAL_Hide[i] = browser.hideMenuItem(itemsList[i]);            }}/***@name NOF_OpenedItems()  *@description Keeps a list w/ current submenus open (visible)*/function NOF_OpenedItems() {  this.openedItems = "";  this.separator   = "*";  /** method addItem  *@description: adds one item in list using "*" separator  */  this.addItem = function addItem(item, parent) {    if ( item == null || !item || item == "" )      return;      if (this.openedItems.indexOf(item) == -1) {      this.openedItems += this.openedItems.length ?           ( this.openedItems.indexOf(this.separator) == this.openedItems.length - 1 ? "" : this.separator ) + item :           item;        }     }    /** method removeItem  *@description: remove one item  */  this.removeItem = function removeItem(item) {        if ( item == GLOBAL_CurrentItem )      return;    var temp = this.openedItems;    if (temp.indexOf(item) > 0) {      var a = temp.substring(0, temp.indexOf(item));      var b = temp.substring(temp.indexOf(item) + item.length, temp.length );      temp = a + b;    }    while (temp.lastIndexOf(this.separator) == temp.length - 1)      temp = temp.substring(0, temp.length - 1);    this.openedItems = temp;     }  /** method removeSubitems  *@description: remove all subitems (items above) 'item'   */  this.removeSubitems = function removeSubitems(item) {        if (item && typeof(item) != "undefined") {          var temp  = this.openedItems;      temp      = temp.substring(0, temp.lastIndexOf(item) + item.length);        var temp1 = this.openedItems.substring(this.openedItems.indexOf(temp) + temp.length, this.openedItems.length);      temp1 = temp1.split(this.separator);        for (var i =  temp1.length - 1; i >= 0; i--)         if (temp1[i])           browser.hideMenuItem(temp1[i]);        this.openedItems = temp;    }  }  /** method currentItem  *@description: return current item  */  this.currentItem = function currentItem() {    var list = this.toArray();    return list[list.length - 1];  }  /** method removeAll  *@description: remove all items and hide them  */  this.removeAll = function removeAll() {    var items = this.toArray();    clearTimeout(GLOBAL_Close);    for (var i = items.length - 1; i >= 0; i--)      if ( items[i] != null && items[i] != "" ) {        clearTimeout(items[i]);        browser.hideMenuItem(items[i]);      }    this.openedItems = "";      }  /** method toArray  *@description: return an array with all items using split method by list separator  */  this.toArray = function toArray() {    return this.openedItems.split(this.separator);  }  }/***@name F_menu()*@description backward compatibility*/function F_menu(item) {  NOF_Menu(item);}/***@name F_roll()*@description backward compatibility*/function F_roll(itemId, over, layerId, isNotMainItem){  var layerId = (layerId == null || typeof(layerId) == "undefined") ? null : layerId;  var isNotMainItem = (isNotMainItem == null || typeof(isNotMainItem) == "undefined") ? null : isNotMainItem;  NOF_MenuRollButton(itemId, over, layerId, isNotMainItem);}/** F_loadRollover*@param image*@param submenu: Array(String submenuId, submenuOrientation, int offsetX, int offsetY).*/function F_loadRollover(image, rollOverButton, submenu) {   return NOF_MenuLoadRollOver(image, rollOverButton, submenu);}