var widgetNav = new Object();

widgetNav.init = function() {

  var uls = document.getElementsByTagName('ul');	
  for (var u = 0; u < uls.length; u++) {
   if (uls[u].className.search(/\bnavBarList\b/) == -1) continue;
    var lis = uls[u].getElementsByTagName('li');
    for (var i = 0; i < lis.length; i++) {
      var node = lis[i];
      if (node.nodeName.toLowerCase() == 'li' && node.getElementsByTagName('ul').length > 0) {
        fim.events.addEvent(node, 'mouseover', widgetNav.getMoverFor(node), false);
        fim.events.addEvent(node, 'mouseout', widgetNav.getMoutFor(node), false);
      }
    }
  }
}


widgetNav.getMoverFor = function(node) {
  return function(e) { widgetNav.mover(e, node); };
}

widgetNav.getMoutFor = function(node) {
  return function(e) { widgetNav.mout(e, node); };
}

widgetNav.mover = function(e, targetElement) {
  var el = window.event ? targetElement : e ? e.currentTarget : null;
  if (!el) return;
  clearTimeout(el.outTimeout);
  el.className = "mainOver";
  for (var i = 0; i < el.childNodes.length; i++) {
    var node = el.childNodes[i];
    if (node.nodeName.toLowerCase() == 'ul') {
      node.style.display = 'block';
    }
  }
}

widgetNav.mout = function(e, targetElement) {
  var el = window.event ? targetElement : e ? e.currentTarget : null;
  if (!el) return;
  el.outTimeout = setTimeout(function() { widgetNav.mout2(el); }, 250);
}

widgetNav.mout2 = function(el) {
  var originalClass = "main";
  var elOriginalClass = el.getAttribute("originalClass"); // this gets set in the nav.init function
  if (elOriginalClass == "mainOn") {
    originalClass = elOriginalClass;
  }
  el.className = originalClass;
  for (var i = 0; i < el.childNodes.length; i++) {
    var node = el.childNodes[i];
    if (node.nodeName.toLowerCase() == 'ul') {
      node.style.display = 'none';
    }
  }
}


fim.events.addEvent(window, 'load', widgetNav.init, false);