function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
var http = createRequestObject();
function loadLatestUpdates() {
    var request = "/blog/getupdates.php?date=" + lastDate + "&time=" + lastTime + "&eventid=" + eventID;
    http.open('get', request);
    http.onreadystatechange = function() {
        loadUpdatesResponse();
    }
    http.send(null);
}
function loadUpdatesResponse() {
    if (http.readyState == 4) {
        var xml = http.responseXML;
        
        var res = xml.getElementsByTagName('response')[0];
        var status = getElement(res, "status");
        
        if (status == "OK") {
            var comments = res.getElementsByTagName('comment');
            
            for (var i=0; i < comments.length; i++) {
                var comment = comments[i];
                
                var commentID = getElement(comment, "id");
                var commentDate = getElement(comment, "date");
                var commentTime = getElement(comment, "time");
                var displayTime = getElement(comment, "disptime");
                var commentType = getElement(comment, "type");
                var realname = getElement(comment, "realname");
                var postname = getElement(comment, "postname");
                var body = getElement(comment, "body");
                
                if (commentDate > lastDate) {
                    lastDate = commentDate;
                    lastTime = commentTime;
                } else if (commentDate == lastDate && commentTime > lastTime) {
                    lastTime = commentTime;
                }
                
                // Build new div
                var newEntry = document.createElement('div');
                newEntry.id = "blog" + commentID;
                var header = "";
                
                if (commentType == "user") {
                    if (postname != "") {
                        newEntry.className = "blogentry blogrole";
                        header = "Posted by " + realname + " (" + postname + ") on " + displayTime + ":";
                    } else {
                        newEntry.className = "blogentry bloguser";
                        header = "Posted by " + realname + " on " + displayTime + ":";
                    }
                } else if (commentType == "comment") {
                        newEntry.className = "blogentry blogcomment";
                        header = "Comment by " + realname + " on " + displayTime + ":";
                } else if (commentType == "commentin") {
                        newEntry.className = "blogentry blogcommentin";
                        header = "Comment <span id=\"blog" + commentID + "wait\">awaiting publication</span> by " + realname + " on " + displayTime + ":";
                }
                
                var head = document.createElement('p');
                head.className = "bloghead";
                head.innerHTML = header;
                newEntry.appendChild(head);
                
                var bodydiv = document.createElement('div');
                bodydiv.className = "blogbody";
                
                if (commentType == "commentin") {
                    body = body + "<p id=\"blog" + commentID + "admin\"><a onClick=\"javascript: publishComment(" + commentID + "); return false;\" href=\"/blog/publishcomment.php?id=" + commentID + "\">Publish Comment</a> "
                                + "   <a onClick=\"javascript: rejectComment(" + commentID + "); return false\" href=\"/blog/rejectcomment.php?id=" + commentID + "\">Reject Comment</a></p>";                    
                }
                
                bodydiv.innerHTML = body;
                newEntry.appendChild(bodydiv);
                
                var comdiv = document.getElementById("blogcomments");
                var phold = document.getElementById("placeholder");
                
                newEntry.style.display = "none";
                comdiv.insertBefore(newEntry, phold.nextSibling);
                
                try {
                    //Effect.SlideDown("blog" + commentID);
                    Effect.BlindDown("blog" + commentID);
                } catch (err) {
                    newEntry.style.display = "block";
                }
            }
        }
        
        startTimer();
    }
}
function getElement(xml, element) {
    if (xml.getElementsByTagName(element).length > 0 &&
        xml.getElementsByTagName(element)[0].firstChild != null) {
        return xml.getElementsByTagName(element)[0].firstChild.data;
    } else {
        return "";
    }
}
function startTimer() {
    setTimeout("loadLatestUpdates()", 30000);
}
