nk_do_debug = true;

function nk_debug_open()
{
  if (!nk_do_debug) return;

  var w = window.top.nk_debug_w;

  if (w == null || w.closed) {
    w = window.top.nk_debug_w = window.open("", "nk_debug", "left=0,top=0,width=300,height=700,scrollbars=yes,status=no,resizable=yes");
	window.focus();
  }

  w.document.open();
  w.document.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><title>NK Debug Window</title></head><body></body>\n");
  w.document.close();
}

function nk_debug ()
{
  if (!nk_do_debug) return;

  nk_debug_private("rgb(0,0,0)", arguments);
}

function nk_debug_close()
{
  if (!nk_do_debug) return;

  var w = window.top.nk_debug_w;

  if (w && !w.closed) {
    w.close();
    window.top.nk_debug_w = null;
  }
}

function nk_fdebug ()
{
  if (!nk_do_debug) return;

  var prefix;

  if (arguments.callee.caller != null) {
    prefix = arguments.callee.caller.toString().match(/function\s+(\w+)/)[1] + "()";
  } else {
    prefix = "global()"
  }

  arguments.unshift(prefix);
   
  nk_debug_private("rgb(0,0,0)", arguments);
}

function nk_debug_warning ()
{
  if (!nk_do_debug) return;

  nk_debug_private("rgb(255,128,0)", arguments);
}

function nk_debug_critical ()
{
  if (!nk_do_debug) return;

  nk_debug_private("rgb(255,0,0)", arguments);
}

function nk_debug_private (c, args)
{
  if (!nk_do_debug) return;

  var w = window.top.nk_debug_w;

  if (w && !w.closed) {
    var now = new Date();
    var ds = now.toTimeString().substr(0,8);
    var ms = now.getMilliseconds().toString();

    ds += "." + "000".substr(0, 3 - ms.length) + ms;

    var msg = "<b>[" + ds + "]</b> ";

    for (var i = 0; i < args.length; i++) {
      msg += args[i] + " ";
    }

    var msg_div = w.document.createElement("div");

    msg_div.style.color = c;
    msg_div.style.whiteSpace = "nowrap";
    msg_div.style.fontFamily = "monospace";
    msg_div.style.fontSize = "12px";

    msg_div.innerHTML = msg;

    w.document.body.appendChild(msg_div);

    w.document.body.scrollTop = w.document.body.offsetHeight;

    delete now;
  }
}

