
var spkrtxt_widgetObj = null;

/* function spkrtxt_initMouseScroll
 * 
 * Called from within player widget
 * Finds player widget elem
 * Adds control to track if widget has focus
 * 
 */
function spkrtxt_initMouseScroll(){

	spkrtxt_widgetObj = document.getElementById('spkrtxt_player_obj');
	
	if (spkrtxt_widgetObj){
		spkrtxt_widgetObj.hasFocus = false;
		if ( typeof(document.activeElement) == "undefined" ){
			//Need to keep track of focus the hard way
			spkrtxt_widgetObj.onblur=function() {
				spkrtxt_widgetObj.hasFocus = false;
			};
			spkrtxt_widgetObj.onfocus=function() {
				spkrtxt_widgetObj.hasFocus = true;
			};
		}
		
		//Mozilla
		if(window.addEventListener)
			window.addEventListener('DOMMouseScroll', spkrtxt_onMouseScroll, false);
		//IE etc
		document.onmousewheel = spkrtxt_onMouseScroll;
		return true;
	}else{
		return false;
	}
}

/* function spkrtxt_widgetHasFocus()
 * 
 */
function spkrtxt_widgetHasFocus(){
	var widgetHasFocus = false;
	if ( typeof(document.activeElement) != "undefined" ){
		//alert(document.activeElement);
		widgetHasFocus = (spkrtxt_widgetObj == document.activeElement);
	}else{
		if (spkrtxt_widgetObj.hasFocus)
			widgetHasFocus = spkrtxt_widgetObj.hasFocus;
	}
	return widgetHasFocus;
	
}

/* function spkrtxt_onMouseScroll(event)
 * 
 * Called when mouse mid button is scrolled (or on mac style two finger scroll)
 * Does nothing if widget is out of focus
 * Normalizes scroll delta
 * 
 */
function spkrtxt_onMouseScroll(event)
{
	if (spkrtxt_widgetHasFocus()){
		var delta = 0;
		if (!event){
			//IE
			event = window.event;
		}
		if (event.wheelDelta) {
			// IE/Opera
			delta = event.wheelDelta/120;
			// In Opera 9, delta differs in sign as compared to IE
			if (window.opera)
				delta = -delta;
		}else if (event.detail) {
			/** Mozilla case. */
			/** In Mozilla, sign of delta is different than in IE.
			 * Also, delta is multiple of 3.
			 */
			delta = -event.detail/3;
		}
		//alert("delta="+delta);
		
		/** 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)
			spkrtxt_handleMouseScroll(delta);
		
		if (event.preventDefault){
			//Prevent scrolling of entire page if widget has focus
			event.preventDefault();
		}
		//Prevent IE scroll by returning false
		return false;
	}
}

/* function spkrtxt_handleMouseScroll(delta)
 * 
 * Passes scroll delta to widget
 * 
 */
function spkrtxt_handleMouseScroll(delta){
	if(spkrtxt_widgetObj.PercentLoaded() == 100){
		if(spkrtxt_widgetObj.jsMouseScroll){
			spkrtxt_widgetObj.jsMouseScroll(delta);
		}
	}
}
