(function ($) {
	function start_hover(star) {
		if ($.browser.msie && $.browser.version.substr(0,1)=="6") {
		    $(star).css('background', 'none');
		    $(star).css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme_dir+"/rating-over.png', sizingMethod='image')");
		} else {
		    $(star).css('background', "url("+theme_dir+"/rating-over.png) no-repeat 0 0");
		}
		
		if ($(star).prev().length > 0) {
			start_hover($(star).prev());
		}
	}

	function reset_hover() {
		if ($.browser.msie && $.browser.version.substr(0,1)=="6") {
		    $('.rating span').css('background', 'none');
		    $('.rating span').css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme_dir+"/rating-off.png', sizingMethod='image')");
		    $('.rating span.active').css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme_dir+"/rating-on.png', sizingMethod='image')");
		} else {
			$('.rating span').css('background', "url("+theme_dir+"/rating-off.png) no-repeat 0 0");
		    $('.rating span.active').css('background', "url("+theme_dir+"/rating-on.png) no-repeat 0 0");
		}
	}
	
	$(function () {
		reset_hover();
	})
	
	$('.rating span').hover(function () {
		if ($(this).hasClass('clickable')) {
			start_hover(this);
		}
	}, function () {
		if ($(this).hasClass('clickable')) {
			reset_hover();
		}
	});
	
	$('.rating .clickable').live('click', function () {
		var me = this;
		var post_id = parseInt($(this).parents('.rating-parent').attr('rateid'));
		var rating = parseInt($(this).attr('rate'));
		rating = (rating < 1 || rating > 5) ? 5 : rating;
		
		$(me).parents('.rating').find('span').hide();
		$(me).parents('.rating').find('span').removeClass('clickable');
		
		var rate_parents = $('.rating-parent[rateid="'+(post_id).toString()+'"]');
		$(rate_parents).each(function (index) {
			$(this).find('.rating').find('span').hide();
			$(this).find('.rating').find('span').removeClass('clickable');
			$(this).find('.rating').append('<div class="loading" style="height: 20px; background: url('+theme_dir+'/loading.gif) no-repeat 0 6px;">Loading ...</div>');
		});
		
		$.get('?rate_post=&id='+post_id+'&r='+rating, [], function (data, textStatus) {
			var result = data.toString();
			
			if (result.indexOf('success-') != -1) {
				result = result.replace('success-', '');
				$(me).parents('.rating').find('span').removeClass('active');
				var selector = 'span:lt('+(parseInt(result)).toString()+')'
				$(me).parents('.rating').find(selector).addClass('active');
				$(rate_parents).each(function (index) {
					$(this).find('.rating').find('span').removeClass('active');
					$(this).find('.rating').find(selector).addClass('active');
				});
			} else {
				alert('There was a connection error which prevented your rating to be submitted. Please try again.');
				$(me).parents('.rating').find('span').addClass('clickable');
			}
			reset_hover();
			$(me).parents('.rating').find('span').show();
			$(rate_parents).each(function (index) {
				$(this).find('.rating').find('span').show();
				$(this).find('.loading').remove();
			});
		})
	});
})(jQuery)