function createRequestObject(){
	var request_o = null; //declare the variable to hold the object.
	if (window.XMLHttpRequest) {
		// Firefox, Safari, Opera, IE7, etc
		request_o = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// Bad browser
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return request_o; //return the object
}

var http = createRequestObject(); 
var http2 = createRequestObject();
var http3 = createRequestObject(); 

/* Function called to get the photo */
function getPhoto(path, pbook, plaatje, shadow){
	http.open('get', '/ajax/pb_getphoto.php?pt=' + path + '&pb=' + pbook + '&img=' + plaatje + '&sh=' + shadow, true);
	http.onreadystatechange = handlePhoto;
	http.send(null);
}
function handlePhoto(){
	if(http.readyState == 4){ /*Finished loading the response*/
		var response = http.responseText;
		document.getElementById('photodiv').innerHTML = response;
	}
}

/* Chat main loop */
var chat_msgs_loop_counter = 0;
var chat_list_loop_counter = 0;
function chatMainLoop() {
	if (chat_msgs_loop_counter >= refresh_chat) {
		if (http.readyState != 0 && http.readyState != 4) {
			http.abort();
		}
		http.open('get', '/ajax/chat.php', true);
		http.onreadystatechange = handleChatMessages;
		http.send(null);
		chat_msgs_loop_counter = 0;
	}
	if (chat_list_loop_counter >= refresh_list) {
		if (http3.readyState != 0 && http3.readyState != 4) {
			http3.abort();
		}
		http3.open('get', '/ajax/chat.php?action=getlist', true);
		http3.onreadystatechange = handleChatUserlist;
		http3.send(null);
		chat_list_loop_counter = 0;
	}
	chat_msgs_loop_counter++;
	chat_list_loop_counter++;
	setTimeout('chatMainLoop()', 1000);
}

/* Function to fill the chat window with the chats */
function handleChatMessages() {
	if (http.readyState == 4) {
		var response = http.responseText;
		var divje = document.getElementById('chat_msgs');
		if (response != '') {
			divje.innerHTML += response;
			divje.scrollTop = divje.scrollHeight;
		}
	}
}

/* Function to refresh the chat user list */
function handleChatUserlist() {
	if (http3.readyState == 4) {
		var response = http3.responseText;
		var divje = document.getElementById('chat_list');
		divje.innerHTML = response;
	}
}

/* Function to post a new message */
function postChatMessage() {
	var input = document.getElementById('chat_inputfield');
	message = new String(input.value);
	message = message.replace(/\+/g,"*plusje*");
	if (http.readyState != 0 && http.readyState != 4) http.abort();
	if (http2.readyState != 0 && http2.readyState != 4) http2.abort();
	http2.open('get', '/ajax/chat.php?post=' + message, true);
	http2.onreadystatechange = handlePostMessage;
	http2.send(null);
	input.value = "";
}
function handlePostMessage() {
	if (http2.readyState == 4) {
		var response = http2.responseText;
		var divje = document.getElementById('chat_msgs');
		divje.innerHTML += response;
		divje.scrollTop = divje.scrollHeight;
	}
}

/* Catch the Enter key */
function handleKeyPress(e) {
	if ( typeof (event) != "undefined" ) {
		var keycode = event.keyCode;
	} else {
		var keycode = e.which;
	}
	if (keycode == 13) {
		postChatMessage();
	}
}
