var fade;
var currentNavId;
Event.observe(document, 'dom:loaded', function() {
//Event.observe(window, 'load', function() {
  currentNavId = "no_id";
  fade = null;
  init_nav();
});
function init_nav()
{
  var e = document.getElementsByClassName("main_nav");
  for (var w=0; w < e.length; w++)
  {
    Event.observe(e[w], 'mouseover', showMenu);
    Event.observe(e[w], 'mouseout', hideMenu);
  }
  var e = document.getElementsByClassName("subMenu");
}

function findOpenNavMenu() {
  var e = document.getElementsByClassName("main_nav");
  for (var w=0; w < e.length; w++)
  {
    if (Element.visible(e[w].id + "-links")) {
      return e[w].id;
    }
  }
  return "";
}
function showMenu(event) {
  //Hide previously open NAV
  var e;
  if (event.element().className == 'main_nav') {
    e = event.element();
  }
  else {
    e = event.element().up("div.main_nav");
  }
  try {
	  e.addClassName("highlighted");
	  var currentNavId = findOpenNavMenu();
	  if (currentNavId != e.id) {
		if (currentNavId != "" ) {
		  if ($(currentNavId).hasClassName("main_nav")) {
			$(currentNavId).removeClassName("highlighted");
			Element.hide(currentNavId + "-links");
		  }
		}
		//new Effect.SlideDown($(e.id + "-links"),{duration:.4},0);
		$(e.id + "-links").show();
		currentNavId = e.id;
	  }
	  else {
		Element.show($(e.id + "-links"));
	  }
  } catch(err) {};
  clearTimeout(fade);
}

function hideMenu(event) {
  var e;
  if (Event.element(event).hasClassName('main_nav')) {
    e = Event.element(event);
  }
  else {
    e = Event.element(event).up("div.main_nav");
  }
  //fade = setTimeout("new Effect.SlideUp($('" + e.id  + "-links'),{duration:.4, afterFinish: showCurrentMenu});", 750);
  fade = setTimeout("$('" + e.id  + "-links').hide(); $('" + e.id + "').removeClassName('highlighted'); showCurrentMenu();", 750);
  //$('" + e.id  + "-links').hide();
}

function showCurrentMenu() {
  if (document.getElementsByClassName('current')[0]) {
    var e = document.getElementsByClassName('current')[0].parentNode.getElementsByClassName('nav-links')[0];
    //new Effect.SlideDown(e, {duration:.4} );
	try {
	    e.show();
	} catch(err) {}
  }
}