La cosa più semplice è attingere agli elementi che vuoi inserire nel box dinamico da un box statico, opportunamente inserito nel documento e non visualizzato (per esempio impostando la proprietà CSS display: none;").

Poi dai a JavaScript il compito di inserire il contenuto al verificarsi dell'evento desiderato:

codice:
<html>
<head>
<title>JS labz</title>
<script language="javascript" type="text/javascript">
<!--
function insertContent() {
document.getElementById('target').innerHTML = document.getElementById('source').innerHTML;

}
//-->
</script>
</head>
<body>

<div id="target">Questo è il layer "target", in cui visualizzare il 
contenuto nascosto del layer "source".</div>

Insert content

<div id="source" style="display: none;">
Contenuto del layer "source", pieno di codice da far visualizzare nel layer "target"...

etc etc etc...</div>

</body>
</html>
Nota: la proprietà innerHTML è una proprietà di lettura e scrittura; l'ho usata per brevità ed è molto comoda ma non è conforme agli standard W3C; inizialmente era una feature proprietaria inventata da Microsoft, poi però la sua implementazione si è rapidamente estesa anche agli altri browsers.
Qui hai una accesa discussione sull'utilizzo della proprietà innerHTML invece dei metodi corretti del DOM.