// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();
// retrieves the XMLHttpRequest object


function createXmlHttpRequestObject(){
	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// if running Internet Explorer
	if(window.ActiveXObject){
		try {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e) {
			xmlHttp = false;
		}
	
	// if running Mozilla or other browsers
	} else {
		try {
			xmlHttp = new XMLHttpRequest();
		}
		catch (e) {
			xmlHttp = false;
		}
	}
	// return the created object or display an error message



	if (!xmlHttp){
		alert("Error creating the XMLHttpRequest object.");
	} else {
		return xmlHttp;
	}
	// make asynchronous HTTP request using the XMLHttpRequest object
	
}


function update_chat(total){
// proceed only if the xmlHttp object isn't busy
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
		xmlHttp.open("GET", "ajax_update.php?total=" + total, true);
		// define the method to handle server responses
		xmlHttp.onreadystatechange = handleSuperResponse;
		// make the server request
		xmlHttp.send(null);
	}
// executed automatically when a message is received from the server
}





function add_dialog(user){
// proceed only if the xmlHttp object isn't busy
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
		addmessage = document.getElementById("message").value;
		parameters = 'user=' + user + '&message=' + addmessage;
		xmlHttp.open('POST', 'ajax_add.php', true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      	xmlHttp.setRequestHeader("Content-length", parameters.length);
      	xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(parameters);
		addmessage = document.getElementById("message").value = '';
		addmessage = document.getElementById("message").focus();
	} else {
		// if the connection is busy, try again after one second
		setTimeout("add_dialog('"+user+"')", 1000);
	}
// executed automatically when a message is received from the server
}






function handleSuperResponse(){
	// move forward only if the transaction has completed
	if (xmlHttp.readyState == 4){
	// status of 200 indicates the transaction completed successfully
		if (xmlHttp.status == 200){
			helloMessage = xmlHttp.responseText;
			document.getElementById('main').innerHTML = helloMessage;
		// a HTTP status different than 200 signals an error
		} else {
			alert("There was a problem accessing the server: " + xmlHttp.statusText);
		}
	}
}