buenas...
solo un comentario acerca del punto y coma. en javascript -o al menos en los interpretes que he utilizado- es permitido escribir el punto y coma sin ninguna sentencia. en dicho caso, javascript lo interpreta como una sentencia vacia que simplemente hace nada. puede estar tanto antes como despues de una sentencia, incluso en una sola linea. en fin, el punto y coma extra no produce error.
Código:
// el siguiente codigo es valido y no produce error ;
;
;var n = 1+1;
;alert(n);;;;;;;;;
;;;;