var $ = function(id) { return document.getElementById(id); } var iosDetected = navigator.userAgent.match("(iPad|iPod|iPhone)"); var timer = null; var timerDelay = iosDetected ? 800 : 400; var $note, $action, $preview, $plain_password, $tableau; var backendTimer; function md2html(input) { return marked(input); } function saveDraft() { if ($action == "UPDATE") return; console.log("draft autosave..."); $tableau.innerHTML = "Draft autosaved." localStorage.setItem("draft", $note.value); } function enableButton() { var checkbox = $('tos'); var button = $('publish-button'); button.disabled = !checkbox.checked; } function onLoad() { // Hook point events.publish('document:loaded'); $note = $("note"); $action = $("action").value; $preview = $("draft"); $tableau = $("tableau"); $plain_password = $("plain-password"); var updatePreview = function() { clearTimeout(timer); var content = $note.value; var delay = Math.min(timerDelay, timerDelay * (content.length / 400)); timer = setTimeout(function() { $preview.innerHTML = md2html(content); $tableau.innerHTML = content.split(/\s+/).length + " words"; // Hook point events.publish('content:rendered'); }, delay); }; if ($action == "UPDATE") updatePreview(); else { $("delete-button").style.display = "none"; $note.value = ""; var draft = localStorage.getItem("draft"); if (draft) { $note.value = draft; updatePreview(); } } $note.onkeyup = updatePreview; $("delete-button").onclick = $("publish-button").onclick = function(e) { localStorage.removeItem("draft"); self.onbeforeunload = null; if ($plain_password.value != "") $("password").value = md5($plain_password.value); $plain_password.value = null; $("signature").value = md5($("session").value + $note.value.replace(/[\n\r]/g, "")); }; if (iosDetected) $note.className += " ui-border"; else $note.focus(); self.onbeforeunload = saveDraft; setInterval(saveDraft, 60 * 1000) }