﻿function getmyXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();} 
    else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");} 
	else {
		alert('Cound not create XmlHttpRequest Object.  Consider upgrading your browser.');
	}
}

function getList(commentId, mode) {
	if (myxmlhttp.readyState == 4 || myxmlhttp.readyState == 0) {
	    var baseUrl = document.getElementById('lnkAjax').href;
	    if (mode == 'Next'){
		    var url = baseUrl + '?idx=' + commentId + '&next=true';
	    }
	    else {
		    var url = baseUrl + '?idx=' + commentId;
	    }
	    myxmlhttp.open("GET",url,false);
        myxmlhttp.send("");
        showComments(myxmlhttp.responseText, mode);
        myxmlhttp.close;
	}
}

function showComments(Node, mode) {
    var browser = 'ie';
	var nameIndex = 0;
	var valueIndex = 1;    
	if (document.implementation && document.implementation.createDocument)
	{
	  browser = 'firefox';
	  var nameIndex = 1;
	  var valueIndex = 3;
	  var xmlDoc = (new DOMParser()).parseFromString(Node, "text/xml"); //loads string in XML for Firefox, Opera, etc
	}
	else if (window.ActiveXObject)
	{
	   var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
       xmlDoc.loadXML(Node); //loads string to XML format in IE
 	}
 	if (mode == 'Next'){
	    var messageNodes = xmlDoc.getElementsByTagName("comment"); 
	    var numberOfMessages = messageNodes.length;
 	    var lastIdNode = messageNodes[0].getAttribute('id');
	    var firstIdNode = messageNodes[4].getAttribute('id');
        nextIndex = (firstIdNode);
        prevIndex = (lastIdNode);
	    for (i = (numberOfMessages - 1); i >= 0; i--) {
		    var userNode = messageNodes[i].getElementsByTagName("name");
		    var userNodeValue = userNode[0].firstChild.nodeValue;
		    var textNode = messageNodes[i].getElementsByTagName("message");
		    var textNodeValue = textNode[0].firstChild.nodeValue;
		    var timeNode = messageNodes[i].getElementsByTagName("time");
		    var timeNodeValue = timeNode[0].firstChild.nodeValue;
		    var message;
            message = '<div style="background-color:#CCFFFF;border-top:1px solid #000">From: ' + userNodeValue + '&nbsp;&nbsp;Posted on: <i>' + timeNodeValue + '</i></div>' + textNodeValue + '<br /><br />';
            showText(message, i);
	    }
 	}
 	else {
	    var messageNodes = xmlDoc.getElementsByTagName("comment"); 
	    var numberOfMessages = messageNodes.length;
	    var firstIdNode = messageNodes[0].getAttribute('id');
	    var lastIdNode = messageNodes[4].getAttribute('id');
        nextIndex = (firstIdNode);
        prevIndex = (lastIdNode);
	    for (i = 0; i < numberOfMessages; i++) {
		    var userNode = messageNodes[i].getElementsByTagName("name");
		    var userNodeValue = userNode[0].firstChild.nodeValue;
		    var textNode = messageNodes[i].getElementsByTagName("message");
		    var textNodeValue = textNode[0].firstChild.nodeValue;
		    var timeNode = messageNodes[i].getElementsByTagName("time");
		    var timeNodeValue = timeNode[0].firstChild.nodeValue;
		    var message;
            message = '<div style="background-color:#CCFFFF;border-top:1px solid #000">From: ' + userNodeValue + '&nbsp;&nbsp;Posted on: <i>' + timeNodeValue + '</i></div>' + textNodeValue + '<br /><br />';
            showText(message, i);
	    }
	}
	if (parseInt(nextIndex) >= parseInt(index)) {
	    disableLink('lnkNext');	
	}
	else {
	    enableLink('lnkNext');
	}
	
	if (parseInt(prevIndex) <= 8) {
	    disableLink('lnkPrev');	
	}
	else {
	    enableLink('lnkPrev');
	}
}

function showText(messageText, msgCounter){
    var divMessages = document.getElementById('divMessages');
    var divMessage = document.createElement('div');
    divMessage.setAttribute('id', 'msg' + msgCounter);
    divMessage.setAttribute('class', 'BodyText');
    divMessage.innerHTML += messageText
    divMessages.appendChild(divMessage);
	divMessages.scrollTop = divMessages.scrollHeight;
}


function showPrevious() {
    clearBox();
    prevIndex = parseInt(prevIndex) - 1;
    if (parseInt(prevIndex) < 8) {
        prevIndex = 8;
    }
    getList(prevIndex, 'Prev');
}

function showNext() {
    clearBox();
    getList(nextIndex, 'Next');
}

function clearBox(){
    for (i = 0; i < 5; i++) {
        document.getElementById('divMessages').removeChild(document.getElementById('msg' + i));    
    }
}

function enableLink(linkId){
    document.getElementById(linkId).style.visibility = 'visible';
}

function disableLink(linkId){
    document.getElementById(linkId).style.visibility = 'hidden';
}