if(typeof(Controls) == "undefined")
	var Controls = {};
	
if(typeof(Controls.EventHelper) == "undefined"){
	Controls.EventHelper = {};

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.GetSourceElement = function(oEvent){
		var sBrowserName = Controls.BrowserHelper.GetBrowserName();
		if(sBrowserName == "IE" || sBrowserName == "Opera")
			return oEvent.srcElement;
		if(sBrowserName == "Mozilla")
			return oEvent.target;
		return null;
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.RegisterEventHandler = function(oObject, sEventName, sCode, bCapture){
		var sBrowserName = Controls.BrowserHelper.GetBrowserName();
		if(sBrowserName == "IE"){
			oObject.attachEvent(sEventName, sCode);
		}else if(sBrowserName == "Mozilla"){
			//oObject.setAttribute(sEventName, oObject.getAttribute(sEventName) + "; "+ sCode);
			if(sEventName.indexOf("on") == 0)
				sEventName = sEventName.substr(2, sEventName.length - 2);
			oObject.addEventListener(sEventName, sCode, (typeof(bCapture) == 'undefined') ? false : bCapture);
		}else if(sBrowserName == "Opera"){
			oObject.attachEvent(sEventName, typeof(sCode) == "function" ? sCode : Function(sCode));
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.UnRegisterEventHandler = function(oObject, sEventName, sCode){
		var sBrowserName = Controls.BrowserHelper.GetBrowserName();
		if(sBrowserName == "IE"){
			oObject.detachEvent(sEventName, sCode);
		}else if(sBrowserName == "Mozilla"){
			//oObject.setAttribute(sEventName, oObject.getAttribute(sEventName) + "; "+ sCode);
			if(sEventName.indexOf("on") == 0)
				sEventName = sEventName.substr(2, sEventName.length - 2);
			oObject.removeEventListener(sEventName, sCode, false);
		}else if(sBrowserName == "Opera"){
			oObject.detachEvent(sEventName, typeof(sCode) == "function" ? sCode : Function(sCode));
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.CancelBubble = function(oEvent){
		if(document.all){
			oEvent.cancelBubble = true;
		}else{
			oEvent.stopPropagation();
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.CaptureMouseWheel = function(oObject, sCode){
		var sBrowserName = Controls.BrowserHelper.GetBrowserName();
		if(sBrowserName == "IE"){
			oObject.attachEvent("onmousewheel", sCode);
		}else if(sBrowserName == "Mozilla"){
			oObject.addEventListener('DOMMouseScroll', sCode, false);
		}else if(sBrowserName == "Opera"){
			oObject.attachEvent("onmousewheel", sCode);
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.ReleaseMouseWheel = function(oObject, sCode){
		var sBrowserName = Controls.BrowserHelper.GetBrowserName();
		if(sBrowserName == "IE"){
			oObject.detachEvent("onmousewheel", sCode);
		}else if(sBrowserName == "Mozilla"){
			oObject.removeEventListener('DOMMouseScroll', sCode, false);
		}else if(sBrowserName == "Opera"){
			oObject.detachEvent("onmousewheel", sCode);
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.GetWheelDelta = function(pEvtObj){
		var sBrowserName = Controls.BrowserHelper.GetBrowserName();
		if(sBrowserName == "Mozilla"){
			return -pEvtObj.detail * 40;
		}else{
			return pEvtObj.wheelDelta;
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.CancelEvent = function(evt){
		if(evt.preventDefault){
			evt.preventDefault();
			evt.cancel = true;
		}else{
			evt.returnValue = false;
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.EventHelper.GetToElement = function(evt){
		return (!document.all) ? evt.relatedTarget : evt.toElement;
	}
}
