var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;

function topnavlist_open()
{  topnavlist_canceltimer();
   topnavlist_close();
   ddmenuitem = $(this).find('ul').css('visibility', 'visible');}

function topnavlist_close()
{  if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');}

function topnavlist_timer()
{  closetimer = window.setTimeout(topnavlist_close, timeout);}

function topnavlist_canceltimer()
{  if(closetimer)
   {  window.clearTimeout(closetimer);
      closetimer = null;}}

$(document).ready(function()
{  $('#topnavlist > li').bind('mouseover', topnavlist_open)
   $('#topnavlist > li').bind('mouseout',  topnavlist_timer)});

document.onclick = topnavlist_close;