(function() { function escapeHTML(html) { var fn = function(tag) { var charsToReplace = { "&": "&", "<": "<", ">": ">", '"': """ }; return charsToReplace[tag] || tag; }; return html.replace(/[&<>"]/g, fn); } function syncTyping() { var beforeSelection, selection, afterSelection; beforeSelection = this.value.slice(0, this.selectionStart); selection = this.value.slice(this.selectionStart, this.selectionEnd); afterSelection = this.value.slice(this.selectionEnd); document.getElementById("typing").innerHTML = beforeSelection + (this.selectionStart == this.selectionEnd ? "" : "") + "" + selection + "" + afterSelection; } var commandline = document.getElementById("command"); commandline.value = ""; commandline.focus(); commandline.onkeydown = syncTyping; commandline.onkeyup = syncTyping; commandline.onselect = syncTyping; function handleForm() { var scrollback = document.getElementById("scrollback"); var val = this.command.value; this.command.value = ""; document.getElementById("typing").innerHTML = ""; scrollback.innerHTML = scrollback.innerHTML + "a>" + escapeHTML(val) + "
Command not found.
"; return false; } document.forms[0].onsubmit = handleForm; })();