/*
Debug window
author: Darrin Mann (darrin@csh.rit.edu) Feb 2005

To Use:
debug( "Your error message goes here" );

Put the following in your .css file and edit to your hearts content:
#debug_box
{
	color: white;
	background-color: red;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 200px;
	z-index: 10000000000;
	border: 1px solid black;
}

#debug_text
{
	color: red;
	background-color: #FFCCCC;
	width: 200px;
	height: 200px;
	overflow: auto;
	font-family: monospace;
	text-align: left;
}
*/

var debugOffsetX, debugOffsetY;
var debugDragging = false;

function debugStartDrag( e ) {
	e = e? e: window.event;
	if ( (e.target != null && e.target.id == "debug_box") ||
			(e.srcElement !=null && e.srcElement.id == "debug_box") ) {
		e.offX = (typeof e.layerX != "undefined")? e.layerX: e.offsetX;
		e.offY = (typeof e.layerY != "undefined")? e.layerY: e.offsetY;
		debugOffsetX = e.offX;
		debugOffsetY = e.offY;
		debugDragging = true;
	}
};

function debugMoveDrag( e ) {
	if ( debugDragging ) {
		e = e? e: window.event;
		var target = document.getElementById("debug_box");
		target.style.left = ( e.clientX - debugOffsetX ) + "px";
		target.style.top = ( e.clientY - debugOffsetY ) + "px";
	}
};

function debugEndDrag( e ) {
	debugDragging = false;
};

function debugCreate() {
	var debugBox = document.createElement("div");
	var debugText = document.createElement("div");

	debugBox.id = "debug_box";
	debugText.id = "debug_text";

	debugBox.appendChild( document.createTextNode( "Debug Window" ) );

	debugBox.onmousedown = debugStartDrag;
	debugBox.onmousemove = debugMoveDrag;
	if ( document.body.onmousemove != null ) {
		document.body.onmousemove += ";" + debugMoveDrag;
	}
	else {
		document.body.onmousemove = debugMoveDrag;
	}
	debugBox.onmouseup = debugEndDrag;

	debugBox.appendChild( debugText );
	debugBox.style.display = "none";
	document.body.appendChild( debugBox );
};

// In order to used the debug window, debugInit() must be called onload
function debugInit()
{
	if (document.getElementById('debug_text') == null)
	{
		debugCreate();
	}
	if (document.location.search.indexOf("debug=on") > -1)
	{
		document.cookie = "debug=on; expires=" + (new Date("01/01/2030").toGMTString()) + "; path=/";
	}
	else if (document.location.search.indexOf("debug=off") > -1)
	{
		document.cookie = "debug=off; expires=" + (new Date("01/01/2030").toGMTString()) + "; path=/";
	}
	if (document.cookie.indexOf('debug=on') > -1)
	{
		document.getElementById('debug_box').style.display = "block";
	}
};

function debug( msg ) {
	if ( document.getElementById('debug_text') == null ) {
		debugCreate();
	}
	document.getElementById('debug_text').appendChild( document.createTextNode(msg ) );
	document.getElementById('debug_text').appendChild( document.createElement("br") );
};

var debugJS = 1;