function dhtml_preview()
{
	var app = this;
	app.functions = new ly_functions();

	app.getPreviewElemByName = function(name)
	{
		var elem = document.getElementById(name + '_preview');
		return(elem);
	}

	app.setEventHandlers = function()
	{
		var elems = document.getElementsByTagName('A');
		var prev_elem;

		for (var i = 0; i < elems.length; i++)
		{
			if (app.functions.hasClass('preview', elems[i].className))
			{
				prev_elem = app.getPreviewElemByName(elems[i].getAttribute('id'));
				if (prev_elem) prev_elem.className = app.functions.addClass(prev_elem.className, 'hidden');

				app.functions.addEvent(elems[i], 'mouseover', function()
																				{
																					var p_elem = app.getPreviewElemByName(this.getAttribute('id'));
																					if (p_elem) p_elem.className = app.functions.removeClass(p_elem.className, 'hidden');
																				});

				app.functions.addEvent(elems[i], 'mouseout', function()
																		{
																			var p_elem = app.getPreviewElemByName(this.getAttribute('id'));
																			if (p_elem) p_elem.className = app.functions.addClass(p_elem.className, 'hidden');
																		} );

				app.functions.addEvent(elems[i], 'mousemove', function(ev)
																		{
																			var x, y;
																			ev = (ev)? ev : event;

																			if (ev.pageX)
																			{
																				x = ev.pageX;
																				y = ev.pageY;
																			}
																			else
																			{
																				x = window.event.clientX +document.documentElement.scrollLeft;
																				y = window.event.clientY +document.documentElement.scrollTop;
																			}

																			var p_elem = app.getPreviewElemByName(this.getAttribute('id'));
																			if (p_elem)
																			{
																				p_elem.style['left'] = String(x +5) + 'px';
																				p_elem.style['top'] = String(y +20) + 'px';

																				var width = p_elem.offsetWidth;
																				var height = p_elem.offsetHeight;
																				if (y -document.body.scrollTop +height + 20 >= document.body.clientHeight)
																				{
																					y = y -height -10;
																					p_elem.style['top'] = String(y) + 'px';
																				}
																				if (x -document.body.scrollLeft + width >= document.body.clientWidth)
																				{
																					x = document.body.clientWidth -width +document.body.scrollLeft -2;
																					p_elem.style['left'] = String(x) + 'px';
																				}
																			}
																		} );
			}
		}
	}
}

var dhtmlPreview;
dhtmlPreview = new dhtml_preview();
dhtmlPreview.functions.addEvent(window, 'load', function() { dhtmlPreview.setEventHandlers(); } );
