/**
 * LinkEx PopUp
 *
 * @author Mikhail Krasilnikov <mk@3wstyle.ru>
 * @author Ghost <fant@steeka.com>
 *
 * $Id: linkex.js 387 2009-03-11 13:58:54Z mk $
 */
var LinkEx = 'LinkEx'; // <- ЗАМЕНИТЬ НА НУЖНЫЙ ИДЕНТИФИКАТОР УЗЛА
var isIE = (navigator.userAgent.toLowerCase().indexOf('msie') != -1) && (navigator.userAgent.toLowerCase().indexOf('opera') == -1);

function iePageXOffset()
{
	return document.body.scrollLeft?document.body.scrollLeft:document.documentElement.scrollLeft;
}

function iePageYOffset()
{
	return document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop;
}

function linkexOverNode(Node, X, Y)
{
	return (X >= Node.offsetLeft) && (Y >= Node.offsetTop) && (X <= Node.offsetLeft+Node.offsetWidth) && (Y <= Node.offsetTop+Node.offsetHeight);
}

/**
 * Устанавливает обработчик события
 *
 * @param NodeElement node
 * @param string      eventName
 * @param function    handler
 *
 * @author mihalych
 */
function linkexAddEventListener(node, eventName, handler)
{
	if (document.addEventListener) { // DOM2
		node.addEventListener(eventName, handler, false);
	} else if (document.attachEvent) { // IE5+
		node.attachEvent('on' + eventName, handler);
	}
}
//-----------------------------------------------------------------------------

/**
 * Скрытие всплывающего окна
 *
 * @param Event e
 *
 * @author mihalych
 */
function linkexPopupHide(e)
{
  var popup = document.getElementById('LinkExPopup');
  var x = (isIE?iePageXOffset():window.pageXOffset) + e.clientX;
  var y = (isIE?iePageYOffset():window.pageYOffset) + e.clientY;
  if (!(linkexOverNode(popup, x, y) || linkexOverNode(document.getElementById(LinkEx), x, y))) {
    if (document.removeEventListener) { // DOM2
      popup.removeEventListener('mouseout', linkexPopupHide, true);
    } else if (document.detachEvent) { // IE5+
      popup.detachEvent('onmouseout', linkexPopupHide);
    }
    popup.style.display = 'none';
  }
}
//-----------------------------------------------------------------------------

/**
 * Показ всплывающего окна
 *
 * @param Event e
 *
 * @author mihalych
 */
function linkexPopupShow(e)
{
  var popup = document.getElementById('LinkExPopup');
  if (popup) {
    if (popup.style.display == 'block') return;
    popup.style.display = 'block';
    var x = ((e.clientX < popup.offsetWidth) ? (e.clientX -10) : (e.clientX - popup.offsetWidth + 10)) + (isIE?iePageXOffset():window.pageXOffset);
    var y = ((e.clientY < popup.offsetHeight) ? (e.clientY -10) : (e.clientY - popup.offsetHeight + 10)) + (isIE?iePageYOffset():window.pageYOffset);
    popup.style.left = x+'px';
    popup.style.top = y+'px';
    linkexAddEventListener(document, 'mouseout', linkexPopupHide);
  }
}
//-----------------------------------------------------------------------------

/**
 * Установка обработчика для вызова всплывающего окна
 *
 * @author mihalych
 */
function linkexAttach()
{
  var Node = document.getElementById(LinkEx);
  if (Node) linkexAddEventListener(Node, 'mouseover', linkexPopupShow);
}
//-----------------------------------------------------------------------------

linkexAddEventListener(window, 'load', linkexAttach);