var ajax = function(){
    return {
        makeRequest: function(){
            var request;
            var browser = navigator.appName;

            if (browser == "Microsoft Internet Explorer") {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } else {
                request = new XMLHttpRequest();
            }

            return request;
        }
    };
}();

var httpRequest = ajax.makeRequest();

var mypage,myname,w,h,scroll;

var locate    = "includes/chatbox/";

var chatbox = function(){
    return {
        getAlert: function() {
            alert("Haloooooo");
        },
        getOlderMessages: function() {
            //alert('Hello');
            window.open(locate+"oldermessage.php", "TestResponse", "width=400,height=500,scrollbars=yes");
        },
        shotout: function() {
            /*var name = document.getElementById('username');*/
            var message = document.getElementById('message');
            
            //var url = location+"/shotout.php?nm="+name.value+"&msg="+message.value;
            var url = locate+"shotout.php?msg="+message.value;
            httpRequest.open("post", url);
            httpRequest.onreadystatechange = function() {
                if (httpRequest.readyState == 4) {
                    var response = httpRequest.responseText;
                    if (response == "") {
                        //alert("failed");
                        document.getElementById("err-msgbox").innerHTML = "<label style=\"color: #FF0707; font-size: 10px;\"><i>* Mau chatting, <a href=\"gabung-yuk\">gabung yuk</a></i></label>";
                    } else {
                        chatbox.addFirstRow(response);
                        //return true;
                    }
                }
            }
            httpRequest.send(null);
            //chatbox.addFirstRow();
        },
        addrow: function(response) {
            var splitArray = response.split("|");

            var tbl = document.getElementById('shotoutbox');
            var lastrow = tbl.rows.length;
            var iteration = lastrow;
            var row = tbl.insertRow(lastrow);
            var rows = tbl.getElementsByTagName("tr");
            
            var numerik    = row.insertCell(0);
            //var textNode    = document.createTextNode(iteration);
            var textNode    = null;

            var color = (iteration%2==0)? "color1":"color2";

            var message      = row.insertCell(0);
            var msg          = document.createElement('div');
            msg.type         = 'text';
            msg.name         = 'pin' + iteration;
            msg.id           = 'pin' + iteration;
            msg.innerHTML    = splitArray[0]+" : "+splitArray[1];
            msg.size         = 10;
            message.className = color;
            message.appendChild(msg);

            numerik.appendChild(textNode);
        },
        addFirstRow: function(response) {
            var splitArray = response.split("|");

            var tbl = document.getElementById('shotoutbox');
            var firstrow = 0;
            var iteration = firstrow;
            var row = tbl.insertRow(firstrow);
            var rows = tbl.getElementsByTagName("tr");

            var lastrow = tbl.rows.length;
            var nums    = lastrow;

            var numerik    = row.insertCell(0);
            //var textNode    = document.createTextNode(iteration);
            var textNode    = null;

            var color = (nums%2==0)? "color2":"color1";
            //alert(nums);

            var message      = row.insertCell(0);
            var msg          = document.createElement('div');
            msg.type         = 'text';
            msg.name         = 'msg' + nums;
            msg.id           = 'msg' + nums;
            msg.innerHTML    = splitArray[0]+" : "+splitArray[1];
            msg.size         = 10;
            message.className = color;
            message.appendChild(msg);

            numerik.appendChild(textNode);
        },
        getMessage: function() {
            var url = locate+"getmessage.php";
            httpRequest.open("get", url);
            httpRequest.onreadystatechange = function() {
                if (httpRequest.readyState == 4) {
                    var response = httpRequest.responseText;
                    if (response == "") {
                        //alert('failed');
                    } else {
                        var parsing = response.split("||");
                        for(var i=0; i < parsing.length; i++) {
                            var param = parsing[i].split("|");
                            var uri = locate+"testResponse.php?uname="+param[0]+"&msg="+param[1]+"&ctime="+param[2];
                            httpRequest.open("get", uri);
                            httpRequest.onreadystatechange = function() {
                                if (httpRequest.readyState == 4) {
                                    var responses = httpRequest.responseText;
                                    if (responses == "") {
                                        /* no acction */
                                    } else {
                                        /* no acction */
                                    }
                                }
                            }
                            httpRequest.send(null);
                            //alert(parsing[i]);
                            //chatbox.addrow(parsing[i]);
                            chatbox.addFirstRow(parsing[i]);
                        }
                    }
                }
            }
            httpRequest.send(null);
            window.setTimeout('chatbox.getMessage()', 1500);
        },
        getAllMessage: function() {
            //alert('Hello');
            var start = new Date();
            var url = locate+"getallmessage.php?time="+start.getTime();
            httpRequest.open("post", url);
            httpRequest.onreadystatechange = this.responseAllMessage;
            httpRequest.send(null);
            window.setTimeout('chatbox.getAllMessage()', 1500);
        },
        oldermessage: function() {
            getNewWindow.openNewWindow(locate+'oldermessage.php','Older Message','350','400','yes');
        },
        responseAllMessage: function() {
            if (httpRequest.readyState == 4) {
                var response = httpRequest.responseText;
                if (response == null) {
                    //alert('failed');
                } else {
                    //document.getElementById('shotoutbox').innerHTML = response;
                    var div = document.getElementById('boxchild');
                    div.innerHTML = response;

                    /*request balik ke server*/
                    //this.getAllMessage();
                }
            }
        }
    };
}();

chatbox.getAllMessage();