Hola otra vez:
He descubierto un error en el valor de mayor, y es que debe inicializarse con yo.length o la condición de finalización del bucke cambiarla: i <
= mayor;
Con lo de los bucles, lo mejor es que se trate de un valor "constante" y nunca de un valor "calculado"...
Un ejemplo sería:
for (var i = 0; i < document.getElementsByTagName("img").length; i ++)
...
En este caso, por cada iteración del bucle, se genera el array de elementos "img" de la página... y luego se obtiene la propiedad length...
Una implementación mejor sería:
for (var i = 0, imagenes = document.getElementsByTagName("img"); i < imagenes.length; i ++)
Saludos