/******************************************************************************
* Define the MenuItem object.                                                 *
******************************************************************************/
function MTMenuItem(text, url, target, tooltip, icon, openIcon) {
  this.text = text;
  this.url = url ? url : "";
  this.target =  target ? target : (MTMDefaultTarget ? MTMDefaultTarget : "");
  this.tooltip = tooltip;
  this.icon = icon ? icon : "";
  this.openIcon = openIcon ? openIcon : ""; // used for addSubItem

  this.number = MTMNumber++;
  this.parentNode  = null;
  this.submenu     = null;
  this.expanded    = false;
  this.MTMakeSubmenu = MTMakeSubmenu;
  this.makeSubmenu = MTMakeSubmenu;
  this.addSubItem = MTMAddSubItem;
 
  MTMLastItem = this;
}

function MTMakeSubmenu(menu, isExpanded, collapseIcon, expandIcon) {
  this.submenu = menu;
  this.expanded = isExpanded;
  this.collapseIcon = collapseIcon ? collapseIcon : "other_folder.gif";
  this.expandIcon = expandIcon ? expandIcon : "other_folder_open.gif";

  var i;
  for(i = 0; i < this.submenu.items.length; i++) {
    this.submenu.items[i].parentNode = this;
    if(this.submenu.items[i].expanded) {
      this.expanded = true;
    }
  }
}

function MTMakeLastSubmenu(menu, isExpanded, collapseIcon, expandIcon) {
  this.items[this.items.length-1].makeSubmenu(menu, isExpanded, collapseIcon, expandIcon);
}

function MTMAddSubItem(item) {
  if(this.submenu == null){
    this.MTMakeSubmenu(new MTMenu(), false, this.icon, this.openIcon);
  }
  this.submenu.MTMAddItem(item);
}

/******************************************************************************
* Define the Menu object.                                                     *
******************************************************************************/

function MTMenu() {
  this.items   = new Array();
  this.MTMAddItem = MTMAddItem;
  this.addItem = MTMAddItem;
  this.makeLastSubmenu = MTMakeLastSubmenu;
}

function MTMAddItem() {
  if(arguments[0].toString().indexOf("[object Object]") != -1) {
    this.items[this.items.length] = arguments[0];
  } else {
    this.items[this.items.length] = new MTMenuItem(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
  }
}

/******************************************************************************
* Define the icon list, addIcon function and MTMIcon item.                    *
******************************************************************************/

function IconList() {
  this.items = new Array();
  this.addIcon = addIcon;
}

function addIcon(item) {
  this.items[this.items.length] = item;
}

function MTMIcon(iconfile, match, type) {
  this.file = iconfile;
  this.match = match;
  this.type = type;
}

/******************************************************************************
* Define the stylesheet rules objects and methods.                            *
******************************************************************************/

function MTMstyleRuleSet() {
  this.rules = new Array();
  this.addRule = MTMaddStyleRule;
}

function MTMaddStyleRule(thisSelector, thisStyle) {
  this.rules[this.rules.length] = new MTMstyleRule(thisSelector, thisStyle);
}

function MTMstyleRule(thisSelector, thisStyle) {
  this.selector = thisSelector;
  this.style = thisStyle;
}

/******************************************************************************
* The MTMBrowser object.  A custom "user agent" that'll define the browser    *
* seen from the menu's point of view.                                         *
******************************************************************************/

function MTMBrowser() {
  // default properties and values
  this.cookieEnabled = false;
  this.preHREF = PAGEbaseHREF;
  this.MTMable = false;
  this.cssEnabled = true;
  this.browserType = "other";
  this.majVersion = null;
  this.DOMable = false;

  // properties concerning output document
  this.menuFrame = null;
  this.document = null;
  this.head = null;
  this.menuTable = null;

  // methods
  this.setDocument = MTMsetDocument;
  this.getFrames = MTMgetFrames;
  this.appendElement = MTMappendElement;
  this.resolveURL = MTMresolveURL;

  if(navigator.userAgent.indexOf("Opera") != -1) {
    if(navigator.appName == "Opera") {
      this.majVersion = parseInt(navigator.appVersion);
    } else {
      this.majVersion = parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("Opera")+6));
    }
    if(this.majVersion >= 5) {
      this.MTMable = true;
      this.browserType = "O";
    }
    if(this.majVersion >= 7) {
      if (navigator.userAgent.indexOf("7.0") != -1 || navigator.userAgent.indexOf("7.1") != -1) {
        this.browserType = "NN";
        this.DOMable = true;
      } else {
        this.browserType = "O7";
        this.DOMable = true ;
      }
    }
  } else if(navigator.userAgent.indexOf('KHTML') != -1) {
    // Safari
    this.MTMable = true;
    this.browserType = "NN";
    this.majVersion = 5;
    this.cssEnabled = true;
    this.DOMable = false;
  } else if((navigator.appName == "Netscape" || navigator.userAgent.indexOf("Gecko/") != -1)  && navigator.userAgent.indexOf("WebTV") == -1) {
    this.MTMable = true;
    this.browserType = "NN";
    if(parseInt(navigator.appVersion) == 3) {
      this.majVersion = 3;
      this.cssEnabled = false;
    } else if(parseInt(navigator.appVersion) >= 4) {
      this.majVersion = parseInt(navigator.appVersion) == 4 ? 4 : 5;
      if(this.majVersion >= 5) {
        this.DOMable = true;
        this.cssEnabled = true;
      }
    }
  } else if(navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) >= 4) {
    this.MTMable = true;
    if(navigator.userAgent.toLowerCase().indexOf("mac") != -1) {
      this.browserType = "NN";
      this.majVersion = 4;
      this.DOMable = false;
    } else {
      this.browserType = "IE";
      this.majVersion = navigator.appVersion.indexOf("MSIE 6.") != -1 ? 6 : (navigator.appVersion.indexOf("MSIE 5.") != -1 ? 5 : 4);
      if(this.majVersion >= 5) {
        this.DOMable = true;
      }
      this.DOMable = false;
    }
  }
}

function MTMsetDocument(menuFrame) {
  // called by function MTMgetFrames and sets
  // properties .menuFrame and .document, and for DOMable browsers also .head
  this.menuFrame = menuFrame;
  this.document = menuFrame.document;

  if(this.DOMable) {
    this.head = (this.browserType == "IE" || this.browserType == "O7") ? this.document.all.tags('head')[0] : this.document.getElementsByTagName('head').item(0);
  }
}

function MTMresolveURL(thisURL, testLocal) {
  // resolves 'thisURL' against this.preHREF depending on whether it's an absolute
  // or relative URL.  if 'testLocal' is set it'll return true for local (relative) URLs.
  var absoluteArray = new Array("http://", "https://", "mailto:", "ftp://", "telnet:", "news:", "gopher:", "nntp:", "javascript:", "file:");

  var tempString = "", i;
  for(i = 0; i < absoluteArray.length; i++) {
    if(thisURL.indexOf(absoluteArray[i]) == 0) {
      tempString = thisURL;
      break;
    }
  }
  if(testLocal) {
    return(tempString == "" ? true : false);
  }

  if(!tempString) {
    if(thisURL.indexOf("/") == 0) {
      tempString = location.protocol + "//" + location.hostname + thisURL;
    } else if(thisURL.indexOf("../") == 0) {
      tempString = this.preHREF;
      do {
        thisURL = thisURL.substr(3);
        tempString = tempString.substr(0, tempString.lastIndexOf("/", tempString.length-2) +1);
      } while(thisURL.indexOf("../") == 0);
      tempString += thisURL;
    } else {
      tempString = this.preHREF + thisURL;
    }
  }
  return(tempString);
}

/******************************************************************************
* Default values of all user-configurable options.                            *
******************************************************************************/

var MTMLinkedJSURL, MTMLinkedSS, MTMSSHREF, MTMLinkedInitFunction, MTMDOCTYPE, MTMcontentType, MTMHeader, MTMFooter, MTMrightClickMessage, MTMDefaultTarget, MTMTimeOut = 5;
MTMLinkedSS = true;
MTMSSHREF = PAGEstyleSHEET;
var MTMuseScrollbarCSS, MTMscrollbarBaseColor, MTMscrollbarFaceColor, MTMscrollbarHighlightColor, MTMscrollbarShadowColor, MTMscrollbar3dLightColor, MTMscrollbarArrowColor, MTMscrollbarTrackColor, MTMscrollbarDarkShadowColor;
var MTMUseCookies, MTMCookieName, MTMCookieDays, MTMTrackedCookieName;
var MTMCodeFrame = "fmcode", MTMenuFrame = "fmdata", MTMTableWidth = "100%", MTMenuImageDirectory = "rc/menu-images/";
var MTMUseToolTips = true, MTMEmulateWE, MTMAlwaysLinkIfWE = true, MTMSubsGetPlus = "always", MTMSubsAutoClose;
var MTMBackground = "", MTMBGColor = "#ffffff", MTMTextColor = "#000000", MTMLinkColor = "#000099", MTMTrackColor = "#00FF00", MTMAhoverColor = "#800080", MTMSubExpandColor = "#000099", MTMSubClosedColor = "#000099", MTMSubTextColor = "#00FFFF";
var MTMenuText = PAGEuser, MTMRootIcon = "", MTMRootColor = "#000099";
var MTMRootFont = MTMenuFont = "";
var MTMRootCSSize = MTMenuCSSize = "84%";
var MTMRootFontSize = MTMenuFontSize = "-2";
var MTMRootDecorationStart = "<i><b>";
var MTMRootDecorationEnd = "</b></i>";
var MTMcontentType = "text/html; charset="+top.chset;

/******************************************
 * header definition for nonsupported DOM 
 ******************************************/
if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) <= 4) {
  MTMHeader = "<table width=\"100%\" height=\"*\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
} else {
  MTMHeader = "<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
}
MTMHeader += " <tr valign=\"top\" height=\"3\"><td valign=\"top\"><img src=\"" + PAGEbaseHREF + MTMenuImageDirectory + "spacer.gif\" width=\"5\" height=\"3\"></td></tr>\n"
+ " <tr valign=\"top\">\n"
+ "  <td valign=\"top\"><img src=\"" + PAGEbaseHREF + MTMenuImageDirectory + "spacer.gif\" width=\"5\" height=\"5\"></td>\n"
+ "  <td class=\"table-border\" valign=\"top\">\n"
+ "   <table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\">\n"
+ "    <tr class=\"list1\">\n"
+ "     <td valign=\"top\">\n"
+ "      <table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\">\n"
+ "       <tr valign=\"top\">\n"
+ "        <td class=\"list1\" width=\"100%\" valign=\"top\">\n";

/******************************************
 * footer definition for nonsupported DOM 
 ******************************************/
MTMFooter = "        </td>\n"
+ "       </tr>\n"
+ "      </table>\n";
if ( (navigator.userAgent.indexOf("Opera") != -1 && parseInt(navigator.appVersion) > 6) || (navigator.userAgent.indexOf("Gecko/") != -1) || (navigator.appName.indexOf("Netscape") != -1 && parseInt(navigator.appVersion) < 5))
{
MTMFooter += "      <table width=\"100%\" height=\"";
if (parseInt(navigator.appVersion) < 5)
{
  if (top.work) {
    ht = top.work.innerHeight - 212 - 18 * MBOXNums;
    ht = top.work.innerHeight - 310;
  } else {
    ht = '100%';
  }
} else {
  if (navigator.userAgent.indexOf("Gecko/") != -1) {
    ht = '';
  } else if (top.work) {
    if(top.work.innerHeight > 0)
    {
        ht = top.work.innerHeight - 198 - 18 * MBOXNums;
    } else {
        ht = (top.work.fmdata.innerHeight + 150) - 198 - 18 * MBOXNums;
    }
  } else {
    ht = '100%';
  }
}

MTMFooter += ht + "\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\">\n"
+ "       <tr>\n"
+ "        <td class=\"list1\" width=\"100%\" valign=\"top\">\n"
+ "        </td>\n"
+ "       </tr>\n"
+ "      </table>\n";
}

MTMFooter += "     </td>\n"
+ "    </tr>\n"
+ "   </table>\n"
+ "  </td>\n"
+ "  <td><img src=\"" + PAGEbaseHREF + MTMenuImageDirectory + "spacer.gif\" width=\"1\" height=\"5\"></td>\n"
+ " </tr>\n"
+ " <tr><td><img src=\"" + PAGEbaseHREF + MTMenuImageDirectory + "spacer.gif\" width=\"5\" height=\"3\"></td></tr>\n"
+ "</table>\n";

/******************************************
 * header definition for supported DOM 
 ******************************************/
if (navigator.userAgent.indexOf("Gecko/") != -1) {
MTMDOMHeader = ""
+ "<table width=\"100%\" border=\"1\" cellspacing=\"5\" cellpadding=\"0\">"
+ " <tr valign=\"top\">"
+ "  <td><img src=\"" + PAGEbaseHREF + MTMenuImageDirectory + "spacer.gif\" width=\"5\" height=\"3\"></td>"
+ " </tr>"
+ " <tr valign=\"top\">"
+ "  <td class=\"table-border\" valign=\"top\">";
} else {
MTMDOMHeader = ""
+ "<table width=\"100%\" height=\"100%\" border=\"1\" cellspacing=\"5\" cellpadding=\"0\">"
+ " <tr valign=\"top\">"
+ "  <td><img src=\"" + PAGEbaseHREF + MTMenuImageDirectory + "spacer.gif\" width=\"5\" height=\"3\"></td>"
+ " </tr>"
+ " <tr valign=\"top\">"
+ "  <td class=\"table-border\" valign=\"top\">";
}

/******************************************
 * footer definition for nonsupported DOM 
 ******************************************/
MTMDOMFooter = ""
+ "  </td>"
+ " </tr>"
+ " <tr><td><img src=\"" + PAGEbaseHREF + MTMenuImageDirectory + "spacer.gif\" width=\"5\" height=\"3\"></td></tr>"
+ "</table>";

MTMDOMHeader = MTMDOMFooter = "";


/******************************************************************************
* Global variables.  Not to be altered unless you know what you're doing.     *
* User-configurable options are found in code.html                            *
******************************************************************************/

var NodeStr = "";
var ExpandedStr = "";

var MTMBegin = false;
var MTMLoaded = false;
var MTMLevel;
var MTMBar = new Array();
var MTMIndices = new Array();

var MTMUA = new MTMBrowser();

var MTMExtraCSS = new MTMstyleRuleSet();
var MTMstyleRules;

var MTMLastItem; // last item added to a menu
var MTMClickedItem = false;

var MTMExpansion = false;

var MTMNumber = 1;
var MTMTrackedItem = false;
var MTMTrack = false;
var MTMFrameNames;

var MTMFirstRun = true;
var MTMCurrentTime = 0;
var MTMUpdating = false;
var MTMWinSize, MTMyval, MTMxval;
var MTMOutputString = "";

var MTMCookieString = "";
var MTMCookieCharNum = 0;
var MTMTCArray, MTMTrackedCookie;

/******************************************************************************
* Code that picks up frame names of frames in the parent frameset.            *
******************************************************************************/

function MTMgetFrames() {
  if(this.MTMable) {
    MTMFrameNames = new Array();
    for(i = 0; i < parent.frames.length; i++) {
      while(1) {
        if(parent.frames[i] && parent.frames[i].name) {
          break;
        }
      }
      MTMFrameNames[i] = parent.frames[i].name;
      if(parent.frames[i].name == MTMenuFrame) {
        this.setDocument(parent.frames[i]);
        break;
      }
    }
  }
}

/******************************************************************************
* Functions to draw the menu.                                                 *
******************************************************************************/

function MTMSubAction(SubItem) {
  SubItem.expanded = (SubItem.expanded) ? false : true;
  if(!SubItem.expanded && SubItem.submenu)
  {
    if(NodeSearch(SubItem.submenu, MTMClickedItem.number))
    {
      MTMTextAction(SubItem);
      if ( top.imap_server_type != "UW" )
        parent.omlist.location = SubItem.url;
    }
  }
  if(SubItem.expanded) {
    MTMExpansion = true;
  }

  if(MTMTrackedItem && MTMTrackedItem != SubItem.number) {
    MTMTrackedItem = false;
  }

  if(MTMEmulateWE || SubItem.url == "" || !SubItem.expanded) {
    setTimeout("MTMDisplayMenu()", 10);
    return false;
  } else {
    if(SubItem.target == "_blank" || !MTMUA.resolveURL(SubItem.url, true) || (SubItem.target.indexOf("_") != 0 && MTMTrackTarget(SubItem.target) == false)) {
      setTimeout("MTMDisplayMenu()", 10);
    }
    return true;
  }
}

function MTMTextAction(SubItem) {
  if (!MTMFirstRun)
  {
    if (!(parent.fmsearch) || !(parent.fmsearch.document) || !(parent.fmsearch.document.forms[0]) ||
        !(parent.fmsearch.document.forms[0].search_pattern))
    {
      return;
    }
  }
  MTMClickedItem = SubItem;
  NodeStr = "";
  NodeSearch(menu, MTMClickedItem.number);
  list.mtmcurrent = NodeStr;
  setTimeout("MTMDisplayMenu()", 10);
  return true;
}

function CGITextAction(SubItem) {
  MTMClickedItem = SubItem;
  NodeStr = "";
  NodeSearch(menu, MTMClickedItem.number);
  list.mtmcurrent = NodeStr;
  return true;
}

function CGIExpandAction(SubItem)
{
  SubItem.expanded = true;
  return true;
}

function NodeSearch(menuItem, num)
{
  var i;
  var retval = false;

  for(i = 0; i < menuItem.items.length; i++)
  {
    if(menuItem.items[i].number == num)
    {
      NodeStr = String(i);
      return true;
    } 
    if(menuItem.items[i].submenu)
    {
      retval = NodeSearch(menuItem.items[i].submenu, num);
      if(retval)
      {
        NodeStr = String(i) + "-" + NodeStr;
        return true;
      }
    }
  }
  return retval;     
}

function ExpandedSearch(menuItem)
{
  var i;
  for(i = 0; i < menuItem.items.length; i++)
  {
    if(menuItem.items[i].expanded)
    {
      NodeStr = "";
      NodeSearch(menu, menuItem.items[i].number);
      ExpandedStr += ("," + NodeStr);
    } 
    if(menuItem.items[i].submenu)
    {
      ExpandedSearch(menuItem.items[i].submenu);
    }
  }
}

function MTMStartMenu(thisEvent) {
  if(MTMUA.browserType == "O" && MTMUA.majVersion == 5) {
    parent.onload = MTMStartMenu;
    if(thisEvent) {
      return;
    }
  }
  MTMLoaded = true;
  if(MTMFirstRun) {
    if(MTMCurrentTime++ == MTMTimeOut) { // notice the post-increment
      setTimeout("MTMDisplayMenu()",10);
    } else {
      setTimeout("MTMStartMenu()",100);
    }
  } 
}

function MTMDisplayMenu() {
  if (!(this.browserType == "IE" || this.browserType == "NN") || (MTMUA.MTMable && !MTMUpdating)) {
    MTMUpdating = true;
    MTMLevel = 0;

    if(MTMFirstRun) {
      MTMUA.getFrames();

      if(MTMUseCookies) { 
        MTMFetchCookies();
        if(MTMTrackedCookie) {
          MTMTCArray = MTMTrackedCookie.split("::");
          MTMTrackedItem = MTMTCArray[0];
          if(parent.frames[MTMTCArray[1]]) {
            parent.frames[MTMTCArray[1]].location = MTMTCArray[2];
          }
          MTMTCArray = null;
        }
      }
    }
    if(MTMTrack) { MTMTrackedItem = MTMTrackExpand(menu); }

    if(MTMExpansion && MTMSubsAutoClose) { MTMCloseSubs(menu); }

    if(MTMUA.DOMable) {
      if(MTMFirstRun) {
        MTMinitializeDOMDocument();
      }
    } else if(MTMFirstRun || (MTMUA.browserType != "IE" && MTMUA.browserType != "O7")) {
      if (navigator.userAgent.indexOf('KHTML') == -1) {
        MTMUA.document.open("text/html", "replace");
      }
      MTMOutputString = (MTMDOCTYPE ? (MTMDOCTYPE + "\n") : '') + "<html><head>\n";
      if(MTMcontentType) {
        MTMOutputString += '<meta http-equiv="Content-Type" content="' + MTMcontentType + '">\n';
      }
      MTMOutputString += '<meta http-equiv="pragma" content="no-cache">';
      MTMOutputString += '<link rel="stylesheet" type="text/css" href="' + MTMUA.preHREF + MTMSSHREF + '">\n';
      MTMUA.document.writeln(MTMOutputString);
      MTMOutputString = "";
      MTMcreateStyleSheet();
      if((MTMUA.browserType == "IE" || MTMUA.browserType == "O7") && MTMrightClickMessage) {
        MTMOutputString += '<scr' + 'ipt type="text/javascript">\nfunction MTMcatchRight() {\nif(event && (event.button == 2 || event.button == 3)) {\nalert("' + MTMrightClickMessage + '");\nreturn false;\n}\nreturn true;\n}\n\ndocument.onmousedown = MTMcatchRight;\n';
        MTMOutputString += '<\/scr' + 'ipt>\n';
      }
      MTMOutputString += '</head>\n<body ';
      if(MTMBackground != "") {
        MTMOutputString += 'background="' + MTMUA.preHREF + MTMenuImageDirectory + MTMBackground + '" ';
      }
      MTMOutputString += 'bgcolor="' + MTMBGColor + '" text="' + MTMTextColor + '" link="' + MTMLinkColor + '" vlink="' + MTMLinkColor + '" alink="' + MTMLinkColor + '">\n';
      MTMUA.document.writeln(MTMOutputString + (MTMHeader ? MTMHeader : "") + '\n<table border="0" cellpadding="0" cellspacing="0" width="100%" id="mtmtable">\n');
    }

    if(!MTMFirstRun && (MTMUA.DOMable || (MTMUA.browserType == "IE" || MTMUA.browserType == "O7"))) {
      if(!MTMUA.menuTable) {
        MTMUA.menuTable = MTMUA.document.all.mtmtable;
      }

      if (MTMUA.menuTable) {
        while(MTMUA.menuTable.rows.length > 1) {
          MTMUA.menuTable.deleteRow(1);
        }
      }
    }
    MTMOutputString = '';
    if(MTMRootIcon != "")
      MTMOutputString += '<img src="' + MTMUA.preHREF + MTMenuImageDirectory + MTMRootIcon + '" align="left" border="0" vspace="0" hspace="0" alt="">';
    if(MTMUA.cssEnabled && !MTMUA.DOMable) {
      MTMOutputString += '<span id="root">' + MTMRootDecorationStart + '&nbsp;' + MTMenuText + MTMRootDecorationEnd + '</span>';
    } else if(MTMUA.DOMable) {
      MTMOutputString += '<font size="-1" face="Arial" color="' + MTMRootColor + '">' + MTMRootDecorationStart + MTMenuText + MTMRootDecorationEnd + '</font>';
    } else {
      MTMOutputString += '<font size="' + MTMRootFontSize + '" face="' + MTMRootFont + '" color="' + MTMRootColor + '">' + MTMRootDecorationStart + MTMenuText + MTMRootDecorationEnd + '</font>';
    }

    if(MTMFirstRun || (!MTMUA.DOMable && MTMUA.browserType != "IE" && MTMUA.browserType != "O7")) {
      MTMAddCell(MTMOutputString);
    }

    MTMListItems(menu);
    if(!MTMUA.DOMable && (MTMFirstRun || (MTMUA.browserType != "IE" && MTMUA.browserType != "O7"))) {
      MTMUA.document.writeln('</table>\n' + (MTMFooter ? MTMFooter : "") + '\n');
      if(MTMLinkedJSURL && (MTMUA.browserType != "IE" && MTMUA.browserType != "O7")) {
        MTMUA.document.writeln('<scr' + 'ipt defer type="text/javascript" src="' + MTMUA.preHREF + MTMLinkedJSURL + '"></scr' + 'ipt>');
      }
      MTMUA.document.writeln('\n</body>\n</html>');
      MTMUA.document.close();
    }

    if((MTMClickedItem || MTMTrackedItem) && !(MTMUA.browserType == "NN" && MTMUA.majVersion == 3)) {
      MTMItemName = "sub" + (MTMClickedItem ? MTMClickedItem.number : MTMTrackedItem);
      if(document.layers && MTMUA.menuFrame.scrollbars) {
        var i;
        for(i = 0; i < MTMUA.document.anchors.length; i++) {
          if(MTMUA.document.links[i].name == MTMItemName) {
            MTMyval = MTMUA.document.links[i].y;
            break;
          }
        }
        MTMWinSize = MTMUA.menuFrame.innerHeight;
      } else if(MTMUA.browserType != "O" && MTMUA.browserType != "O7") {
        if(MTMUA.browserType == "NN" && MTMUA.majVersion == 5) {
          MTMUA.document.all = MTMUA.document.getElementsByTagName("*");
        }
        MTMyval = MTMGetYPos(MTMUA.document.all[MTMItemName]);
        MTMWinSize = (MTMUA.browserType == "IE" || MTMUA.browserType == "O7") ? MTMUA.document.body.offsetHeight : MTMUA.menuFrame.innerHeight;
      } else if (MTMUA.browserType == "O7")
      {
        MTMyval = 0;
        MTMWinSize = MTMUA.document.body.offsetHeight;
      }
      if(MTMyval > (MTMWinSize - 60)) {
        MTMUA.menuFrame.scrollTo(0, parseInt(MTMyval - (MTMWinSize * 1/3)));
      }
    }


    if(!MTMFirstRun && MTMUA.cookieEnabled) { 
      if(MTMCookieString != "") {
        setCookie(MTMCookieName, MTMCookieString.substring(0,4000), MTMCookieDays);
        if(MTMTrackedCookieName) {
          if(MTMTCArray) {
            setCookie(MTMTrackedCookieName, MTMTCArray.join("::"), MTMCookieDays);
          } else {
            setCookie(MTMTrackedCookieName, "", -1);
          }
        }
      } else {
        setCookie(MTMCookieName, "", -1);
      }
    }
    if(MTMLinkedJSURL && MTMLinkedInitFunction && !(MTMUA.browserType == "IE" && MTMUA.majVersion == 4)) {
      setTimeout('MTMUA.menuFrame.' + MTMLinkedInitFunction + '()', 10);
    }

    if(MTMUA.browserType == "O7") {
      if(!MTMUA.DOMable) {
        MTMDOMAddBrankCell();
      }
    } else {
      if(MTMUA.DOMable) {
        MTMDOMAddBrankCell();
      }
    }


    MTMFirstRun = false;
    MTMExpansion = false;
    MTMTrack = false;
    MTMCookieString = "";
  }
  MTMUpdating = false;
}

function MTMinitializeDOMDocument() {
  var newElement;

  if(MTMcontentType) {
    MTMUA.appendElement('head', 'meta', 'httpEquiv', 'Content-Type', 'content', MTMcontentType);
  }
  MTMdisableStyleSheets();

  if(MTMLinkedSS) {
    MTMUA.appendElement('head', 'link', 'rel', 'stylesheet', 'type', 'text/css', 'href', (MTMUA.preHREF + MTMSSHREF));
  } else {
    MTMcreateStyleSheet();
  }
  if(MTMLinkedJSURL) {
    MTMUA.appendElement('head', 'script', 'src', (MTMUA.preHREF + MTMLinkedJSURL), 'type', 'text/javascript', 'defer', true);
  }
  while(MTMUA.document.body.childNodes.length > 0) {
    MTMUA.document.body.removeChild(MTMUA.document.body.firstChild);
  }

  if(MTMDOMHeader) {
    if(MTMUA.browserType == "IE" || MTMUA.browserType == "O7") {
      MTMUA.document.body.insertAdjacentHTML("afterBegin", MTMDOMHeader);
    } else {
      var myRange = MTMUA.document.createRange();
      myRange.setStart(MTMUA.document.body, 0);
      var parsedHTML = myRange.createContextualFragment(MTMDOMHeader);
      MTMUA.document.body.appendChild(parsedHTML);
    }
  }

  if (navigator.userAgent.indexOf("Gecko/") == -1) {
    MTMUA.appendElement('body', 'table', 'border', '0', 'cellPadding', '0', 'cellSpacing', '0', 'width', MTMTableWidth, 'height', '100%', 'id', 'mtmtable', 'class', 'list1');
  } else {
    MTMUA.appendElement('body', 'table', 'border', '0', 'cellPadding', '0', 'cellSpacing', '0', 'width', MTMTableWidth, 'height', '', 'id', 'mtmtable', 'class', 'list1');
  }
 
  MTMUA.menuTable = MTMUA.document.getElementById('mtmtable');
  if(MTMDOMFooter) {
    if(MTMUA.browserType == "IE" || MTMUA.browserType == "O7") {
      MTMUA.document.body.insertAdjacentHTML("beforeEnd", MTMDOMFooter);
    } else {
      var myRange = MTMUA.document.createRange();
      myRange.setStart(MTMUA.document.body, 0);
      var parsedHTML = myRange.createContextualFragment(MTMDOMFooter);
      MTMUA.document.body.appendChild(parsedHTML);
    }
  }
}

function MTMappendElement() {
  var newElement = this.document.createElement(arguments[1]);
  var j, newProperty;
  for(j = 2; j < arguments.length; j+=2) {
    newElement.setAttribute(arguments[j], arguments[j+1]);
  }
  if(arguments[0] == 'head') {
    this.head.appendChild(newElement);
  } else if(arguments[0] == 'body') {
    this.document.body.appendChild(newElement);
  }
}

function MTMListItems(menu) {
  var i, isLast;
  for (i = 0; i < menu.items.length; i++) {
    MTMIndices[MTMLevel] = i;
    isLast = (i == menu.items.length -1);
    MTMDisplayItem(menu.items[i], isLast);

    if(menu.items[i].submenu && menu.items[i].expanded) {
      MTMBar[MTMLevel] = (isLast) ? false : true;
      MTMLevel++;
      MTMListItems(menu.items[i].submenu);
      MTMLevel--;
    } else {
      MTMBar[MTMLevel] = false;
    } 
  }
}

function MTMDisplayItem(item, last) {
  var i, img, subNoLink;

  var MTMfrm = "parent.frames['" + MTMCodeFrame + "']";
  var MTMref = '.menu.items[' + MTMIndices[0] + ']';

  if(MTMLevel > 0) {
    for(i = 1; i <= MTMLevel; i++) {
      MTMref += ".submenu.items[" + MTMIndices[i] + "]";
    }
  }

  if(MTMUA.cookieEnabled) {
    if(MTMFirstRun && MTMCookieString != "") {
      item.expanded = (MTMCookieString.charAt(MTMCookieCharNum++) == "1") ? true : false;
    } else {
      MTMCookieString += (item.expanded) ? "1" : "0";
    }
  }

  if(item.submenu) {
    var usePlusMinus = false;
    if(MTMSubsGetPlus.toLowerCase() == "always" || MTMEmulateWE) {
      usePlusMinus = true;
    } else if(MTMSubsGetPlus.toLowerCase() == "submenu") {
      for(i = 0; i < item.submenu.items.length; i++) {
        if(item.submenu.items[i].submenu) {
          usePlusMinus = true; break;
        }
      }
    }

    var MTMClickCmd = "return " + MTMfrm + ".MTMSubAction(" + MTMfrm + MTMref + ");";
    var MTMouseOverCmd = "parent.status='" + (item.expanded ? "Collapse " : "Expand ") + (item.text.indexOf("'") != -1 ? MTMEscapeQuotes(item.text) : item.text) + "';return true;";
    var MTMouseOutCmd = "parent.status=parent.defaultStatus;return true;";
  }

  var MTMClickTextCmd = "return " + MTMfrm + ".MTMTextAction(" + MTMfrm + MTMref + ");";

  MTMOutputString = "";
  if(MTMLevel > 0) {
    for (i = 0; i < MTMLevel; i++) {
      MTMOutputString += (MTMBar[i]) ? MTMakeImage("menu_bar.gif") : MTMakeImageWithSize("menu_pixel.gif");
    }
  }
  if(item.submenu && usePlusMinus) {

      if ( item.url.toString().indexOf("TW_DISABLE") != -1 )
         item.url = "";

    if(item.url == "") {
      MTMOutputString += MTMakeLink(item, true, true, true, MTMClickCmd, MTMouseOverCmd, MTMouseOutCmd);
    } else {
      if(MTMEmulateWE) {
        MTMOutputString += MTMakeLink(item, true, true, false, MTMClickCmd, MTMouseOverCmd, MTMouseOutCmd);
      } else {
        if(!item.expanded) {
          MTMOutputString += MTMakeLink(item, true, true, true, MTMClickCmd);
        } else {
          MTMOutputString += MTMakeLink(item, true, true, false, MTMClickCmd, MTMouseOverCmd, MTMouseOutCmd);
        }
      }
    }
    if(item.expanded) {
      img = (last) ? "menu_corner_minus.gif" : "menu_tee_minus.gif";
    } else {
      img = (last) ? "menu_corner_plus.gif" : "menu_tee_plus.gif";
    }
  } else {
    img = (last) ? "menu_corner.gif" : "menu_tee.gif";
  }

  MTMOutputString += MTMakeImage(img);

  if(item.submenu) {
    if(MTMEmulateWE) {

      if ( item.url.toString().indexOf("TW_DISABLE") != -1 )
         item.url = "";
        
      if(item.url != "") {
        MTMOutputString += '</a>' + MTMakeLink(item, true, false, true);
      } else if(!MTMAlwaysLinkIfWE) {
        subNoLink = true;
        MTMOutputString += '</a><span class="subtext">';
      }
    } else if(!usePlusMinus) {

      if ( item.url.toString().indexOf("TW_DISABLE") != -1 )
         item.url = "";

      if(item.url == "") {
        MTMOutputString += MTMakeLink(item, true, true, true, MTMClickCmd, MTMouseOverCmd, MTMouseOutCmd);
      } else if(!item.expanded) {
        MTMOutputString += MTMakeLink(item, true, true, true, MTMClickCmd);
      } else {
        MTMOutputString += MTMakeLink(item, true, true, false, MTMClickCmd, MTMouseOverCmd, MTMouseOutCmd);
      }
    }

    img = (item.expanded) ? item.expandIcon : item.collapseIcon;
  } else {
  MTMOutputString += MTMakeLinkExtend(item,true, true, true);
    img = (item.icon != "") ? item.icon : MTMFetchIcon(item.url);
  }
  MTMOutputString += MTMakeImageWithSize(img);

  if(item.submenu && item.url != "" && item.expanded && !MTMEmulateWE) {
    MTMOutputString += '</a>' + MTMakeLink(item, false, false, true);
  } else {
    MTMOutputString += '</a>';
  } 

//  item.text href start
  if ( ( item.url.toString().indexOf("TW_DISABLE") != -1 ) ||
       ( item.url.toString().indexOf("javascript:;") !== -1 ) ||
       ( item.url.toString() == "" )                          )
  {
    item.url = "";
    subNoLink = true;
    if ( MTMUA.browserType == "NN" )
      MTMOutputString += '<font size="' + '-1' + '" face="' + MTMRootFont + '" color="' + MTMRootColor + '">' + "&nbsp";
    else 
      MTMOutputString += '<span id="root">' + "&nbsp";
  } else {
    MTMOutputString += "&nbsp;" + MTMakeLink(item, false, false, false, MTMClickTextCmd);
  } 

  if((MTMClickedItem && MTMClickedItem.number == item.number) || (MTMBegin && item.number == 1))
  {
    MTMOutputString += '<span class="selected">';
  }

  if(MTMUA.browserType == "NN" && MTMUA.majVersion == 3 && !MTMLinkedSS) {
    var stringColor;
    if(item.submenu && (item.url == "") && (item.number == MTMClickedItem.number)) {
      stringColor = (item.expanded) ? MTMSubExpandColor : MTMSubClosedColor;
    } else if(MTMTrackedItem && MTMTrackedItem == item.number) {
      stringColor = MTMTrackColor;
    } else {
      stringColor = MTMLinkColor;
    }
    MTMOutputString += '<font color="' + stringColor + '" size="' + MTMenuFontSize + '" face="' + MTMenuFont + '">';
  }
  MTMOutputString += '&nbsp;' + item.text + '&nbsp;' + ((MTMUA.browserType == "NN" && MTMUA.majVersion == 3 && !MTMLinkedSS) ? '</font>' : '');
  if((MTMClickedItem && MTMClickedItem.number == item.number) || (MTMBegin && item.number == 1))
  {
    if(MTMBegin) MTMBegin = false;
    MTMClickedItem = item;
    MTMOutputString += '</span>';
  }

  if ( MTMUA.browserType == "NN" )
    MTMOutputString += subNoLink ? '</font>' : '</a>';
  else
    MTMOutputString += subNoLink ? '</span>' : '</a>';
  MTMAddCell(MTMOutputString);
}

function MTMEscapeQuotes(myString) {
  var newString = "";
  var cur_pos = myString.indexOf("'");
  var prev_pos = 0;
  while (cur_pos != -1) {
    if(cur_pos == 0) {
      newString += "\\";
    } else if(myString.charAt(cur_pos-1) != "\\") {
      newString += myString.substring(prev_pos, cur_pos) + "\\";
    } else if(myString.charAt(cur_pos-1) == "\\") {
      newString += myString.substring(prev_pos, cur_pos);
    }
    prev_pos = cur_pos++;
    cur_pos = myString.indexOf("'", cur_pos);
  }
  return(newString + myString.substring(prev_pos, myString.length));
}

function MTMTrackExpand(thisMenu) {
  var i, targetPath, targetLocation;
  var foundNumber = false;
  for(i = 0; i < thisMenu.items.length; i++) {
    if(thisMenu.items[i].url != "" && MTMTrackTarget(thisMenu.items[i].target)) {
      targetLocation = parent.frames[thisMenu.items[i].target].location;
      targetHREF = targetLocation.href;
      if(targetHREF.indexOf("#") != -1) {
        targetHREF = targetHREF.substr(0, targetHREF.indexOf("#"));
      }
      if(MTMUA.browserType == "IE" && targetLocation.protocol == "file:") {
        var regExp = /\\/g;
        targetHREF = targetHREF.replace(regExp, "\/");
      }
      if(targetHREF == MTMUA.resolveURL(thisMenu.items[i].url)) {
        return(thisMenu.items[i].number);
      }
    }
    if(thisMenu.items[i].submenu) {
      foundNumber = MTMTrackExpand(thisMenu.items[i].submenu);
      if(foundNumber) {
        if(!thisMenu.items[i].expanded) {
          thisMenu.items[i].expanded = true;
          if(!MTMClickedItem) { MTMClickedItem = thisMenu.items[i]; }
          MTMExpansion = true;
        }
        return(foundNumber);
      }
    }
  }
  return(foundNumber);
}

function MTMCloseSubs(thisMenu) {
  var i, j;
  var foundMatch = false;
  for(i = 0; i < thisMenu.items.length; i++) {
    if(thisMenu.items[i].submenu && thisMenu.items[i].expanded) {
      if(thisMenu.items[i].number == MTMClickedItem.number) {
        foundMatch = true;
        for(j = 0; j < thisMenu.items[i].submenu.items.length; j++) {
          if(thisMenu.items[i].submenu.items[j].expanded) {
            thisMenu.items[i].submenu.items[j].expanded = false;
          }
        }
      } else {
        if(foundMatch) {
          thisMenu.items[i].expanded = false; 
        } else {
          foundMatch = MTMCloseSubs(thisMenu.items[i].submenu);
          if(!foundMatch) {
            thisMenu.items[i].expanded = false;
          }
        }
      }
    }
  }
  return(foundMatch);
}

function MTMFetchIcon(testString) {
  var i;
  for(i = 0; i < MTMIconList.items.length; i++) {
    if((MTMIconList.items[i].type == 'any') && (testString.indexOf(MTMIconList.items[i].match) != -1)) {
      return(MTMIconList.items[i].file);
    } else if((MTMIconList.items[i].type == 'pre') && (testString.indexOf(MTMIconList.items[i].match) == 0)) {
      return(MTMIconList.items[i].file);
    } else if((MTMIconList.items[i].type == 'post') && (testString.indexOf(MTMIconList.items[i].match) != -1)) {
      if((testString.lastIndexOf(MTMIconList.items[i].match) + MTMIconList.items[i].match.length) == testString.length) {
        return(MTMIconList.items[i].file);
      }
    } else if((MTMIconList.items[i].type == 'contain') && (testString.match(MTMIconList.items[i].match) != null)) {
      return(MTMIconList.items[i].file);
   }
  }
  return("other_folder.gif");
}

function MTMGetYPos(myObj) {
return 0;
}

function MTMakeLink(thisItem, voidURL, addName, addTitle, clickEvent, mouseOverEvent, mouseOutEvent) {
  var tempString;

  if(voidURL) {
    tempString = '<a href="javascript:;"';
  } else {
    tempString = '<a href="' + MTMUA.resolveURL(thisItem.url) + '"';
  }
  if(MTMUseToolTips && addTitle && thisItem.tooltip) {
    tempString += 'title="' + thisItem.tooltip + '" ';
  }
  if(addName) {
    tempString += 'name="sub' + thisItem.number + '" ';
  }
  if(clickEvent) {
    tempString += 'onclick="' + clickEvent + '" ';
  }
  if(mouseOverEvent && mouseOverEvent != "") {
    tempString += 'onmouseover="' + mouseOverEvent + '" ';
  }
  if(mouseOutEvent && mouseOutEvent != "") {
    tempString += 'onmouseout="' + mouseOutEvent + '" ';
  }
  if(thisItem.submenu && MTMClickedItem && thisItem.number == MTMClickedItem.number) {
    tempString += 'class="' + (thisItem.expanded ? "subexpanded" : "subclosed") + '" ';
  } else if(MTMTrackedItem && thisItem.number == MTMTrackedItem) {
    if(MTMTrackedCookieName) {
      MTMTCArray = new Array(thisItem.number, thisItem.target, thisItem.url);
    }
    tempString += 'class="tracked"';
  }
  if(thisItem.target != "") {
    tempString += 'target="' + thisItem.target + '" ';
  }
  return(tempString + ' style="text-decoration:none;">');

}

function MTMakeLinkExtend(thisItem, voidURL, addName, addTitle, clickEvent, mouseOverEvent, mouseOutEvent) {
  var tempString;
  if(voidURL) {
    tempString = '<a ';
  } else {
    tempString = '<a href="' + MTMUA.resolveURL(thisItem.url) + '"';
  }
  if(MTMUseToolTips && addTitle && thisItem.tooltip) {
    tempString += 'title="' + thisItem.tooltip + '" ';
  }
  if(addName) {
    tempString += 'name="sub' + thisItem.number + '" ';
  }
  if(clickEvent) {
    tempString += 'onclick="' + clickEvent + '" ';
  }
  if(mouseOverEvent && mouseOverEvent != "") {
    tempString += 'onmouseover="' + mouseOverEvent + '" ';
  }
  if(mouseOutEvent && mouseOutEvent != "") {
    tempString += 'onmouseout="' + mouseOutEvent + '" ';
  }
  if(thisItem.submenu && MTMClickedItem && thisItem.number == MTMClickedItem.number) {
    tempString += 'class="' + (thisItem.expanded ? "subexpanded" : "subclosed") + '" ';
  } else if(MTMTrackedItem && thisItem.number == MTMTrackedItem) {
    if(MTMTrackedCookieName) {
      MTMTCArray = new Array(thisItem.number, thisItem.target, thisItem.url);
    }
    tempString += 'class="tracked"';
  }
  if(thisItem.target != "") {
    tempString += 'target="' + thisItem.target + '" ';
  }
  return(tempString + '>');
}


function MTMakeImage(thisImage, onClickCmd) {
  if (thisImage.indexOf('tee_') != -1) {
    return('<img src="' + MTMUA.preHREF + MTMenuImageDirectory + thisImage + '" align="middle" border="0" vspace="0" hspace="0" alt="" width="18" height="18">');
  } else {
    return('<img src="' + MTMUA.preHREF + MTMenuImageDirectory + thisImage + '" align="middle" border="0" vspace="0" hspace="0" alt="">');
  }
}

function MTMakeImageWithSize(thisImage, onClickCmd) {
  var height;
  if (thisImage.indexOf('tee_') != -1) {
    height = '18';
  } else {
    height = '16';
  }
  return('<img src="' + MTMUA.preHREF + MTMenuImageDirectory + thisImage + '" align="middle" border="0" vspace="0" hspace="0" width="18" height="' + height + '" alt="">');
}

function MTMakeImageWithLink(thisImage, onClickCmd) {
  return('<img src="' + MTMUA.preHREF + MTMenuImageDirectory + thisImage + '" align="middle" border="0" vspace="0" hspace="0" alt="" onClick="javascript:'+ onClickCmd + '">');
}


function MTMakeSVG(thisImage) {
  return('<object type="image/svg+xml" data="' + thisImage + '" NAME="Main"><\/object>');
}

function MTMTrackTarget(thisTarget) {
  if(thisTarget.charAt(0) == "_") {
    return false;
  } else {
    for(i = 0; i < MTMFrameNames.length; i++) {
      if(thisTarget == MTMFrameNames[i]) {
        return true;
      }
    }
  }
  return false;
}

function MTMAddCell(thisHTML) {
  if(MTMUA.DOMable || ((MTMUA.browserType == "IE" || MTMUA.browserType == "O7") && !MTMFirstRun)) {
    if (MTMUA.menuTable) {
      var myRow = MTMUA.menuTable.insertRow(MTMUA.menuTable.rows.length);
      myRow.vAlign = "top";
      var myCell = myRow.insertCell(myRow.cells.length);
      myCell.noWrap = true;
      myCell.innerHTML = thisHTML;
      myCell.innerHeight = 18;
    }
  } else {
    MTMUA.document.writeln('<tr valign="top" height="18"><td nowrap>' + thisHTML + '<\/td><\/tr>');
  }
}

function MTMDOMAddBrankCell() {
  var ht;
  var myRow;
  if (MTMUA.menuTable) {
    mtRow = MTMUA.menuTable.insertRow(MTMUA.menuTable.rows.length);
    if (navigator.userAgent.indexOf("Gecko/") == -1) {
      ht = '';
    } else if (top.work) {
      ht = top.work.innerHeight - 140 - 18 * MTMUA.menuTable.rows.length;
      if(ht < 0) ht = 0;
    } else {
      ht = '100%';
    }

    myRow.width = "100%";
    myRow.height = ht;
    myRow.vAlign = "top";
    var myCell = myRow.insertCell(myRow.cells.length);
    myCell.width = "100%";
    myCell.height = "100";
    myCell.noWrap = true;
    myCell.innerHTML = "";
  }
}

function MTMcreateStyleSheet() {
  var i;

  if(!MTMstyleRules) {
    MTMstyleRules = new MTMstyleRuleSet();
    with(MTMstyleRules) {
      addRule('body', 'color:' + MTMTextColor + ';');
      if(MTMuseScrollbarCSS && MTMUA.browserType != "NN") {
        addRule('body', 'scrollbar-3dlight-color:' + MTMscrollbar3dLightColor + ';scrollbar-arrow-color:' + MTMscrollbarArrowColor + ';scrollbar-base-color:' + MTMscrollbarBaseColor + ';scrollbar-darkshadow-color:' + MTMscrollbarDarkShadowColor + ';scrollbar-face-color:' + MTMscrollbarFaceColor + ';scrollbar-highlight-color:' + MTMscrollbarHighlightColor + ';scrollbar-shadow-color:' + MTMscrollbarShadowColor + ';scrollbar-track-color:' + MTMscrollbarTrackColor + ';');
      }
      addRule('#root', 'color:' + MTMRootColor + ';background:transparent;font-family:' + MTMRootFont + ';font-size:' + MTMRootCSSize + ';');
      addRule('.subtext', 'font-family:' + MTMenuFont + ';font-size:' + MTMenuCSSize + ';color:' + MTMSubTextColor + ';background: transparent;');
      addRule('a', 'font-family:' + MTMenuFont + ';font-size:' + MTMenuCSSize + ';text-decoration:none;color:' + MTMLinkColor + ';background:transparent;');
      addRule('a:hover', 'color:' + MTMAhoverColor + ';background:transparent;');
      addRule('a.tracked', 'color:' + MTMTrackColor + ';background:transparent;');
      addRule('a.subexpanded', 'color:' + MTMSubExpandColor + ';background:transparent;');
      addRule('a.subclosed', 'color:' + MTMSubClosedColor + ';background:transparent;');
    }
  }

  if(MTMUA.DOMable) {
    if(MTMUA.browserType == "IE" || MTMUA.browserType == "O7") {
      MTMUA.document.createStyleSheet();
      var newStyleSheet = MTMUA.document.styleSheets(MTMUA.document.styleSheets.length-1);
    } else if(MTMUA.browserType == "NN") {
      var newStyleSheet = MTMUA.document.getElementById('mtmsheet');
      if(newStyleSheet) {
        newStyleSheet.disabled = false;
      }
    }
  } else {
    var outputHTML = '<style type="text/css">\n';
  }

  for(i = 0; i < MTMstyleRules.rules.length; i++) {
    if(MTMUA.DOMable && (MTMUA.browserType == "IE" || MTMUA.browserType == "O7")) {
      newStyleSheet.addRule(MTMstyleRules.rules[i].selector, MTMstyleRules.rules[i].style);
    } else if(MTMUA.DOMable && MTMUA.browserType == "NN" && newStyleSheet) {
      newStyleSheet.sheet.insertRule((MTMstyleRules.rules[i].selector + " { " + MTMstyleRules.rules[i].style + " } "), newStyleSheet.sheet.cssRules.length);
    } else {
      outputHTML += MTMstyleRules.rules[i].selector + ' {\n' + MTMstyleRules.rules[i].style + '\n}\n';
    }
  }
  
  for(i = 0; i < MTMExtraCSS.rules.length; i++) {
    if(MTMUA.DOMable && (MTMUA.browserType == "IE" || MTMUA.browserType == "O7")) {
      newStyleSheet.addRule(MTMExtraCSS.rules[i].selector, MTMExtraCSS.rules[i].style);
    } else if(MTMUA.DOMable && MTMUA.browserType == "NN" && newStyleSheet) {
      newStyleSheet.sheet.insertRule((MTMExtraCSS.rules[i].selector + "{" + MTMExtraCSS.rules[i].style + "}"), newStyleSheet.sheet.cssRules.length);
    } else {
      outputHTML += MTMExtraCSS.rules[i].selector + ' {\n' + MTMExtraCSS.rules[i].style + '\n}\n';
    }
  }

  if(MTMFirstRun && MTMUA.DOMable) {
    with(MTMUA.document.body) {
      bgColor = MTMBGColor;
      text = MTMTextColor;
      link = MTMLinkColor;
      vLink = MTMLinkColor;
      aLink = MTMLinkColor;
      if(MTMBackground) {
        background = MTMUA.preHREF + MTMenuImageDirectory + MTMBackground;
      }
    }
  } else if(!MTMUA.DOMable) {
    MTMUA.document.writeln(outputHTML + '</style>');
  }
}

function MTMdisableStyleSheets() {
  if(MTMUA.browserType == "IE") {
    for(i = 0; i < MTMUA.document.styleSheets.length; i++) {
      MTMUA.document.styleSheets(i).disabled = true;
    }
  } else if(MTMUA.browserType == "NN") {
    var myCollection = MTMUA.document.getElementsByTagName('style');
    for(i = 0; i < myCollection.length; i++) {
      myCollection.item(i).disabled = true;
    }
    var myCollection = MTMUA.document.getElementsByTagName('link');
    for(i = 0; i < myCollection.length; i++) {
      if(myCollection.item(i).getAttribute('type') == "text/css") {
        myCollection.item(i).disabled = true;
      }
    }
  }
}

function MTMFetchCookies() {
  var cookieString = getCookie(MTMCookieName);
  if(cookieString == null) {
    setCookie(MTMCookieName, "Say-No-If-You-Use-Confirm-Cookies");
    cookieString = getCookie(MTMCookieName);
    MTMUA.cookieEnabled = (cookieString == null) ? false : true;
    return;
  }

  MTMCookieString = cookieString;
  if(MTMTrackedCookieName) { MTMTrackedCookie = getCookie(MTMTrackedCookieName); }
  MTMUA.cookieEnabled = true;
}

// These are from Netscape's Client-Side JavaScript Guide.
// setCookie() is altered to make it easier to set expiry.

function getCookie(Name) {
  var search = Name + "="
  if (document.cookie.length > 0) { // if there are any cookies
    offset = document.cookie.indexOf(search)
    if (offset != -1) { // if cookie exists
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset)
      // set index of end of cookie value
      if (end == -1)
        end = document.cookie.length
      return unescape(document.cookie.substring(offset, end))
    }
  }
}

function setCookie(name, value, daysExpire) {
  if(daysExpire) {
    var expires = new Date();
    expires.setTime(expires.getTime() + 1000*60*60*24*daysExpire);
  }
  document.cookie = name + "=" + escape(value) + (daysExpire == null ? "" : (";expires=" + expires.toGMTString())) + ";path=/";
}
