Hola otra vez:

Muy bien...
... pero creo que me estás haciendo trampa

...
Lo digo porque en la simplificación no estás contando con los eventos que son parte de lo que "rellena" el código..., pero creo que algo lo has simplificado.
De eso te hablaré luego, pero creo que antes de seguir, tal vez sea mejor adaptar las rutinas al DOM para que los gráficos puedan crearse en "tiempo real"...
La idea es que en vez de escribir las figuras mediante "document,write", se use createElement y luego se cuelgue al body.
Supongo que habrás visto el Inspector DOM de otro mensaje mio (hay muchos ejemplos más)... se trata de crear los elementos dinámicamente, por ejemplo en vez de:
document.write("<div align=center style="background-color: 'red'"></div>");
usar:
var unDiv = document.createElement("div");
unDiv.align = "center";
unDiv.style.backgroundColor = "red";
document.body.appendChild(unDiv);
...
Solo es una idea... si te animas, cuenta conmigo para ayudarte.
Saludos