/**
 * Класс для отображения информации о пользователе
 * -----------------------------------------------
 * @copyright TimeZero <http://www.timezero.ru/>
 * @autor Dmitriy Shkinev <berkel@timezero.ru>
 * @version 1.0 2008-3-28
 */

var UserInfo =
{
	sContainerId : 'user-info-container',

	sContainerHeaderId : 'user-info-header',

	oContainerAlign : {x:0,y:0},

	enableOnSelect : function()
	{
		Common.CSSClass.remove(document.body,  'body_no-select');
		Common.Event.remove(document, 'selectstart', return_false);
	},

	disableOnSelect : function()
	{
		document.body.focus();

		Common.CSSClass.set(document.body,  'body_no-select');
		Common.Event.add(document, 'selectstart', return_false);
	},

	fItemMouseDownHandler : function(oEvent)
	{
		var oContainer = $(UserInfo.sContainerId);

		if (!oContainer)
		{
			return false;
		}

		var oContainerPosition = Common.getAbsolutePos(oContainer);

		UserInfo.oContainerAlign = {x : oContainerPosition.x - oEvent.clientX, y : oContainerPosition.y - oEvent.clientY};

		UserInfo.disableOnSelect();

		Common.Event.add(document, 'mouseup', UserInfo.fItemMouseUpHandler);

		Common.Event.add(document, 'mousemove', UserInfo.fItemMouseMoveHandler);
	},

	fItemMouseUpHandler : function(oEvent)
	{
		UserInfo.enableOnSelect();

		Common.Event.remove(document, 'mousemove', UserInfo.fItemMouseMoveHandler);
	},

	fItemMouseMoveHandler : function(oEvent)
	{
		var oContainer = $(UserInfo.sContainerId);

		if (!oContainer)
		{
			return false;
		}

		var x = oEvent.clientX + UserInfo.oContainerAlign.x,
			y = oEvent.clientY + UserInfo.oContainerAlign.y;

		if ((x + oContainer.offsetWidth) >= document.body.offsetWidth)
		{
			x = document.body.offsetWidth - oContainer.offsetWidth;
		}
		else if (x < 0)
		{
			x = 0;
		}

		if ((y + oContainer.offsetHeight) >= document.body.offsetHeight)
		{
			y = document.body.offsetHeight - oContainer.offsetHeight;
		}
		else if (y < 0)
		{
			y = 0;
		}

		oContainer.style.left = (x) + 'px';
		oContainer.style.top = (y) + 'px';
	},

	show : function(id)
	{
		var sContent = Common.AJAX.getContent('POST', '/ajax.php', 'mode=user_info&id=' + id);

		if (!sContent)
		{
			return false;
		}

		var oContainer = $(this.sContainerId);

		if (!oContainer)
		{
			var oContainer = document.createElement('DIV');

			oContainer.id = this.sContainerId;
			document.body.appendChild(oContainer);
		}

		var oScrollPos = Common.getScrollXY();

		oContainer.innerHTML = sContent;

		oContainer.style.display = '';

		oContainer.style.left = ((document.body.offsetWidth / 2) - (oContainer.offsetWidth / 2)) + 'px';
		oContainer.style.top = (oScrollPos.y + 200) + 'px';

		var oContainerHeader = $(this.sContainerHeaderId);

		if (oContainerHeader)
		{
			Common.Event.add(oContainerHeader, 'mousedown', this.fItemMouseDownHandler);
		}
	},

	close : function()
	{
		var oContainer = $(this.sContainerId);

		if (!oContainer)
		{
			return false;
		}

		oContainer.style.display = 'none';
	}
};