function findPos( obj )
{
  var cureft = curtop = 0;
  
  if ( obj.offsetParent )
  {
    curleft = obj.offsetLeft;
    curtop  = obj.offsetTop;
    
    while ( obj = obj.offsetParent )
    {
      curleft += obj.offsetLeft;
      curtop  += obj.offsetTop;
    }
  }
  return [ curleft, curtop ];
}

function toggleVisibility( sender_elt, event, target_elt_id )
{
  if ( ! event ) var event = window.event ;

  target_elt = document.getElementById( target_elt_id );

  if ( target_elt.style.display == "block" )
  {
    target_elt.style.display = "none";
  }
  else
  {
    var sender_pos = findPos( sender_elt );
    
    target_elt.style.position = "absolute";
    target_elt.style.left     = sender_pos[ 0 ] ;
    target_elt.style.top      = sender_pos[ 1 ] + 20 ;
    target_elt.style.display  = "block";
  }
}