Storing preferences using HTML5 Local Storage
When user visits the tool web page, the HTML5 Local Storage database is queries for the preference information. If nothing is found, default values are returned. The page is then initialized with values based on the preference. Subsequent changes due to user interaction results in updating of the preference in the Local Storage.
You can read more about HTML5 Local Storage here, especially the techniques to manage non-string values.
The source code for the PreferenceManager class can be found here.
Using jQuery for code cleanup
Lastly I used jQuery to perform get and set on the actual form components. For example, check whether a checkbox is _checked _ or not. Until this version, I had utility functions that effectively called getElementById() methods which had bloated the code. With jQuery, I was able to reduce the number of functions as well as number of lines of code.
The usage of jQuery can be found here.