window.addEvent('domready', function() {
	var myTips = new Tips('.smsTips', {
		className: 'smsTip'
	});
});


var userinfoTimer = false;
var userinfoStore = [];

function getMouseXY(event) {
	if(!event) return false;

	var x = 0;
	var y = 0;
	if(!event) var event = window.event;
	x = event.pageX || (event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft));
	y = event.pageY || (event.clientY + (document.body.scrollTop || document.documentElement.scrollTop));

	return {'x':x, 'y':y};
}

function showUserinfo(id, event) {
	if(!id) return false;
	if(!event) return false;

	coords = getMouseXY(event);
	if(userinfoTimer) $clear(userinfoTimer);
	userinfoTimer = showUserinfoTimed.delay(500, 1, [id, coords]);
}

function hideUserinfo() {
	if(userinfoTimer) $clear(userinfoTimer);
	userinfoTimer = hideUserinfoTimed.delay(500);
}

function showUserinfoTimed(id, coords) {
	if(!id) return false;
	if(!coords) return false;

	getUserinfoBlock(id, coords);
}

function hideUserinfoTimed() {
	if($defined($('userinfoBlock'))) $('userinfoBlock').destroy();
}

function getUserinfoBlock(id, coords) {
	if(!id) return false;
	if(!coords) return false;

	if(userinfoTimer) $clear(userinfoTimer);

	var x = coords.x + 8;
	var y = coords.y + 8;

	// draw block
	if(!$defined($('userinfoBlock'))) {
		new Element('div', {
			'id': 'userinfoBlock'
		}).inject(document.body, 'top').set('opacity', 0.9).addEvent('mouseover', function() {
		    if(userinfoTimer) $clear(userinfoTimer);
		}).addEvent('mouseout', function() {
		    hideUserinfo();
		});
	}
	$('userinfoBlock').setStyles({
		'top': y,
		'left': x
	});

	if(!userinfoStore[id]) {
		// request
		options = {
			url: '/forum/ajax/userinfo.php?action=userinfo',
			data: { 'id':id },
			onRequest: function() {
				$('userinfoBlock').set('html', '<img src="http://pics.nashgorod.ru/images/ajax.gif" style="vertical-align:middle" /> загрузка');
				fixBlockPosition();
			},
			onSuccess: function(result) {
				if(result['result']) {
					if($defined($('userinfoBlock'))) $('userinfoBlock').set('html', result['html']);
					userinfoStore[id] = result['html'];
					fixBlockPosition();
				}
				else if(result['errors']) {
					if($defined($('userinfoBlock'))) $('userinfoBlock').set('html', result['errors']);
				}
			}
		};
		new Request.JSON(options).send();
	}
	else {
		if($defined($('userinfoBlock'))) $('userinfoBlock').set('html', userinfoStore[id]);
		fixBlockPosition();
	}
}

function fixBlockPosition() {
	if(!$defined($('userinfoBlock'))) return false;

	$('userinfoBlock').setStyle('left', Math.min(document.getCoordinates().width.toInt() - $('userinfoBlock').getStyle('width').toInt() - 40, $('userinfoBlock').getStyle('left').toInt()) + 'px');
	$('userinfoBlock').setStyle('top', Math.min(document.getScroll().y + document.getCoordinates().height.toInt() - $('userinfoBlock').getStyle('height').toInt() - 20, $('userinfoBlock').getStyle('top').toInt()) + 'px');
}

function closeInfoWindow() {
	options = {
		url: '/forum/ajax/info_message.php?action=close',
		onRequest: function() {
			$('infoMessage').destroy();
		}
	};
	new Request.JSON(options).send();
}
