// -----------------------------------------------------------------------------------
// Debug functions...
// -----------------------------------------------------------------------------------
var DbgWin = 0;
var DbgDoc = 0;
function Debug()
{
	var doc;
	width = 500;
	height = 400;
	DbgWin = window.open("", "DebugWindow", "scrollbars=yes,width=" + width + ",height=" + height + ",resizable,dependent");
// Write main page...'
	doc = DbgWin.document;
	doc.open();
	doc.write("<HTML>\n");
	doc.write("\t<FRAMESET ROWS='35,*' BORDER='1' FRAMEBORDER='1'>\n");
	doc.write("\t\t<FRAME SRC='' NAME='head' MARGINWIDTH='2' MARGINHEIGHT='2' SCROLLING='no' NORESIZE>\n");
	doc.write("\t\t<FRAME SRC='' NAME='body' SCROLLING='auto' NORESIZE>\n");
	doc.write("\t</FRAMESET>\n");
	doc.write("</HTML>");
	doc.close();
// Write head page...
	doc = DbgWin.frames["head"].document;
	doc.open();
	doc.write("<HTML>\n");
	doc.write("\t<HEAD>\n");
	doc.write("\t\t<SCRIPT SRC='johan.js'></SCRIPT>\n");
	doc.write("\t\t<SCRIPT LANGUAGE='JavaScript'>\n");
	doc.write("\t\t<!--;\n");
	doc.write("\t\t\tvar dbgLines = 0;\n");
	doc.write("\t\t//-->\n");
	doc.write("\t\t</SCRIPT>\n");
	doc.write("\t</HEAD>\n");
	doc.write("\t<BODY BGCOLOR='#cfcfcf'>\n");
	doc.write("\t\t<FORM>\n");
	doc.write("\t\t\t<TABLE WIDTH='100%'>\n");
	doc.write("\t\t\t\t<TR>\n");
//	doc.write("\t\t\t\t\t<TD VALIGN='top'>\n");
//	doc.write("\t\t\t\t\t\t<INPUT TYPE='button' VALUE='Clear log' ONCLICK='WriteDbgBody(parent.frames[\"body\"].document);'>\n");
//	doc.write("\t\t\t\t\t</TD>\n");
	doc.write("\t\t\t\t\t<TD VALIGN='middle'>\n");
	doc.write("\t\t\t\t\t\t<NOBR>");
	DbgDoc = doc;
	WriteDbg("Debug log opened.", 1);
	doc.write("</NOBR>\n");
	doc.write("\t\t\t\t\t</TD>\n");
	doc.write("\t\t\t\t\t<TD ID='lines' VALIGN='middle' ALIGN='right'>\n");
	doc.write("\t\t\t\t\t</TD>\n");
	doc.write("\t\t\t\t</TR>\n");
	doc.write("\t\t\t</TABLE>\n");
	doc.write("\t\t</FORM>\n");
	doc.write("\t</BODY>\n");
	doc.write("</HTML>");
	doc.close();
// Write body page...
	doc = DbgWin.frames["body"].document;
	WriteDbgBody(doc);
	// ...

// Set global write doc...
	DbgDoc = doc;
}
function WriteDbgBody(doc)
{
	DbgWin.frames["head"].dbgLines = 0;
	WriteDbgLines();
	
	doc.open();
	doc.write("<HTML>\n");
	doc.write("\t<BODY BGCOLOR='#ffffff'>\n");
	doc.write("\t\t<FONT FACE='Courier New' SIZE='-2'>\n");
	doc.write("\t\t\t<NOBR>\n");
}
function WriteDbgLines() {
	if (document.layers) {
		doc = DbgWin.frames["head"].document.layers["lines"].document;
		doc.open();
		doc.write(DbgWin.frames["head"].dbgLines);
		doc.close();
	} else {
		DbgWin.frames["head"].document.all("lines").innerHTML = "<NOBR>Logged lines: " + DbgWin.frames["head"].dbgLines + "</NOBR>";
	}
}

function WriteDbg(dbgtext, time)
{
	if (DbgWin && DbgDoc)
	{
		if (time)
		{
			now = new Date();
			DbgDoc.write(BuildDateTimeString(now, true) + ": ");
		}
		
		DbgDoc.write((dbgtext.replace(/</g, "&lt;")).replace(/>/g, "&gt;"));
	}
}
function WriteDbgLn(dbgtext, time)
{
	if (DbgWin && DbgDoc)
	{
		WriteDbg(dbgtext, time);
		DbgDoc.write("<BR>\n");
		
		lines = DbgWin.frames["head"].dbgLines++;
		WriteDbgLines();
		DbgWin.frames["body"].scrollTo(0, lines * 10);
	}
}
