var collapseTimerID = setTimeout(function() { }, 1);  // initialize so this isn't null

/******************************************************************************
 * Close an expanded menu.
******************************************************************************/
function collapseMenu(menuLi)
{
  $(menuLi).find('ul')
    .slideUp('normal', function()
    {
      $(menuLi).parent().find('div.acc-arrow-div').show();
    });
    $(menuLi).removeClass('expanded');
}

/******************************************************************************
 * Reset the auto-menu-collapse timer.
******************************************************************************/
function resetCollapseTimer()
{
  clearTimeout(collapseTimerID);
  collapseTimerID = setTimeout(function()
  {
    $('#subnav .expanded').each(function(index, element)
    {
      collapseMenu(element);
    });
  }, 20000);
}

$(document).ready(function() 
{	
	$('#subnav ul ul').hide();
	$('#subnav ul ul ul').show();
	$('#subnav ul li.active ul').show();
	$('#subnav > ul > li:has(li)')
    .not('#subnav ul ul li')
    .addClass('acc-arrow')
    .children(':first-child')
    .after('<div class="acc-arrow-div"></div><div class="clear"></div>');
	

	/* ===== SubNav functions ============ */	
	$('#subnav > ul > li.acc-arrow').bind('hover', { speed:200, delay:200 }, function(){});
  $('#subnav ul li').click(function(e)
  {
    if (!$(this).hasClass('parent'))
    {
      e.stopPropagation();
    }
  });
  
	$('#subnav > ul > li.acc-arrow').click(clickNavMain);
  
  $('#subnav > ul > li').hover(function()
  {
    clearTimeout(collapseTimerID);
    $(this).addClass('hovered');
  },
  function()
  {
    $(this).removeClass('hovered');
    resetCollapseTimer();
  });
	
	
	function clickNavMain()
  {
    if( $(this).hasClass('expanded') == false )
    {
      $(this).find('div.acc-arrow-div').hide();
      $(this).find('ul')
        .slideDown('normal');
      $(this).addClass('expanded');
    }
    else
    {
      collapseMenu($(this));
    }
	}
});

