<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html><head><title>xmenu-xlayer</title> 
     
    <meta name="KEYWORDS" content=""> 
    <meta name="DESCRIPTION" content=""> 
 
<style type="text/css"> 
  <!-- 
  body 
  { 
    background-color: #ffffff; 
    color: #000000; 
    font-size: 12px; 
    font-family: Arial, Helvetica; 
  } 
 
  p 
  { 
    color: #a1a1a1; 
    font-weight: bold; 
  } 
 
  a 
  { 
    font-family: Arial, Helvetica; 
    text-decoration: none 
  } 
  a:active 
  { 
    color: #a1a1a1 
  } 
  a:link 
  { 
    color: #a1a1a1 
  } 
  a:visited 
  { 
    color: #a1a1a1 
  } 
  a:hover 
  { 
    color: #cccccc; 
    text-decoration: none; 
  } 
 
  .orange 
  { 
    background-color: #ff7f00; 
  } 
  .dark_orange 
  { 
    background-color: #ff5500; 
  } 
  a.navigation_links 
  { 
    font-family: Arial, Helvetica, sans serif;  
    font-size:10px;  
    color: #fadada; 
    font-weight: 600; 
  } 
  a:hover.navigation_links 
  { 
    font-family: Arial, Helvetica, sans serif;  
    font-size:10px;  
    color:white; 
    font-weight: 600; 
  } 
  .content 
  { 
    font-family: Arial, Helvetica, sans serif; 
    background-color: #ffffff; 
    color: #000000; 
    font-size: 12px; 
  } 
  --> 
 
 
     
     
    </style> 
<!-- Browser.js --> 
    <script language="javascript"> 
// created by: Andre Dietisheim ([email protected]) 
// created: 2001-31-12 
// modified by: Andre Dietisheim ([email protected]) 
// modified: 2004-01-28 
// version: 0.8.0 
 
function Browser( browsers )  
{ 
  this.browsers = browsers;  // browser detection array 
  this.createBooleans(); 
} 
 
Browser.prototype.createBooleans = function()  
{ 
  var name = navigator.appName; 
  var cname = navigator.appCodeName; 
  var usragt = navigator.userAgent; 
  var ver = navigator.appVersion; 
  for ( i = 0; i < this.browsers.length; i++ )  
  { 
    var browserArray = this.browsers[ i ]; // browsers-array 
 
    var sCheck = browserArray[ 1 ]; // 'logical expr' that detects the browser 
    var sCurrentVersion = browserArray[ 2 ]; // 'regexp' that gets current version 
    var sBrand = browserArray[ 0 ]; // browser-obj 'property' (is.xx) 
    var availableVersions = browserArray[ 3 ]; // 'versions' to check for 
 
    if ( eval( sCheck ) ) 
    { // browser recognized 
      eval( "this." + sBrand + " = true" ); // browser-obj property (is.xx) 
      var regexp, ver, sMinorVersion, sMajorVersion; 
      regexp = new RegExp( sCurrentVersion ); 
      regexp.exec( usragt ); // parse navigator.userAgent 
      var sMajorVersion = RegExp.$1; 
      var sMinorVersion = RegExp.$2; 
 
      for ( j = 0; j < availableVersions.length; j++ ) 
      { 
        if ( parseFloat(availableVersions[ j ]) <= eval( sMajorVersion + "." + sMinorVersion ) ) 
        { // upper versions 
          eval( "this." + sBrand + availableVersions[ j ].substr( 0, 1 ) + availableVersions[ j ].substr( 2, 1 ) + "up = true" ); 
        } 
        if ( parseFloat(availableVersions[ j ]) == eval( sMajorVersion + "." + sMinorVersion ) )  
        { /// current version 
          eval( "this." + sBrand + availableVersions[ j ].substr( 0, 1 ) + availableVersions[ j ].substr( 2, 1 ) + "= true" ); 
        } 
      } 
    } 
  } 
} 
 
is = new Browser (  
[ 
  // Internet Explorer Windows --- 
  [ "iewin", 
    "cname.indexOf( 'Mozilla' ) >= 0 && name.indexOf( 'Microsoft Internet Explorer' ) >= 0 && usragt.indexOf( 'MSIE' ) >= 0 && usragt.indexOf( 'Opera' ) < 0 && usragt.indexOf( 'Windows' ) >= 0", // IE detection expression 
    "MSIE.([0-9]).([0-9])",  // regexpr for version (in navigator.userAgent) 
    [ "5", "5.5", "6" ] ],  // published versions 
  // Internet Explorer Macintosh --- 
  [ "iemac", 
    "cname.indexOf( 'Mozilla' ) >= 0 && name.indexOf( 'Microsoft Internet Explorer' ) >= 0 && usragt.indexOf( 'MSIE' ) >= 0 && usragt.indexOf('Opera') < 0 && usragt.indexOf('Mac') >= 0", 
    "MSIE.([0-9]).([0-9])", 
    [ "5", "5.1", "5.2" ] ], 
  // Gecko (Mozilla, Galeon, Firebird, Netscape >=6.x) --- 
  [ "gk",  
    "cname.indexOf( 'Mozilla' ) >= 0 && name.indexOf( 'Netscape' ) >= 0 && usragt.indexOf( 'Gecko' ) >= 0 && usragt.indexOf( 'Safari' ) < 0", 
    "[rv[:| ]*([0-9]).([0-9])|Galeon\/([0-9]).([0-9])]", 
    [ "0.7", "0.8", "0.9", "1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6" ] ], 
  // Netscape Navigator --- 
  [ "nn", 
    "cname.indexOf( 'Mozilla' ) >= 0 && name.indexOf( 'Netscape' ) >=0 && parseInt( ver ) <= 4", 
    "([0-9]).([0-9])", 
    [ "4", "4.5", "4.7", "4.8" ] ], 
  // Opera --- 
  [ "op", 
    "cname.indexOf( 'Mozilla' ) >= 0 && ( name.indexOf( 'Microsoft Internet Explorer' ) >=0 || name.indexOf( 'Opera' ) >= 0 ) && usragt.indexOf( 'Opera' ) >= 0", 
    "Opera.([0-9]).([0-9])", 
    [ "5", "5.1", "6", "7", "7.1", "7.2" ] ], 
  // Safari --- 
  [ "sf", 
    "cname.indexOf( 'Mozilla' ) >= 0 && name.indexOf( 'Netscape' ) >=0 && usragt.indexOf('AppleWebKit' ) >= 0 && usragt.indexOf('Safari') >= 0", 
    "AppleWebKit\/([0-9])",  
    "Konqueror\/([0-9]\.[0-9])", 
    [ "48", "85" ] ], 
  // Konqueror --- 
  [ "kq", 
    "cname.indexOf( 'Mozilla' ) >= 0 && name.indexOf( 'Konqueror' ) >= 0 && usragt.indexOf( 'Konqueror' ) >= 0", 
    "Konqueror\/([0-9]).([0-9]*)", 
    [ "2.2", "3", "3.1" ] ] 
] ); 
 
     
    </script> 
<!-- XlayerParent.js --> 
    <script language="javascript"> 
// created by: Andre Dietisheim ([email protected]) 
// created:  2001-12-20 
// modified by: Andre Dietisheim ([email protected]) 
// modified: 2004-02-06 
// version: 1.4.0 
 
function XlayerParent( sLayerId, sImg, sDesc, iWidth, iHeight, sContent ) 
{ 
  // static var -------- 
  if( !XlayerParent.prototype.instances ) XlayerParent.prototype.instances = new Array(); 
  XlayerParent.prototype.instances[ XlayerParent.prototype.instances.length ] = this; 
  this.sId = this.create( sLayerId, sImg, sDesc, iWidth, iHeight ) 
} 
 
XlayerParent.prototype.create = function( sLayerId, sImg, sDesc, iWidth, iHeight ) 
{ 
  this.sParentLayerId = sLayerId; 
  this.sParentLayerXlayerId = sLayerId + "Xlayer" 
 
  var sLayer = ""; 
  var content_str = ''; 
 
  if ( sImg ) 
    sContent = '<img src="' + sImg + '" width="' + iWidth + '" height="' + iHeight + '" border="0" >'; 
  else if ( sDesc ) 
    sContent = sDesc; 
 
  // nn4up ---------- 
  if ( is.nn4up ) 
  { 
    var sLayer = '<ilayer id="' + sLayerId + '" top=0 left=0 width=' + iWidth + ' height=' + iHeight + ' >' + ( ( sContent )? sContent : "" ) + '</ilayer>'; 
    document.write( sLayer ); 
    return sLayerId; 
  } 
 
  // iewin5up, iemac5up, gk -------- 
  else if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op6up ) 
  { 
    var sLayer = '<div id="' + sLayerId + '" style="position:relative; width: ' + iWidth + 'px; height: ' + iHeight + 'px; ">'  + ( ( sContent )? sContent : "" ) + '</div>'; 
    document.write( sLayer ); 
    return sLayerId; 
  } 
  else 
  { 
    return null; 
  } 
} 
 
XlayerParent.prototype.getLayer = function( sLayerId ) 
{ 
  var layer = null; 
 
  if ( sLayerId ) 
  {  // id supplied 
    if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op6up ) 
      return document.getElementById( sLayerId ); 
    else if ( is.nn4up ) 
      return document.layers[ sLayerId ]; 
  } 
  else if ( !sLayerId ) 
  {  // null supplied 
    if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op6up ) 
      return document.body; 
    else if ( is.nn4up ) 
      return window; 
  } 
} 
 
 
XlayerParent.prototype.getX = function( layer ) 
{ 
  var x = 0; 
 
  if ( is.nn4up ) 
  { 
    if ( layer != window )       
      x = layer.pageX; 
  } 
  else if ( is.gk || is.iemac5up || is.iewin5up || is.sf || is.kq3up || is.op6up ) 
  { 
    if ( layer != document.body ) 
    { 
      currentX = 0; 
      object = layer; 
      while ( object ) 
      { 
        currentX += object.offsetLeft; 
        object = object.offsetParent; 
      } 
      x = currentX; 
    } 
 
    if ( is.iemac5up ) 
      x += parseInt( "0" + document.body.currentStyle.marginLeft, 10  ); 
 
  } 
  return x; 
} 
 
 
XlayerParent.prototype.getY = function( layer ) 
{ 
  var y = 0; 
 
  if ( is.nn4up ) 
  { 
    if ( layer != window )  y = layer.pageY; 
  } 
  else if ( is.gk || is.iewin || is.iemac5up || is.sf || is.kq3up || is.op6up ) 
  { 
    if ( layer != document.body ) 
    { 
      currentY = 0; 
      object = layer; 
      while ( object ) 
      { 
        currentY += object.offsetTop; 
        object = object.offsetParent; 
      } 
      y = currentY; 
    } 
    if ( is.iemac5up ) 
      y += parseInt( "0" + document.body.currentStyle.marginTop, 10  ); 
  } 
 
  return y; 
} 
 
 
XlayerParent.prototype.getW = function( layer ) 
{ 
  var w = 0; 
 
  if ( is.nn4up ) 
  { 
    if ( layer == window ) 
      return window.innerWidth; 
    else 
      return layer.clip.width; 
  } 
  else if ( is.gk || is.iemac5up || is.sf || is.kq3up || is.op6up ) 
  { 
    if ( layer == document.body ) 
      return window.innerWidth; 
    else 
      return layer.offsetWidth; 
  } 
  else if ( is.iewin5up ) 
  { 
    if ( layer == document.body ) 
      return document.body.clientWidth; 
    else 
      return layer.offsetWidth; 
  } 
} 
 
 
XlayerParent.prototype.getH = function( layer ) 
{ 
  var h = 0; 
 
  if ( is.nn4up ) 
  { 
    if ( layer == window ) 
      return window.innerHeight; 
    else 
      return layer.clip.height; 
  } 
  else if ( is.gk || is.iemac5up || is.sf || is.kq3up || is.op6up ) 
  { 
    if ( layer == document.body ) 
      return window.innerHeight; 
    else 
      return layer.offsetHeight; 
  } 
  else if ( is.iewin5up ) 
  { 
    if ( layer == document.body ) 
      return document.body.clientHeight; 
    else 
      return layer.offsetHeight; 
  } 
} 
     
    </script> 
<!-- Xlayer.js -->     
    <script language="javascript"> 
// created by: Andre Dietisheim ([email protected]) 
// created: 2001-12-20 
// modified by: Andre Dietisheim ([email protected]) 
// modified: 2004-02-21 
// version: 2.5.3 
 
function Xlayer( sParent, xlayerParent, x, y, offsetX, offsetY, w, h,  iClipTop, iClipRight, iClipBottom, iClipLeft, iZindex, bVisibility, sBgcolor, fading, events, sText, bBold, sAlign, iTopTextBorder, iRightTextBorder, iBottomTextBorder, iLeftTextBorder, sFgcolor, sHref, sIcon, iIconWidth, iIconHeight, iconBorder, sFontface, iFontsize, src , sSpacer ) 
{ 
  if ( !Xlayer.prototype.instances ) 
    Xlayer.prototype.instances = new Array(); 
  Xlayer.prototype.instances[ Xlayer.prototype.instances.length ] = this; // Store this Instance In static array 
 
  this.index = Xlayer.prototype.instances.length - 1; 
  this.sParent = sParent; 
  this.parent = null; 
  this.xlayerParent = xlayerParent; 
  this.lyr = null; 
  this.id = this.id || "Xlayer" + this.index; 
  this.x = x || 0; 
  this.y = y || 0; 
  this.offsetX = offsetX ||  0; 
  this.offsetY = offsetY ||  0; 
  this.w = w ||  0; 
  this.h = h || 0; 
  this.iClipTop = iClipTop || 0; 
  this.iClipRight = iClipRight || w; 
  this.iClipBottom = iClipBottom || h; 
  this.iClipLeft = iClipLeft || 0; 
  this.iZindex = iZindex || 0; 
  this.bVisibility = bVisibility; 
  this.sBgcolor = sBgcolor || "black"; 
  this.iOpacity = 0; 
  this.sSpacer = sSpacer; 
 
  // caption --- 
  this.sText = sText || null; 
  this.bBold = bBold || false; 
  this.sAlign = sAlign || "center"; 
  this.iTopTextBorder = iTopTextBorder; 
  this.iRightTextBorder = iRightTextBorder; 
  this.iBottomTextBorder = iBottomTextBorder; 
  this.iLeftTextBorder = iLeftTextBorder; 
  this.sFgcolor = sFgcolor || "white"; 
  this.sHref = ( is.nn4up && !sHref )? "#" : sHref; // nn4 always need a href to process clicks 
  this.sFontface = sFontface || "Helvetica"; 
  this.iFontsize = iFontsize || 2; 
  this.sIcon = sIcon ||  null; 
  this.iIconWidth = iIconWidth || 0; 
  this.iIconHeight = iIconHeight || 0; 
  this.iconBorder = iconBorder || 0; 
 
  // iframe ---- 
  this.iframe = null; 
  this.scrollbars = null; 
  this.src = src ||  null; 
  this.events = events || null; // array: event, func, event, func, ... 
  this.fading =  fading || null; // array: start, stop, steps, delay 
 
  if ( is.op6up && !is.op7up ) // opera can't create dynamically 
    this.writeDiv(); 
} 
 
Xlayer.prototype.MOUSEOVER = "onmouseover"; 
Xlayer.prototype.MOUSEOUT = "onmouseout"; 
Xlayer.prototype.CLICK = "onclick"; 
 
 
Xlayer.prototype.create = function()  
{ 
  this.parent = XlayerParent.prototype.getLayer( this.sParent ); // parent = another layer or document.body 
  this.parentCoordsOnly = XlayerParent.prototype.getLayer( this.xlayerParent.sId ); 
  if ( is.nn4up ) 
  { 
    if ( this.w == "100%" ) 
      this.lyr = new Layer( this.parent.innerWidth, this.parent ); 
    else 
      this.lyr = new Layer( this.w, this.parent ); 
  } 
  else if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op7up ) 
  { 
    this.lyr = document.createElement( "DIV" ); // create layer 
    this.lyr.style.position = "absolute"; 
    this.lyr.style.overflow = "hidden"; 
    this.lyr.id = this.id; 
    this.parent.appendChild( this.lyr ); // insert into DOM 
  } 
  else if ( is.op6up && !is.op7up ) 
  { // already created on instanciation (no dynamic creation possible) 
    this.lyr = document.getElementById( this.id ); 
  } 
   
  this.setVisibility( this.bVisibility ); 
  this.setSize( this.w, this.h ); 
  this.setEvents( this.events ); 
  if ( !( is.op6up && !is.op7up ) )  
    this.setBody( this.getCaption( this.sText, this.bBold, this.sIcon, this.iIconWidth, this.iIconHeight, this.iconBorder ) ); 
  this.setBgColor( this.sBgcolor ); 
  this.setFgColor( this.sFgcolor ); 
  this.setPos( this.x, this.y, this.offsetX, this.offsetY ); 
  this.setZindex( this.iZindex ); 
  this.fade( this.fading ); 
} 
 
Xlayer.prototype.writeDiv = function() 
{ 
  document.writeln( '<div id="' + this.id + '" style="position:absolute;">' + this.getCaption( this.sText, this.bBold, this.sIcon, this.iIconWidth, this.iIconHeight, this.iconBorder ) + '</div>' ); 
} 
 
Xlayer.prototype.kill = function() 
{ 
  if ( is.nn4up ) 
  { 
    for ( i = 0; i < document.layers.length ; i++ ) // scan trough layers-array in NN-DOM 
    { 
      this.setVisibility( false ); 
      if ( document.layers[ i ].id == this.lyr.id )   
      { 
        index = i; 
        //document.layers.splice(i, 1) 
        //delete document.layers[i] 
        document.layers[ i ] = null; 
        break; 
      } 
    } 
  } 
  else if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op7up ) 
  { 
    var lyr; 
    lyr = document.getElementById( this.lyr.id ); 
    document.body.removeChild( lyr ); 
  } 
  this.iOpacity = 0; 
} 
 
Xlayer.prototype.setFgColor = function( color ) 
{ 
  if ( this.sText ) 
  { 
    this.sFgcolor = color; 
 
    if ( is.nn4up ) 
      this.setBody( this.getCaption( this.sText, this.bBold, this.sIcon, this.iIconWidth, this.iIconHeight, this.iconBorder ) ); 
    else if ( is.iewin5up || is.iemac5up || is.gk || is.sf  || is.kq3up || is.op6up ) 
    { 
      if ( this.sText ) 
      { 
        document.getElementById( this.id+"d" ).style.color = color; 
        //this.setCaption( this.sText, this.bBold, this.sIcon, this.iIconWidth, this.iIconHeight, this.iconBorder ); 
      } 
    } 
  } 
 
} 
 
Xlayer.prototype.setBgColor = function( color ) 
{ 
  this.sBgcolor = color; 
 
  if ( is.nn4up ) 
    this.lyr.document.bgColor = color; 
  else if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op6up ) 
    this.lyr.style.backgroundColor = color; 
} 
 
Xlayer.prototype.setSize = function( w, h ) 
{ 
  var iOldWidth = this.w; // store old values 
  var iOldHeight = this.h; 
 
  this.w = w; // store new values 
  this.h = h; 
 
  if ( is.nn4up ) 
  { 
    if ( w == "100%" ) 
      this.lyr.resizeTo( window.innerWidth, h ); 
    else  
      this.lyr.resizeTo( w, h ); 
  } 
  else if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op7up ) 
  { 
    if ( w == "100%" ) 
    { 
      this.lyr.style.width = "100%"; 
      this.lyr.style.height = h + 'px'; 
    } 
    else 
    { 
      this.lyr.style.width = w + 'px'; 
      this.lyr.style.height = h + 'px'; 
    } 
 
    this.setClipping( this.iClipTop, ( this.iClipRight + w - iOldWidth ),  ( this.iClipBottom + h - iOldHeight ), this.iClipLeft ); 
 
    if ( is.iewin5up && this.iframe ) // recreate iframe on resize 
      this.setIframe( this.src ); 
  } 
  else if ( is.op6up && !is.op7up ) 
  { 
    if ( w == "100%" ) 
    { 
      this.lyr.style.pixelWidth = "100%"; 
      this.lyr.style.pixelHeight = h; 
    } 
    else 
    { 
      this.lyr.style.pixelWidth = w; 
      this.lyr.style.pixelHeight = h; 
    } 
  } 
} 
 
Xlayer.prototype.setPos = function( x, y, offsetX, offsetY ) 
{ 
  var parent; 
  if ( this.parentCoordsOnly ) 
    parent = this.parentCoordsOnly; 
  else 
    parent = this.parent; 
     
  // calc x, y --- 
  if ( x == "centered" ) 
    x = XlayerParent.prototype.getX( parent ) + ( XlayerParent.getW( parent ) / 2 ) - this.w / 2; 
  else if ( x == "left" ) 
    x = this.xlayerParent.getX( parent ); 
  else if ( x == "right" ) 
    x = XlayerParent.prototype.getX( parent ) + XlayerParent.prototype.getW( parent ) - this.w; 
 
  if ( y == "centered" ) 
    y = XlayerParent.prototype.getY( parent ) + ( XlayerParent.prototype.getH( parent ) / 2 ) - this.h / 2; 
  else if ( y == "top" ) 
    y = XlayerParent.prototype.getY( parent ); 
  else if ( y == "bottom" ) 
    y = XlayerParent.prototype.getY( parent ) + XlayerParent.prototype.getH( parent ) - this.h; 
 
  if ( offsetX ) 
    x += offsetX; 
  if ( offsetY ) 
    y += offsetY; 
 
  this.x = x; 
  this.y = y; 
 
  // set position --- 
  if ( is.nn4up ) 
  { 
    this.lyr.moveTo( this.x, this.y ); 
  } 
  else if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op6up ) 
  { 
    this.lyr.style.top = this.y + "px"; 
    this.lyr.style.left = this.x + "px"; 
  } 
} 
 
Xlayer.prototype.setVisibility = function( bVisibility )  
{ 
  this.bVisibility = bVisibility; 
  if ( this.lyr )  
  { 
    if ( is.nn4up )  
    { 
      this.lyr.visibility = ( bVisibility )? "show" : "hide"; 
    } 
    else if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op6up )  
    { 
      this.lyr.style.visibility = ( bVisibility )? "visible" : "hidden"; 
    } 
  } 
} 
 
Xlayer.prototype.isVisible = function()  
{ 
  return this.bVisibility; 
} 
 
Xlayer.prototype.setFontsize = function( iFontsize ) 
{ 
  this.iFontsize = iFontsize; 
} 
 
Xlayer.prototype.setFontface = function( sFontface ) 
{ 
  this.sFontface = sFontface; 
} 
 
Xlayer.prototype.setClipping = function( top, right, bottom, left ) 
{ 
  if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op7up ) 
  { 
    this.lyr.style.clip = "rect(" + top + "px " + right + "px " + bottom + "px " + left + "px)"; 
  } 
  else if ( is.nn4up ) 
  { 
    this.lyr.clip.top = top; 
    this.lyr.clip.right = right; 
    this.lyr.clip.bottom = bottom; 
    this.lyr.clip.left = left; 
  } 
  this.iClipTop = top; 
  this.iClipRight = right; 
  this.iClipBottom = bottom; 
  this.iClipLeft = left; 
} 
 
Xlayer.prototype.setZindex = function( iZindex ) 
{ 
  this.iZindex = iZindex; 
 
  if ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op6up ) 
  { 
    this.lyr.style.zIndex = iZindex; 
  } 
  else if ( is.nn4up ) 
  { 
    this.lyr.zIndex = iZindex; 
  } 
} 
 
Xlayer.prototype.setEvents = function( events ) 
{ 
  if( events ) 
  { 
    for ( i = 0; i < events.length; ) 
    { 
      var e = events[ i++ ]; 
      var func = events[ i++ ]; 
 
      if ( is.gk || is.sf || is.kq3up || is.op7up ) this.lyr.addEventListener( e.substring( 2, e.length ), this.onEvent( e, func, this.lyr ), false ); 
      else if ( is.iewin5up || is.iemac5up || is.op6up ) this.lyr[ e.toLowerCase() ] = this.onEvent( e, func, this.lyr );//new Function( func ); 
      else if ( is.nn4up ) 
      { 
        this.lyr.captureEvents( Event[ e.toUpperCase().substring( 2 ) ] ); 
        this.lyr[ e.toLowerCase() ] = new Function( func ); 
      } 
    } 
  } 
} 
 
Xlayer.prototype.onEvent = function( event, func, xlayer ) 
{ 
  return function( e ) 
  { 
    var e = arguments[ 0 ]; 
    if ( event == Xlayer.prototype.MOUSEOVER || event == Xlayer.prototype.MOUSEOUT ) 
    { 
      if ( !e ) var e = window.event; //ie 
 
      if ( e.target && e.relatedTarget ) 
      { 
        var target = e.target; 
        var relatedTarget = e.relatedTarget; 
      } 
      else if ( e.fromElement && e.toElement ) 
      { 
        var target = e.toElement; 
        var relatedTarget = e.fromElement; 
      } 
      if ( Xlayer.prototype.isChildNode( relatedTarget, xlayer ) && Xlayer.prototype.isChildNode( target, xlayer ) ) 
        return false; // ignore events of inner html-entities  
    } 
    return eval( func ); 
  }; 
} 
 
Xlayer.prototype.isChildNode = function( node, parentNode ) 
{ 
  if ( node == parentNode ) 
  { 
    return true; 
  } 
  else if ( node && node.parentNode ) 
    return Xlayer.prototype.isChildNode( node.parentNode, parentNode ); 
  else 
    return false; 
} 
 
Xlayer.prototype.setBody = function( sHtml ) 
{ 
  if ( is.iewin5up || is.iemac || is.op7up || is.kq3up ) 
    this.lyr.innerHTML = sHtml; 
  else if ( is.gk || is.sf ) 
  { 
    while ( this.lyr.hasChildNodes() ) 
        this.lyr.removeChild( this.lyr.firstChild ); 
    var range = this.lyr.ownerDocument.createRange(); 
    range.selectNodeContents( this.lyr ); 
    range.deleteContents(); 
    var contextualFrag = range.createContextualFragment( sHtml ); 
    this.lyr.appendChild( contextualFrag ); 
  } 
  else if( is.nn4up ) 
  { 
    this.lyr.document.open() 
    this.lyr.document.write( sHtml ); 
    this.lyr.document.close(); 
  } 
  else if ( is.op6up && !is.op7up ) 
    this.sBody = sHtml; 
} 
 
Xlayer.prototype.scroll = function( orientation, step ) 
{ 
  this.orientation = orientation; 
  this.step = step; 
 
  // scrolling possible (clipping present) 
  if ( ( this.iClipRight < this.w ) || ( this.iClipTop != 0 ) || ( this.iClipLeft > 0 ) || ( this.iClipBottom < this.h ) )  
  { // scrolling possible 
    if ( orientation == "horiz" ) 
    { 
      if ( this.iClipLeft + step > 0 && this.iClipRight  + step < this.w )  
      {  // border reached? 
        this.setPos(this.x - step, this.y); 
        this.setClipping(this.iClipTop, this.iClipRight + step, this.iClipBottom, this.iClipLeft + step); 
      } 
    } 
    else if ( orientation == "vert" ) 
    { 
      if ( this.iClipTop + step > 0 && this.iClipBottom + step < this.h )  
      {  // border reached? 
        this.setPos( this.x, this.y - step ); 
        this.setClipping( this.iClipTop + step, this.iClipRight, this.iClipBottom + step, this.iClipLeft ); 
      } 
    } 
  } 
} 
 
Xlayer.prototype.setOpacity = function( iOpac ) 
{ 
  if ( is.iewin5up || is.iemac5up ) 
    this.lyr.style.filter = "alpha(opacity=" + iOpac + ")"; 
 
  else if ( is.gk ) 
  { 
    this.lyr.style.MozOpacity = iOpac / 100;//opac + "%"; 
  } 
/*  not tested yet 
  else if ( is.kq3up ) 
  { 
    this.lyr.style.KhtmlOpacity = iOpac / 100; 
  } 
*/} 
 
Xlayer.prototype.fade = function( fading ) 
{ 
  if ( fading ) 
  { 
    start =  fading[ 0 ]; // opacity start value 
    stop =  fading[ 1 ]; // stop 
    steps =  fading[ 2 ]; // number of steps 
    delay =  fading[ 3 ]; // delay in ms 
 
    this.iOpacity = this.iOpacity + parseInt( ( stop - start ) / steps ); 
    this.setOpacity( this.iOpacity ); 
 
    if ( this.iOpacity < stop ) 
      setTimeout( "Xlayer.prototype.instances[" + this.index + "].fade( Xlayer.prototype.instances[" + this.index + "].fading )", delay); 
 
    this.fading = fading; 
    return true; 
  } 
} 
 
Xlayer.prototype.setIframe = function( src, scrollbars ) 
{ 
  this.src =  src; 
 
  if ( scrollbars != null ) 
  { 
    this.scrollbars = ( scrollbars )? "yes"  : "no"; 
  } 
  else if ( this.scrollbars == null ) 
  { 
    this.scrollbars = "yes";      // default for scrollbars: 'yes' 
  } 
 
  if ( is.nn4up ) 
  { 
    this.lyr.src = src; 
  } 
  else if ( is.iewin5 ) 
  { // ugly workaround: ie5 basically cannot create dynamically : frame, iframe 
 
    this.lyr.innerHTML = "<iframe width='100%' height='100%' frameborder='0' scrolling='" + this.scrollbars + "' id='" + this.id + "_iframe" + "'></iframe>"; 
    this.lyr.contentWindow = new Object(); 
    this.lyr.contentWindow.location = new Object(); 
    this.iframe = document.getElementById(this.id + "_iframe");    // store iframe 
    this.lyr.contentWindow.location.iframe = this.iframe; 
    this.lyr.contentWindow.location.iframe.id = ""; 
    this.lyr.contentWindow.location.iframe.src = src 
  } 
  else if ( is.iewin55up || is.iemac5up || is.gk || is.sf || is.kq3up || is.op7up ) 
  { 
    var iframe; 
    iframe = document.createElement( "IFRAME" );      // create iframe 
    iframe.src = src; 
    iframe.name = this.id + "_iframe"; 
    iframe.scrolling = this.scrollbars; 
    iframe.frameBorder = "0px"; 
    iframe.style.visibility = "inherit"; 
 
    if ( is.iewin55up ) 
    { 
      iframe.style.width = this.w + "px"; 
      iframe.style.height = this.h + "px"; 
    } 
    else if ( is.iemac5up || is.gk || is.sf || is.kq3up || is.op7up ) 
    { 
      iframe.style.width = "inherit"; 
      iframe.style.height = "inherit"; 
    } 
 
    while ( this.lyr.hasChildNodes() ) 
    {  // remove existing layer child-nodes 
      this.lyr.removeChild( this.lyr.lastChild ); 
    } 
    this.lyr.appendChild( iframe ) // insert iframe into layer 
 
    this.iframe = iframe; 
  } 
} 
 
Xlayer.prototype.getCaption = function( sText, bBold, sIcon, iIconWidth, iIconHeight, iIconBorder ) 
{ 
  this.sText = sText; 
  this.sIcon = sIcon; 
  this.iIconWidth = iIconWidth; 
  this.iIconHeight = iIconHeight; 
 
  var tab_head = '<table style="' + ( ( is.iewin5up )? 'cursor: hand;' : 'cursor: pointer;" ' ) + 'width="' + this. w + '" height="' + this.h + '" border="0" cellpadding="0" cellspacing="0">'; 
  var tab_foot = '</table>'; 
 
  if ( sText || sIcon ) 
  { 
    // content --- 
    var img = "", desc = "", html ="", tab_body = "", sTextCell = ""; 
    if ( sIcon ) 
      img = '<img src="' + sIcon + '" width="' + iIconWidth + '" height="' + iIconHeight + '">'; 
    if ( sText ) 
    {         
      if ( is.nn4up ) 
        sTextCell = '<font id="' + this.id + 'd" color="' + this.sFgcolor + '" size="' + ( parseInt( "0" + ( this.iFontsize / 5 ), 10 ) ) + '" face="' + this.sFontface + '">' + ( ( bBold )? '<b>' : '' ) + sText + ( ( bBold )? '</b>' : '' ) + '</font>'; 
      else if ( is.iewin5up || is.gk || is.sf || is.kq3up || is.iemac5up || is.op6up ) 
        sTextCell = '<span id="' + this.id + 'd" style="' + 'color:' + this.sFgcolor + ';' + 'font-size:' + this.iFontsize + 'px;' + 'font-family:' + this.sFontface + ';' + ( ( bBold )? ' font-weight:bold;' : '' ) + 'height:' + this.iFontsize + 'px">' + sText + '</span>'; 
    } 
    if ( this.sHref && is.nn4up ) // nn4 always needs a <a href... 
      sTextCell = "<a href='" + this.sHref + "' style='text-decoration: none;'>" + sTextCell + "</a>"; 
 
    // text cell ----- 
    var iTextCellWidth = this.w - iIconWidth - iIconBorder; 
    var iTextCellHeight = this.h - this.iTopTextBorder - this.iBottomTextBorder; 
    desc += '<table width="' + iTextCellWidth + '" height="' + this.h + '" cellpadding="0" cellspacing="0" border="0">'; 
    // top text border 
    if ( this.iTopTextBorder > 0 ) 
      desc += '<tr style="line-height: ' +  this.iTopTextBorder + 'px"><td colspan="3" height="' + this.iTopTextBorder + '"><img src="' + this.sSpacer + '" width="1" height="' + this.iTopTextBorder + '" border="0"></td></tr>'; 
    desc += '<tr style="line-height: ' +  this.iFontsize + 'px">'; 
    // left border 
    if ( this.iLeftTextBorder > 0 ) 
      desc += '<td><img src="' + this.sSpacer + '" width="' + this.iLeftTextBorder + '" height="1" border="0"></td>'; 
    // text cell 
    desc += '<td valign="middle" align="' + this.sAlign + '">' + sTextCell + '</td>'; 
    // right border 
    if ( this.iRightTextBorder > 0 ) 
      desc += '<td><img src="' + this.sSpacer + '" width="' + this.iRightTextBorder + '" height="1" border="0"></td>'; 
    desc += '</tr>'; 
    // bottom text border 
    if ( this.iBottomTextBorder > 0 ) 
      desc += '<tr style="line-height: ' + this.iBottomTextBorder + 'px"><td colspan="3" height="' + this.iBottomTextBorder + '"><img src="' + this.sSpacer + '" width="1" height="' + this.iBottomTextBorder + '" border="0"></td></tr>'; 
    // right border 
    desc += '</table>'; 
    // text & icons --- 
    if ( sIcon && sText ) 
    { 
      tab_body = 
        '<tr>' + 
          '<td nowrap '; 
      if ( is.iemac5 ) 
      { 
        tab_body += 'style="position: absolute; top: 0px; height: ' + this.iFontsize + 'px; width: ' + ( this.w - iIconWidth - iIconBorder ) + 'px; vertical-align: middle;" '; 
      } 
      tab_body += 
            'width="' + ( this.w - iIconWidth  - iIconBorder ) + '" height="' + this.h + '" align="' + this.sAlign + '" valign="middle">' + 
            desc + 
          '</td>' + 
          '<td '; 
      if ( is.iemac5 ) 
      { 
        tab_body += 'style="position: absolute; top: ' + ( ( this.h - iIconHeight ) / 2 ) + 'px; left: ' + ( this.w - iIconWidth - iIconBorder ) + 'px; bottom: ' + iIconHeight + 'px; right:' + ( iIconWidth + iIconBorder ) + 'px;height: ' + iIconHeight + 'px; width: ' + ( iIconWidth + iIconBorder ) + 'px" '; 
      } 
      tab_body += 
          'width="' + ( iIconWidth + iIconBorder ) + '" height="' + this.h + '" align="center" valign="middle" >' + 
            img + 
          '</td>' + 
        '</tr>'; 
    } 
 
    // text only --- 
    else if ( sText && !sIcon ) 
    { 
      tab_body = '<tr><td '; 
      if ( is.iemac5 ) 
      { 
        tab_body += 'style="position: absolute; top: 0; left: 0" '; 
      } 
      tab_body += 
        'width="' + this.w + '" height="' + this.h + '" align="' + this.sAlign + '" valign="middle">' + desc + '</td></tr>'; 
    } 
    // icon only --- 
    else if ( sIcon && !sText ) 
    { 
      tab_body = '<tr><td nowrap '; 
      if ( is.iemac5 ) 
      { 
        tab_body += 'style="position: absolute; top: 0; left: 0" '; 
      } 
      tab_body += 'width="' + this.w + '" height="' + this.h + '" align="' + this.sAlign + '" valign="middle">' + sIcon + '</td></tr>'; 
    } 
    var html = tab_head + tab_body + tab_foot; 
 
    return html; 
  } 
} 
     
    </script> 
<!-- Xmenu.js -->     
    <script language="javascript"> 
/** 
* @author  Andre Dietisheim ([email protected]) 
* @version 2.5.2, 2004-02-10 (created on 2002-04-22) 
* Copyright (c) 2001-2004 Andre Dietisheim 
*/ 
 
function Xmenu( sNavigationName, sNavigation, globals, styles, contents ) 
{ 
  if( !Xmenu.prototype.instances ) Xmenu.prototype.instances = new Array(); 
  Xmenu.prototype.instances[ Xmenu.prototype.instances.length ] = this; // store this instance in static Array 
 
  this.index = Xmenu.prototype.instances.length - 1; 
 
  this.sNavigationName = sNavigationName; 
  this.sNavigation = sNavigation; 
  this.iType = globals[ 0 ]; 
  this.iCloseDelay = globals[ 1 ] * 1000; 
  this.bClick = globals[ 2 ]; 
  this.bMenuBelow = globals[ 3 ]; 
  this.bLeftAlign = globals[ 4 ]; 
  this.bKeepExpansionState = globals[ 5 ]; 
  this.bHighlightClickedNodes = globals[ 6 ]; 
  this.sSpacerUrl = globals[ 8 ]; 
  this.styles = styles; 
  this.contents = contents; 
 
  this.iContent = 0; 
  this.tree = null; 
  this.overNode = null; 
  this.outNode = null; 
  this.lastNode = null; 
  this.absY = 0; 
  this.timeout = null; 
  this.bOpened = false; 
  iParentLayerWidth = ( is.iemac5up )? 0 : globals[ 7 ][ 0 ]; // XparentLayer disturbs Xlayer-events on iemac5 
  iParentLayerHeight = ( is.iemac5up )? 0 : globals[ 7 ][ 1 ]; 
  this.xlayerParent = new XlayerParent( "XlayerParent" + this.index, this.sSpacerUrl, null, iParentLayerWidth, iParentLayerHeight, null ); 
 
  this.tree = this.buildTree( 0, 0, false, null, "tree" ); 
 
  this.nodeFound = null; 
  this.navigationNode = null; 
  if ( this.findNode( this.sNavigation, this.tree ) ) 
  { // node indicated in request found 
    this.navigationNode = eval( "this." + this.nodeFound ); 
  } 
} 
 
Xmenu.prototype.VERTICAL = 0; 
Xmenu.prototype.HORIZONTAL = 1; 
Xmenu.prototype.COLLAPSING = 2; 
 
Xmenu.prototype.buildTree = function( iAbsX, iAbsY, bSibling, sParent, sPath ) 
{   
    var node = this.buildNode( iAbsX, iAbsY, bSibling, sParent, sPath ); 
    this.iContent++; 
    if ( this.iContent < this.contents.length && node.iLevel < this.contents[ this.iContent ][ 2 ] ) 
    { // child 
      node.child = this.buildTree(  node.absX, node.absY, false, "this." + node.sPath, node.sPath + ".child" ); 
    } 
    if ( this.iContent < this.contents.length && node.iLevel == this.contents[ this.iContent ][ 2 ] ) 
    { // sibling 
      node.sibling = this.buildTree( node.absX, node.absY, true, node.sParent, node.sPath + ".sibling" ); 
    } 
    node.xlayer = this.addXlayer( this.xlayerParent, node, this.styles ) 
    return node; 
} 
 
Xmenu.prototype.buildNode = function( iAbsX, iAbsY, bSibling, sParent, sPath ) 
{ 
  var node = new Object(); 
  node.child = null; 
  node.sibling = null; 
  node.sParent = sParent; 
  node.sPath = sPath; 
 
  node.sText = this.contents[ this.iContent ][ 0 ]; 
  node.target = this.contents[ this.iContent ][ 1 ]; 
  node.iLevel = this.contents[ this.iContent ][ 2 ]; 
 
  if ( this.iType == this.VERTICAL ) 
  { 
    if ( !bSibling ) 
    { // child 
      if ( node.iLevel > 1 || ( node.iLevel == 1 && !this.bMenuBelow ) ) // menu below: level 2,3,... || menu right: 1, 2, ... 
        node.absX = iAbsX + this.styles[ node.iLevel ][ 2 ] + this.styles[ node.iLevel + 1 ][ 0 ]; 
      else // menu below: level 0, 1 || menu right: level 0 
        node.absX = iAbsX + this.styles[ node.iLevel + 1 ][ 0 ]; 
 
      if ( node.iLevel != 1 || ( node.iLevel == 1 && !this.bMenuBelow ) ) // level 0, 2, 3, ... : add yOffset 
        node.absY = iAbsY + this.styles[ node.iLevel + 1 ][ 1 ]; 
      else // level 1: add height of last node + yOffset 
        node.absY = iAbsY + this.styles[ node.iLevel + 1 ][ 1 ] + this.styles[ node.iLevel ][ 3 ]; 
    } 
    else 
    { // sibling 
      node.absX = iAbsX; 
      node.absY = iAbsY + this.styles[ node.iLevel + 1 ][ 3 ]; 
    } 
  } 
  else if ( this.iType == this.HORIZONTAL ) 
  { 
    if ( !bSibling ) 
    { // child 
      if ( node.iLevel > 1 || ( this.bMenuBelow && node.iLevel == 1 ) ) 
      { // ( level 1 && menu below ), level 2, 3, 4, ... 
        node.absY = iAbsY + this.styles[ node.iLevel + 1 ][ 1 ] + this.styles[ node.iLevel ][ 3 ]; 
        if ( !this.bLeftAlign ) // add height of last + yOffset, add xOffset 
          node.absX = iAbsX + this.styles[ node.iLevel + 1 ][ 0 ]; 
        else 
          node.absX = this.styles[ node.iLevel + 1 ][ 0 ] + this.cumulateOffsets( 0, node.iLevel ) + ( ( node.iLevel > 0 && !this.bMenuBelow )? this.styles[ 1 ][ 2 ] : 0 ); 
      } 
      else 
      { // level 0, ( level 1 && menu on the right )  
        node.absY = iAbsY + this.styles[ node.iLevel + 1 ][ 1 ]; 
        if ( !this.bLeftAlign ) // add yOffset, add width of last + xOffset 
          node.absX = iAbsX + this.styles[ node.iLevel + 1 ][ 0 ] + ( ( node.iLevel > 0 )? this.styles[ node.iLevel + 1 ][ 2 ] : 0 ); 
        else 
          node.absX = this.styles[ node.iLevel + 1 ][ 0 ] + this.cumulateOffsets( 0, node.iLevel ) + ( ( node.iLevel > 0 && !this.bMenuBelow )? this.styles[ 1 ][ 2 ] : 0 ); 
      } 
    } 
    else 
    { // sibling 
      node.absY = iAbsY; 
      node.absX = iAbsX + this.styles[ node.iLevel + 1 ][ 2 ]; 
    } 
  } 
  else if ( this.iType == this.COLLAPSING ) 
  { 
    if ( !bSibling ) 
    { // child 
      node.absX = iAbsX + this.styles[ node.iLevel + 1 ][ 0 ]; 
      node.absY = iAbsY + this.styles[ node.iLevel + 1 ][ 1 ]; 
    } 
    else 
    { // sibling 
      node.absX = iAbsX; 
      node.absY = iAbsY + this.styles[ node.iLevel + 1 ][ 3 ]; 
    } 
  } 
  return node; 
} 
 
Xmenu.prototype.cumulateOffsets = function( iStyleIndex, iMaxLevel ) 
{ 
  var iOffset = 0; 
  for ( i = 0; i < iMaxLevel; i++ ) 
  { 
    iOffset += this.styles[ i + 1 ][ iStyleIndex ]; 
  } 
  return iOffset; 
} 
 
Xmenu.prototype.addXlayer = function( xparentLayer, node, styles ) 
{ 
  var parent =  null; 
  var x =  "left"; 
  var y =  "top"; 
  var offsetX = node.absX; 
  var offsetY = node.absY; 
  var w =  styles[ node.iLevel + 1 ][ 2 ]; 
  var h = styles[ node.iLevel + 1 ][ 3 ]; 
  var clipTop = 0; 
  var clipRight = w; 
  var clipBottom = h; 
  var clipLeft = 0; 
  var zIndex =  node.iLevel; 
  var visibility = false; 
  var fading =  styles[ node.iLevel + 1 ][ 4 ]; 
  var events =   
  [  
    Xlayer.prototype.MOUSEOVER, "Xmenu.prototype.instances[" + this.index + "].onmouseover( Xmenu.prototype.instances[" + this.index + "]." + node.sPath + ")", 
    Xlayer.prototype.MOUSEOUT, "Xmenu.prototype.instances[" + this.index + "].onmouseout( Xmenu.prototype.instances[" + this.index + "]." + node.sPath + ")", 
    Xlayer.prototype.CLICK, "Xmenu.prototype.instances[" + this.index + "].onclick( Xmenu.prototype.instances[" + this.index + "]." + node.sPath + ")" 
  ];             
  var sText =  node.sText; 
  var bgcolor = styles[ node.iLevel + 1 ][ 5 ][ 0 ]; 
  var fgcolor =  styles[ node.iLevel + 1 ][ 5 ][ 1 ]; 
  var align =  styles[ node.iLevel + 1 ][ 5 ][ 2 ]; 
  var iTopTextBorder = styles[ node.iLevel + 1 ][ 5 ][ 3 ] 
  var iRightTextBorder = styles[ node.iLevel + 1 ][ 5 ][ 4 ] 
  var iBottomTextBorder = styles[ node.iLevel + 1 ][ 5 ][ 5 ] 
  var iLeftTextBorder = styles[ node.iLevel + 1 ][ 5 ][ 6 ] 
  var href = null; 
  var bold =  styles[ node.iLevel + 1 ][ 5 ][ 7 ]; 
  var fontface =  styles[ node.iLevel + 1 ][ 5 ][ 8 ]; 
  var fontsize =  styles[ node.iLevel + 1 ][ 5 ][ 9 ]; 
  if ( styles[ node.iLevel + 1 ][ 5 ][ 11 ] ) 
  {  // icon defined 
    var icon = ( node.child || styles[ node.iLevel + 1 ][ 5 ][ 10 ] )? styles[ node.iLevel + 1 ][ 5 ][ 11 ] : this.sSpacerUrl; 
    var icon_w = styles[ node.iLevel + 1 ][ 5 ][ 12 ]; 
    var icon_h = styles[ node.iLevel + 1 ][ 5 ][ 13 ]; 
    var iconBorder = styles[ node.iLevel + 1 ][ 5 ][ 14 ]; 
  } 
  else 
  {  // icon not defined 
    var icon = null; 
    var icon_w = 0; 
    var icon_h = 0; 
    var iconBorder = 0; 
  } 
  var src = null; // iframe: src 
 
  return new Xlayer( parent, xparentLayer, x, y, offsetX, offsetY, w, h, clipTop, clipRight, clipBottom, clipLeft, zIndex, visibility, bgcolor, fading, events, sText, bold, align, iTopTextBorder, iRightTextBorder, iBottomTextBorder, iLeftTextBorder, fgcolor, href, icon, icon_w, icon_h, iconBorder, fontface, fontsize, src, this.sSpacerUrl ); 
} 
 
Xmenu.prototype.create = function() 
{ 
  this.createXlayers( null ); 
  this.setVisibSiblings( this.tree, true ); 
} 
 
Xmenu.prototype.createXlayers = function( tree ) 
{ 
  if ( !tree )  
  { // call without param -> take root node 
    tree = this.tree; 
  } 
  if ( tree.child ) 
  { 
    this.createXlayers( tree.child ); 
  } 
  if ( tree.sibling ) 
  { 
     this.createXlayers( tree.sibling ); 
  } 
 
  tree.xlayer.create(); 
} 
 
Xmenu.prototype.setOpenListener = function( openListener ) 
{ 
  this.openListener = openListener; 
} 
 
Xmenu.prototype.setCloseListener = function( closeListener ) 
{ 
  this.closeListener = closeListener; 
} 
 
Xmenu.prototype.setLinkClickListener = function( linkClickListener ) 
{ 
  this.linkClickListener = linkClickListener; 
} 
 
Xmenu.prototype.open = function() 
{   
  if ( this.navigationNode != null ) 
  { 
    this.openLastClicked(); 
  } 
  else 
  { 
    this.setVisibSiblings( this.tree, true ); 
  } 
  this.bOpened = true; 
  this.openListener.onMenuOpen( this ); 
} 
 
Xmenu.prototype.openLastClicked = function() 
{ 
  node = this.navigationNode; 
  this.lastNode = node; 
 
  if ( node.child != null ) 
    this.setVisibSiblings( node.child, true ); 
 
  while ( node != null ) 
  { 
    this.highlightClickedNode( node ); 
    if ( node.sParent != null ) 
    { 
      this.setVisibSiblings( eval( node.sParent ).child, true ); 
      node = eval( node.sParent ); 
    } 
    else 
    { 
      this.setVisibSiblings( this.tree, true ); 
      node = null; 
    } 
  } 
} 
 
Xmenu.prototype.findNode = function( sText, node ) 
{ 
  if ( this.nodeFound ) 
    return true; 
 
  if ( node.child ) 
    this.findNode( sText, node.child ); 
 
  if ( node.sibling ) 
    this.findNode( sText, node.sibling ); 
 
  if ( sText == node.sText ) 
    this.nodeFound = node.sPath; 
 
  if ( this.nodeFound )  
    return true; 
  else  
    return false; 
} 
 
Xmenu.prototype.close = function() 
{ 
  if ( this.bOpened && !this.bKeepExpansionState ) 
  { 
    this.setVisibChildren( this.tree, false ); 
    this.setVisibSiblings( this.tree, true ); 
    if ( this.iType == this.COLLAPSING ) 
      this.setCollapsePos( this.tree ); 
//    if ( this.bClick && this.lastNode ) 
//    { 
      this.clearHighlightChildren( this.tree ); 
      this.lastNode = null; 
//    } 
 
    this.bOpened = false; 
    this.closeListener.onMenuClose( this ); 
  } 
} 
 
Xmenu.prototype.onmouseover = function( node ) 
{ 
  this.overNode = node; 
  if ( ( this.iType == this.VERTICAL || this.iType == this.HORIZONTAL ) && !this.bClick ) 
  { 
    if ( !this.bOpened ) 
    { // this menu will open 
      this.bOpened = true; 
      this.openListener.onMenuOpen( this ); 
    } 
    if ( this.outNode ) 
      var outNode = this.outNode; 
    else 
      var outNode = this.tree; 
    if ( outNode.iLevel > node.iLevel ) 
    { 
      this.showBranch( node, this.outNode ); 
//      this.setVisibSiblings( eval( outNode.sParent + ".child" ), false ); 
//      this.setVisibSiblings( outNode.child, false ); 
    } 
    else if ( outNode.iLevel == node.iLevel ) 
    { 
      this.setVisibSiblings( outNode.child, false ); 
    } 
    this.setVisibSiblings( node.child, true ); 
  } 
  if ( this.checkClickPath( node ) ) 
  { // current node is not the node that was clicked (or its parents) 
    this.highlight( node, true ); 
  } 
  return false; 
} 
 
Xmenu.prototype.onmouseout = function( node ) 
{ 
  if ( this.checkClickPath( node ) ) 
    this.highlight( node, false ); 
 
  var timeout = this.timeout; 
  if ( ( this.iType == this.VERTICAL || this.iType == this.HORIZONTAL ) && !this.bClick ) // close menu if no onmouseover until timeout 
  { 
    this.timeout = setTimeout( "Xmenu.prototype.instances[" + this.index + "].checkOnmouseout()", this.iCloseDelay ); 
  } 
 
  this.outNode = node; 
  clearTimeout( timeout ); 
  return false; 
} 
 
Xmenu.prototype.checkClickPath = function( node ) 
{ 
  if ( this.bHighlightClickedNodes ) 
  { 
    lastNode = this.lastNode; 
    while ( lastNode != null ) 
    { 
      if ( lastNode == node ) // node clicked found 
        return false; 
      else // continue looking for it 
        lastNode = eval( lastNode.sParent ); 
    } 
    return true; 
  } 
  else 
  { 
    return true; 
  } 
} 
 
Xmenu.prototype.checkOnmouseout = function() 
{ 
  if ( this.overNode == this.outNode && !( this.bKeepExpansionState && this.bClick ) ) 
  { // onmouseover executed since delay? 
    this.close(); 
  } 
} 
 
Xmenu.prototype.onclick = function( node ) 
{   
  if ( node.target ) 
  { // follow href 
    node.target.open( node.sText, this.sNavigationName, this.sNavigation ); 
    this.sNavigation = node.sText; 
    this.navigationNode = node; // store navigation node 
    this.clearHighlightChildren( this.tree ); 
    this.linkClickListener.onLinkClick( this ); // inform controller 
  } 
  else if ( 
    ( ( this.iType == this.VERTICAL || this.iType == this.HORIZONTAL ) && this.bClick ) ||  
    this.iType == this.COLLAPSING ) 
  { 
    this.highlight( node, true ); 
    if ( !this.bOpened ) 
    { // this menu will open 
      this.bOpened = true; 
      this.openListener.onMenuOpen( this ); 
    } 
   
    if ( this.iType == this.COLLAPSING ) 
      this.collapse( node ); 
    else if ( ( this.iType == this.VERTICAL || this.iType == this.HORIZONTAL ) && this.bClick ) 
      this.showBranch( node, this.lastNode ); 
    this.lastNode = node; 
  } 
  return false; 
} 
 
Xmenu.prototype.showBranch = function( node, hideNode ) 
{ 
//  if ( this.bClick && hideNode == node && node.child && node.child.xlayer.isVisible() ) 
  if ( this.bClick && node.child && node.child.xlayer.isVisible() ) 
  { // reclose branch 
    this.setVisibChildren( node.child, false ); 
    this.clearHighlightChildren( node, false ); 
  } 
  else 
  { 
    if ( hideNode ) 
    { // hide old nodes 
      this.setVisibChildren( this.tree, false ); 
      this.clearHighlightChildren( this.tree, false ); 
    } 
    if ( node.child ) this.setVisibSiblings( node.child, true ); 
    while ( node ) 
    { // show new nodes 
      if ( this.bClick ) 
        this.highlightClickedNode( node, true ); 
      if ( node.sParent )  
        this.setVisibSiblings( eval( node.sParent ).child, true ); 
      else 
        this.setVisibSiblings( this.tree, true ); 
      node = eval( node.sParent ); 
    } 
  } 
} 
 
Xmenu.prototype.clearHighlightChildren = function( node ) 
{ 
  if ( node ) 
  { 
    if  ( node.child ) 
       this.clearHighlightChildren( node.child ); 
    if ( node.sibling ) 
       this.clearHighlightChildren( node.sibling ); 
    this.highlight( node, false ); 
  } 
} 
 
Xmenu.prototype.collapse = function( node ) 
{ 
  this.showBranch( node, this.lastNode ); 
  this.setCollapsePos( this.tree ); 
} 
 
Xmenu.prototype.setCollapsePos = function( node ) 
{ 
  if ( node == this.tree ) // start looping 
    this.absY = this.tree.xlayer.y; 
       
  if ( node.xlayer.isVisible() ) 
  { 
    node.xlayer.setPos( node.xlayer.x, this.absY ); 
    this.absY += node.xlayer.h; 
  } 
 
  if ( node.child )  
    this.setCollapsePos( node.child ); 
  if ( node.sibling )  
    this.setCollapsePos( node.sibling ); 
} 
 
Xmenu.prototype.highlight = function( node, bHighlight ) 
{ 
  var index = ( bHighlight )? 6 : 5;  // style for mouseover or mouseout ? 
  node.xlayer.setBgColor( this.styles[ node.iLevel + 1 ][ index ][ 0 ] ); 
  // nn4 crashes, iemac stops rendering 
  if ( !is.nn4up && !is.iemac5up ) node.xlayer.setFgColor( this.styles[ node.iLevel + 1 ][ index ][ 1 ] ); 
} 
 
Xmenu.prototype.highlightClickedNode = function( node ) 
{ 
  if ( node && this.bHighlightClickedNodes ) 
  { 
    node.xlayer.setBgColor( this.styles[ 0 ][ 0 ] ); 
    if ( !is.nn4up && !is.iemac5up )  
      node.xlayer.setFgColor( this.styles[ 0 ][ 1 ] ); 
  } 
} 
 
Xmenu.prototype.setVisibSiblings = function( node, bVisibility ) 
{ 
  if ( node ) 
  { 
    if ( node.sibling ) 
       this.setVisibSiblings( node.sibling, bVisibility ); 
    node.xlayer.setVisibility( bVisibility ); 
  } 
} 
 
Xmenu.prototype.setVisibChildren = function( node, bVisibility ) 
{ 
  if ( node ) 
  { 
    if  ( node.child ) 
       this.setVisibChildren( node.child, bVisibility ); 
    if  ( node.sibling ) 
       this.setVisibChildren( node.sibling, bVisibility ); 
    node.xlayer.setVisibility( bVisibility ); 
  } 
} 
 
Xmenu.prototype.isNavigationNodeFound = function() 
{ 
  return this.navigationNode != null; 
} 
     
    </script> 
<!-- Xmenus.js -->     
    <script language="javascript"> 
// created by: Andre Dietisheim ([email protected]) 
// created:  2002-05-11 
// modified by: Andre Dietisheim ([email protected]) 
// modified: 2004-01-17 
// version: 2.1.0 
 
function Xmenus( sNavigationName, sNavigation ) 
{ 
  if( !Xmenus.prototype.instances ) Xmenus.prototype.instances = new Array(); 
  Xmenus.prototype.instances[ Xmenus.prototype.instances.length ] = this; 
 
  this.index = Xmenus.prototype.instances.length - 1; 
  this.bCompatibleBrowser = ( is.iewin5up || is.iemac5up || is.gk || is.sf || is.kq3up || is.nn4up || is.op6up ); 
  this.iCloseDelay = 1; 
  this.xmenus = new Array(); 
 
  this.sNavigationName = sNavigationName; 
  this.sNavigation = sNavigation; 
  this.navigationMenu = null; 
 
  this.lastMenu = null; 
  this.timeout = null; 
  this.bReopenDisabled = false; 
} 
 
Xmenus.prototype.add = function( xmenuConfig ) 
{ 
  if ( this.bCompatibleBrowser ) 
    this.xmenus[ this.xmenus.length ] = new Xmenu( this.sNavigationName, this.sNavigation, xmenuConfig[ 0 ], xmenuConfig[ 1 ], xmenuConfig[ 2 ] ); 
//  else 
//    this.writeDegradationHtml( xmenuConfig ); 
} 
 
Xmenus.prototype.create = function() 
{ 
  if ( !this.bCompatibleBrowser ) return; 
 
  for ( j = 0; j < this.xmenus.length; j++ ) 
  { 
    this.xmenus[ j ].setOpenListener( this ); 
    this.xmenus[ j ].setCloseListener( this ); 
    this.xmenus[ j ].setLinkClickListener( this ); 
    this.xmenus[ j ].create(); 
    if ( this.xmenus[ j ].isNavigationNodeFound() ) 
    { 
      this.openNavigationMenu( this.xmenus[ j ] ); 
    } 
  } 
} 
 
Xmenus.prototype.openNavigationMenu = function( xmenu ) 
{ 
      this.navigationMenu = xmenu; 
      this.lastMenu = xmenu; 
      xmenu.open(); 
} 
 
Xmenus.prototype.onMenuOpen = function( xmenu ) 
{ // fired by Xmenu on menu open 
  if ( this.lastMenu != null && this.lastMenu != xmenu ) 
  { 
    this.bReopenDisabled = true; 
    this.lastMenu.close(); 
    this.bReopenDisabled = false; 
  } 
  this.bOpened = true; 
  this.lastMenu = xmenu; 
} 
 
Xmenus.prototype.onMenuClose = function( xmenu ) 
{  // fired by Xmenu on menu close 
  if ( !this.bReopenDisabled ) 
  { 
    this.timeout = setTimeout( "Xmenus.prototype.instances[" + this.index + "].reopenAfterClose()", this.iCloseDelay * 1000 ); 
  } 
  this.bOpened = false; 
} 
 
Xmenus.prototype.reopenAfterClose = function() 
{ 
  if ( !this.bOpened && this.navigationMenu != null ) 
  { //no other menu is opened -> open navigation menu 
    this.navigationMenu.open(); 
  } 
} 
 
Xmenus.prototype.onLinkClick = function( xmenu ) 
{  // fired by Xmenu on click on a link 
//  this.navigationMenu.clearHighlightChildren( this.navigationMenu.tree ); 
  this.openNavigationMenu( xmenu ); 
} 
 
Xmenus.prototype.writeDegradationHtml = function( xmenuConfig ) 
{ 
  var content = xmenuConfig[ 2 ]; 
  for ( i = 0; i < content.length; i++ ) 
  { 
    if ( content[ i ][ 2 ] == 0 && content[ i ][ 1 ] ) 
      document.write( '<a href="' + content[ i ][ 1 ].sSrc + '">' + content[ i ][ 0 ] + '</a><br>' );; 
  } 
}     
    </script> 
<!-- Debug.js -->     
    <script language="javascript"> 
function Debug() 
{   
  this.outputElementName = "debug"; 
  this.sText = ""; 
} 
 
debug = new Debug(); 
 
Debug.prototype.writeHtml = function( iColumns, iRows ) 
{   
  sTextAreaHtml = 
    "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">" + 
      "<tr>" + 
        "<td colspan=\"3\">" + 
          "<form>" + 
            "<textarea type=\"text\" name=\"" + this.outputElementName + "\" id=\"debug\" cols=\"" + iColumns + "\" rows=\"" + iRows + "\">" + 
            "</textarea><br>" + 
            "<input type=\"button\" value=\"select all\" onClick=\"javascript:document.getElementById( 'debug' ).select()\">" + 
            "<input type=\"reset\" value=\"clear\">" + 
          "</form>" + 
        "</td>" + 
      "</tr>" + 
    "</table>";   
     
  document.write( sTextAreaHtml ); 
} 
 
Debug.prototype.flushBuffer = function() 
{ 
  var outputElement = this.getOutput(); 
  if ( outputElement ) 
  { 
    outputElement.value = this.sText + "\n" + outputElement.value ; 
  } 
} 
 
Debug.prototype.bufferedWrite = function( sText ) 
{ 
  this.sText = sText + "\n" + this.sText; 
} 
 
Debug.prototype.write = function( sText ) 
{ 
  var outputElement = this.getOutput();  
  if ( outputElement ) 
  { 
    outputElement.value = sText + "\n" + outputElement.value; 
  } 
} 
 
Debug.prototype.getOutput = function() 
{ 
  var outputElement = null; 
  if ( is.nn4up ) 
  { 
    outputElement = document.forms[ "\"" + this.outputElementName + "\"" ]; 
  } 
  else if ( is.gk || is.iewin5up || is.iemac5up || is.sf ) 
  { 
    outputElement = document.getElementById( this.outputElementName ); 
  } 
  return outputElement; 
}     
    </script> 
<!-- XmenuConfig.js -->     
    <script language="javascript"> 
function WinTarget( sSrc ) 
{ 
  this.sSrc = sSrc; 
} 
 
WinTarget.prototype.createHref = function( sSrc, sText, sNavigationName, sNavigation )  
{ 
  if ( sSrc == "#" ) 
  { // create link to same page poping up current menu-entry 
    sSrc = location + ""; // window.document.URL 
    sSrc = sSrc.replace( new RegExp( sNavigationName + "=[^&]*", "" ), sNavigationName + "=" + escape( sText ) ); 
    if ( sSrc.indexOf( sNavigationName + "=" ) < 0 ) 
      sSrc = sSrc + "?" + sNavigationName + "=" + escape( sText ); 
  } 
  return sSrc; 
} 
 
WinTarget.prototype.open = function( sText, sNavigationName, sNavigation ) 
{ 
  window.location = this.createHref( this.sSrc, sText, sNavigationName, sNavigation ); 
} 
 
function NewWinTarget( sSrc, iX, iY, iWidth, iHeight ) 
{ 
  this.win = null; 
  this.sSrc = sSrc; 
  this.iX = iX; 
  this.iY = iY; 
  this.iWidth = iWidth; 
  this.iHeight = iHeight; 
} 
 
NewWinTarget.prototype.open = function() 
{ 
  var sOpts = "toolbar=yes,location=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes"; 
 
  if ( document.body && document.body.offsetWidth ) 
    sOpts += ",width=" + this.iWidth; 
  else if ( window.innerWidth ) 
    sOpts += ",innerWidth=" + this.iWidth + ","; 
 
  if ( document.body && document.body.offsetHeight ) 
    sOpts += ",height=" + this.iHeight 
  else if ( window.innerHeight ) 
    sOpts += ",innerHeight=" + this.iHeight 
 
  sOpts +=",top=" + this.iY; 
  sOpts += ",left=" + this.iX; 
 
  this.win = top.open( this.sSrc, "", sOpts ); 
} 
 
function FrameTarget( sSrc, sId ) 
{ 
  this.sSrc = sSrc; 
  this.sId = sId; 
} 
 
FrameTarget.prototype.open = function() 
{ 
  var target = top.frames[ this.sId ]; 
  if ( target ) 
    target.document.location.href = this.sSrc; 
} 
 
function IframeTarget( sSrc, sId ) 
{ 
  this.sSrc = sSrc; 
  this.sId = sId; 
} 
 
IframeTarget.prototype.open = function() 
{ 
  if ( !this.ns47up ) 
  { 
    var target = top.frames[ this.sSrc ]; 
    if ( target ) 
      target.src = this.sSrc; 
  } 
}     
    </script> 
<!-- XmenusConf.js -->     
    <script language="javascript"> 
var pastaVertical = [ 
    // globals ----------------- 
    [  Xmenu.prototype.VERTICAL, 
      1, // delay in sec. before closing menu 
      false, // onclick / onmouseover 
      true, // horizontal & vertical menu: menu appears below/right of the root-node 
      false, // horizontal menu: each hierarchy starts on same X 
      false, // keep expansion state 
      true,  // highlight clicked nodes 
      [ 20, 1 ],  // XlayerParent width, height 
      "img/spacer.gif" // spacer url 
    ], 
      // styles ------------------ 
      [  [ "#ff4400", "#ffaaaa" ], // onclick-menu: color of clicked node 
        [ 0, 8, 100, 25, null, [ "#ef6f00", "white", "center", 0, 0, 0, 0, true, "Arial, Helvetica, sans serif", 14, false, "img/arrow_horiz.gif", 3, 5, 10 ],[ "#ff5500", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 2, null, 1, 20, 0 ] ], // xlayer style: [xOffset, yOffset, width, height, fading: [start_val, stop_val, steps, delay(ms)], style onmouseout: [bgcolor, fgcolor, align, bold, fontFace, fontSize, img, img_width, img_height, tile(horiz/vert)], onmouseover: [ bgcolor, fgcolor, align, fontFace, fontSize ]] 
        [ 0, 1, 100, 30, null, [ "#ef7f00", "white", "left", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 12, false, "img/arrow_horiz.gif", 3, 5, 10 ],[ "#ff8e00", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ], 
        [ -8, 0, 100, 20, null, [ "#ff8e00", "white", "left", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 10, false, "img/arrow_horiz.gif", 3, 5, 10 ],[ "#ffa000", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ], 
        [ -4, 0, 100, 20, null, [ "#ffb200", "white", "left", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 10, false, "img/arrow_horiz.gif", 3, 5, 10 ],[ "#ffc400", "#ffccbb", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ] 
      ], 
      // content ---------- 
      [  [ "pasta", null, 0 ], // content: [text, href, hierarchyLevel] 
          [ "spaghetti", null, 1 ], 
            [ "bolognese", null, 2 ], 
              [ "formaggio", new WinTarget( "#" ), 3 ], 
            [ "carbonara", new WinTarget( "#" ), 2 ], 
            [ "pesto", null, 2 ], 
              [ "rosso", new WinTarget( "#" ), 3 ], 
          [ "tortelloni", new WinTarget( "#" ), 1 ], 
          [ "tagliatelle", null, 1 ], 
            [ "alla panna", null, 2 ], 
            [ "arrabiato", new WinTarget( "#" ), 2 ], 
              [ "formaggio", new WinTarget( "#" ), 3 ]               
      ] 
    ]; 
     
var pastaHorizontal = [ 
    // globals ----------------- 
    [  Xmenu.prototype.HORIZONTAL, 
      1, // delay in sec. before closing menu 
      false, // classic menu: onclick / onmouseover 
      true, // horizontal & vertical menu: menu appears below/right of the root-node 
      false, // horizontal menu: each hierarchy starts on same X 
      false, // keep expansion state 
      true,  // highlight clicked nodes 
      [ 20, 1 ],  // XlayerParent width, height 
      "img/spacer.gif" // spacer url 
    ], 
      // styles ------------------ 
      [  [ "#ff4400", "#ffaaaa" ], // onclick-menu: color of clicked node 
        [ 0, 8, 100, 25, null, [ "#ef6f00", "white", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 14, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ff5500", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 2, null, 1, 20, 0 ] ], // xlayer style: [xOffset, yOffset, width, height, fading: [start_val, stop_val, steps, delay(ms)], style onmouseout: [bgcolor, fgcolor, align, bold, fontFace, fontSize, img, img_width, img_height, tile(horiz/vert)], onmouseover: [ bgcolor, fgcolor, align, fontFace, fontSize ]] 
        [ 0, 1, 100, 30, null, [ "#ef7f00", "white", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 12, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ff8e00", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ], 
        [ 0, 0, 100, 20, null, [ "#ff8e00", "white", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 10, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ffa000", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ], 
        [ 0, 0, 100, 20, null, [ "#ffa000", "white", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 10, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ffb200", "#ffccbb", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ] 
      ], 
      // content ---------- 
      [  [ "pasta", null, 0 ], // content: [text, href, hierarchyLevel] 
          [ "spaghetti", null, 1 ], 
            [ "bolognese", null, 2 ], 
              [ "formaggio", new WinTarget( "#" ), 3 ], 
            [ "carbonara", new WinTarget( "#" ), 2 ], 
            [ "pesto", null, 2 ], 
              [ "rosso", new WinTarget( "#" ), 3 ], 
          [ "tortelloni", new WinTarget( "#" ), 1 ], 
          [ "tagliatelle", null, 1 ], 
            [ "alla panna", null, 2 ], 
            [ "arrabiato", null, 2 ], 
              [ "formaggio", new WinTarget( "#" ), 3 ] 
      ] 
    ]; 
 
var pastaVerticalOnclickHighlight = [ 
    // globals ----------------- 
    [  Xmenu.prototype.VERTICAL, 
      1, // delay in sec. before closing menu 
      true, // classic menu: onclick / onmouseover 
      true, // horizontal & vertical menu: menu appears below/right of the root-node 
      false, // horizontal menu: each hierarchy starts on same X 
      false, // keep expansion state 
      true, // onclick menu: highlight clicked nodes 
      [ 20, 1 ],  // XlayerParent width, height 
      "img/spacer.gif" // spacer url 
    ], 
      // styles ------------------ 
      [  [ "#ff4400", "#ffaaaa" ], // onclick-menu: color of clicked node 
        [ 0, 8, 100, 25, null, [ "#ef6f00", "white", "center", 0, 0, 0, 0, true, "Arial, Helvetica, sans serif", 14, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ff5500", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif, sans serif", 2, null, 1, 20, 0 ] ], // xlayer style: [xOffset, yOffset, width, height, fading: [start_val, stop_val, steps, delay(ms)], style onmouseout: [bgcolor, fgcolor, align, bold, fontFace, fontSize, img, img_width, img_height, tile(horiz/vert)], onmouseover: [ bgcolor, fgcolor, align, fontFace, fontSize ]] 
        [ 0, 1, 150, 24, null, [ "#ff7f00", "white", "left", 0, 0, 0, 0, true, "Arial, Helvetica, sans serif", 12, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ff8e00", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ], 
      ], 
      // content ---------- 
      [  [ "gallery", null, 0 ], // content: [text, href, hierarchyLevel] 
          [ "  face-art.ch", new NewWinTarget(  "http://www.face-art.ch", 50, 50, 1024, 768 ), 1 ], 
          [ "  swissbusinesshub.org", new NewWinTarget(  "http://www.swissbusinesshub.org", 50, 50, 800, 600 ), 1 ], 
          [ "  ensta.fr", new NewWinTarget(  "http://www.ensta.fr/uer/uei/fr/index.html", 50, 50, 800, 600 ), 1 ] 
      ] 
    ]; 
 
var pastaCollapsingFading = [ 
    // globals ----------------- 
    [  Xmenu.prototype.COLLAPSING, 
      1, // delay in sec. before closing menu 
      true, // vertical or horizontal menu: onclick / onmouseover 
      true, // horizontal & vertical menu: menu appears below/right of the root-node 
      true,  // horizontal menu: each hierarchy starts on same X 
      false, // keep expansion state 
      true,  // highlight clicked nodes 
      [ 20, 1 ],  // XlayerParent width, height 
      "img/spacer.gif" // spacer url 
    ], 
      // styles ------------------ 
      [  [ "#ff4400", "#ffaaaa" ], // onclick-menu: color of clicked node 
        [ 11, 8, 100, 25, null, [ "#ff7f00", "white", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 12, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ff7c00", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ], 
        [ 0, 0, 100, 20, null, [ "#ff8e00", "white", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 10, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ffa000", "#ffbbaa", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ], 
        [ 0, 0, 100, 20, null, [ "#ffa000", "white", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 10, false, "img/arrow_vert.gif", 5, 3, 10 ],[ "#ffb200", "#ffccbb", "center", 0, 0, 0, 10, true, "Arial, Helvetica, sans serif", 1, "img/spacer.gif", 1, 1, 0 ] ] 
      ], 
      // content ---------- 
      [    [ "spaghetti", null, 0 ], 
            [ "bolognese", null, 1 ], 
              [ "formaggio", new WinTarget( "#" ), 2 ], 
            [ "carbonara", new WinTarget( "#" ), 1 ], 
            [ "pesto", null, 1 ], 
              [ "rosso", new WinTarget( "#" ), 2 ], 
          [ "tortelloni", new WinTarget( "#" ), 0 ], 
          [ "tagliatelle", null, 0 ], 
            [ "alla panna", null, 1 ], 
              [ "formaggio", new WinTarget( "#" ), 2 ], 
            [ "arrabiato", new WinTarget( "#" ), 1 ] 
      ] 
    ]; 
     
     
    </script> 
 
    <script language="javascript"> 
 
      var menus =  new Xmenus( 'sNavigation', '' ); 
 
      function onLoad() 
      { 
        menus.create() 
      } 
 
      function onResize() 
      { 
        window.location.reload(); 
      } 
       
    </script></head> 
 
  <body onload="onLoad()" onresize="onResize()"> 
    <table border="0" cellpadding="0" cellspacing="0" height="33" width="553"> 
    <tbody><tr> 
        <td class="orange" height="33" valign="top" width="100"> 
          <script language="javascript"> 
            menus.add( pastaHorizontal ); 
          </script> 
        </td> 
            <td class="orange" height="33" valign="top" width="100"> 
           <script language="javascript"> 
            menus.add( pastaVertical ); 
           </script> 
        <td class="orange" height="33" valign="top" width="100"> 
           <script language="javascript"> 
            menus.add( pastaVerticalOnclickHighlight ); 
                   </script> 
    </tbody> 
    </table> 
<b>Xmenu-xlayer</b> is a versatile, javascript driven DHTML menu that works on 
<ul class="content"><li>Internet Explorer Windows 5 and later (5, 5.5, 6)<br></li> 
<li>Gecko (Mozilla, Mozilla-Firebird, Galeon, Netscape 6, 7, etc.)<br></li> 
<li>Opera 6, 7<br></li><li>Internet Explorer Macintosh 5 and later (5, 5.1, 5.2)<br></li> 
<li>Safari<br></li><li>Konqueror 3.x<br></li><li>Netscape 4.x<br></li> 
</ul> 
 
It comes in 3 basic modes:  
  <ul class="content"> 
    <li>horizontal<br></li> 
    <li>vertical<br></li> 
    <li>collapsing<br></li> 
   </ul> 
and may be configured to fold/unfold on clicks or mouseovers. There are 
plenty of other configuration options that allow you to change colors, 
fonts, sizes, offsets, behaviours, etc. <b>Xmenu-xlayer</b> is very easy to 
implement, it doesn't need any absolute coordinates - just add it to 
your layout and it calculates its positon on its own. The whole code is 
released into the community under LGPL and may be freely distributed.  
 
 
<script language="javascript"> 
  menus.add( pastaCollapsingFading ); 
</script> 
 
</body></html> 
 
            
        
    
    | 
  
    
 
 |