// для голосований за публикации
// вызывать после загрузки DOM
function publicationVoters(urlPlus) {

	if($('#razdel-content .publication-voters').length != 1){ // видимо, user не залогинен
		return;
	}

	// ссылки для голосований
	var urlLike = urlPlus;

	var timerHide; // ссылка на таймер задержки закрытия
	var delayHide = 2000; // задержка скрытия popUp
	var isShow = false; // popup показан

	var jRef = $('#razdel-content .publication-voters');
	var htmlList = $.trim($('.voters-list', jRef).html()) || 'список пуст';

	var isLoad = false; // состояние загрузки

	var jRefPopup = $('<div id="publication-voters-popup">' +
		'<div class="top">' +
			'<div class="wrap">' +
				htmlList +
			'</div>' +
		'</div>' +
		'<div class="bottom"></div>' +
	'</div>').appendTo(document.body);


	if ($.browser.msie && $.browser.version < 7){
		if(jQuery.isFunction($.fn.png)){
			$('.bottom, .top', jRefPopup).png();
		}
	}

	function hideButton(){
		 $('.button', jRef).hide();
	}
	
	function showCounter(){
		$('.counter:hidden', jRef).show();
	}

	function showPopup(e){

		if(isShow || isLoad){
			return;
		}
		var l, t;
		var winW = $(window).width();

		if(winW < 1050){ // тогда влево задвигаем popup максимально
			var offsetDoc = $('.counter', jRef).offset(); // ориентируемся по положению элемента
			l = offsetDoc.left - 30;
			t = offsetDoc.top + 18;
		} else { // ориентируемся по положению курсора мышки
			l = e.pageX - 43;
			t = e.pageY + 10;
		}

		if(!l || !t){
			return;
		}
	
		jRefPopup.hide()
			.css({left: l, top: t})
			.fadeIn();

		isShow = true;
	}

	function hidePopup(){

		if(!isShow){
			return;
		}
		jRefPopup.fadeOut('fast');
		isShow = false;
	}

	// события
	$('.counter', jRef).hover(

		function(e){
			clearTimeout(timerHide);
			timerHide = setTimeout(hidePopup,  delayHide);
			showPopup(e);
		},
		null
	);

	jRefPopup.hover(

		function(){
			clearTimeout(timerHide);
		},
		function(){
			clearTimeout(timerHide);
			timerHide = setTimeout(hidePopup,  delayHide/2);
		}
	);

	$('.button a', jRef).click(

		function(){

			if(isLoad){
				return false;
			}
			if(!urlLike){
				return false;
			}

			isLoad = true;

			hidePopup();

			$(this).text('загрузка...');

			$.get(urlLike, loadData);

			return false;
		}

	);

	// возвращает количество юзеров в popup - тех кому нравится
	// если их нет возвращает 0
	function countPopupItems(){
		return $('.wrap a', jRefPopup).length;
	}

	// обработчик окончания загрузки
	function loadData(data){

		var numPopupItems = 0; // текущее количество, кому понравилось

		data = $.trim(data) || 'список пуст';

		hideButton();

		$('.wrap', jRefPopup).html(data);

		numPopupItems = countPopupItems();

		if(numPopupItems){
			showCounter();
		}

		var countText = (numPopupItems % 10 > 1 && numPopupItems % 10 < 5 && (numPopupItems < 10 || numPopupItems > 20)) ? ' человека' : ' человек';
		$('.counter span', jRef).text(numPopupItems + countText);

		isLoad = false; // загрузка завершена
	}
	
}
