quando appendi elementi via DOM, ma anche se li inietti via innerHTML, non puoi aspettarti che il browser scriva precisamente quello che tu dici, il browser si intromette per rendere la parte inserita il piu' accettabile possibile, dal proprio punto di vista ovviamente...
il DOM non e' il markup XHTML
tu comunque sbagli settando come attributi l' onclick, il class e lo style
se setti class, devi settare anche className per IE
per lo style: devi settare una per una le proprieta'
newDiv.style.display='none';
newDiv.style.visibility='hidden';
newDiv.style.width='160px';
solo in IE potresti evitare con
newDiv.style.cssText="{display: none; visibility: hidden; width: 160px;}"
ma dal momento che non ci sono alternative cross-browser ti e' di poca utilita'
per i gestori eventi il discorso e' un po' piu' complesso...