/* 
*  Mouse wheel support for OS X - implemented in javascript because Adobe
*  hasn't implemented it in the mac version of Flash Player  >:(
*  
*  @author phil (http://beta-interactive.de)
*  based on script from Ali Rantakari ( http://hasseg.org/blog )
*  
*/

var mw_keepDeltaAtPlusMinusThree = true; // let's not allow other deltas than +/- 3 because that's what flash player does
var mw_container = null;

function thisMovie(movieName) 
{
    if (navigator.appName.indexOf("Microsoft") != -1) 
    {
        return window[movieName];
    }
    else 
    {
        return document[movieName];
    }
}


function mw_initialize() 
{
	// initialize mouse wheel capturing:
	if (navigator.userAgent.indexOf('Mac') != -1) 
	{	
		mw_container = document.getElementById(mw_flashContainerId);
		if (mw_container != null) 
		{
			if (mw_container.addEventListener) mw_container.addEventListener('DOMMouseScroll', mw_onWheelHandler, false); // Firefox
			mw_container.onmousewheel = mw_onWheelHandler; // Safari
		}
		else
		{
			alert("mousewheel: can not find flash container div element");
		}
	}
}


// Handler for mouse wheel event:
function mw_onWheelHandler(event)
{	
	var delta = 0;
	var bro = "unknown";
	if (!event) event = window.event;	
	if(event.wheelDelta) 
	{
    /* IE/Opera. */
    bro = "ie / opera";
    delta = event.wheelDelta/120;
    if (window.opera) delta = -delta;
  } 
  else if(event.detail) 
  {
    /** Mozilla case. */
    bro = "Mozilla";
    delta = -event.detail/3;
  }
  if( /AppleWebKit/.test(navigator.userAgent) ) 
  {
    bro = "safari";
    delta /= 3;	
  }
	
	console.log("delta:"+delta + " // " + bro);
	
	if(bro == "unknown")
	{
    console.log("event " + event + " " + event.wheelDelta);
    console.log("wheelDeltaX " + event.wheelDeltaX);
    console.log("wheelDeltaY " + event.wheelDeltaY);
	}
	
	if(mw_keepDeltaAtPlusMinusThree) 
	{
		if(delta > 0) delta = 3;
		else if(delta < 0) delta = -3;
		else delta = 0;
	}
	
	if (delta) 
	{
		// handle mouse events here:
		if(thisMovie(mw_flashMovieId).onUIMouseWheel) 
		{
      console.log("dispatch :" + delta);
      //thisMovie(mw_flashMovieId).onUIMouseWheel(delta, thisMouse.x, thisMouse.y);
      thisMovie(mw_flashMovieId).onUIMouseWheel(delta);
    }
		else alert("osxmousewheel: ExternalInferface function onUIMouseWheel not found");
	};
	
	// Prevent default actions caused by mouse wheel.
	if (event.preventDefault) event.preventDefault();
	event.returnValue = false;
}


