/*
  Text size switching script
  Copyright 2007 George MacKerron
*/
function change_text_size(text_size) {
  set_year_cookie('text_size', text_size);
  var p = document.getElementById('page');
  p.className = 'ts_' + text_size;
}
function add_text_size_links() {
  var text_sizes = ['s', 'm', 'l', 'xl'];
  var text_size_titles = ['small', 'medium', 'large', 'extra large'];
  var al = gebi('access_links');
  // cacet(al, 'span', 'separator', null, ' | ');
  var ts = cacet(al, 'span', null, 'text_size', 'Text size');
  for (var s in text_sizes) {
    cat(ts, ' ');
    var a = cacet(ts, 'a', null, text_sizes[s], null);
    a.href = "javascript: change_text_size( '" + text_sizes[s] + "' );";
    var abbr = cacet(a, (window.ie_win_lt55 ? 'span' : 'abbr'), null, null, text_sizes[s].toUpperCase()); // IE(Win) < 5.5 chokes on an <abbr>
    abbr.title = text_size_titles[s];
  }
}
function get_cookie(name) {
  var search = name + '=';
  if (document.cookie.length > 0) {
    var offset = document.cookie.indexOf(search);
    if (offset != -1) {
      offset += search.length;
      var end = document.cookie.indexOf(';', offset);
      if ( end == -1 ) end = document.cookie.length;
      return unescape(document.cookie.substring(offset, end));
    }
  }
  return null;
}
function set_year_cookie(name, value) {
  var d = new Date();
  d.setTime(d.getTime () + 365.25 * 24 * 60 * 60 * 1000);
  document.cookie = name + '=' + escape ( value ) + '; expires=' + d.toGMTString () + '; path=/';
}
function gebi(id) { return document.getElementById(id) };
function ce(tag_name) { return document.createElement(tag_name) }; // ce = create element
function cat(parent_element, text) { // cat = create + append textnode
  var element = document.createTextNode(text);
  parent_element.appendChild(element);
  return element;
}
function cacet(parent_element, tag_name, class_name, id, text) { // cacet = create + append classed element + text
  var element = ce(tag_name);
  if (class_name) element.className = class_name;
  if (id) element.id = id;
  if (text) cat(element, text);
  parent_element.appendChild(element);
  return element;
}
if (document.createTextNode) { // mature DOM support
  change_text_size(get_cookie('text_size') || 'm');
  add_text_size_links();
}

