var swfReference;
var isMac;
var isSafari;

function initMouseWheel (swf) {
	swfReference = swf;
	isMac = navigator.appVersion.toLowerCase().indexOf( "mac" ) != -1;
	isSafari = navigator.userAgent.toLowerCase().indexOf("safari") != -1;
	if (window.addEventListener){
		window.addEventListener('DOMMouseScroll', wheelHandler, false);
	}
	window.onmousewheel = document.onmousewheel = wheelHandler;
}

function tellFlash (delta) {
	document[swfReference].externalMouseWheel(delta);
}

function wheelHandler (event) {
		if (!event) {
			event = window.event;
		}
        var delta = 0;
        if (event.wheelDelta) { /* IE/Opera. */
			delta = event.wheelDelta/120;
			if (window.opera) delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
            delta = -event.detail/3;
        }
		if (isMac || isSafari) {
			delta /= 3;
		} else if ( /AppleWebKit/.test(navigator.userAgent) ) {
        	delta /= 3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        if (delta != 0) {
        	tellFlash(delta);
		}
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
        if (event.preventDefault) event.preventDefault();
		event.returnValue = false;
}