function set_definitions(dfns_in) {
        dfns_in = $A(dfns_in)
	var all_defs = [];
	dfns_in.each( function(dfn_holder) {
		if (!dfn_holder || dfn_holder.getElementsByTagName('dfn').length == 0) {
			if (typeof dfn_holderi != 'undefined') { dfns_in.without(dnf_holder); }
		}
		else {
			var container_defs = dfn_holder.getElementsByTagName('dfn');
			for (var i = 0; i < container_defs.length; i++) {
				if (container_defs[i].title && container_defs[i].title != "") {
					all_defs.push(new Definition(container_defs[i], container_defs[i].title));
				}
			}
		}
	});
	try {
		if (dfns_in.length == 0) {
			throw "No defentitions found.";
		}
	}
	catch (e) {  return; }
}



var Definition = Class.create();
Definition.prototype = {
        initialize: function(dfn, text) {
                this.dfn_tag = dfn
                this.defenition = text
                this.dfn_tag.observe('mouseover', this.show.bindAsEventListener(self, this), false);
                this.dfn_tag.observe('mouseout', this.hide.bindAsEventListener(self, this), false);
        },
        show: function(self, context) {
                var self = (arguments[0].target)?arguments[0].target:arguments[0].srcElement;
                self.setStyle( { textDecoration: 'underline'});
                context.box = document.createElement('div');
                context.box.id = 'defenition';
                context.box.innerHTML = context.defenition;
                document.lastChild.lastChild.appendChild(context.box);
                //Position.absolutize(context.box);
                pos = Position.cumulativeOffset(self);
                p_top = pos[1] - 176;
                p_left = pos[0] - 85;
                $(context.box).setStyle( { 'top': p_top+"px", 'left': p_left+"px"} );

        },
        hide: function(self, context) {
                var self = (arguments[0].target)?arguments[0].target:arguments[0].srcElement;
                context.box.parentNode.removeChild(context.box);
		self.style.textDecoration = "none";
        }
}

