function xfade(parent_div_id, pause_time, fade_time) {
	var kids = [];
	var current_div_num=0;

	/* fader */
	function perform_fade() {
		last_div_num = current_div_num;
		current_div_num = (current_div_num + 1) % kids.length;
		new Effect.Parallel([
			new Effect.Fade(kids[last_div_num], { 'sync': true, 'from': 1.0, 'to': 0.0 }),
			new Effect.Appear(kids[current_div_num], { 'sync': true, 'from': 0.0, 'to': 1.0 }) ],
			{ 'duration': fade_time});

	}

	/* start up */
	function start_me_up() {
		var parent_div = $(parent_div_id);
		if (!parent_div) return false;
		kids = $$('div#' + parent_div.id + ' div.fade-item');
		if (kids.length == 0) return false;
		setInterval(perform_fade,pause_time*1000);
		Effect.Appear(kids[current_div_num], { 'duration': fade_time, 'from': 0.0, 'to': 1.0 });
	}

	add_body_onload(start_me_up);
}
