var style_cookie = "weabot_style_txt"; if (localStorage.hasOwnProperty(style_cookie)) { setTheme(localStorage.getItem(style_cookie)); } function setTheme(styletitle) { var css = document.getElementById("css"); if (css) css.href = "/static/css/txt/" + styletitle.toLowerCase() + ".css"; localStorage.setItem(style_cookie, styletitle); } function getPassword() { if (weabot.password) return weabot.password; var pass = ""; var char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789?!-_.:;"; for (var i=0; i<=8; i++) { pass += char[Math.floor(Math.random() * char.length)]; } weabot.password = pass; localStorage.setItem("weabot", JSON.stringify(weabot)); return pass; } function saveInputs(e) { var e = e || window.event; var form = e.target || e.srcElement; if (typeof form.fielda !== "undefined") weabot.name = form.fielda.value; if (typeof form.fieldb !== "undefined") weabot.email = form.fieldb.value; localStorage.setItem("weabot", JSON.stringify(weabot)); } function setInputs(id) { with (document.getElementById(id)) { if (typeof fielda !== "undefined" && weabot.name) { fielda.value = weabot.name; } if (typeof fielda !== "undefined" && weabot.email) { fieldb.value = weabot.email; } if (!password.value) { password.value = getPassword(); } if (typeof preview !== "undefined") { preview.dataset.formid = id; preview.addEventListener("click", previewPost); } if (typeof message !== "undefined" && document.body.clientWidth < 600) { message.addEventListener("input", resizeTextbox); } addEventListener("submit", saveInputs); } } // Textboard data function insert(text) { var textarea = document.forms.postform.message; if (textarea) { if (textarea.setSelectionRange) { // Firefox var start = textarea.selectionStart; var end = textarea.selectionEnd; textarea.value = textarea.value.substr(0, start) + text + textarea.value.substr(end); textarea.setSelectionRange(start + text.length, start + text.length); } else { textarea.value += text + " "; } textarea.focus(); } return false; } function deletePost(e) { var ids = e.parentElement.firstChild.href.split("/"); var post = ids.pop(); var realid = ids.pop(); if (confirm("¿Seguro que deseas borrar el mensaje " + post + "?")) { var script = "/cgi/delete"; document.location = script + "?board=" + board + "&password=" + weabot.password + "&delete=" + realid; } } function postClick(num) { var sel = window.getSelection().toString(); if (sel) { sel = sel.replace(/^/gm, ">") + "\n"; sel = "\n" + sel; } insert(">>" + num + sel); } function previewPost(e) { var form = document.getElementById(e.target.dataset.formid); var thread = e.target.dataset.formid.split('postform')[1]; var board = form.board.value; var preview = document.getElementById('preview' + thread); if (e.target.className == '') { // show preview if (form.message.value.trim() == '') { return; } // empty post, nevermind e.target.className = 'active'; preview.textContent = 'Cargando...'; if (!thread) { // new thread document.getElementById('tr_preview').removeAttribute('style'); } else { preview.removeAttribute('style'); } } else { // hide it if (!thread) { // new thread document.getElementById('tr_preview').style.display = 'none'; } else { preview.style.display = 'none'; } e.target.removeAttribute('class'); preview.textContent = null; return; } var post = 'message=' + encodeURIComponent(form.message.value) + '&board=' + board + '&parentid=' + thread; var xmlhttp = get_xmlhttp(); xmlhttp.open('POST', '/cgi/preview'); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { preview.innerHTML = xmlhttp.responseText; } }; if (xmlhttp.setRequestHeader) { xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); } xmlhttp.send(post); } function get_xmlhttp() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e1) { xmlhttp = null; } } if (!xmlhttp && typeof XMLHttpRequest != "undefined") { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function listSort(e) { e.preventDefault(); var s = this.textContent; var table = document.getElementById("threads"); var arr = Array.prototype.slice.call(table.getElementsByTagName("tr")); arr.shift(); if (s == "Normal") { arr.sort(function(a, b) { return (parseInt(a.childNodes[1].textContent) - parseInt(b.childNodes[1].textContent)); }); } else if (s == "Edad") { arr.sort(function(a, b) { return (b.children[1].firstChild.href.split("/")[5] - a.children[1].firstChild.href.split("/")[5]); }); } else if (s == "Largo") { arr.sort(function(a, b) { return (b.children[2].textContent - a.children[2].textContent); }); } else if (s == "Rapidez") { var now = Math.round(Date.now() / 1000); arr.sort(function(a, b) { return (b.children[2].textContent / (now - b.children[1].firstChild.href.split("/")[5]) - a.children[2].textContent / (now - a.children[1].firstChild.href.split("/")[5])); }); } else if (s == "Aleatorio") { arr.sort(function(a, b) { return 0.5 - Math.random(); }); } for (var j = 0; j < arr.length; j++) table.appendChild(arr[j]); } function togglePost(e) { var post = e.parentElement; var pid = post.id.slice(1); var hidp = localStorage.getItem("hid-p-"+board); var hid = Array(); if (hidp) hid = hidp.split("!"); if (post.classList.contains("hidden")) { post.classList.remove("hidden"); if (hid.includes(pid)) hid.splice(hid.indexOf(pid), 1); } else { post.classList.add("hidden"); if (!hid.includes(pid)) hid.push(pid); } localStorage.setItem("hid-p-"+board, hid.join("!")); } function resizeTextbox(e) { var limit = 256; e.target.style.height = ''; e.target.style.height = Math.min((e.target.scrollHeight+2), limit) + 'px'; } document.addEventListener("DOMContentLoaded", function() { if (localStorage.hasOwnProperty("weabot")) { weabot = JSON.parse(localStorage.getItem("weabot")); } else { weabot = { name: null, email: null, password: null }; } board = document.body.dataset.brd; var head = document.getElementById("main_nav"); if (head) { var b = head.getElementsByTagName("a"); for (var i = 0; i < b.length; i++) { if (b[i].getAttribute("href") == "/" + board + "/") { b[i].className = "cur_brd"; break; } } } if (document.body.clientWidth < 600) { if (head) { var navlink = head.getElementsByTagName("a"); var sel = document.createElement("select"); sel.id = head.id + "_sel"; sel.addEventListener("change", function(e){ window.location.href = this.value; }); for (var i=1; i