<attach event="ondocumentready" handler="parseStylesheets" /> 
<script type="text/JScript"> 
/** 
 * whatever:hover - based on V1.21.041022
 * --------------------------------------------- 
 * Peterned - http://www.xs4all.nl/~peterned/ 
 * (c) 2004 - Peter Nederlof 
 * 
 * Credits   - Arnoud Berendsen 
 *             - Martin Reurings 
 * for inspiring me and finding really sick bugs 
 * 
 * howto: body { behavior:url( hover.htc ); } 
 * --------------------------------------------- 
 */ 

var currentSheet, d = window.document, activators = {
  onhover: { on: 'onmouseover', off: 'onmouseout' },
  onactive: { on: 'onmousedown', off: 'onmouseup' }
};
function parseStylesheets() {
  var s = d.styleSheets, i = s.length;
  while(i--) {
    parseStylesheet( s[i] );
  }
}
function parseStylesheet( sheet ) {
  if( sheet.imports ) {
    var rules = (currentSheet=sheet).rules, imports = sheet.imports, i = imports.length;
    while(i--) {
      parseStylesheet( imports[i] );
    }
    i = rules.length;
    while(i--) {
      parseCSSRule( rules[i] );
    }
  }
}
function parseCSSRule( rule ) {
  var select=rule.selectorText, style=rule.style.cssText;
  if( !( /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i ).test(select) || !style ) { return; }
  var pseudo = select.replace( /[^:]+:([a-z-]+).*/i, 'on$1' ),
   newSelect = select.replace( /(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2'+pseudo ),
   className = ( /\.([a-z0-9_-]*on(hover|active))/i ).exec(newSelect)[1],
   elements = getElementsBySelect( select.replace( /:hover.*$/, '' ) ), i = elements.length;
  currentSheet.addRule( newSelect, style );
  while(i--) {
    new HoverElement( elements[i], className, activators[pseudo] );
  }
}
function HoverElement( node, className, events ) {
  if( !node.hovers ) { node.hovers={}; }
  if( node.hovers[className] ) { return; }
  node.hovers[className] = true;
  node.attachEvent( events.on, function() { node.className += ' ' + className; } );
  node.attachEvent( events.off, function() { node.className = node.className.replace( new RegExp( '\\s+' + className, 'g' ), '' ); } );
}
function getElementsBySelect( rule ) {
  var b = rule.split( / / ), i=b.length, nodes=[d];
  while(i--) {
    nodes = getSelectedNodes( b[i], nodes );
  }
  return nodes;
}
function getSelectedNodes( select, elements ) {
  var i, j, result, node, nodes = [],
   classname = ( /\.([a-z0-9_-]+)/i ).exec( select ),
   identify = ( /\#([a-z0-9_-]+)/i ).exec( select ),
   tagName = ( /^[a-z0-9]+/i ).exec( select.toUpperCase() ) || '*';
  for( i=0; i<elements.length; i++ ) {
    result = elements[i].getElementsByTagName(tagName);
    for( j = 0; j < result.length; j++ ) {
      node = result[j];
      if( ( identify && node.id !== identify[1] ) || ( classname && !( new RegExp( '\\b' + classname[1] + '\\b' ).exec( node.className ) ) ) ) {
        continue;
      }
      nodes[nodes.length]=node;
    }
  }
  return nodes;
}
</script>
