NEW: check changed state text fields on keyup, rather than just change

add change event with keyup, use on(), off() instead of bind()

hasOwnProperty check, more specific text input selector

add debounce function, IE polyfill for Object.keys