/**
 * Funktionen für PopUp-Fenster
 * @author ag
 * @date 2007-04-23
 */

infoPopup = function()
{
	var app = this;
	var activeElementId = null;
	var functions = new ly_functions();
	var columns = 3;
	var offsetX = 26;
	var offsetY = 26;
	var colWidth = 138;
	var rowHeight = 75;
	var totalWidth = 416;
	var popupWidth = 267;
	var timer = null;

	app.setEventHandlers = function()
	{
		var i, k;
		var elem;
		var elems;
		var dummy;
		var childElems;

		if (document.getElementsByTagName)
		{
			elems = document.getElementsByTagName('TABLE');
			for (i = 0; i < elems.length; i++)
			{
				if (functions.hasClass('infolist', elems[i].className))
				{
					childElems = functions.filterChildNodesRecursive(elems[i], 'A');
					for (k = 0; k < childElems.length; k++)
					{
						dummy = childElems[k].getAttribute('id');
						if (dummy)
						{
							childElems[k].setAttribute('href', 'javascript:void(0)');
							childElems[k].onmouseover = function()
													{
														if (app.activeElementId != null)
														{
															document.getElementById(app.activeElementId).parentNode.style['position'] = 'static';
															functions.closeElement(app.activeElementId);
														}
														app.activeElementId = this.getAttribute('id').replace(/^a_/, 'p_');
														document.getElementById(app.activeElementId).parentNode.style['position'] = 'relative';
														functions.showElement(this.getAttribute('id').replace(/^a_/, 'p_'));
													};

							// Zugehörige Absätze (P) bearbeiten
							var p = document.getElementById(childElems[k].getAttribute('id').replace(/^a_/, 'p_'));
							if (p)
							{
								// Element verstecken
								functions.closeElement(p.getAttribute('id'));

								// Position setzen
								var pCol = (k %columns) +1;
								var pRow = Math.ceil((k +1) /columns);
								var pY = offsetY +((pRow -1) *rowHeight);
								var pX = offsetX +((pCol -1) *colWidth);

								if (pX +popupWidth > totalWidth) pX = totalWidth -offsetX -popupWidth;

								pY = 240;
								pX = 220;
								p.className = 'js';
								p.style['top'] = String(pY) + 'px';
								p.style['left'] = String(pX) + 'px';

								// Schließen-Link hinzufügen
								var newSpan = document.createElement('span');
								var newLink = document.createElement('a');
								newLink.setAttribute('href', 'javascript:void(0)');
								newLink.onclick = function() { functions.closeElement(this.parentNode.parentNode.getAttribute('id')); };
								newLink.appendChild(document.createTextNode('Schließen'));
								
								newSpan.appendChild(newLink);
								p.appendChild(newSpan);

								p.onmouseout = function() {
									var e = this;
									app.timer = window.setTimeout(function() {
										functions.closeElement(e.getAttribute('id'));
									}, 200 );
								}

								// Bei Mousein den Timeout löschen
								p.onmouseover = function() {
									if (app.timer != null) window.clearTimeout(app.timer);
								}
							}
						}
					}
				}
			}
		}
	}
}

var infoPopupApp;
function initInfoPopups()
{
	infoPopupApp = new infoPopup();
	infoPopupApp.setEventHandlers();
}