var timeout = 200;
var closetimer = 0;
var activeSubmenu = null;
var openedSubMenu = null;
var clicked = false;

function menuOver(event){
if(clicked)return;
var event = event ? event : window.event;
var target = event.target ? event.target : event.srcElement;
var l = findLevels(target);
if(l[0]){
hideMenu(l, true);
}
window.clearTimeout(closetimer);
if(l[1] == null){
if(activeSubmenu && (l[2]==null || l[2] != activeSubmenu)){
activeSubmenu.style.visibility = 'hidden';
}
}

if(l[2]&&l[1]==null){
l[2].style.visibility = 'visible';
openedSubMenu = l[2];
} else if(l[2] == null && l[1] == null){
openedSubMenu = null;
}

}
function menuOut(event){
if(clicked)return;
var event = event ? event : window.event;
var target = event.target ? event.target : event.srcElement;
var l = findLevels(target);
closetimer = window.setTimeout(function(){
hideMenu(l, false);
}, timeout);
}
function findLevels(target){
if(activeSubmenu == null){
activeSubmenu = findChildByClassName(findParentByClassName(target, 'main_menu'), 'subMenuDiv_active');
if(activeSubmenu == null){
activeSubmenu = false;
}
}
var l1 = findParentByClassName(target, 'main_menu');
var l2 = findParentByClassName(target, 'subMenu');
var l3 = findChildByClassName(target.nodeName == 'A' ? target.parentNode : target, 'subMenu');
return [l1, l2, l3];
}
function findParentByClassName(t, classname){
var x = t;
while(x != null && (x.className == null || x.className.indexOf(classname) < 0)){
x = x.parentNode;
}
return x;
}
function findChildByClassName(t, classname){
if(t){
for(var i = 0; i < t.childNodes.length; i++){
var c = t.childNodes[i];
if(c.className && c.className.indexOf(classname) > -1){
return c
}
var x = findChildByClassName(c, classname);
if(x != null){
return x;
}
}
}
return null;
}
function hideMenu(l, check){
if(l == null){
openedSubMenu = null;
clicked = true;
} else {
if(!check || l[1] == null){
if(activeSubmenu && openedSubMenu != activeSubmenu){
activeSubmenu.style.visibility = 'visible';
}
if(openedSubMenu && openedSubMenu != activeSubmenu){
openedSubMenu.style.visibility = 'hidden';
openedSubMenu = null;
}
}
}
}
