Can't claim originality for this as I found it in a book "Mastering JavaScript and Jscript" by James Jaworski, sybex books, but it may be able to be adapted for your purposes.
<HTML>
<HEAD>
<TITLE>To Do</TITLE>
<SCRIPT LANGUAGE="JavaScript" SRC="cookie.js"><!--
// --></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="notes.js"><!--
// --></SCRIPT>
</HEAD>
<BODY>
<FORM>
<H3>To Do:
<INPUT NAME="save" TYPE="BUTTON" VALUE="Save"
onClick="saveNotes()"></H3>
<TEXTAREA NAME="notes" ROWS="10" COLS="40"
VALUE=""></TEXTAREA>
</FORM>
<SCRIPT LANGUAGE="JavaScript"><!--
loadNotes()
// --></SCRIPT>
</BODY>
</HTML>
NOTES.JS
function loadNotes() {
var cookie=document.cookie
if(nameDefined(cookie,"toDo"

) {
todo=getCookieValue(cookie,"toDo"

todo=decode(todo)
}else todo=""
document.forms[0].notes.value=todo
}
function saveNotes() {
todo=window.document.forms[0].notes.value
todo=encode(todo)
var newCookie = "toDo="+todo+"; expires="
newCookie += "Thursday, 20-Feb-2048 00:01:00 GMT"
document.cookie=newCookie
}
function encode(s) {
t=""
for(var i=0;i<s.length;++i) {
ch=s.charAt(i)
if(ch=="/"

t += "//"
else if(ch==" "

t += "/b"
else if(ch==","

t += "/."
else if(ch==";"

t += "/:"
else if(ch=="\n"

t += "/n"
else if(ch=="\r"

t += "/r"
else if(ch=="\t"

t += "/t"
else if(ch=="\b"

t += "/b"
else t += ch
}
return t
}
function decode(s) {
// Decode the encoded cookie value
t=""
if(s==null) return t
for(var i=0;i<s.length;++i) {
var ch=s.charAt(i)
if(ch=="/"

{
++i
if(i<s.length){
ch=s.charAt(i)
if(ch=="/"

t += ch
else if(ch=="."

t += ","
else if(ch==":"

t += ";"
else if(ch=="n"

t += "\n"
else if(ch=="r"

t += "\r"
else if(ch=="t"

t += "\t"
else if(ch=="b"

t += " "
}
}else t += ch
}
return t
}
COOKIE.JS
function nameDefined(c,n) {
var s=removeBlanks(c)
var pairs=s.split(";"

for(var i=0;i<pairs.length;++i) {
var pairSplit=pairs.split("="

if(pairSplit[0]==n) return true
}
return false
}
function removeBlanks(s) {
var temp=""
for(var i=0;i<s.length;++i) {
var c=s.charAt(i)
if(c!=" "

temp += c
}
return temp
}
function getCookieValue(c,n) {
var s=removeBlanks(c)
var pairs=s.split(";"

for(var i=0;i<pairs.length;++i) {
var pairSplit=pairs.split("="

if(pairSplit[0]==n) return pairSplit[1]
}
return ""
}