   function get_cookie(key) {
    var arg = key + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while(i < clen) {
     var j = i + alen;
     if(arg == document.cookie.substring(i,j)) return get_cookie_val(j);
     i = document.cookie.indexOf(" ", i) + 1;
     if(0 == i) break;
    }
    return "";
   }
   function get_cookie_val(offset) {
    var endval = document.cookie.indexOf(";", offset);
    if(-1 == endval) endval = document.cookie.length;
    return unescape(document.cookie.substring(offset,endval));
   }
   function clear_cookie() {
    var i = 0; var dc = document.cookie;
    while(i < dc.length) {
     var j =  dc.indexOf("=", i);
     var key = dc.substring(i, j);
     dc = key + "=dummy; expires=Thu, 01-Jan-1970 09:00:00 GMT;";
     i = dc.indexOf(" ", i) + 1;
     if(0 == i) break;
    }
   }
   function set_cookie(key, val) {
    document.cookie =
     key + "=" + escape(val) + "; expires=Wed, 01-Jan-2031 00:00:00 GMT;";
   }


  var pf = document.forms[0];
  var n = pf.elements.length;
  for(i = 0; i < n; i++) {
   var el = pf.elements[i], key = el.name;
   if("subject" == key || "message" == key) continue;
   switch(el.type) {
    case "text": el.value = get_cookie(key); break;
    case "select-one" : var ix = get_cookie(key) ? get_cookie(key) : 0;
 el.options[ix].selected = true; break;
   }
  }
  function set_cookies() {
   var df = document.forms[0];
   var i, n = df.elements.length;
   clear_cookie();
   for(i = 0; i < n; i++) {
    var el = df.elements[i], key = el.name;
    if("subject" == key || "message" == key) continue;
    switch(el.type) {
     case "text": set_cookie(key, el.value); break;
     case "select-one" : set_cookie(key, el.selectedIndex); break;
    }
   }
  }
