var mmenu_timeout_id;
var mmenu_show_timeout_id;
var mmenu_hide_timeout_id;
var mmenu_min_width = 132;
var mmenu_max_width = 528;
var mmenu_cur_item = 1;
var mmenu_items;
var sub_timeout_id;
var sub_hide_timeout_id = new Array(3);
var sub_show_timeout_id = new Array(3);
var sub_top = 422;
var sub_bottom = 448;
var sub_active;


function $ (el) {
  return document.getElementById(el);
}


function showMMenuStep() {
  clearTimeout(mmenu_hide_timeout_id);
  if (!mmenu_items) mmenu_items = document.getElementById('mainmenu').getElementsByTagName('li');
  if (mmenu_cur_item < 1) mmenu_cur_item = 1;
  if (mmenu_cur_item >= mmenu_items.length) {
    clearTimeout(mmenu_show_timeout_id);
  } else {
    mmenu_items[mmenu_cur_item].style.display = 'block';
    mmenu_cur_item++;
    mmenu_show_timeout_id = setTimeout("showMMenuStep()", 75);
  }
}

function hideMMenuStep() {
  clearTimeout(mmenu_show_timeout_id);
  if (!mmenu_items) mmenu_items = document.getElementById('mainmenu').getElementsByTagName('li');
  if (mmenu_cur_item >= mmenu_items.length) mmenu_cur_item = mmenu_items.length-1;
  if (mmenu_cur_item < 1) {
    clearTimeout(mmenu_hide_timeout_id);
  } else {
    mmenu_items[mmenu_cur_item].style.display = '';
    mmenu_cur_item--;
    mmenu_hide_timeout_id = setTimeout("hideMMenuStep()", 75);
  }
}

function showMMenu(show) {
  if (show) {
    clearTimeout(mmenu_timeout_id);
    showMMenuStep();
  } else {
    mmenu_timeout_id = setTimeout("hideMMenuStep()", 600);
  }
}


function showMMenuSubStep(id) {
  if (!id) return;
  clearTimeout(sub_hide_timeout_id[id]);
  $("mmenu_sub_"+id).style.display = 'block';
  var top = Number($("mmenu_sub_"+id).style.top.substring(0, 3));
  if (top <= sub_top) {
    clearTimeout(sub_show_timeout_id[id]);
  } else {
    $("mmenu_sub_"+id).style.top = (top-4) + 'px';
    sub_show_timeout_id[id] = setTimeout("showMMenuSubStep("+id+")", 25);
  }
}

function hideMMenuSubStep(id) {
  if (!id) return;
  clearTimeout(sub_show_timeout_id[id]);
  var top = Number($("mmenu_sub_"+id).style.top.substring(0, 3));
  if (top >= sub_bottom) {
    clearTimeout(sub_hide_timeout_id[id]);
    $("mmenu_sub_"+id).style.display = 'none';
  } else {
    $("mmenu_sub_"+id).style.top = (top+4) + 'px';
    sub_hide_timeout_id[id] = setTimeout("hideMMenuSubStep("+id+")", 25);
  }
}

function showMMenuSub(show, id) {
  if (show) {
    clearTimeout(sub_timeout_id);
    hideMMenuSubStep(sub_active);
    showMMenuSubStep(id);
    sub_active = id;
  } else {
    sub_timeout_id = setTimeout("hideMMenuSubStep("+sub_active+")", 250);
  }
}