var console_window = null;
var console_init_timer = null;
function console_launch(){
  if (!console_window){
     console_window = window.open("/console.html","Console",'width=1000,height=600,resizable,scrollbars=yes');
     console_init_timer = setInterval(write_console_cache,100);
  }
}
var console_cache = Array();
function console_write(str){
  if (console_window && console_window.document){
     elem = console_window.document.getElementById('log-output');

     if (elem){
        var child = console_window.document.createElement('span');

        child.className = "console-element";
        var text = console_window.document.createTextNode(str);

        child.appendChild(text);
        elem.appendChild(child);

        var br = console_window.document.createElement('br');
        elem.appendChild(br);
        var objDiv = document.getElementById("divExample");
        elem.scrollTop = elem.scrollHeight;
     } else {
        //the window's not built yet so cache the text
        console_cache.push(str);
     }
  }
}
function console_dump_obj(label,obj){
  var string = label+" "+JSON.stringify(obj);
  console_write(string);
}
function write_console_cache(){
  if (console_window && console_window.document){
     elem = console_window.document.getElementById('debug-console');
     if (elem){
        clearInterval(console_init_timer);
        if (console_write.length>0){
           for (var i=0; i<console_cache.length; i++){
               console_write(console_cache[i]);
           }
           console_cache = Array();
        }
     }
  }
}