
//lineHeight = Space between Sub Menu Items
var lineHeight = 18;

var macSuffix = "";
if( browser.mac ) macSuffix = "Mac";
var menuString = "";

function createMenu( argMenu, argBackColor, argForeColor, argBorderColor ) {

  var m = argMenu;
  var backColor = "#000000";
  if( argBackColor ) backColor = argBackColor;
  var borderColor = "#666666";
  if( argBorderColor ) borderColor = argBorderColor;
  var createSubMenus = new Array( m.items.length );
  var curItem;
  var foreColor = "#666666";
  if( argForeColor ) foreColor = argForeColor;
  var imgDir = m.flag;
  
//  if( m.flag == "NewLayout2" ) imgDir = "NewLayout2";
  var subMenuTopAdjust = 0;
  if( m.subMenuName || m.flag == "toolbox" ) subMenuTopAdjust = 1;
  var templateToolboxAdjust = 0;
  var twoLinerAdjust = 0;
 
  // netscape specific menus
  if( browser.nn && browser.major < 5 ) {
//  alert("NS");
    if( m.flag == "twoLiner" ) twoLinerAdjust = 12;
    
    menuString += '<layer id="' + m.name + '" visibility="hide" left="' + m.x + '" top="' + ( m.y + templateToolboxAdjust ) + '" width="' + m.width + '" bgcolor="' + borderColor + '"';
    if( !m.subMenuName ) {
      var toolboxDiv = "";
      if( m.flag == "NewLayout2" ) {
        toolboxDiv = ", \'document." + m.name + "Div.document." + m.name + "Layer\'";
      }
      menuString += ' onMouseOver="clearTimeout( '+ m.name + 'Timer ); divImgSwap( \''+ m.name + 'Img\', \'/' + imgDir + '/'+ m.name + '_on.gif\'' + toolboxDiv + ' );"';
      menuString += ' onMouseOut="timedHideMenu( \'' + m.name + '\', 10 ); divImgSwap( \''+ m.name + 'Img\', \'/' + imgDir + '/'+ m.name + '_off.gif\'' + toolboxDiv + '  );">';
    } else {
      menuString += ' onMouseOver="clearTimeout( '+ m.subMenuName + 'Timer ); clearTimeout( '+ m.name + 'Timer ); hiliteBgColor( \'' + m.subMenuHilite + '\', \'' + foreColor + '\' ); divImgSwap( \''+ m.subMenuName + 'Img\', \'' + imgDir + '/'+ m.subMenuName + '_on.gif\'' + toolboxDiv + '  );"';
      menuString += ' onMouseOut="hideMenu( \'' + m.name + '\' ); timedHideMenu( \''+ m.subMenuName + '\', 10 ); hiliteBgColor( \'' + m.subMenuHilite + '\', \'' + backColor + '\' ); divImgSwap( \''+ m.subMenuName + 'Img\', \'' + imgDir + '/'+ m.subMenuName + '_off.gif\'' + toolboxDiv + '  );">';
    }
    menuString += '<layer id="' + m.name + 'Border" left="1" top="' + subMenuTopAdjust + '" width="' + ( m.width - 2 ) + '" bgcolor="' + backColor + '">';
    for( var i = 0; i < m.items.length; i++ ) {
      curItem = "document.layers[\\'" + m.name + "\\'].document.layers[\\'" + m.name + "Border\\'].document.layers[\\'" + m.name + i + "\\']";
      menuString += '<layer id="' + m.name + i + '" class="menuItemNs' + macSuffix + '" top="' + ( i * lineHeight ) + '" width="' + ( m.width - 2 ) + '" bgcolor="' + backColor + '"';
      if( !m.items[i].subMenu ) {
        menuString += ' onMouseOver="hiliteBgColor( \'' + curItem + '\', \'' + foreColor + '\' );" onMouseOut="hiliteBgColor( \'' + curItem + '\', \'' + backColor + '\' );"';
        menuString += '><a class="menuText" href="' + m.items[i].url + '">' + m.items[i].value + '</a></layer>';
      } else {
        menuString += ' onMouseOver="hiliteBgColor( \'' + curItem + '\', \'' + foreColor + '\' ); showMenu( \'' + m.items[i].subMenu.name + '\' );"';
        menuString += ' onMouseOut="hiliteBgColor( \'' + curItem + '\', \'' + backColor + '\' ); timedHideMenu( \'' + m.items[i].subMenu.name + '\', 100 );">';
        menuString += '<img src="/img/subMenuArrowNS.gif" align="right" border="0" /><a class="menuText" href="#">' + m.items[i].value + '</a></layer>';
        createSubMenus[i] = m.items[i].subMenu;
        createSubMenus[i].x = ( m.x + m.width ) - 1;
        createSubMenus[i].y = ( ( i * lineHeight ) + ( m.y - 1 ) );
        createSubMenus[i].subMenuName = m.name;
        createSubMenus[i].subMenuHilite = curItem;
      }
    }
    menuString += '<layer top="' + ( ( ( m.items.length * lineHeight ) + 2 ) + twoLinerAdjust ) + '" width="' + ( m.width - 2 ) + '" height="1" bgcolor="' + borderColor + '"></layer></layer></layer>';
  }
  
  // internet explorer specific menus
  if( browser.ie || ( browser.nn && browser.major > 4 ) ) {
//	alert("MS");
    var heightAdjust = 0;
    if( browser.mac && ( browser.major < 5 ) ) heightAdjust = -1;
    var mac4fix = "";
    if( browser.mac && ( browser.major < 5 ) ) mac4fix = "4Mac";
    var toolboxAdjust = 0;
    if( m.flag == "NewLayout2" ) toolboxAdjust = 1;
    if( m.flag == "twoLiner" ) twoLinerAdjust = 19;
  
    menuString += '<div id="'+ m.name + '" style="visibility:hidden; position:absolute; left:'+ m.x + '; top:'+ ( ( m.y + templateToolboxAdjust ) + toolboxAdjust ) + '; height:'+ ( ( ( ( ( m.items.length * lineHeight ) + 2 ) + heightAdjust ) + subMenuTopAdjust ) + twoLinerAdjust ) + '; width:'+ m.width + '; background-color:'+ borderColor + '; cursor:hand; z-index:100;"';
    if( !m.subMenuName ) {
      menuString += ' onMouseOver="showMenu( \'' + m.name + '\' ); imgSwap( \''+ m.name + 'Img\', \'' + imgDir + '/'+ m.name + '_on.gif\' );"';
      menuString += ' onMouseOut="hideMenu( \'' + m.name + '\' ); imgSwap( \''+ m.name + 'Img\', \'' + imgDir + '/'+ m.name + '_off.gif\' );">';
    } else {
      menuString += ' onMouseOver="showMenu( \''+ m.name + '\' ); showMenu( \''+ m.subMenuName + '\' ); hiliteBgColor( \'' + m.subMenuHilite + '\', \'' + foreColor + '\' ); imgSwap( \''+ m.subMenuName + 'Img\', \'' + imgDir + '/'+ m.subMenuName + '_on.gif\' );"';
      menuString += ' onMouseOut="hideMenu( \'' + m.name + '\' ); hideMenu( \''+ m.subMenuName + '\' ); hiliteBgColor( \'' + m.subMenuHilite + '\', \'' + backColor + '\' ); imgSwap( \''+ m.subMenuName + 'Img\', \'' + imgDir + '/'+ m.subMenuName + '_off.gif\' );">';
    }
    menuString += '<div id="' + m.name + 'Border" style="position:absolute; left:1; top:' + subMenuTopAdjust + '; width:' + ( m.width - 2 ) + '; background-color:' + backColor + ';">';
    for( var i = 0; i < m.items.length; i++ ) {
      curItem = m.name + i;
      menuString += '<div id="' + m.name + i + '" class="menuItemIe' + mac4fix + '" style="position:absolute; top:' + ( i * lineHeight ) + '; width:' + ( m.width - 2 ) + '; background-color:' + backColor + ';"';
      if( !m.items[i].subMenu ) {
        menuString += ' onMouseOver="hiliteBgColor( \'' + curItem + '\', \'' + foreColor + '\' );"';
        menuString += ' onMouseOut="hiliteBgColor( \'' + curItem + '\', \'' + backColor + '\' );"';
        menuString += ' onClick="';
        var tempUrl = m.items[i].url;
        if( tempUrl.indexOf( "javascript" ) < 0 )
          tempUrl = "window.location=\'" + m.items[i].url + "\'";
        menuString += tempUrl + '">&nbsp;&nbsp;' + m.items[i].value + '</div>';
      } else {
        menuString += ' onMouseOver="hiliteBgColor( \'' + curItem + '\', \'' + foreColor + '\' ); showMenu( \'' + m.items[i].subMenu.name + '\' );"';
        menuString += ' onMouseOut="hiliteBgColor( \'' + curItem + '\', \'' + backColor + '\' ); hideMenu( \'' + m.items[i].subMenu.name + '\' );">';
		menuString += '</div>';
        createSubMenus[i] = m.items[i].subMenu;
        createSubMenus[i].x = ( m.x + m.width ) - 1;
        createSubMenus[i].y = ( ( i * lineHeight ) + ( m.y - 1 ) );
        createSubMenus[i].subMenuName = m.name;
        createSubMenus[i].subMenuHilite = curItem;
      }
    }
    menuString += '</div></div>';
//	alert(menuString);
//	menuString = "";
  }
  
  // create saved subMenus
  for( var k = 0; k < createSubMenus.length; k++ ) {
    if( createSubMenus[k] ) createMenu( createSubMenus[k] );
  }
  
}
