function setPage(response) { var merged=false; var ctltpl = response.firstChild.getAttribute("ctl.tpl"); if (ctltpl) { while(document.getElementById("page").hasChildNodes()) { document.getElementById("page").removeChild(document.getElementById("page").firstChild); } function myObserver() { this.register(); } myObserver.prototype = { observe: function(subject, topic, data) { if (topic=='xul-overlay-merged') { merged=true; } } } var observer = new myObserver(); document.loadOverlay('chrome://xero/content/'+ctltpl+'.xul',observer); do {} while (merged==false); }}