var open_elements = [0];
var elements = [0];
var timer_id = null;
var MenuTimeOut = 1000;

var font_color = "#3E2A7C";
var hover_font_color = "#ffffff";

function set_over(id) {
 document.getElementById('h'+id).style.color = hover_font_color;
}

function reset_over(id) { 
 document.getElementById('h'+id).style.color = font_color;
}

function clear_timer() {
  if (timer_id != null) {
    clearTimeout(timer_id);
    timer_id = null;
  }
}

function move_over(id) {
  clear_timer();
  hide_elements(1);
  show_element(id);
  elements[id] = open_elements.length;
  open_elements[open_elements.length] = id;
}

function move_out() {
  if (timer_id != null) return;
  if (open_elements.length == 1) return;
  timer_id = setTimeout('timer_hide()', MenuTimeOut);
}

function move_in() {
    clear_timer();
}

function timer_hide() {
  if (open_elements.length > 2) {
    hide_elements(open_elements.length - 1);
    timer_id = setTimeout('timer_hide()', MenuTimeOut);
  }
  else {
    hide_elements(1);
    timer_id = null;
  }
}

function hide_elements(i) {
  var j;

  for(j = open_elements.length-1; j>=i; j--) {
    elements[open_elements[j]] = null;
    hide_element(open_elements[j]);
    reset_over(open_elements[j]);
  }
  open_elements.length = i;
}

function show_element(id){
  m_visibility(id, 'visible', 'block');
}

function hide_element(id){
  m_visibility(id, 'hidden', 'none');
}

function m_visibility(id,visibility, display) {
  if (document.getElementById){
    document.getElementById('sub'+id).style.visibility=visibility;
    document.getElementById('sub'+id).style.display=display;
  }
  else {
    document.all['sub'+id].style.visibility=visibility;
    document.all['sub'+id].style.visibility=display;
  }
}

function m_do_hide() {
    clear_timer();
    hide_elements(1);
}

document.onclick = m_do_hide;
