var lingo_c = function()
{
	this.microsoft_b = (navigator.appName.indexOf('Microsoft') != -1);
	this.element_id_s = '';

	/**/

	this.setCapture = function()
	{
		if (!this.microsoft_b)
			document.captureEvents(Event.MOUSEMOVE)
	};

	this.setAcronymListener = function()
	{
		var host_o = this;

		var hint_element_o = document.getElementById(this.element_id_s);
		var acronym_a = document.getElementsByTagName('acronym');

		var timeout_i = 0;

		for (var i_i = 0; i_i < acronym_a.length; i_i++)
		{
			acronym_a[i_i].onmouseover = function()
			{
				clearTimeout(timeout_i);

				var x_i = 0;
				var y_i = 0;

				var window_width_i = host_o.microsoft_b ? document.documentElement.offsetWidth : window.innerWidth;

				hint_element_o.getElementsByTagName('div')[0].innerHTML = this.getAttribute('alt');

				document.onmousemove = function(event_o)
				{
					if (host_o.microsoft_b)
  					{
  						x_i = event.clientX + document.documentElement.scrollLeft;
  						y_i = event.clientY + document.documentElement.scrollTop;
  					}
  					else
  					{
  						x_i = event_o.pageX;
  						y_i = event_o.pageY;
  					}

  					if (x_i < 0) x_i = 0;
  					if (y_i < 0) y_i = 0;

  					x_i = ((x_i + 210) > window_width_i) ? (x_i - 190) : x_i;

  					hint_element_o.style.left = (x_i - 10) + 'px';
  					hint_element_o.style.top = (y_i + 10) + 'px';

  					return true;
				};

				if (host_o.microsoft_b)
					document.onmousemove({});

				hint_element_o.style.display = '';
			};

			acronym_a[i_i].onmouseout = function()
			{
				var setInvisible = function()
				{
					hint_element_o.style.display = 'none';

					document.onmousemove = new Function();
				};

				timeout_i = setTimeout(setInvisible, 100);
			};
		}
	};

	/**/

	this.setElementId = function(id_s)
	{
		this.element_id_s = id_s;
	};

	this.setByAcronym = function()
	{
		this.setCapture();
		this.setAcronymListener();
	};
};