2 interesting libraries

For a new project i try the following project:

TIMELINE:
It allow to create a widget representing a time scale on which you can put event.

The tutorial is well thinking. The API is rich enough to allow to custom the component according to your context. For example the following code show how to synchronise 2 timelines with differents time unit.

function init() {
var eventSource = new Timeline.DefaultEventSource();
var bandInfos = [ Timeline.createBandInfo({ eventSource: eventSource, date: new Date(), width: "100%", locale:'fr', intervalUnit: Timeline.DateTime.MONTH, intervalPixels: 100 }) ];
tl = Timeline.create(document.getElementById("my-timeline"), bandInfos);
var band=tl.getBand(0); band.addOnScrollListener(onScroll);
var eventSource2 = new Timeline.DefaultEventSource();
var bandInfos = [ Timeline.createBandInfo({ eventSource: eventSource2, date: new Date(), width: "70%", intervalUnit: Timeline.DateTime.DAY, intervalPixels: 100 }), ];
tl2 = Timeline.create(document.getElementById("my-timeline2"), bandInfos); }
function onScroll(band) { tl2.getBand(0).setCenterVisibleDate(band.getCenterVisibleDate()); }

Some functionalities are quit deep and we find hard to see there goal but the timeline is what you need for that kind of widget.

Notice that a GWT version exist

jsgraphics

It is a library offering graphic features. What seduced me in this approach it is the possibility of realizing drawings without using supplementary technologies (SVG, CANVAS, FLASH). Indeed the main concept is that every drawing corresponds to DIV pile optimized. It is a of low level API but it offers the necessary and sufficient features to realize more complex component (I think of graphs)