

var GetChaturl = "getItems.php";
var SendChaturl = "sendChatData.php";
var lastID = 0; //initial value will be replaced by the latest known id
window.onload = initJavaScript;

function initJavaScript() {
	receiveChatText(); //initiates the first data query
}

//initiates the first data query
function receiveChatText() {
	if (httpReceiveChat.readyState == 4 || httpReceiveChat.readyState == 0) {
		httpReceiveChat.open("GET",GetChaturl + '?lastID=' + lastID + '&rand='+Math.floor(Math.random() * 1000000), true);
		httpReceiveChat.onreadystatechange = handlehHttpReceiveChat; 
		httpReceiveChat.send(null);

	}
	/*else{
		httpReceiveChat.open("GET",GetChaturl + '?lastID=' + lastID + '&check_new=yes', true);
		httpReceiveChat.onreadystatechange = handlehHttpReceiveChat; 
		httpReceiveChat.send(null);
	}*/
}

//deals with the servers' reply to requesting new content
function handlehHttpReceiveChat() {
  if (httpReceiveChat.readyState == 4) {

    results = httpReceiveChat.responseText.split('---'); //the fields are seperated by ---

    if (results.length > 5) {
		
	    for(i=0; i < (results.length-1);i=i+6) { //goes through the result one message at a time
	    	insertNewContent(results[i], results[i+1],results[i+2],results[i+3],results[i+4],results[i+5]); //inserts the new content into the page
	    	lastID = results[i];
		}
	    
    }

    setTimeout('receiveChatText();', 4000); //executes the next data query in 4 seconds
  }
}

//inserts the new content into the page
function insertNewContent(id, datetime, title, author, message, attachment) {
	insertO = document.getElementById("outputList");
	oLi = document.createElement('li');
	oLi.setAttribute('id', 'li'+id);
	
	oLi.innerHTML = datetime + '<br/> ' + attachment + '<br/><h3>' + title + '</h3>' + author + '<br/>' + message + '<hr style="width: 1px; color: #999; margin-top: 10px;"/>';
	
	// insert into the div
	insertO.insertBefore(oLi, insertO.firstChild);
	Element.hide('li'+id); 
	new Effect.Appear('li'+id, {duration: 1.0});
	new Effect.Highlight('li'+id, {startcolor: '#dddddd', delayed: 0.5, duration: 2.0});
}

//deals with the servers' reply to sending a comment
function handlehHttpSendChat() {
  if (httpSendChat.readyState == 4) {
  	receiveChatText(); //refreshes the chat after a new comment has been added (this makes it more responsive)
  }
}


//initiates the XMLHttpRequest object
//as found here: http://www.webpasties.com/xmlHttpRequest
function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}


// initiates the two objects for sending and receiving data
var httpReceiveChat = getHTTPObject();
var httpSendChat = getHTTPObject();
