var chatRequests;
var lastChatID = 0;
var requestProgress = false;
var i=0;
var elementHTML;

function fetchChats() {
  if(requestProgress === true) { return false; }
  else { requestProgress = true; }
  $.post("chat/chat.php", {lastid: lastChatID}, function(data) {
    requestProgress = false;
    chatRequests = data;
    if(chatRequests.allowed === 0) {
      $("#chat").html("<span class=\"error\">You have been banned from the chat.</span>");
      requestProgress = 0;
      return true;
    } else {
      if(chatRequests.chatsnr > 0) {
        $.each(chatRequests.chats, function(i,chat) {
          if(chat.user > 0) {
            elementHTML = "<tr>";
            elementHTML += "<td nowrap=\"nowrap\" valign=\"top\"><a href=\"profile.php?id=" + chat.user + "\">"+ chat.uname + " (#" + chat.user + ")";
            if(chat.tag !== "") { elementHTML += "<br /><img src=\"static/users/"+chat.tag+"\" class=\"miniicon\" />"; }
            elementHTML += "</a></td><td valign=\"top\">" + chat.ctext + "<br /><small>" + chat.date + "</small></td></tr>";
            if(lastChatID > 0 && $("#chatTable tr").length > 49) { $("#chatTable tr:last").remove(); }
            $("#chatTable tr:first").before(elementHTML);
          } else {
            elementHTML = "<tr>";
            elementHTML += "<td nowrap=\"nowrap\" valign=\"top\">";
            if(chat.user == -1) { elementHTML += "Eldara"; }
            else if(chat.user == -2) { elementHTML += "Ketlan"; }
            else if(chat.user == -3) { elementHTML += "Fauna"; }
            else if(chat.user == -4) { elementHTML += "Ekirir"; }
            elementHTML += "<br /><img src=\"static/npcs/mini/";

            if(chat.user == -1) { elementHTML += "eldara"; }
            else if(chat.user == -2) { elementHTML += "ketlan"; }
            else if(chat.user == -3) { elementHTML += "fauna"; }
            else if(chat.user == -4) { elementHTML += "ekirir"; }
            
            elementHTML += ".png\" class=\"miniicon area\" />";
            elementHTML += "</td><td valign=\"top\">" + chat.ctext + "<br /><small>" + chat.date + "</small></td></tr>";
            if(lastChatID > 0 && $("#chatTable tr").length > 49) { $("#chatTable tr:last").remove(); }
            $("#chatTable tr:first").before(elementHTML);
          }
        });
        lastChatID = chatRequests.lastChatID;
      }
    }

  }, "json");

}

function fetchChatsFirst() {

  $.get("chat/chat.php", {}, function(data) {
    chatRequests = data;
    if(chatRequests.allowed === 0) {
      $("#chat").html("<span class=\"error\">You have been banned from the chat.</span>");
      return true;
    } else {
      if(chatRequests.chatsnr > 0) {
        $.each(chatRequests.chats, function(i,chat) {
          if(chat.user > 0) {
            elementHTML = "<tr>";
            elementHTML += "<td nowrap=\"nowrap\" valign=\"top\"><a href=\"profile.php?id=" + chat.user + "\">"+ chat.uname + " (#" + chat.user + ")";
            if(chat.tag !== "") { elementHTML += "<br /><img src=\"static/users/"+chat.tag+"\" class=\"miniicon\" />"; }
            elementHTML += "</a></td><td valign=\"top\">" + chat.ctext + "<br /><small>" + chat.date + "</small></td></tr>";
            $("#chatTable").append(elementHTML);
          } else {
            elementHTML = "<tr>";
            elementHTML += "<td nowrap=\"nowrap\" valign=\"top\">";
            if(chat.user == -1) { elementHTML += "Eldara"; }
            else if(chat.user == -2) { elementHTML += "Ketlan"; }
            else if(chat.user == -3) { elementHTML += "Fauna"; }
            else if(chat.user == -4) { elementHTML += "Ekirir"; }

            elementHTML += "<br /><img src=\"static/npcs/mini/";

            if(chat.user == -1) { elementHTML += "eldara"; }
            else if(chat.user == -2) { elementHTML += "ketlan"; }
            else if(chat.user == -3) { elementHTML += "fauna"; }
            else if(chat.user == -4) { elementHTML += "ekirir"; }

            elementHTML += ".png\" class=\"miniicon area\" />";
            elementHTML += "</td><td valign=\"top\">" + chat.ctext + "<br /><small>" + chat.date + "</small></td></tr>";
            $("#chatTable").append(elementHTML);
          }
        });

        lastChatID = chatRequests.lastChatID;
      }
    }
  }, "json");
}

function fetchUsers() {
  $.post("chat/chat_users.php", {}, function(data) {
    chatUsers = data;
    $("#chatUsers").empty();
    $("#chatUsers").append("<tr><th>Online now</th></tr>");
    $.each(chatUsers.users, function(i, user) {
      if(user.stalk == 1) {
        elementHTML = "<tr><td nowrap=\"nowrap\" valign=\"top\" class=\"stalk\"><a href=\"profile.php?id=" + user.id + "\">"+ user.name + " (#" + user.id + ")</a><br />(invisible)</td></tr>";
      } else {
        elementHTML = "<tr><td nowrap=\"nowrap\" valign=\"top\"><a href=\"profile.php?id=" + user.id + "\">"+ user.name + " (#" + user.id + ")</a></td></tr>";
      }

      $("#chatUsers").append(elementHTML);
    });
  }, "json");

}

$(document).ready(function() {
  $("#chat").each(function() {
    fetchChatsFirst();
    fetchUsers();
    setInterval("fetchUsers()", 15000);
    setInterval("fetchChats()", 5000);
    
  });

  $("#chatPost").submit(function() {
    var cText = $("#chatText").val();
    $.post("chat/chat_post.php", {text: cText}, function(data) {

    });
    $("#chatText").val("");
    return false;
  });
  
  
  $("#stalk").click(function() {
    $("#stalk").attr("disabled", "disabled");
    $.post("actions/admin_livechatstalk.php", {}, function(data) {
      $("#stalk").removeAttr("disabled");
      if(data.stalk == 1) {
        $("#chatStalk span").html("You are invisible to other users right now.");
      } else {
        $("#chatStalk span").html("You are visible to other users right now.");
      }
    }, "json");
  });
  
});


