var timeout    = 500;
var closeTimer = 0;
var menuItem = 0;
var newMenu = null;

function menuOpen()
{
  cancelTimer();
  container = $( this ).parent( "li" );
  newMenu = container.find('.select-menu');
  menuClose();

  menuItem = newMenu;
  newMenu = null;
  if ( menuItem.attr( "id" ) != "city-menu" )
  {
    itemOffset = $(this).offset();
    headerOffset = $( ".header" ).offset();
    menuItem.css( "left", itemOffset.left - headerOffset.left + "px" );
  }
  if ( menuItem.css( "display" ) != "block" )
  {
    menuItem.slideDown( 150 );
  }
}

function menuClose()
{
  if (menuItem)
  {
    if ( newMenu == null )
    {
      menuItem.slideUp("fast");
    }
    else
    {
      if ( newMenu.attr("id") != menuItem.attr("id") )
      {
        menuItem.slideUp( 150 );
      }
    }
  }
}

function startTimer()
{
  closeTimer = window.setTimeout(menuClose, timeout);
}

function cancelTimer()
{
  if (closeTimer)
  {
    window.clearTimeout(closeTimer);
    closeTimer = null;
  }
}

function closeMenuByClick()
{
  if (menuItem)
  {
    menuItem.slideUp("fast");
  }
}

$(document).ready(function()
{
  $('#drop-down-menu li .drop-down-item').bind('mouseover', menuOpen);
  $('#drop-down-menu li .drop-down-item').bind('mouseout',  startTimer);
  $('#drop-down-menu li .select-menu').bind('mouseover',  cancelTimer);
  $('#drop-down-menu li .select-menu').bind('mouseout',  startTimer);

  $('#city-select li .drop-down-item').bind('mouseover', menuOpen);
  $('#city-select li .drop-down-item').bind('mouseout',  startTimer);
  $('#city-select li .select-menu').bind('mouseover',  cancelTimer);
  $('#city-select li .select-menu').bind('mouseout',  startTimer);

  document.onclick = closeMenuByClick;
});