ratingControlRender = function(postId, user, startUserRating, startGoodVotes, startBadVotes)
{		
	var requestRatingUser = function ()
	{
		loadXml("/xmlservice/get_post_user_rating.xml?post_id="+postId, continueAfterRatingUser);
	}

	var requestRatingSummary = function ()
	{
		loadXml("/xmlservice/get_post_votes.xml?post_id="+postId, continueAfterRatingSummary);
	}
	
	var saveRating = function (currRate)
	{
		if (user == '')
		{
			location.href='/do/auth.html';
			return;
		}
			
		loadXml("/xmlservice/set_post_user_rating.xml?post_id="+postId+"&user_rating="+currRate, continueAfterRatingSummary);
		if (currRate == '-1')
		{
			disable(minus);
			enable(plus, 1);
		}
		
		if (currRate == '1')
		{
			disable(plus);
			enable(minus, -1);
		}		
	}		
	
	var disable = function (obj)
	{
		obj.className = "voted";
		obj.onmouseover = function() {}
		obj.onmouseout = function() {}
		obj.onclick = function() {}	
	}
	
	var enable = function (obj, vote)
	{
		obj.className = "js";
		obj.onmouseover = function() {  this.className='js active'; }
		obj.onmouseout = function() { this.className='js'; }					
		obj.onclick = function() { saveRating(vote); }
	}
	
	var continueAfterRatingUser = function (xdoc, txt, url)
	{
		var elem = xdoc.getElementsByTagName('userRating')[0];
		if( elem && elem.firstChild)
		{			
			ratingUser = elem.firstChild.nodeValue;
			if (ratingUser == '-1')
			{
				disable(minus);
				enable(plus, 1);
			}
			
			if (ratingUser == '1')
			{
				disable(plus);
				enable(minus, -1);
			}
			
			if (ratingUser == '0')
			{
				enable(plus, 1);
				enable(minus, -1);
			}
		}
	}
	
	var continueAfterRatingSummary = function (xdoc, txt, url)
	{
		var elem = xdoc.getElementsByTagName('rating')[0];
		if (elem && elem.getElementsByTagName('bad') && elem.getElementsByTagName('bad')[0].firstChild && elem.getElementsByTagName('good') && elem.getElementsByTagName('good')[0].firstChild)
		{
			plusRating.innerHTML = elem.getElementsByTagName('good')[0].firstChild.nodeValue;
			minusRating.innerHTML = elem.getElementsByTagName('bad')[0].firstChild.nodeValue;
		}
		requestRatingUser();
	}
	
	function loadXml(url, callback)
	{
		var httpRequest = new HTMLHttpRequest('httpRequest', callback, false);
		httpRequest.load(url);		
	}
	
	var plus = document.getElementById('plusRating'); // ссылка положительного голосования
	var minus = document.getElementById('minusRating'); // ссылка отрицательного голосования
	var plusRating = document.getElementById('current-good-'+postId); // Вывод положительных голосов
	var minusRating = document.getElementById('current-bad-'+postId); // Вывод отрицательных голосов
	
	//if (plusRating && minusRating && plus && minus)
	//{
//		requestRatingSummary();
//	}

	if (startUserRating == '-1')
	{
		disable(minus);
		enable(plus, 1);
	}		
	if (startUserRating == '1')
	{
		disable(plus);
		enable(minus, -1);
	}		
	if (startUserRating == '0')
	{
		enable(plus, 1);
		enable(minus, -1);
	}
		
	plusRating.innerHTML = startGoodVotes;
	minusRating.innerHTML = startBadVotes;
}