dojo.addOnLoad(pageInit);


function pageInit() { 
	dojo.connect( dojo.byId('query'), 'onkeypress', sendQuery );
	dojo.subscribe("/ajax/sendquery", startWaitAnim );
	dojo.subscribe("/ajax/sendquery", doAjaxReq );
	dojo.subscribe("/ajax/gotresp", stopWaitAnim );
	dojo.subscribe("/ajax/gotresp", appendConv );
	dojo.subscribe("/ajax/gotresp", showBigBox );
//	dojo.subscribe("/ajax/gotresp", clearInput );
}

function sendQuery( evt ) { 
	if( evt.keyCode == dojo.keys.ENTER) { 
		dojo.publish('/ajax/sendquery', [ evt.target.value ] );
		evt.target.value = "";
	} 
}

function doAjaxReq( message ) { 
	console.debug("doAjaxReq, got:", message );
	dojo.xhrGet( {
		handleAs: "json",
		url: "chat",
		content: { query: message },
		load: function( data ) { 
			dojo.publish("/ajax/gotresp", [ data ] );
		},
		error: function( data ) { 
			console.debug( "Error in ajax resp: ", data );
		}
	});
	
}


function startWaitAnim() {
	console.debug("Starting the waiting..");
	dojo.byId('proc').style.display = "inline";
}

function stopWaitAnim() {
	console.debug("stopping the waiting..");
	dojo.byId('proc').style.display = 'none';
}

function showBigBox( obj ) { 
	console.debug("bigbox!");
	var d = dojo.byId('bigout');
	d.innerHTML = "<p>Quoth HALBot:</p><p>" + obj.response + "</p>";
}

function appendConv( obj ) { 
	console.debug( "Append: ", obj );
	var you = dojo.doc.createElement('p');
	you.innerHTML = "<b>You said</b>: " + obj.query;
	var bot = dojo.doc.createElement('p');
	bot.innerHTML = "<b>HALBot responded</b>: " + obj.response;
	dojo.byId('output').appendChild( you );
	dojo.byId('output').appendChild( bot );
}
