window.addEvent('domready', enableRates);

function refreshRating(greeting) {
	var request = new Request.HTML({
		'url'      : '/personal/rating/get/greeting/' + greeting,
		onComplete : function(tree, elements, html, js) {
			$('rating-box-' + greeting.toString())
				.empty()
				.set('html', html)
				.getElements('.rate').addEvent('click', starClick);
			;
		}
	});
	request.get();
}

function starRatingVote(greeting, value) {
	showResponseMessage(
		'/personal/rating/rate/greeting/' + greeting + '/rating/' + value,
		'К сожалению не удалось принять Вашу оценку. Попробуйте позднее',
		{}
	);
	refreshRating(greeting);
	enableRates();
}

function enableRates() {
	$$('.rate').addEvent('click', starClick);
}

function starClick(event) {
	event.stop();

	var element = this;
	var myStyles = ['rating-0', 'rating-1', 'rating-2', 'rating-3', 'rating-4', 'rating-5'];
	myStyles.each(function(myStyle) {
		if (element.getParent().hasClass(myStyle)) {
			element.getParent().removeClass(myStyle)
		}
	});
	myStyles.each(function(myStyle, index) {
		if (index == element.id) {
			element.getParent().toggleClass(myStyle);
			starRatingVote(element.getParent().id, element.id);
		}
	});
}
