var dwin;
var ddoc;
var denable = false;
function debug(msg) {
	if(!denable) return;
	
	if(!dwin) {
		dwin = window.open("", "debug", "dependent=yes,height=400,width=550,menubar=no,location=no,status=no,toolbar=no,scrollbars=yes,resizable=yes");
		dwin.moveTo(0,0);
		dwin.document.open("text/plain");
		dwin.document.write("\nStarting debug on "+new Date().toLocaleString()+"\n");
		dwin.document.write("==============================================\n\n");
	}

	if (dwin.document) {
	    dwin.document.write("["+new Date().toLocaleString()+"]\t"+msg+"\n");
	    dwin.scrollBy(0,1000);
    }
}

function jsonRequest(action, params, callback) {
	new Ajax.Request("/json/"+action,
		{
			parameters:params,
			onComplete:function(res) { jsonResponse(res, callback) }
		});
}

function jsonResponse(res, callback) {
	eval("var data = "+extractJson(res)+";");
	callback(data);
}

function extractJson(res) {
	var doc = res.responseXML;
	var nodes = doc.getElementsByTagName("json");
	
	for(var i = 0; i < nodes.length; i++)
	{
		if(nodes[i].nodeType == 1 && nodes[i].nodeName == 'json') {
			return nodes[i].firstChild.nodeValue;
		}
	}
}

