    $.fn.glossary = function(options)
    {
      return this.each(function()
      {
        var me = $(this);
        var args = $.extend({}, $.fn.glossary.defaults, options);

        if (!args.glossary) return;

        var h = me.html();

        for (var i = 0; i < args.glossary.length; i++)
        {
          var re = new RegExp("((>|^)[^<]*?)\\b(" + args.glossary[i][0] + ")\\b([^>]*?(<|$))", "gi");

          var s = args.replacementString;
          s = s.replace(/\{found\}/gi, "$3");
          s = s.replace(/\{term\}/gi, args.glossary[i][0]);
          s = s.replace(/\{definition\}/gi, args.glossary[i][1]);
          s = "$1" + s + "$4";

          h = h.replace(re, s);
        }
        
        me.html(h);
      });
    }

    $.fn.glossary.defaults =
    {
      replacementString: '<acronym title="{definition}">{term}</acronym>'
    };
