Lovely indeed. Minor suggestion - replace the shade and hide functions with a snippet of javascript and CSS trickery so you don't have a page refresh.
The technique is described in a variety of places - http://www.aglasshalffull.org/css-resources/Change-Div-Size-Color-and-Location-with-the-W3C-DOM.htm seems to have a pretty clear explanation of the technique.