// Use Freely as long as following disclaimer is intact ::
//---------------------------------------------------------------
// Cross Browser Multi-Orientation Menu v1.0 23rd October 2003
// This script written by Rik Comery. www.ricom.co.uk
// For support, visit the "Resources" section at www.ricom.co.uk           
// All rights reserved.                                         

////// DO NOT EDIT BELOW THIS LINE  ///////////////////////////////////////////////////////////////////

// Browser Sniffer
var isIE = (document.getElementById && document.all)?true:false;
var isNS4 = (document.layers)?true:false;
var isNS6 = (document.getElementById && !document.all)?true:false;

var timer;
var obj = (isIE)?"document.all":"document.getElementById"

styleBorder=(menuStyle.toLowerCase() == "flat")?cellBorder:0 

// Menu Styles
document.writeln ('<style>');
document.writeln ('.rcMenuStatic {font-family:'+fontFace+';font-size:'+fontSize+';color:'+fontColour+';font-weight:'+fontWeight+';background-color:'+menuBackground+'; background-image:'+menuBackgroundImg+'; cursor:hand; text-decoration:'+fontDecoration+'}');
document.writeln ('.rcMenuStaticA {font-family:'+fontFace+';font-size:'+fontSize+';color:'+fontColour+';font-weight:'+fontWeight+';background-color:'+menuBackground+'; cursor:hand; text-decoration:'+fontDecoration+'}');
document.writeln ('.rcMenuHover  {font-family:'+fontFace+';font-size:'+fontSize+';color:'+fontHoverColour+';font-weight:'+fontWeight+';background-color:'+menuHoverBackground+'; background-image:'+menuHoverBackgroundImg+'; cursor:hand; text-decoration:'+fontDecoration+'}');
document.writeln ('.rcMenuHoverA  {font-family:'+fontFace+';font-size:'+fontSize+';color:'+fontHoverColour+';font-weight:'+fontWeight+';background-color:'+menuHoverBackground+'; cursor:hand; text-decoration:'+fontDecoration+'}');
document.writeln ('.rcSubMenuStatic {font-family:'+sfontFace+';font-size:'+sfontSize+';color:'+sfontColour+';font-weight:'+sfontWeight+';text-decoration:'+sfontDecoration+';background-color:'+smenuBackground+';background-image:'+smenuBackgroundImg+';  cursor:hand}');
document.writeln ('.rcSubMenuStaticA {font-family:'+sfontFace+';font-size:'+sfontSize+';color:'+sfontColour+';font-weight:'+sfontWeight+';text-decoration:'+sfontDecoration+';background-color:'+smenuBackground+';  cursor:hand}');
document.writeln ('.rcSubMenuHover  {font-family:'+sfontFace+';font-size:'+sfontSize+';color:'+sfontHoverColour+';font-weight:'+sfontWeight+';text-decoration:'+sfontDecoration+';background-color:'+smenuHoverBackground+';background-image:'+smenuHoverBackgroundImg+';  cursor:hand}');
document.writeln ('.rcSubMenuHoverA  {font-family:'+sfontFace+';font-size:'+sfontSize+';color:'+sfontHoverColour+';font-weight:'+sfontWeight+';text-decoration:'+sfontDecoration+';background-color:'+smenuHoverBackground+'; cursor:hand}');
document.writeln ('</style>');

// Build and show the main menu items
function showMenus()
{
  if (orientation.toLowerCase() == "vertical"){document.writeln ('<table border="0" cellpadding="0" cellspacing="'+styleBorder+'" bgColor="'+borderColor+'">')}
  else{document.writeln ('<table border="0" cellpadding="0" cellspacing="'+styleBorder+'" bgColor="'+borderColor+'"><tr>')}  
  for (x=0; x<Menu.length; x++)
  {
    if (orientation.toLowerCase()=="vertical") document.writeln('<tr>')
    document.writeln ('<td onclick="tdMouseClick(\'mainLink'+x+'\'); highlightMenu(\'main\','+x+','+y+')" onMouseOver="hoverMenu(); popDown('+x+', \'button'+x+'\'); " onMouseOut="clearMenu('+x+')" ')
    if (menuStyle.toLowerCase() == "3d"){document.writeln ('style="border-left:'+cellBorder+'px solid '+borderHighlight+';border-top:'+cellBorder+'px solid '+borderHighlight+';border-right:'+cellBorder+'px solid '+borderShadow+';border-bottom:'+cellBorder+'px solid '+borderShadow+';"');}        
    document.writeln ('><div id="button'+x+'"><table border="0" cellpadding="'+cellPadding+'" cellspacing="0" width="100%"><tr><td class="rcMenuStatic" id="cell'+x+'" nowrap>');
    document.writeln ('<a id="mainLink'+x+'" href="'+Menu[x][1]+'" target="'+Menu[x][2]+'" class="rcMenuStaticA">'+Menu[x][0]+'</a></td>');
    if (subIndicate == 1&&subMenu[x].length>=1){
      document.writeln('<td class="rcMenuStatic" id="cell'+x+'a" align="right">');
      document.writeln ('<a id="mainLink'+x+'a" href="'+Menu[x][1]+'" target="'+Menu[x][2]+'" class="rcMenuStaticA">'+indicator+'</a></td>');}
    if (separate == 1 && x+1<Menu.length)
	{
      document.writeln('<td class="rcMenuStatic" style="padding:0;">'+separator+'</td>');
	}
    document.writeln ('</tr></table></div></td>');    
    if (orientation.toLowerCase()=="vertical") document.writeln('</tr>')
  }
  if (orientation.toLowerCase() == "vertical"){document.writeln ('</table>');}
  else{document.writeln ('</tr></table>');}   
}  

// Build the sub menu items
  for (x=0; x<Menu.length; x++)
  { 
    if (subMenu[x].length > 0)
    {     
      document.writeln ('<div id="MENU'+x+'" style="visibility:hidden; position:absolute; z-index:2" >');
      document.writeln ('<table border="0" cellpadding="'+cellPadding+'" cellspacing="'+styleBorder+'" bgColor="'+sborderColor+'">');
      for (y=0; y<subMenu[x].length; y++)
      {
        document.writeln ('<tr><td id="subMenu'+x+y+'" class="rcSubMenuStatic" onMouseOver="hoverMenu(); popDown2('+x+','+y+', \'subbutton'+x+y+'\'); highlightMenu(\'sub\','+x+','+y+')" onMouseOut="clearMenu('+x+');" onclick="tdMouseClick(\'subLink'+x+y+'\')" nowrap')
        if (menuStyle.toLowerCase() == "3d"){document.writeln ('style="border-left:'+cellBorder+'px solid '+sborderHighlight+';border-top:'+cellBorder+'px solid '+sborderHighlight+';border-right:'+cellBorder+'px solid '+sborderShadow+';border-bottom:'+cellBorder+'px solid '+sborderShadow+';"');}
        document.writeln ('><div id="subbutton'+x+y+'"><a id="subLink'+x+y+'" href="'+subMenu[x][y][1]+'" target="'+subMenu[x][y][2]+'" class="rcSubMenuStatic">'+subMenu[x][y][0]+'</a></div></td></tr>');
      }
      document.writeln ('</table></div>');
    }
  }
 
// Build the submenu2 items **************************
  for (x=0; x<Menu.length; x++)
  { 
	for (y=0; y<subMenu[x].length; y++)
    { 
    	if (subMenu2[x][y].length > 0)
    	{     
      		document.writeln ('<div id="MENU2_'+x+y+'" style="visibility:hidden; position:absolute; z-index:2" >');
      		document.writeln ('<table border="0" cellpadding="'+cellPadding+'" cellspacing="'+styleBorder+'" bgColor="'+sborderColor+'">');
      		for (z=0; z<subMenu2[x][y].length; z++)
      		{
        		document.writeln ('<tr><td id="subMenu2_'+x+y+z+'" class="rcSubMenuStatic" onMouseOver="hoverMenu(); highlightMenu(\'sub2\','+x+','+y+','+z+')" onMouseOut="clearMenu('+x+');" onclick="tdMouseClick(\'subLink'+x+y+'\')" nowrap')
        		if (menuStyle.toLowerCase() == "3d"){document.writeln ('style="border-left:'+cellBorder+'px solid '+sborderHighlight+';border-top:'+cellBorder+'px solid '+sborderHighlight+';border-right:'+cellBorder+'px solid '+sborderShadow+';border-bottom:'+cellBorder+'px solid '+sborderShadow+';"');}
        		document.writeln ('><a id="subLink2_'+x+y+z+'" href="'+subMenu2[x][y][z][1]+'" target="'+subMenu2[x][y][z][2]+'" class="rcSubMenuStatic">'+subMenu2[x][y][z][0]+'</a></td></tr>');
      		}
      		document.writeln ('</table></div>');
    	}
	}
  }
 
// Change colour or menu and submenu items when the mouse hovers over.  
function highlightMenu(element,mainMenu,dropMenu,subMenu2,state)
{
  stateA=(state == "hover")?"rcMenuHoverA":"rcMenuStaticA"
  state=(state == "hover")?"rcMenuHover":"rcMenuStatic"
  if (element == "sub")
  {
    for (x=0; x < subMenu[mainMenu].length; x++)
    {
      eval(obj+'("subMenu'+mainMenu+x+'").className = "rcSubMenuStatic"')
      eval(obj+'("subLink'+mainMenu+x+'").className = "rcSubMenuStaticA"')
    }   
    eval(obj+'("subMenu'+mainMenu+dropMenu+'").className="rcSubMenuHover"')
    eval(obj+'("subLink'+mainMenu+dropMenu+'").className="rcSubMenuHoverA"')
  }
  else
  {
    eval(obj+'("cell'+mainMenu+'").className = "'+state+'"')
    eval(obj+'("mainLink'+mainMenu+'").className = "'+stateA+'"')
    if (subIndicate == 1&&subMenu[mainMenu].length>=1)
    {
      eval(obj+'("cell'+mainMenu+'a").className = "'+state+'"')
      eval(obj+'("mainLink'+mainMenu+'a").className = "'+stateA+'"')
    }
  }
}

// Find positioning for sub menus
function getOffset(obj, dim) 
{
  if(dim=="left") 
  {     
    oLeft = obj.offsetLeft;    
    while(obj.offsetParent!=null) 
    {    
      oParent = obj.offsetParent     
      oLeft += oParent.offsetLeft 
      obj = oParent 	
    }
    return oLeft
  }
  else if(dim=="top")
  {
    oTop = obj.offsetTop;
    while(obj.offsetParent!=null) 
    {
      oParent = obj.offsetParent
      oTop += oParent.offsetTop
      obj = oParent 	
    }
    return oTop
  }
  else if(dim=="width")
  {
    oWidth = obj.offsetWidth
    return oWidth
  }  
  else if(dim=="height")
  {
    oHeight = obj.offsetHeight
    return oHeight
  }    
  else
  {
    alert("Error: invalid offset dimension '" + dim + "' in getOffset()")
    return false;
  }
}


// Show sub menus
function popDown(param, id)
{
  var cellBorderOffset = (isNS6)?cellBorder:eval(cellBorder*2)
  var browserAdjustment = (isNS6)?cellBorder:0
  var menu;
  var button;

  if (id)
  {    
    getOffset(eval(obj+'(id)'),'left');
    getOffset(eval(obj+'(id)'),'top');    
    getOffset(eval(obj+'(id)'),'width');  
    getOffset(eval(obj+'(id)'),'height');
  }  
  n = 0;    
  while (n < Menu.length)
  {          
    menu = "MENU"+n
    if (param == n)
    {
      theObj = eval(obj+'(menu)');
      if (theObj)
      {
         theObj.style.visibility = "visible"

          if (orientation.toLowerCase()=="vertical"){
            theObj.style.left=(menuStyle.toLowerCase()=="flat")?oLeft+oWidth+cellBorder+horizontalOffset:oLeft+oWidth+cellBorderOffset+horizontalOffset;
            theObj.style.top=(menuStyle.toLowerCase()=="flat")?oTop-cellBorder+verticalOffset:oTop+verticalOffset-browserAdjustment}
          else{
            theObj.style.left=(menuStyle.toLowerCase()=="flat")?oLeft-cellBorder+horizontalOffset:oLeft+horizontalOffset-browserAdjustment;
            theObj.style.top=(menuStyle.toLowerCase()=="flat")?oTop+oHeight+cellBorder+verticalOffset:oTop+oHeight+cellBorderOffset+verticalOffset;}
        }
      
       highlightMenu('main',n,'','','hover')
       if (subMenu[param].length > 0)
       {
         for (x=0; x<subMenu[param].length; x++)
         {
           eval (obj+'("subMenu'+param+x+'").className = "rcSubMenuStatic"')
           eval (obj+'("subLink'+param+x+'").className = "rcSubMenuStaticA"')         
         }
       }
    }
    else 
    {          
      if (eval(obj+'(menu)'))
      {
        eval(obj+'(menu).style.visibility = "hidden"')            
      }
      highlightMenu ('main',n,'','','static')

    }
    n++
  }  
}

// Show sub menus
function popDown2(param1, param2, id)
{
  var cellBorderOffset = (isNS6)?cellBorder:eval(cellBorder*2)
  var browserAdjustment = (isNS6)?cellBorder:0
  var menu;
  var button;

  if (id)
  {    
    getOffset(eval(obj+'(id)'),'left');
    getOffset(eval(obj+'(id)'),'top');    
    getOffset(eval(obj+'(id)'),'width');  
    getOffset(eval(obj+'(id)'),'height');
  }  
  n = 0;    
  while (n < Menu.length)
  {          
	m = 0;
	while (m < subMenu[n].length)
  	{          
    	menu = "MENU2_"+n+m
    	if (param1 == n && param2 == m)
    	{
      		theObj = eval(obj+'(menu)');
      		if (theObj)
      		{
         		theObj.style.visibility = "visible"

          		if (orientation.toLowerCase()=="vertical"){
            		theObj.style.left=50 + (menuStyle.toLowerCase()=="flat")?oLeft+oWidth+cellBorder+horizontalOffset:oLeft+oWidth+cellBorderOffset+horizontalOffset;
            		theObj.style.top=(menuStyle.toLowerCase()=="flat")?oTop-cellBorder+verticalOffset:oTop+verticalOffset-browserAdjustment}
          		else{
            		theObj.style.left=((menuStyle.toLowerCase()=="flat")?oLeft-cellBorder+horizontalOffset+oWidth:oLeft+horizontalOffset-browserAdjustment+oWidth);
            		theObj.style.top=(menuStyle.toLowerCase()=="flat")?oTop+oHeight+cellBorder+verticalOffset:oTop+oHeight+cellBorderOffset+verticalOffset;}
       		}
      
       		highlightMenu('sub',n,m,'','hover')
       		if (subMenu2[param1][param2].length > 0)
       		{
         		for (x=0; x<subMenu2[param1][param2].length; x++)
         		{
           			eval (obj+'("subMenu2_'+param1+param2+x+'").className = "rcSubMenuStatic"')
           			eval (obj+'("subLink2_'+param1+param2+x+'").className = "rcSubMenuStaticA"')         
         		}
       		}
    	}
    	else 
    	{          
      		if (eval(obj+'(menu)'))
      		{
        		eval(obj+'(menu).style.visibility = "hidden"')            
      		}
      		highlightMenu ('sub',n,m,'','static')

    	}
    	m++
    }  
    n++
  }  
}



// Re-set timer for sub menus
function hoverMenu()
{
  if(timer)
  clearTimeout(timer)
}

// Set timer for sub menus
function clearMenu(menu)
{
  setDelay = subMenuDelay*1000
  delay = (subMenu[menu].length > 0)?setDelay:1
  
  timer = setTimeout("popDown("+(Menu.length + 1)+")",delay)
}

// when you click the box, perform the same function as if the user had clicked the hyperlink
function tdMouseClick(theElement)
{
  eval(obj+'(theElement).click()')
}
////// END MENU CODE  ///////////////////////////////////////////////////////////////////

