
function fadeNewContent(element, url, options) {
	if (!options) options = new Array();
	if (!options['duration']) options['duration'] = 6;
	if (!options['afterFinish'] || typeof(options['afterFinish']) != 'function') options['afterFinish'] = function() {};

	// wir brauchen temporär einen Wrapper für den alten Inhalt
	element.innerHTML = '<div class="fadeNewContent" style="position: absolute;">' + element.innerHTML + '</div>';
	var oldContentWrapper = element.firstChild;

	// und einen für den neuen Inhalt
	var newContentWrapper = document.createElement('div');
	newContentWrapper.id = 'newContent';
	newContentWrapper.className = 'fadeNewContent';
	newContentWrapper.style.position = 'absolute';
	newContentWrapper.style.display = 'none';
	element.appendChild(newContentWrapper);

	// nun holen wir uns den neuen Inhalt
	new Ajax.Updater(newContentWrapper, url, {evalScripts: true, onComplete: function() {
		new Effect.Appear(newContentWrapper, {duration: options['duration']});
		new Effect.Fade(oldContentWrapper, {duration: options['duration'], afterFinish: function() {
			element.innerHTML = newContentWrapper.innerHTML;
			options['afterFinish']();
		}});
	}});
}
