btc.event = 
{
	register : function ( element , type , callback )
	{
		if(element)
		{
			if((element.nodeType && element.nodeType == 1) || element == window || element ==  document)
			{
				if( document.attachEvent )
				{
					var handler = this.createHandler( callback, element );
					element.attachEvent( 'on' + type ,  handler);
				}
				else
				{
					var handler = this.createHandler( callback, element );
					element.addEventListener( type , handler , false );
				}
			}
			else if( element.length )
			{        
				for( var i = 0; i < element.length; i++ )
				{
					btc.event.register( element[i] , type , callback );
				}
			}
		}
	},
	
	cancel: function( event )
	{
		event = event || window.event;
		
		if( event.stopPropagation ) 
		{
			event.stopPropagation();
		}
		else
		{
			event.cancelBubble = true;
		}
		
		if( event.preventDefault ) 
		{
			event.preventDefault( );
		}
		else
		{
			event.returnValue = false;
		}		
		
		return false;
	},
	
	createHandler: function( callback, element )
	{
		return function( event ) { callback( event || window.event, element );};
	},
	
	getX: function( e )
	{
		e = e || window.event;

		if( e.pageX )
		{
			return e.pageX;
		}
		else if( e.clientX )
		{
			return e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		}
		else
		{
			return 0;
		}
	},
	
	getY: function( e )
	{
		e = e || window.event;
		
		if( e.pageY )
		{
			return e.pageY;
		}
		else if( e.clientY )
		{
			return e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}
		else
		{
			return 0;
		}
	},
	
	getTargetId: function( e )
	{
		e = e || window.event;
		
		if( e.target )
		{
			return e.target.getAttribute( "id" );
		}
		else if( e.srcElement )
		{
			return e.srcElement.getAttribute( "id" );
		}
		
		return false;
	}
};