My Google Maps Script
Your initMap function is called by the Google Maps' DOM listener.  I would actually move this to the anonymous window.onload function that you have.

The reason is is more philosophical than practical.  You're trying to use Google maps' api to initialize your maps objects.  It seems un-intuitive that Maps should initialize maps.  

If Google ever changed their API for their DOM listener, it could mess up this functionality.

The only other issue I would consider is some protection against the initMap being called twice.  Just a flag at the top or something simple like that:

if (mapsInitialized) 
    return;
mapsInitialized = true;