/**
 * SWFMacMouseWheel v2.0: Mac Mouse Wheel functionality in flash -
 * http://blog.pixelbreaker.com/
 * 
 * SWFMacMouseWheel is (c) 2007 Gabriel Bucknall and is released under the MIT
 * License: http://www.opensource.org/licenses/mit-license.php
 * 
 * Dependencies: SWFObject v2.0 rc2 <http://code.google.com/p/swfobject/>
 * Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis
 * This software is released under the MIT License
 * <http://www.opensource.org/licenses/mit-license.php>
 */
var swfmacmousewheel = function() 
{
	if (!swfobject)
		return null;
//	var u = navigator.userAgent.toLowerCase();
//	var p = navigator.platform.toLowerCase();
//	var d = p ? /mac/.test(p) : /mac/.test(u);
//	if (!d)
//		return null;
	var k = [];
	
	var r = function(event) {
		var o = 0;
		if (event.wheelDelta) {
			o = event.wheelDelta / 120;
			if (window.opera)
				o = -o;
		} else if (event.detail) {
			o = -event.detail;
		}
		if (event.preventDefault)
			event.preventDefault();
		return o;
	};
	
	var scrollHandler = function(event)
    {
        var xDelta = 0;
        var yDelta = 0;
        
        // IE special case
        if (!event)
            event = window.event;
        
        // IE/Webkit/Opera
        if (event.wheelDelta)
        {
            // horizontal scrolling is supported in Webkit
            if (event.wheelDeltaX)
            {
                // Webkit can scroll two directions simultaneously
                xDelta = event.wheelDeltaX;
                yDelta = event.wheelDeltaY;
            }
            else
            {
                // fallback to standard scrolling interface
                yDelta = event.wheelDelta;
            }

            // you'll have to play with these,
            // browsers on Windows and OS X handle them differently
            xDelta /= 120;
            yDelta /= 120;

            // Opera special case
            if (window.opera)
            {
                yDelta = -yDelta;
                // Opera doesn't support hscroll; vscroll is also buggy
            }
        }
        // Firefox (Mozilla)
        else if (event.detail)
        {
            yDelta = -event.detail/1.5;
            // hscroll supported in FF3.1+
            if (event.axis)
            {
                if (event.axis == event.HORIZONTAL_AXIS)
                {
                    // FF can only scroll one dirction at a time
                    xDelta 	= 	yDelta;
                    yDelta 	= 	0;
                }
            }
        }

       return {xDelta : xDelta, yDelta : yDelta};       
    }
	
	
	
	var l = function(event) {
		var o = scrollHandler(event);//r(event);
		var c;
		for ( var i = 0; i < k.length; i++) {
			c = swfobject.getObjectById(k[i]);
			if (typeof (c.externalMouseEvent) == 'function')
				c.externalMouseEvent(o);
		}
	};
	if (window.addEventListener)
		window.addEventListener('DOMMouseScroll', l, false);
	window.onmousewheel = document.onmousewheel = l;
	return {
		registerObject : function(m) {
			k[k.length] = m;
		}
	};
}();
