Due to the DOM not being ready when osem.js is executed, the
bind statements do not actually bind on the correct elements.
We just wrap the binds in a document ready event which allows
the elements to fully load and the events to fire correctly.
I also bind on more then just keyup, to catch times when people
paste content into the field. The input event is only supported
by newer browsers, but is entirely a noop for older browsers.