(function ($){
$.Glossary = 
{
	items:{},
	applyToElement:function (element, options)
	{
	    options = jQuery.extend({
			 classname : "glossary"
		}, options);

		return jQuery(element).each ( function ()
		{ 
		  el = $(this);
			var txt = el.html();
			var results = [];
			for (var i in jQuery.Glossary.items)
			{
				i_lc = i.toLowerCase();
				//var exp = new RegExp ('\\b('+i_lc+')\\b');
				txt_lc = txt.toLowerCase();
				//pos = txt_lc.indexOf(exp);
				pos = txt_lc.indexOf(" "+i_lc+" ");
				
				if (pos == -1) continue;
				
				results.push ([pos+1, txt.substr(pos+1,i.length), jQuery.Glossary.items[i]]);
			}
			
			if (results.length == 0) return;

			var offset = 0;
			results = results.sort (function (a,b) {return a[0]-b[0];} );

			for (i=0; i != 1; i++)
			{
				while(results[i][1].indexOf('"') > 0){
			     results[i][1] = results[i][1].replace('\"', '&quot;');
			    }
			    while(results[i][2].indexOf('"') > 0){
			     results[i][2] = results[i][2].replace('\"', '&quot;');
			    }
			    while(results[i][1].indexOf("'") > 0){
			     results[i][1] = results[i][1].replace("'", '&apos;');
			    }
			    while(results[i][2].indexOf("'") > 0){
			     results[i][2] = results[i][2].replace("'", '&apos;');
			    }
				tmp = "<span class=\"glossary\" title=\""+results[i][1]+"@"+results[i][2]+"\">"+results[i][1]+"</span>";
				txt = txt.substring(0,results[i][0]+offset)+tmp+txt.substr(results[i][0]+results[i][1].length+offset);
				offset += tmp.length;
			}			
			el.html(txt);
		} ).find("span.glossary").Tooltip(
			 {
				 delay: 0,
				 track: true,
				 prefix: jsLblLexikon+': ',
				 showBody:"@"
			});
	}
};
})(jQuery);

