function is_child_of(parent, child)
{
  if( child != null ) {
    while( child.parentNode ) {
      if( (child = child.parentNode) == parent ) {
        return true;
      }
    }
  }
  return false;
}


//Usage: <div onMouseOut="fixOnMouseOut(this, event, 'JavaScript Code');">
function fixOnMouseOut(element, event, JavaScript_code)
{
  var current_mouse_target = null;
  if( event.toElement ) {
    current_mouse_target = event.toElement;
  } else if( event.relatedTarget ) {
    current_mouse_target = event.relatedTarget;
  }
  if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
    eval(JavaScript_code);
  }
}


