I am working on a project myself and I am considering using Openmaize.
I found a great example which demos all the basic functionality you mentioned and more.
Hope this helps!