summaryrefslogtreecommitdiff
path: root/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'main.js')
-rw-r--r--main.js37
1 files changed, 36 insertions, 1 deletions
diff --git a/main.js b/main.js
index d434acb3..cef82687 100644
--- a/main.js
+++ b/main.js
@@ -1,3 +1,12 @@
+function get_cookie(cookie_name)
+{
+ var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)');
+ if(results)
+ return (unescape(results[2]));
+ else
+ return null;
+}
+
function highlightReply(id)
{
var divs = document.getElementsByTagName('div');
@@ -33,6 +42,9 @@ function dopost(form) {
if(form.email.value != 'sage')
localStorage.email = form.email.value;
+ saved[document.location] = form.body.value;
+ sessionStorage.body = JSON.stringify(saved);
+
return form.body.value != "" || (typeof form.thread != "undefined" && form.file.value != "");
}
function citeReply(id) {
@@ -44,6 +56,7 @@ var styles = [
['Yotsuba B', '/board/default.css'],
['Yotsuba', '/board/yotsuba.css']
];
+var saved = {};
function changeStyle(x) {
localStorage.stylesheet = styles[x][1];
@@ -92,6 +105,28 @@ function init()
if(localStorage.email)
document.getElementsByTagName('form')[0].email.value = localStorage.email;
+
+ if(sessionStorage.body) {
+ saved = JSON.parse(sessionStorage.body);
+ if(get_cookie('serv')) {
+ // Remove successful posts
+ successful = JSON.parse(get_cookie('serv'));
+ for (var url in successful) {
+ saved[url] = null;
+ }
+ sessionStorage.body = JSON.stringify(saved);
+
+ document.cookie = 'serv={};expires=0;path=/;';
+ }
+ if(saved[document.location]) {
+ document.getElementsByTagName('form')[0].body.value = saved[document.location];
+ }
+ }
+
+ if(localStorage.body) {
+ document.getElementsByTagName('form')[0].body.value = localStorage.body;
+ localStorage.body = '';
+ }
link = document.getElementsByTagName('a');
for ( i in link ) {
if(typeof link[i] == "object" && link[i].childNodes[0].src) {
@@ -120,4 +155,4 @@ function init()
}
}
-window.onload = init; \ No newline at end of file
+window.onload = init;