var s; var antiflood = false; var is_connected = false; var chat_num = 0; function removeThis(e) { e.target.parentElement.removeChild(e.target); } function show_chat(msg, own) { if(msg.startsWith("LOGIN:")) msg = "LOGIN:***"; if(own) msg = ">>> " + msg; else msg = "<<< " + msg; var chatbox = document.getElementById("chatbox"); var chatbox_length = chatbox.children.length; if(chatbox_length >= CHATBOX_MAX) chatbox.removeChild(chatbox.firstChild); var line = document.createElement('div'); line.textContent = msg; line.classList.add("l" + (chat_num ^= 1)); if(own) line.classList.add("own"); chatbox.appendChild(line); chatbox.scrollTop = chatbox.scrollHeight; } function on_msg(line) { /*var args = line.split(':'); if(args[0] == "MSG") { var color = args[1]; var msg = args[2].replace("%3A", ":"); show_chat(msg, color, false); } else if (args[0] == "COUNT") { document.getElementById("viewers").textContent = "Viewers: " + args[1]; }*/ show_chat(line, false); } function set_status(msg) { document.getElementById("status").textContent = msg; } function start() { if(CONNECT) { s = new WebSocket("wss://tv.bienvenidoainternet.org:6969"); s.addEventListener("message", function(e) { on_msg(e.data); }); s.addEventListener("open", function(e) { set_status("Conectado al chat."); is_connected = true; }); s.addEventListener("close", function(e) { set_status("Desconectado del chat ("+ e.code + "|" + e.reason + ")"); is_connected = false; }); } document.getElementById("sendchat").addEventListener("click", on_send); } function enable_chat() { antiflood = false; document.getElementById("sendchat").disabled = false; } function on_send(e) { e.preventDefault(); if(antiflood) return; if(!is_connected) return; var msg = document.getElementById("chat_msg"); var msg_str = msg.value.trim().substr(0, MAXCHAR); var send = document.getElementById("sendchat"); if(!msg_str) return; s.send(msg_str); show_chat(msg_str, true); msg.value = ""; antiflood = true; send.disabled = true; setTimeout(enable_chat, FLOOD_TIME); } window.addEventListener("load", start);