Object.extend(Event,{
  fromElement: function(event){
    if(Prototype.Browser.IE)
      return $(event.fromElement);

    var event = $(event);
    var node;
    if (event.type == "mouseover")
      node = $(event.relatedTarget);
    else if (event.type == "mouseout")
      node = $(event.target);
    else
      return null;
    if(!node)
      return null;
    while (node.nodeType != 1) node = node.parentNode;
    return node;
  },
  toElement: function(event){
    if(Prototype.Browser.IE)
      return $(event.toElement);

    var event = $(event);
    var node;
    if (event.type == "mouseout")
      node = $(event.relatedTarget);
    else if (event.type == "mouseover")
      node = $(event.target);
    else
      return null;
    if(!node)
      return null;      
    while (node.nodeType != 1) node = node.parentNode;
    return node;
  }
});