//var debugWindow = window.open('','debug');
function Debug( sMsg )
{
		if(!Debug.document)
		{
		    Debug.window = window.open('','debug');
		    Debug.document = Debug.window.document;
		    Debug.document.open();
		    Debug.document.write("<h1>Debug</h1>");
		}
		try
		{
		    Debug.document.writeln( sMsg + '<br />' );
		}
		catch( err )
		{
		}
}

/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function Dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects
 for(var item in arr) {
  var value = arr[item];
 
  if(typeof(value) == 'object') { //If it is an array,
   dumped_text += level_padding + "'" + item + "' ...\n";
   dumped_text += dump(value,level+1);
  } else {
   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
  }
 }
} else { //Stings/Chars/Numbers etc.
 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
Debug('<pre>' + dumped_text + '</pre>');
} 

function showHTML(id)
{
  Debug("<textarea rows=10 cols=50>" + document.getElementById(id).innerHTML + "</textarea>");
}