// TODO: hacer intervalo mas amplio si no hay mensajes en un rato (para reducir requests)
// http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

var ultimo_mid_escrito = 0;
function enviar(user){
	if(document.forms[0].mensaje.value.length > 0){
		var url="enviar.php?user=" + escape(user) + "&mensaje=" + escape(document.forms[0].mensaje.value);
		var ajax = new AJAXInteraction(url);
		ajax.doGet();
		document.forms[0].mensaje.value = "";
		sacaNuevos();
	}
}
function sacaNuevos(){
	var url="nuevos.php?mid=" + document.getElementById("ultimo-mid").value;
	var ajax = new AJAXInteraction(url,null,null,imprimeNuevos);
	ajax.doGet();
}
function imprimeNuevos(responseXML){
	var root = responseXML.getElementsByTagName("resp");
	var msgs = root[0].getElementsByTagName("msg")
	if(msgs.length){
		for(var i=0; i<msgs.length ; i++){
			var mid = msgs[i].getElementsByTagName("mid");
			var user = msgs[i].getElementsByTagName("user");
			var mensaje = msgs[i].getElementsByTagName("mensaje");
			mid = mid[0].firstChild.nodeValue;
			user = user[0].firstChild.nodeValue;
			if(mid > ultimo_mid_escrito){
				var li = document.createElement("li");
				li.innerHTML = "<span class=\"username\">"+user+": </span>";
				if(mensaje[0].hasChildNodes()){
   					var children = mensaje[0].childNodes;
   					for(var j = 0; j < children.length; j++){
						li.innerHTML += children[j].nodeValue;
	   				}
 				}
				document.getElementById("chat-msgs").appendChild(li);
				ultimo_mid_escrito = mid;
			}
		}
		//compruebaFocus('ultimos-mensajes');
		divScroll.activeScroll();
		compruebaFocus('textareaReply');
		document.getElementById("ultimo-mid").value = mid;
	}
}
function sacaUsers(){
	var username = document.getElementById("userid").value;
	var url="users.php";
	if(username.length) url="users.php?user=" + document.getElementById("userid").value;
	var ajax = new AJAXInteraction(url,null,null,imprimeUsers);
	ajax.doGet();
}
function imprimeUsers(responseXML){
	// limpio los usuarios viejos
	var lista = document.getElementById("user-list");
	while(lista.childNodes[0]){
    	lista.removeChild(lista.childNodes[0]);
	}
	var li = document.createElement("li");
	li.innerHTML = "<strong>USUARIOS</strong>";
	lista.appendChild(li);
	var root = responseXML.getElementsByTagName("resp");
	var users = root[0].getElementsByTagName("user")
	if(users.length){
		for(var i=0; i<users.length ; i++){
			li = document.createElement("li");
			li.innerHTML = users[i].firstChild.nodeValue;
			lista.appendChild(li);
		}
	}
}
function inicia(){
	sacaUsers();
	compruebaFocus('textareaReply');
}
var divScroll = new chatscroll.Pane('chat');
setInterval("sacaNuevos();",1500);
setInterval("sacaUsers();",30000);
