var XMLHttp = createXMLHttpRequestObject();
var XMLHttpSend = createXMLHttpRequestObject();
var REFRESH_RATE = 2000; // Refresh rate in milli-seconds

function createXMLHttpRequestObject() {
	var req;
	if (window.ActiveXObject) {
		try {
			req = new ActiveXObject("Microsoft.XMLHttp");
		}
		catch (e) {
			req = false;
		}
	}                              
	else {
		try {
			req = new XMLHttpRequest();
		} catch (e) {
			req = false;
		}
	}
	if (!req) {
		alert("Could not create XMLHttp Object!");
	} else {
		return req;
	}
}

function refresh() {
	try {
		XMLHttp.open("GET", "process_req.php", true);
	} catch (e) {
		alert("There was an error making a request to the server");
	}

	// Event listener for changes in states of
	// xmlHttp.
	XMLHttp.onreadystatechange = function() {
		// Ready?
		if (XMLHttp.readyState == 4) {
			// Good to go?
			if (XMLHttp.status == "200") {
				document.getElementById("chatContent").innerHTML
					= XMLHttp.responseText;
			}
		}
	}
	XMLHttp.send(null);

	// run refresh() again after REFRESH_RATE ms.
	setTimeout("refresh()", REFRESH_RATE);
}	

function processXML(xml) {
	var output = "";
	var messages = xml.getElementsByTagName("message");
	for (i = 0; i < messages.length; i++) {
		output += "<div class=\"message\">"
			+ "<h4>" + messages[i].getElementByTagName("author") + "</h4>"
			+ "<p>" + messages[i].getElementByTagName("text") + "</p>"
			+ "</div>";
	}

	document.getElementById("chatContent").innerHTML = output;
}

function addMessage() {
	var author = document.getElementById("author").value;
	var text = document.getElementById("message_text").value;
	var url = "add_message.php?author=" + author + "&text=" + text;

	try {
		XMLHttpSend.open("GET", url, false);;
	} catch (e) {
		alert("Error sending message.  Could not contact server.");
	}


	XMLHttpSend.send(null);

	document.getElementById("message_text").value = "";
	document.getElementById("message_text").focus();

}	
