function updateTimeline(kbn, count, timelineId, speed){
	$.ajax({
		 dataType : "json"
		,data : {
				 "kbn" : kbn
				,"count" : count
			}
		,cache : false
		,url: URL_CONTEXT_NOTSSL + "/timeline/update.do"
		,success : function(data){
				var timeline = $("#" + timelineId);
				timeline.empty();
				if( data.timeline.length == 0 ){
					return;
				}
				$.each(data.timeline, function(i, item){
					var text = "";
					if( item.userId || item.userId != "" ){
						text = "<b>" + item.userId + "</b> さんのコメント<br/>";
					}
					text = text + item.comment;

					$("<div/>").attr("class","underline").css("display","none").append(text).appendTo(timeline);
				});
				if( timeline.timerId ){
					clearTimeout(timeline.timerId);
					timeline.timerId = null;
				}
				if( !speed ){
					speed = 3000;
				}
				timeline.timerId = setTimeout("fadeIn('"+timelineId+"'," +speed+ ")",100);
			}
	});
}
function fadeIn(timelineId, speed){
	var change = false;
	var timeline = $("#" + timelineId);
	var kids = timeline.children();
	for(var i=kids.length-1; i>=0; i--){
		var kid = $(kids[i]);
		if( "none" == kid.css("display") ){
			kid.show("slow");
			change = true;
			break;
		}
	}
	if( change ){
		if( timeline.timerId ){
			clearTimeout(timeline.timerId);
			timeline.timerId = null;
		}
		timeline.timerId = setTimeout("fadeIn('"+timelineId+"',"+speed+")", speed);
	}else{
		if( kids.length == 1 ){
			return;
		}
		var lastkid = $(kids[kids.length-1]);
		lastkid.css("display","none");
		$(kids[0]).before(lastkid);
		lastkid.show("slow");
		timeline.timerId = setTimeout("fadeIn('"+timelineId+"',"+speed+")", speed);
	}
}