function subMenu(){}; 
subMenu.menuTimer;

// Метод вызывается при наведении на любой из пунктов основного меню
subMenu.menuHover = function (objMenu, menuName) {
  if (objMenu.children[0].className == 'button') document.getElementById(menuName).className = 'subMenu selected';
  subMenu.closeSubMenus(menuName);
  var position = getPos(objMenu);
  document.getElementById(menuName).style.left = '' + (position.left + 0) + 'px';
  document.getElementById(menuName).style.marginLeft = 0;
  document.getElementById(menuName).style.display = 'block';
  clearTimeout(subMenu.menuTimer);
  
}

// Метод закрывает все ненужные подменю
subMenu.closeSubMenus = function (currentMenuName) {
  currentMenuName = currentMenuName || '';
   subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuTravel');
   subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuHotels');
 //  subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuCityguide');
   subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuAbout');
   subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuContact');
   //subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuContact');
};

// Метод закрывает подменю, если оно не является текущим
subMenu.hideMenuifNotCurrent = function (currentMenuName, menuName) {
  if ( menuName != currentMenuName ) document.getElementById(menuName).style.display = 'none';
};

// Метод вызывается при убирании курсора с любого из меню
subMenu.menuOut = function () {
  subMenu.menuTimer = setTimeout(subMenu.closeSubMenus, 500);
};

 // Метод вызывается при наведении на любое из подменю
subMenu.subMenuHover = function () {
  clearTimeout(subMenu.menuTimer);
  
};

// Метод вызывается при убирании курсора с любого из меню
subMenu.subMenuOut = function () {
  subMenu.menuTimer = setTimeout(subMenu.closeSubMenus, 200);
}


// Метод получает позицию элемента
function getPos (obj) {
  var output = new Object();
  var mytop=0, myleft=0;
  while( obj) {
    mytop+= obj.offsetTop;
    myleft+= obj.offsetLeft;
    obj= obj.offsetParent;
  }
  output.left = myleft;
  output.top = mytop;
  return output;
}
