*** prototype.js.orig	2005-11-15 23:44:05.000000000 +0900
--- prototype.js	2005-11-15 23:43:58.000000000 +0900
***************
*** 1465,1476 ****
    observe: function(element, name, observer, useCapture) {
      var element = $(element);
      useCapture = useCapture || false;
! 
      if (name == 'keypress' &&
          (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
!         || element.attachEvent))
        name = 'keydown';
! 
      this._observeAndCache(element, name, observer, useCapture);
    },
  
--- 1465,1491 ----
    observe: function(element, name, observer, useCapture) {
      var element = $(element);
      useCapture = useCapture || false;
!     
      if (name == 'keypress' &&
          (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
!         || element.attachEvent)) {
        name = 'keydown';
!     } else if (name == 'mousewheel') {
!       if (element.addEventListener)
!         name = 'DOMMouseScroll';
!       var _observer = observer;
!       observer.__wheelEvent = (function(event) {
!         var wheelCount = event.wheelDelta?
!           (event.wheelDelta > 0 ? 1 : -1) : // IE
!           (event.detail > 0 ? -1 : 1);    // Firefox
!         _observer(element, wheelCount);
!         event.preventDefault ? 
!           event.preventDefault() : (event.returnValue = false);
!       }).bindAsEventListener(this);
!       observer = observer.__wheelEvent;
!       observer.__wheelEvent = observer;
!     }
!     
      this._observeAndCache(element, name, observer, useCapture);
    },
  
***************
*** 1480,1487 ****
  
      if (name == 'keypress' &&
          (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
!         || element.detachEvent))
        name = 'keydown';
  
      if (element.removeEventListener) {
        element.removeEventListener(name, observer, useCapture);
--- 1495,1508 ----
  
      if (name == 'keypress' &&
          (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
!         || element.detachEvent)) {
        name = 'keydown';
+     } else if (name == 'mousewheel') {
+       if (element.addEventListener)
+         name = 'DOMMouseScroll';
+       observer = observer.__wheelEvent;
+     }
+     
  
      if (element.removeEventListener) {
        element.removeEventListener(name, observer, useCapture);
***************
*** 1723,1726 ****
  
      return [valueL, valueT];
    }
! }
\ No newline at end of file
--- 1744,1747 ----
  
      return [valueL, valueT];
    }
! }
