/* [version]2007-10-22 15:30[/version] */
/**
IE registriert bei attachEvent den Handler nicht als Funktion des Elements,
daher gibt's keine Möglichkeit beim Bubble festzustellen, bei welchem Element
wir gerade sind bzw. welches Element wir genau sind. srcElement gibt ja nur
das eigentlich Target an, an dem der Event aufgetreten ist.
Closures erzeugen bei Events in IE Memory-leaks, also bleibt nur noch die
Registrierung über DOM Level 0.
*/
function registerEventLevel0( element, type, handler ){
	if( window.addEventListener ){
		element.addEventListener( type, handler, false );
	}else if( window.attachEvent ){
		// Verwende Level 0 API, damit 'this' auf das Element verweist.
		element["on" + type] = handler;
		//element.attachEvent( "on" + type, handler );
	}
}

function unregisterEventLevel0( element, type, handler ){
	if( window.removeEventListener ){
		element.removeEventListener( type, handler, false );
	}else if( window.detachEvent ){
		// Verwende Level 0 API, damit 'this' auf das Element verweist.
		//element.detachEvent( "on" + type, handler );
		element["on" + type] = null;
	}
}

function stopEvent( e ){
	if( !e ) e = window.event;	// IE Event Model.

	if( e.stopPropagation ){
		e.stopPropagation();
	}else if( e.cancelBubble == false ){
		e.cancelBubble = true;
	}
}

function registerEvent( element, type, handler ){
	if( window.addEventListener ){
		element.addEventListener( type, handler, false );
	}else if( window.attachEvent ){
		element.attachEvent( "on" + type, handler );
	}
}

function unregisterEvent( element, type, handler ){
	if( window.addEventListener ){
		element.removeEventListener( type, handler, false );
	}else if( window.attachEvent ){
		element.detachEvent( "on" + type, handler );
	}
}

