function insert(text) { var t = document.getElementsByName('t')[0]; if(!t) return; if(t.selectionStart || t.selectionStart == '0') { var pos = t.selectionStart; var end = t.selectionEnd; t.value = t.value.substring(0, pos) + text + t.value.substring(end, t.value.length); } t.focus(); t.setSelectionRange(pos + text.length, pos + text.length); } function wrap(prefix, postfix) { var t = document.getElementsByName('t')[0]; if(!t) return; if(t.selectionStart || t.selectionStart == '0') { var pos = t.selectionStart; var end = t.selectionEnd; var n = t.value.indexOf("\n", pos); if(n > 0 && n < end) end = n; t.value = t.value.substring(0, pos) + prefix + t.value.substring(pos, end) + postfix + t.value.substring(end, t.value.length); } t.focus(); var cpos = end + prefix.length + postfix.length; t.setSelectionRange(cpos, cpos); } function prepend(text) { var t = document.getElementsByName('t')[0]; if(!t) return; if(t.selectionStart || t.selectionStart == '0') { var pos = t.selectionStart; var end = t.selectionEnd; for(;pos < end; pos++) { if(t.value.charAt(pos) != "\n") break; } for(;end > pos; end--) { if(t.value.charAt(end - 1) != "\n") break; } var quote = ""; var cpos = end; if(t.value.charAt(pos - 1) != "\n") { quote += "\n"; cpos += 1; } if(pos == end) { quote += text; cpos += text.length; } else { var lines = t.value.substring(pos, end).split("\n"); for(var i=0; i < lines.length; i++) { quote += text + lines[i] + "\n"; cpos += text.length; } quote = quote.slice(0, -1); } t.value = t.value.substring(0, pos) + quote + t.value.substring(end, t.value.length); } t.focus(); t.setSelectionRange(cpos, cpos); } function marxup_bold(e) { wrap("*", "*"); } function marxup_header(e) { prepend("= "); } function marxup_italics(e) { wrap("_", "_"); } function marxup_small(e) { wrap("~", "~"); } function marxup_link(e) { wrap("[", "]"); } function marxup_quote(e) { prepend("> "); } function marxup_list(e) { prepend("* "); } function button(node, html, fun) { var a = document.createElement("a"); a.innerHTML = html; a.href = "#"; a.onclick = fun; node.parentNode.insertBefore(a, node.nextSibling); } function orz(src) { insert("{" + src.replace(".t.jpg", "") + "}"); } document.addEventListener("DOMContentLoaded", function(e) { var title = document.getElementsByTagName('h1')[0]; var headers = document.getElementsByTagName("h2"); if(headers.length > 0) { var menu = document.createElement("div"); menu.className = 'magisk meny'; for(var i = 0; i < headers.length; i++) { var a = document.createElement("a"); var id = "h-" + i; headers[i].id = id; a.href = "#" + id; a.textContent = headers[i].textContent; menu.appendChild(a); menu.appendChild(document.createElement("br")); } title.parentNode.insertBefore(menu, title.nextSibling); } var orz = document.getElementById('orz'); if(orz) { var url = orz.getAttribute('data-url'); orz.onclick = function(e) { window.open(url); return false; } button(orz, "> sitat", marxup_quote); button(orz, "* liste", marxup_list); button(orz, "[lenke]", marxup_link); button(orz, "_kursiv_", marxup_italics); button(orz, "*fet*", marxup_bold); button(orz, "liten", marxup_small); button(orz, "= overskrift", marxup_header); } });