/**
2 * SWFMacMouseWheel v1.0: Mac Mouse Wheel functionality in flash - http://blog.pixelbreaker.com/
3 *
4 * SWFMacMouseWheel is (c) 2006 Gabriel Bucknall and is released under the MIT License:
5 * http://www.opensource.org/licenses/mit-license.php
6 *
7 * Dependencies:
8 * SWFObject v2.0 - (c) 2006 Geoff Stearns.
9 * http://blog.deconcept.com/swfobject/
10 */
11function SWFMacMouseWheel( swfObject )
12{
13 this.so = swfObject;
14 var isMac = navigator.appVersion.toLowerCase().indexOf( "mac" ) != -1;
15 if( isMac ) this.init();
16}
17
18SWFMacMouseWheel.prototype = {
19 init: function()
20 {
21 SWFMacMouseWheel.instance = this;
22 if (window.addEventListener)
23 {
24 window.addEventListener('DOMMouseScroll', SWFMacMouseWheel.instance.wheel, false);
25 }
26 window.onmousewheel = document.onmousewheel = SWFMacMouseWheel.instance.wheel;
27 },
28
29 handle: function( delta )
30 {
31 document[ this.so.getAttribute('id') ].externalMouseEvent( delta );
32 },
33
34 wheel: function(event){
35 var delta = 0;
36 if (event.wheelDelta) { /* IE/Opera. */
37 delta = event.wheelDelta/120;
38 if (window.opera) delta = -delta;
39 } else if (event.detail) { /** Mozilla case. */
40 delta = -event.detail/3;
41 }
42 if( /AppleWebKit/.test(navigator.userAgent) ) {
43 delta /= 3;
44 }
45 /** If delta is nonzero, handle it.
46 * Basically, delta is now positive if wheel was scrolled up,
47 * and negative, if wheel was scrolled down.
48 */
49 if (delta)
50 SWFMacMouseWheel.instance.handle(delta);
51 /** Prevent default actions caused by mouse wheel.
52 * That might be ugly, but we handle scrolls somehow
53 * anyway, so don't bother here..
54 */
55 if (event.preventDefault) event.preventDefault();
56 event.returnValue = false;
57 }
58};
