var widgetNav = new Object();
//initialize the menu styles
widgetNav.initializeStyle = function(){
	if (document.getElementById("fsMenu")) {
	    document.getElementById("fsMenu").className = "mainOn";
	    document.getElementById("fsMenu").setAttribute("originalClass", "mainOn");
	}
	if (document.getElementById("fanMenu")) {
	    document.getElementById("fanMenu").className = "mainOn";
	    document.getElementById("fanMenu").setAttribute("originalClass", "mainOn");
	}
}

widgetNav.init = function() {
	$$("ul.fsBarList li.mainOn").each(function(node){
	   if (node.getElementsByTagName('ul').length > 0) {        
	        fim.events.addEvent(node, 'mouseover', widgetNav.getMoverFor(node), false);
	        fim.events.addEvent(node, 'mouseout', widgetNav.getMoutFor(node), false);
	   }
	});  
}

widgetNav.showSelects = function(type) {
  // this is only a problem in IE6 and lower.  let's not hide the selects unless we have since it is a little jarring to the user
	if (!IE) return;
	if (IE7) return;
  var selects = document.getElementsByTagName('select');
  for (var i = 0; i < selects.length; i++) {
    selectNode = selects[i];
		if (type) {
		  selectNode.style.visibility = "visible";
		}
		else {
		  selectNode.style.visibility = "hidden";
		}
  }
}
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) {
  widgetNav.showSelects(false);	
  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.showSelects(false);
    }
  }

}

widgetNav.mout = function(e, targetElement) {
  widgetNav.showSelects(true);
  var el = window.event ? targetElement : e ? e.currentTarget : null;
  if (!el) return;
  el.outTimeout = setTimeout(function() { widgetNav.mout2(el); }, 50);
}

widgetNav.mout2 = function(el) {
  //widgetNav.showSelects(true);
  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';
    }
  }

}	