El problema esta en que a la variable i le estas haciendo un i++ de mas.
Fijate que al poner el valor 5000 para salir, anteriormente hiciste un i++, y no se le asigno valor al array en ese indice.
cuando lo recorres con el for estarías haciendo un valor de mas.
Hay 2 maneras de arreglarlo; en el while o en el for. Lo dejo para vos.
PD: Una buena herramienta es la extensión firebug de firefox; la cual te deja hacer debug en el javascript
y ver los valores de las variables en cada momento.
Saludos