function O3_AddEvent(xi_obj, xi_evType, xi_function, xi_useCapture)
{
	var	rv = true;
	if (xi_obj.addEventListener)
	{
		xi_obj.addEventListener(xi_evType, xi_function, xi_useCapture);
	}
	else if (xi_obj.attachEvent)
	{
		rv = xi_obj.attachEvent("on"+xi_evType, xi_function);
	}
	return rv;
} 

function O3_RemoveEvent(xi_obj, xi_evType, xi_function, xi_useCapture)
{
	var	rv = true;
	if (xi_obj.removeEventListener)
	{
		xi_obj.removeEventListener(xi_evType, xi_function, xi_useCapture);
	}
	else if (xi_obj.attachEvent)
	{
		rv = xi_obj.detachEvent("on"+xi_evType, xi_function);
	}
	return rv;
} 

function O3_StopBubble(xi_Event)
{
	//xi_obj.addEventListener
	//	Handle IE attached event
	if(!xi_Event) xi_Event = window.event;

	if (xi_Event)
	{
		if (xi_Event.stopPropagation)
			xi_Event.stopPropagation();
		else
			xi_Event.cancelBubble = true;
	}
}

