function NewsFader( id ) {
	// create an object
	if ( typeof this.Wait != "function" ) {
		new NewsFader( id );
		return;
	}

	var ul = document.getElementById( id );
	if ( ul == null ) return;
	this.list = ul.getElementsByTagName( "LI" );
	
	var h = 0;
	for ( var i=0; i<this.list.length; ++i ) {
		this.list[i].id = id + "_" + i;
		this.list[i].NewsFader = this;

		this.list[i].style.border = 'none';
		this.list[i].style.paddingTop = '0px';
		this.list[i].style.paddingBottom = '0px';
		if ( document.all ) {
			this.list[i].realHeight = this.list[i].offsetHeight/2;
		}
		else {
			this.list[i].style.position = 'absolute';
			this.list[i].realHeight = this.list[i].offsetHeight;
		}
		if ( h <= 0 ) h = this.list[i].offsetHeight;
		this.list[i].style.display = 'none';
		this.list[i].style.position = 'absolute';
	}
	
	this.ul = ul;
	ul.style.height = h+"px";
	this.list[0].style.display = '';
	this.current = 0;
	this.Wait();
}

NewsFader.prototype.Wait = function() {
	var fader = this;

	var h = fader.list[fader.current].realHeight;
	fader.ul.style.height = h+"px";

	setTimeout( function() { 
		var h = fader.list[fader.current].realHeight;
		fader.next = fader.current+1;
		if ( fader.next >= fader.list.length ) fader.next = 0;
		if ( h < fader.list[fader.next].realHeight ) h = fader.list[fader.next].realHeight;
		fader.ul.style.height = h+"px";

		new Effect.Parallel( [
			Effect.Fade( fader.list[fader.current] ),
			Effect.Appear( fader.list[fader.next] )
		], { duration: 1.0, afterFinish: function() {
			fader.current = fader.next;
			fader.Wait();
		} } );

		/*
		Effect.Fade( fader.list[fader.current], { duration: 1.0, afterFinish: function() {
			fader.next = fader.current+1;
			if ( fader.next >= fader.list.length ) fader.next = 0;
			Effect.Appear( fader.list[fader.next], { duration: 1.0, afterFinish: function(effect) {
				fader.current = fader.next;
				fader.Wait();				
			} } );
		} } );
		*/
	}, 2000 );
}