Pues parece evidente que la causa esta en llamar a la función desde el onLoad() del body, por algún motivo el evento salta varias veces
¿No puedes llamarla desde otro lado? De todas formas me parece más una pregunta para el foro de javascript.
También se me ocurre que pruebes a poner en la función return false o return true, por probar
Salu2