It is surprisingly poor written to me. This are some of the thing that has to be changed: 1. input tag is self closing - options.html 2. When using jQuery you should not use document.getElementById, innerHTML - notification.html 3. function pausecomp(millis) seems like "busy waiting" - background.html 4. html tags interpreted ( wow ) Edit: 1. It is more of a must than can, actually [w3][1]. Inputs must be self closing unlike in the file options.html, where all of them are like: `<input>...</input>` 2. When jQuery is used there is no reason to continue with the usage of: 1. `document.getElementById` - jQuery provides selector - **$('#...')** 2. `innerHTML` - jQuery provides method - **$().html()** 3. agreed. 4. If a question from Stackoverflow, for example like [this][2], contains html tag with **<>**, the tag is interpreted. So you will receive this question with an actual input. Maybe I should write something there, like sanitize - http://xkcd.com/327/. Something new to fix: 1. Using both `new Array` and `[]` is sign of bad style. You should chose one, and as *Crocford* and *SO community* **strongly** suggest it should be `[]` Update: - code style - a good practice is to use curly brackets, even if they are not needed now. This will produce a code which will be easier to update(options.html): Use if (condition) { // code ... }else{ // code ... } instead of if (condition) // code ... else // code ... - Another optimization - for cycle, from [MDN][3](notification.html) [1]: http://www.w3.org/TR/html4/interact/forms.html#h-17.4 [2]: https://stackoverflow.com/questions/5934300/c-inserting-input-in-htmldocument [3]: https://developer.mozilla.org/en/a_re-introduction_to_javascript#Arrays