var dm_supported     = false;
var dm_menuEl        = null;
var dm_submenuEls    = new Array();
var dm_activeSubmenu = false;
var dm_hideTimer     = null;

var dm1_supported     = false;
var dm1_menuEl        = null;
var dm1_submenuEls    = new Array();
var dm1_activeSubmenu = false;
var dm1_hideTimer     = null;

function dm1_init() {
  if (!document.getElementById) return;
  dm1_menuEl = document.getElementById('dm1');
  if (!dm1_menuEl) return;
  dm1_supported = true;
  dm1_addBasicMouseHandlers(dm1_menuEl.getElementsByTagName('A'));
  dm1_findSubmenuElemens(dm1_menuEl);
}

function dm1_findSubmenuElemens(elem) {
  if (!dm1_supported) return;
  var elems = elem.childNodes;
  for (var i = 0; i < elems.length; i++) {
    var node = elems[i];
    if (node.nodeName != 'LI') continue;
    var submenu = node.getElementsByTagName('UL');
    if (submenu.length > 0) {
      dm1_submenuEls[i] = submenu[0];
    }
    dm1_addMouseHandlers(node, i);
  }
}

function dm1_addMouseHandlers(elem, index) {
  if (!dm1_supported) return;
  var elems = elem.childNodes;
  for (var i = 0; i < elems.length; i++) {
    var node = elems[i];
    if (node.nodeName == 'A') {
      node.onmouseover = new Function('dm1_SubmenuMouseOverHandler(' + index + ')');
    }
  }
}

function dm1_addBasicMouseHandlers(elems) {
  for (var i = 0; i < elems.length; i++) {
    var node = elems[i];
    node.onmouseover = dm1_BasicMouseOverHandler;
    node.onmouseout  = dm1_BasicMouseOutHandler;
  }
}

function dm1_SubmenuMouseOverHandler(index) {
  if (!dm1_supported) return;
  if (dm1_hideTimer) {
    window.clearTimeout(dm1_hideTimer);
    dm1_hideTimer = null;
  }
  for (var i = 0; i < dm1_submenuEls.length; i++) {
    if (i == index) continue;
    if (!dm1_submenuEls[i]) continue;
    dm1_submenuEls[i].style.visibility = 'hidden';
  }
  dm1_activeSubmenu = index;
  if (dm1_submenuEls[index]) dm1_submenuEls[index].style.visibility = 'inherit';
}

function dm1_BasicMouseOutHandler() {
  if (!dm1_supported) return;
  if (dm1_hideTimer)  return;
  dm1_hideTimer = window.setTimeout('dm1_hideSubmenu(' + dm1_activeSubmenu + ')', 300);
}

function dm1_BasicMouseOverHandler() {
  if (!dm1_supported) return;
  if (!dm1_hideTimer) return;
  window.clearTimeout(dm1_hideTimer);
  dm1_hideTimer = null;
}
 
function dm1_hideSubmenu(index) {
  if (!dm1_supported) return;
  if (!dm1_submenuEls[index]) return;
  dm1_submenuEls[index].style.visibility = 'hidden';
}
  
function dm_init() {
  if (!document.getElementById) return;
  dm_menuEl = document.getElementById('dm');
  if (!dm_menuEl) return;
  dm_supported = true;
  dm_addBasicMouseHandlers(dm_menuEl.getElementsByTagName('A'));
  dm_findSubmenuElemens(dm_menuEl);
}

function dm_findSubmenuElemens(elem) {
  if (!dm_supported) return;
  var elems = elem.childNodes;
  for (var i = 0; i < elems.length; i++) {
    var node = elems[i];
    if (node.nodeName != 'LI') continue;
    var submenu = node.getElementsByTagName('UL');
    if (submenu.length > 0) {
      dm_submenuEls[i] = submenu[0];
    }
    dm_addMouseHandlers(node, i);
  }
}

function dm_addMouseHandlers(elem, index) {
  if (!dm_supported) return;
  var elems = elem.childNodes;
  for (var i = 0; i < elems.length; i++) {
    var node = elems[i];
    if (node.nodeName == 'A') {
      node.onmouseover = new Function('dm_SubmenuMouseOverHandler(' + index + ')');
    }
  }
}

function dm_addBasicMouseHandlers(elems) {
  for (var i = 0; i < elems.length; i++) {
    var node = elems[i];
    node.onmouseover = dm_BasicMouseOverHandler;
    node.onmouseout  = dm_BasicMouseOutHandler;
  }
}

function dm_SubmenuMouseOverHandler(index) {
  if (!dm_supported) return;
  if (dm_hideTimer) {
    window.clearTimeout(dm_hideTimer);
    dm_hideTimer = null;
  }
  for (var i = 0; i < dm_submenuEls.length; i++) {
    if (i == index) continue;
    if (!dm_submenuEls[i]) continue;
    dm_submenuEls[i].style.visibility = 'hidden';
  }
  dm_activeSubmenu = index;
  if (dm_submenuEls[index]) dm_submenuEls[index].style.visibility = 'inherit';
}

function dm_BasicMouseOutHandler() {
  if (!dm_supported) return;
  if (dm_hideTimer)  return;
  dm_hideTimer = window.setTimeout('dm_hideSubmenu(' + dm_activeSubmenu + ')', 300);
}

function dm_BasicMouseOverHandler() {
  if (!dm_supported) return;
  if (!dm_hideTimer) return;
  window.clearTimeout(dm_hideTimer);
  dm_hideTimer = null;
}
 
function dm_hideSubmenu(index) {
  if (!dm_supported) return;
  if (!dm_submenuEls[index]) return;
  dm_submenuEls[index].style.visibility = 'hidden';
}
  
function beides() {
	dm1_init();
	dm_init();
}
