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 + 9) + '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, 'subMenuSearch');
  // subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuGroupTravel');  
  // subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuFaq');
  // subMenu.hideMenuifNotCurrent(currentMenuName, 'subMenuTicketsGuide');
  // 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;
}

// Метод для устранения прыгающего календаря при ресайзе окна
window.onresize=function(){
  var inp = document.getElementsByTagName("input");
  for ( var i = 0; i < inp.length; i++ ) {
    if(inp[i].className == 'toCityLong') {
      var position = getPos(inp[i]);
      document.getElementById('listBody').style.top = '' + (position.top + 22) + 'px';
      document.getElementById('listBody').style.left = '' + (position.left) + 'px';
      break;
    }
  }
  inp = document.getElementsByTagName("input");
  var firstInputFinded = false;
  for ( var i = 0; i < inp.length; i++ ) {
    if(inp[i].className == 'flyDate') {
      if(firstInputFinded) {
        var position = getPos(inp[i]);
        document.getElementById('calBody').style.top = '' + (position.top + 22) + 'px';
        document.getElementById('calBody').style.left = '' + (position.left) + 'px';
        break;
      }
      else firstInputFinded = true;
    }
  }


}