// Online User Chat and In-Game Chat var scrollSensitivity = 0.2; var scroll_left = 5; var scroll_left_chat = 5; var scroll_right = -10000; var currentChat = null; function barHover(evt) { document.getElementById("Right-Bar").setAttribute("fill","skyblue"); } function barHoverOut(evt) { document.getElementById("Right-Bar").setAttribute("fill","lightblue"); } function onlineHover(evt) { document.getElementById("Left-Bar").setAttribute("fill","skyblue"); } function onlineHoverOut(evt) { document.getElementById("Left-Bar").setAttribute("fill","lightblue"); } function onlineHoverColor(evt) { onlineHover(evt); var name = evt.target.getAttribute("xmlns:data"); if (null != name) document.getElementById(name).setAttribute("fill","#FFF687"); } function onlineHoverOutColor(evt) { onlineHoverOut(evt); var name = evt.target.getAttribute("xmlns:data"); if (null != name) document.getElementById(name).setAttribute("fill","#DBEBED"); } function chatEditor(evt) { var chatContainer = evt.target.getAttribute("xmlns:data"); if (evt.keyCode == 13 && evt.metaKey == false) { var e = evt.target; //document.getElementById('edit'); console.log(e); if (e.innerText.trim() != ""){ var text = e.innerText.trim().encodeHTML(); chatMessage(chatContainer,"100","Maxim",text); // if (null != currentChat) ws.send(enc(tuple(atom('client'), tuple(atom('message'),bin(document.user),bin(chatContainer.substr(5)),bin(text))))); e.innerHTML = ''; } } else if (evt.keyCode == 13 && evt.metaKey == true) { document.execCommand('insertText',false, '\n'); } var scroll = -1000000; if (null != currentChat) left_scroll = scroll; mouseWheelHandler({'detail':scroll,'wheelDelta':scroll}); } function mouseWheelHandler(e) { var leftBar = document.getElementById("Left-Bar"); var rightBar = document.getElementById("Right-Bar"); var leftFill = leftBar.getAttribute("fill"); var rightFill = rightBar.getAttribute("fill"); var leftActive = leftFill == "skyblue"; var rightActive = rightFill == "skyblue"; if (!leftActive && !rightActive) return; // console.log(leftActive); var evt = e; var scroll_dy = evt.detail ? evt.detail * scrollSensitivity : evt.wheelDelta * scrollSensitivity; var ori = leftActive ? (currentChat == null ? scroll_left : scroll_left ) : scroll_right; var scroll = parseFloat(scroll_dy) + parseFloat(ori); var selectedBar = leftActive ? (currentChat == null ? "Online-List" : currentChat) : "Chat"; var selectedClip = leftActive ? (currentChat == null ? "Clip-Path-Left" : "Clip-Path-Left-Chat") : "Clip-Path-Right"; var selectedBarShift = leftActive ? 2 : 857; var limit = parseFloat(document.getElementById(selectedBar).getBBox().height) - 400; if (scroll > 5) scroll = 5; if (scroll < -limit) scroll = -limit; document.getElementById(selectedClip).setAttribute("transform", "translate(0,"+parseFloat(-scroll)+")"); document.getElementById(selectedBar).setAttribute("transform", "translate("+selectedBarShift+","+(parseFloat(95+scroll))+")"); if (leftActive) scroll_left = scroll; else scroll_right = scroll; return true; } function chatMessage(chatName, id, me, string) { var i=0; var colors=['#FDFDFD','#DFF1F4']; var x1 = 7; var y1 = 0; var container = chatName == "Chat" ? "Right-Bar" : "Left-Bar"; var hover = chatName == "Chat" ? "barHover" : "onlineHover"; var translate_y = parseFloat(document.getElementById(chatName).getBBox().height); var x2 = 205; var textElement = chatText(container,id,me,string); var dy = translate_y == 0 ? 0 : translate_y + 10; var html = ""; var messageElement = svg(html); messageElement.appendChild(textElement); document.getElementById(chatName).appendChild(messageElement); create_multiline(textElement); var y2 = textElement.getBBox().height + 5; var box = ""; var boxElement = svg(box); textElement.setAttribute("xmlns:data",container) messageElement.insertBefore(boxElement,textElement); boxElement.setAttribute("mouseover",hover+"(evt);"); boxElement.setAttribute("mouseout",hover+"Out(evt);"); textElement.setAttribute("mouseover",hover+"(evt);"); textElement.setAttribute("mouseout",hover+"Out(evt);"); messageElement.setAttribute("onmouseover",hover+"(evt);"); messageElement.setAttribute("onmouseout",hover+"Out(evt);"); // console.log(messageElement); } function chatText(container, id, me, string) { var i = 0; var colors=['#3B5998']; var html = "" + string + ""; // console.log(html); return svg(html); } function showOnlineList(evt) { document.getElementById("onlineChatEdit").style.display = 'none'; if (null != currentChat) { document.getElementById(currentChat).style.display = 'none'; } document.getElementById("Online-List").style.display = ''; currentChat = null; scroll_left = 0; onlineHover(); mouseWheelHandler({'detail':scroll_left,'wheelDelta':scroll_left}); onlineHoverOut(); }