// from http://www.quirksmode.org/js/cookies.html
function createCookie(name, value, days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
  } else var expires = "";
  document.cookie = name + "=" + value + expires + "; path=/";
}
// from http://www.quirksmode.org/js/cookies.html
function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
}
// from http://www.quirksmode.org/js/cookies.html
function eraseCookie(name) {
  createCookie(name, "", -1);
}
/**
 * Set the visibility of the given element.
 */
function set_visibility(id, visible, toggle_id) {
  document.getElementById(id).style.display = (visible ? "": "none");
  document.getElementById(toggle_id).className = (visible ? "toggle_off": "toggle_on");
}
/**
 * Toggle the visibility of the given element, and save the state to a cookie.
 */
function toggle_visibility(id, cookie, toggle_id) {
  var new_vis = (readCookie(cookie) == 'true') ? 'false': 'true';
  createCookie(cookie, new_vis, 7);
  set_visibility(id, new_vis == 'true', toggle_id);
}
