Rater_backend = '/ajax/rater/';

$(document).ready(function () {
	$('span.R').hover(
		function () {
			if (!$(this).hasClass('processing') && !$(this).hasClass('Rx')) {
				var Block = document.createElement('b')
				var Up = document.createElement('a')
				var Down = document.createElement('a')
				$(Up).add(Down).attr('href', 'javascript: void(0)')
				$(Up).addClass('up')
				Block.appendChild(Down); Block.appendChild(Up)
				this.appendChild(Block)
				$(Block).click(rater)
			}
		},
		function () { if (!$(this).hasClass('processing') && !$(this).hasClass('Rx')) { this.removeChild(this.getElementsByTagName('b')[0]) } }
	)
})

function rater() {
	var elem = this.parentNode
	var voteSide = (arguments[0].target.className) ? arguments[0].target.className : 'down'
	if (!$(elem).hasClass(voteSide)) {
		$(elem).removeClass('up').removeClass('down').addClass('processing ' + voteSide)
		var vote = (voteSide == 'up') ? 1 : -1
		var ID = elem.getAttribute('id')
		var area = ID.substring(1,2)
		ID = ID.substring(2)
		$.ajax({
			url:		Rater_backend,
			type:		'POST',
			data:		{ area: area, id: ID, vote: vote },
			dataType:	'json',
			success:	function (data, txt_status) {
						var elem = $('#x' + area + ID).get(0)
						if (data.alert) {
							alert(data.alert)
							elem.removeChild(elem.getElementsByTagName('b')[0])
						} else {
							elem.innerHTML = data.rate;
							var curCls = elem.className.replace('neg', '')
							elem.className = (data.rate < 0) ? curCls + ' neg' : curCls
						}
							$(elem).removeClass('processing')
					}
		});
	}
}
