/* MouseEnterLeave.js v0.9.1 by Ken Snyder: kendsnyder.com */
(function() {
  var events = Prototype.Browser.IE ? 
    {"bindAsMouseEnter":"fromElement", "bindAsMouseLeave":"toElement"} :
    {"bindAsMouseEnter":"relatedTarget", "bindAsMouseLeave":"relatedTarget"};
  for (var eventName in events) {
    (function(relTargetProperty) {
      Function.prototype[eventName] = function() {
        var __method = this, args = $A(arguments), object = args.shift();
        return function(event) {
          event = event || window.event;
          var relatedTarget = $(event[relTargetProperty]);
          if (relatedTarget && relatedTarget != this && !relatedTarget.descendantOf(this)) {
            __method.apply(object, [Event.extend(event)].concat(args));
          }
        };
      };
    })(events[eventName]);
  }
})();