/**
 * Class FootNoteLinks inspired by http://www.easy-designs.net/code/footnoteLinks/
 * Copyright ©2006 Xavier Lepaul <gaerun@gmail.com>
 * License Creative Commons Attribution-ShareAlike 3.0 License
 *         see http://creativecommons.org/licenses/by-sa/3.0/ for details
 */
FootNoteLinks = Class.create();
FootNoteLinks.prototype = {
    initialize: function(container,target) {
        this.options = Object.extend({
            className: "footNoteLinks",
            title: "Links",
            titleTag:"h3"
        },arguments[2] || {});
        var target = $(target);
        var title = $(document.createElement(this.options.titleTag));
        title.addClassName(this.options.className);
        title.appendChild(document.createTextNode(this.options.title));
        target.appendChild(title);
        this.list = $(document.createElement("ol")); 
        this.list.addClassName(this.options.className);
        target.appendChild(this.list);
        this.linkList = new Array();
        $(container).getElementsBySelector("blockquote","cite","del","ins","a","area").each(this.addLink.bind(this));
        $$("body")[0].addClassName('noted');
    },
    addLink: function(lt) {
        var ltLink = lt.getAttribute('href') ? lt.href : lt.cite;
        if(ltLink) {
            var linkIndex = this.linkList.indexOf(ltLink);
            if(linkIndex == -1) {
                linkIndex = this.linkList.length;
                this.linkList.push(ltLink);
                var li = $(document.createElement("li"));
                li.appendChild(document.createTextNode(ltLink));
                this.list.appendChild(li);
            }
            var sup = $(document.createElement("sup"));
            sup.addClassName(this.options.className);
            sup.appendChild(document.createTextNode(linkIndex+1));
            lt.appendChild(sup);
        }
    }
}
