Someone really needs to figure out all the JavaScript to get all the
states working correctly, or we'll have a bunch of disappointed half-
implemented buttons all over the place. I'm going to try to get it
right when I get time, but the buttons really should act like html
buttons.