moin,
Du hast zwar eine schöne Preload-Funktion geschrieben (bzw. kopiert) allerdings wird die nirgendwo aufgerufen.
Somit wird dein preloadFlag niemals auf true gesetzt und deine ganzen schönen Wechselspiele gehen (sauber programmiert - Respekt) ins Leere.
also schön ein <body onLoad="preloadImages()"> einbauen und es klappt auch mit dem Script.
schönen Gruß