window.addEventListener("ondomready", init_venue('0'), false);
Du willst, dass beim Eintreten des Events die Funktion init_venue ausgeführt wird und ihr sollen Parameter übergeben werden.
Was du hier machst, ist aber was ganz anderes! Wenn der Browser diese JS-Codezeile ausführt, dann wird löst er erst alle Ausdrücke in den Funktionsparametern auf. Das heißt: init_venue(0) wird direkt ausgeführt und dessen Rückgabewert wird an addEventListener übergeben. addEventListener erwartet wahrscheinlich ein Funktionsobjekt. Du übergibst aber keines, denn init_venue gibt nichts zurück.
Daraus resultiert, dass init_venue sofort ausgeführt wird, und nicht erst ondomready, wenn das DOM zur Verfügung steht. Klar, in dem Moment kannst du nicht mit getElementById auf Elemente zugreifen.
Du musst also ein Funktionsobjekt übergeben, das den init_venue-Funktionsaufruf kapselt. Das ginge z.B. mit einer Function-Expression:
window.addEventListener("ondomready", function () { init_venue('0') }, false);
http://redaktion.selfhtml.org/selfhtml-preview/javascript/einbindung.html#fehler-handler-aufrufen (gilt sowohl fürs traditionelle Event-Handling wie auch für die Benutzung von addEventListener und Helferfunktionen)
http://aktuell.de.selfhtml.org/weblog/javascript-syntax
Mathias