window.addEvent('domready', function() {
	var myTips = new Tips('.smsTips', {
		className: 'smsTip'
	});
});


var userinfoTimer = false;
var userinfoStore = [];

if(!window.getMouseXY) {
	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(document.id('userinfoBlock'))) document.id('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(document.id('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();
		});
	}
	document.id('userinfoBlock').setStyles({
		'top': y,
		'left': x
	});

	if(!userinfoStore[id]) {
		// request
		options = {
			url: '/forum/ajax/userinfo.php?action=userinfo',
			data: { 'id':id },
			onRequest: function() {
				document.id('userinfoBlock').set('html', '<img src="http://pics.nashgorod.ru/images/ajax.gif" style="vertical-align:middle" /> загрузка');
				fixUserinfoBlockPosition();
			},
			onSuccess: function(result) {
				if(result['result']) {
					if($defined(document.id('userinfoBlock'))) document.id('userinfoBlock').set('html', result['html']);
					userinfoStore[id] = result['html'];
					fixUserinfoBlockPosition();
				}
				else if(result['errors']) {
					if($defined(document.id('userinfoBlock'))) document.id('userinfoBlock').set('html', result['errors']);
				}
			}
		};
		new Request.JSON(options).send();
	}
	else {
		if($defined(document.id('userinfoBlock'))) document.id('userinfoBlock').set('html', userinfoStore[id]);
		fixUserinfoBlockPosition();
	}
}

function fixUserinfoBlockPosition() {
	if(!$defined(document.id('userinfoBlock'))) return false;

	document.id('userinfoBlock').setStyle('left', Math.min(document.getCoordinates().width.toInt() - document.id('userinfoBlock').getStyle('width').toInt() - 40, document.id('userinfoBlock').getStyle('left').toInt()) + 'px');
	document.id('userinfoBlock').setStyle('top', Math.min(document.getScroll().y + document.getCoordinates().height.toInt() - document.id('userinfoBlock').getStyle('height').toInt() - 20, document.id('userinfoBlock').getStyle('top').toInt()) + 'px');
}

function closeInfoWindow() {
	options = {
		url: '/forum/ajax/info_message.php?action=close',
		onRequest: function() {
			document.id('infoMessage').destroy();
		}
	};
	new Request.JSON(options).send();
}

function ignoreThisTopic(topic_id, aObj) {
	if (confirm('Дейсвительно хотите игнорировать эту тему?')) {
		var li = aObj;
		options = {
			url: '/forum/ajax/userinfo.php?action=ignore_topic',
			data: { 'topic_id':topic_id },
			onSuccess: function(result) {
				if(result['result']) {
					while (li.tagName != 'LI') li = li.parentNode;
					li.parentNode.removeChild(li);
				}
				else if(result['errors']) {
					alert(result['errors']);
				}
			}
		};
		new Request.JSON(options).send();
	}
}
