no page reload

- replaced window.location.hash with replaceState so that a new history
entry is not created whenever you change an input