function initiateChat(){
//    println("3////////////////////////////////////////")
    var userID = document.getElementById("userID").value;
    var handler = setInterval(function(){
        fetchNewMessages(userID);
    },1000);
}

function fetchNewMessages(userID){
    
//    println("4////////////////////////////////////////")
   // dhtmlxAjax.post("http://www.safelist.com:8080/axis2/services/ChatWS/fetchFromDB","userID="+userID,processFetch);
    dhtmlxAjax.get("http://localhost:8080/axis2/services/ChatWS/fetchFromDB","userID="+userID,processFetch);
}

function processFetch(xmlFetchDoc){
    document.write(xmlFetchDoc.responseText)

   //   alert();
//    println("5////////////////////////////////////////")
    var resultNode = xmlFetchDoc.doXPath("//ns:fetchFromDBResponse/ns:return", null, "http://ws.apache.org/axis2");
    var senderID, message;
    for(var i=0; i<resultNode.length; i++){
        message = getNodeValue(resultNode[i].firstChild);
        senderID = getNodeValue(resultNode[i].firstChild.nextSibling);
        updateWindow(senderID, message);
    }
}
function sendMessage(senderID){
  //   document.write(senderID)
// document.write("6////////////////////////////////////////")
    var chatMessages;
    chatMessages = document.getElementById("messages_" + senderID);
    var newMessage = document.createElement("div");
    var message = document.getElementById("typedMessage_" + senderID).value;
    newMessage.innerHTML = "<b>me</b>: " + document.getElementById("typedMessage_" + senderID).value;
    chatMessages.appendChild(newMessage);
    var userID = document.getElementById("userID").value;

    insertIntoDB(userID,senderID,message);

}

function updateWindow(senderID,message){

  //  document.write("1////////////////////////////////////////")
    if(dhxWins.isWindow("chat_" + senderID)){
        
    }
    else{
     //   document.write(senderID)
        var newChatWindowDiv = createChatWindowDiv(senderID);
        document.getElementById("chats").appendChild(newChatWindowDiv);
        var window = dhxWins.createWindow("chat_" + senderID,26,22,320,200);
        window.setText(senderID);
        window.attachObject("template_" + senderID,true);
        window.denyResize();
        window.center();
    }
    if(message != ''){
        var chatMessages = document.getElementById("messages_" + senderID);
        var newMessage = document.createElement("div");
        newMessage.innerHTML = "<b>" + titleCaps(senderID) + "</b>: " + message;
        chatMessages.appendChild(newMessage);
        scrollToBottom(senderID);
    }    
}

function scrollToBottom(senderID){
    var messageDiv = document.getElementById("messages_" + senderID);
    messageDiv.scrollTop = messageDiv.scrollHeight;
    document.getElementById("typedMessage_" + senderID).focus();
}

function createChatWindowDiv(senderID){
//document.write("2////////////////////////////////////////")
    var chatWindowDiv = document.createElement("div");
    chatWindowDiv.id = "template_" + senderID;
    chatWindowDiv.setAttribute("style","width: 250px; height:300px; font-family:arial,sans-serif; font-size: 12px; border: 1px solid black; padding:3px 3px 3px 3px; display: none;");
    chatWindowDiv.style.width = "250px";
    chatWindowDiv.style.height = "300px";
    chatWindowDiv.style.fontFamily = "arial,sans-serif";
    chatWindowDiv.style.fontSize = "12px";
    chatWindowDiv.style.border = "1px solid black";
    chatWindowDiv.style.padding = "3px 3px 3px 3px";
    chatWindowDiv.style.display = "none";
    chatWindowDiv.innerHTML =
    "<div id='messages_" + senderID + "' style='width:100%; height: 70%;  overflow: scroll; overflow-x: hidden; overflow-y: scroll; white-space:normal; word-wrap: break-word;'>"+
    "</div>" +
    "<div style='clear:both;'>" +
    "</div>" +
    "<div><textarea id='typedMessage_" + senderID +"' rows='3' cols='20' style='width:100%; height:20%; resize:none;'></textarea></div>" +
    "<div style='clear:both;'>" +
    "</div>" +
    "<div style='text-align:right'><input id='sendButton_"+ senderID +"' type='button' value='send' style='height:10%;' onclick='sendMessage(\"" + senderID + "\");'/></div>";

    return chatWindowDiv;
}

function insertIntoDB(senderID,receiverID,message){
//    println("7////////////////////////////////////////")
   // document.write(senderID)
    document.getElementById("typedMessage_" + receiverID).value = "";
    scrollToBottom(receiverID);
    dhtmlxAjax.post("http://localhost:8080/axis2/services/ChatWS/insertIntoDB","sender=" + senderID + "&receiver=" + receiverID + "&message=" + message,processInsert);
}

function processInsert(xmlInsertDoc){
//    println("8////////////////////////////////////////")
    var resultNode = xmlInsertDoc.doXPath("//ns:insertIntoDBResponse/ns:return", null, "http://ws.apache.org/axis2");
    var result = getNodeValue(resultNode[0]);
    if(parseInt(result) != 1){
        alert("Error while sending message!");
    }
}

function getNodeValue(obj) {
//    println("9////////////////////////////////////////")
    return (obj.innerText) ? obj.innerText
    : (obj.textContent) ? obj.textContent
    : (obj.text) ? obj.text
    : (obj.innerHTML) ? obj.innerHTML
    : (obj.nodeValue) ? obj.nodeValue
    : "";
}