/*
 * Charter toc generator
 * version: 1.00 (2009-04-05)
 * @requires jQuery v1.3.2 or later
 *
 * Licensed under the GPL 3 (or greater) license:
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id$
 */
$(document).ready(function() {
  if ($('#charter-outline > li').length > 1) {
    $('<div id="page-contents"></div>')
      .prepend('<h2 class="title">Contents</h2>')
      .append('<ul></ul>')
      .insertBefore('#tc-charter')
      .hide();

    $('#charter-outline > li').each(function(index) {
      var $charterItem = $(this);
      var itemId = 'item-' + (index + 1);
      $charterItem.attr('id', itemId);
      $charterItem.clone().appendTo('#charter-outline');
      $charterItem.children().empty();
      var cleanItemText = cleanText($charterItem.text());
      generateListItem('#page-contents ul', itemId, cleanItemText);
      $charterItem.remove();
    });

    var referenceText = $('#references').text();
    if (referenceText) {
      referenceText = cleanText(referenceText);
      generateListItem('#page-contents ul', 'references', referenceText);
    }
    $('#page-contents').slideDown("5000");
  }
});

function cleanText(textString) {
  textString = $.trim(textString);
  textString = textString.replace(/[.:;]$/, '');
  return textString;
}

function generateListItem(itemLocation, itemId, itemText) {
  $('<li><a></a></li>')
    .find('a')
      .text(itemText)
      .attr({
        'title': 'Jump to ' + itemText,
        'href': '#' + itemId
      })
    .end()
    .appendTo(itemLocation);
}

