// Based on http://adomas.org/javascript-mouse-wheel/
var MouseWheel = {
	Target: new Object( ),

	Setup: function(callback, target) {
		if (window.addEventListener) {
			window.addEventListener('DOMMouseScroll', callback, false);
		}
		else {
			window.onmousewheel = document.onmousewheel = callback;
		}

		MouseWheel.Target = target;
	},

	HandleMouseWheel: function(evt) {
		var delta = 0;
		if (!evt) {
			evt = window.event;
		}
			
		if (this.shouldScroll) {
			evt.returnValue = true;
			return;
		}
			
		if (evt.wheelDelta) {
			delta = evt.wheelDelta / 120;
			if (window.opera) {
				delta = -delta;
			}
		}
		else if (evt.detail) {
			delta = -evt.detail / 3;
		}

		if (evt) {
			MouseWheel.ProcessMouseWheel(delta);
		}

		if (evt.preventDefault)
			evt.preventDefault();
			
		evt.returnValue = false;
	},

	ProcessZoomOut: function( ) {
		var sceneScale = main.content.findName(MouseWheel.Target);
		
		var scale = Math.round(sceneScale.scaleX * 100);
		scale = scale / 100;
		
		if (scale <= .01) {
			return;
		}
		
		if (scale <= .1) {
			sceneScale.scaleX -= .01;
			sceneScale.scaleY -= .01;
		}  
		else if (scale <= 1) {
			sceneScale.scaleX -= .1;
			sceneScale.scaleY -= .1;
		}
		else {
			sceneScale.scaleX -= .25;
			sceneScale.scaleY -= .25;
		}
	},

	ProcessZoomIn: function( ) {
		var sceneScale = main.content.findName(MouseWheel.Target);
	  
		// Handle any rounding errors
		var scale = Math.round(sceneScale.scaleX * 100);
		scale = scale / 100;
	  
		if (scale >= 1) {
			sceneScale.scaleX += .25;
			sceneScale.scaleY += .25;
		}
		else if (scale >= .1) {
			sceneScale.scaleX += .1;
			sceneScale.scaleY += .1;
		}
		else {
			sceneScale.scaleX += .01;
			sceneScale.scaleY += .01;
		}
	},

	ProcessMouseWheel: function (delta) {
		if (delta < 0) {
			MouseWheel.ProcessZoomOut( );
		}
		else {
			MouseWheel.ProcessZoomIn( );
		}
	}
}