function doBodyOnUnload() {
  if(BrowserDetect.browser == 'MSIE'){
    Behaviour.unapply();
  }
  if (helpReq) {
    helpReq.onreadystatechange = function() { return; };
    helpReq.abort();
  }
}
var rules = {
  
  'td.menu_bar' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/menu_bar(_over)?/, 'menu_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/menu_bar_over/, 'menu_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.menu_bar_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/menu_bar(_over)?/, 'menu_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/menu_bar_over/, 'menu_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.common_menu_bar' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/common_menu_bar(_over)?/, 'common_menu_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/common_menu_bar_over/, 'common_menu_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.common_menu_bar_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/common_menu_bar(_over)?/, 'common_menu_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/common_menu_bar_over/, 'common_menu_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },

  'td.genome_bar' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/genome_bar(_over)?/, 'genome_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/genome_bar_over/, 'genome_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.genome_bar_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/genome_bar(_over)?/, 'genome_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/genome_bar_over/, 'genome_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.genome_bar_dim' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/genome_bar_dim(_over)?/, 'genome_bar_dim_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/genome_bar_dim_over/, 'genome_bar_dim'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.genome_bar_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/genome_bar_dim(_over)?/, 'genome_bar_dim_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/genome_bar_dim_over/, 'genome_bar_dim'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.submenu_bar' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/submenu_bar(_over)?/, 'submenu_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/submenu_bar_over/, 'submenu_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.submenu_bar_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/submenu_bar(_over)?/, 'submenu_bar_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/submenu_bar_over/, 'submenu_bar'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.submenu_bar_dim' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/submenu_bar_dim(_over)?/, 'submenu_bar_dim_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/submenu_bar_dim_over/, 'submenu_bar_dim'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'td.submenu_bar_dim_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/submenu_bar_dim(_over)?/, 'submenu_bar_dim_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/submenu_bar_dim_over/, 'submenu_bar_dim'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'a.news_link' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/news_link(_over)?/, 'news_link_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/news_link_over/, 'news_link'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'a.news_link_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/news_link(_over)?/, 'news_link_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/news_link_over/, 'news_link'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'area.chromName' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function(event) { highlightHit(event, element); }});
    refs.push({'event' : 'mouseout', 'func' : function(event) { unhighlightHit(event, element) }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'div.seqName' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function(event) { highlightHit(event, element); }});
    refs.push({'event' : 'mouseout', 'func' : function(event) { unhighlightHit(event, element) }});
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/seqName(Over)?/, 'seqNameOver'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/seqNameOver/, 'seqName'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'div.seqNameOver' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function(event) { highlightHit(event, element); }});
    refs.push({'event' : 'mouseout', 'func' : function(event) { unhighlightHit(event, element) }});
    refs.push({'event' : 'mouseover', 'func' : function() { element.className = element.className.replace(/seqName(Over)?/, 'seqNameOver'); }});
    refs.push({'event' : 'mouseout', 'func' : function() { element.className = element.className.replace(/seqNameOver/, 'seqName'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'a.ql_link' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function(event) { element.className=element.className.replace(/ql_link(_over)?/, 'ql_link_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function(event) { element.className=element.className.replace(/ql_link_over/, 'ql_link'); }});
    Behaviour.createRules(element, refs);
    return refs;
  },
  'a.ql_link_over' : function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function(event) { element.className=element.className.replace(/ql_link(_over)?/, 'ql_link_over'); }});
    refs.push({'event' : 'mouseout', 'func' : function(event) { element.className=element.className.replace(/ql_link_over/, 'ql_link'); }});
    Behaviour.createRules(element, refs);
    return refs;
  }
};

var hasHelpAssignRule = 
	function (element) {
    var refs = new Array();
    refs.push({'event' : 'mouseover', 'func' : function(event) { newHelpOn(event, element); }});
    refs.push({'event' : 'mouseout', 'func' : function(event) { newHelpOff(event, element); }});
    refs.push({'event' : 'mousemove', 'func' : function(event) { newHelpUpdate(event, element); }});
    Behaviour.createRules(element, refs);
    return refs;  
};

if (!((BrowserDetect.OS == 'Solaris')&&(BrowserDetect.browser == 'Mozilla'))){

	rules['.hashelp'] = hasHelpAssignRule;

}

	Behaviour.register(rules);

