Dear folks, Closure Compiler gives this warnings in Advanced Mode, underlining {this.
{this.
JSC_USED_GLOBAL_THIS: dangerous use of the global this object at l
"this" might have different meaning in different context, so it tells you exactly that. You can use closures instead:
Instead of
hovers[i4].onfocus = function() {this.className += "Hovered";}
have:
hovers[i4].onfocus = function(self) { return function() {self.className += "Hovered";} }(hovers[i4])