function getScrollXY(WindowObj) {
	if (!WindowObj) {
		WindowObj = window;
	}

	var scrOfX = 0, scrOfY = 0;
	if( typeof( WindowObj.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = WindowObj.pageYOffset;
		scrOfX = WindowObj.pageXOffset;
	} else if( WindowObj.document.body && ( WindowObj.document.body.scrollLeft || WindowObj.document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = WindowObj.document.body.scrollTop;
		scrOfX = WindowObj.document.body.scrollLeft;
	} else if( WindowObj.document.documentElement && ( WindowObj.document.documentElement.scrollLeft || WindowObj.document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = WindowObj.document.documentElement.scrollTop;
		scrOfX = WindowObj.document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}
function debug(msg, obj) {
	var dbg = document.getElementById("myDebugArea");

	//create the debug container if needed
	if (!dbg) { //create the debug container if needed
		dbg = document.createElement("div");
		dbg.id = "myDebugArea";
		document.body.appendChild(dbg);
		t = document.createElement("h2");
		t.appendChild(document.createTextNode("DEBUG"));
		dbg.appendChild(t);
	}

	//add the message to the debug container
	dbg.appendChild(document.createTextNode(msg));
	dbg.appendChild(document.createElement("br"));

	if (obj) {
		var txt = "***** Object Dump *****";
		dbg.appendChild(document.createTextNode(txt));
		dbg.appendChild(document.createElement("br"));

		for (prop in obj) {
		var txt = prop + ": " + obj[prop];
		dbg.appendChild(document.createTextNode(txt));
		dbg.appendChild(document.createElement("br"));
		}

		var txt = "***********************";
		dbg.appendChild(document.createTextNode(txt));
		dbg.appendChild(document.createElement("br"));
	}
}
