3 coisas que vc tem que ter em mente quando usa JavaScript client-side:
Hmmm… acho que tem mais uma: padrões. Se vc programar seguindo os padrões e não abusando de nenhuma feature que possa estar mal implementada nos browsers atuais (por exemplo, DOM2), a coisa funciona que eh uma maravilha. Mas a partir do momento em que vc faz um “if(Mozilla) else if(IExplorer)”, fodeu tudo.
Outra dica muuuuuito importante: JavaScript é orientado a objetos. Use isso sempre que possível, e pegue leve nos métodos anônimos e na falta de tipagem. Pra um programador Java, isso até que é fácil de fazer… basta seguir as mesmas convenções normais de programação que vc está acostumado a ter em Java: métodos curtos, com nomes inteligíveis, nomes de variáveis decentes, etc e tal.
Procure não usar:
document.nomeDoForm.nomeDoControle.value
E sim:
document.getElementById("nomeDoComponente")
…isso te força a dar id’s unicos pra tudo - além de ficar mais fácil trabalhar no CSS depois, caso vc refatore a página e mova o elemento pra outro form, ou troque o nome dele por causa de alguma mudança no server-side, não estoura com o teu script 
No mais, dah uma lida no codigo dos caras da WebFX - http://webfx.eae.net …mestres
