jQuery.fn.vote = function(config) {
    config = config || {};
    var defaults = {
		url_ajax: "/blogs20/votePostBlog/",
		activeImageSrc: "/images/star_active.gif",
		passiveImageSrc: "/images/star_passive.gif",
		maxScore: 5,
		idElement:0,
		fn: new Function(),
		messages: ["", "1", "2", "3", "4", "5"]
    };   
    //reqvest.php
    config = jQuery.extend(defaults, config);
     
    return this.each(function()
	{
		var $container = jQuery(this);
		
		var $img = $container.find(".image");
		for (var i = 0, num = config.maxScore * 2; i < num; ++i) {
			jQuery("<img />").appendTo($img);    
		}
		jQuery('<span class="rating" ></span>').appendTo($container);
		//$container.find("span").addClass("rating");

		jQuery.ajax(
		{
			type: "GET",
			url: config.url_ajax,
			data: "start=1&id=" + config.idElement,
			success: function (data)
			{
				var data = eval('('+data+')');
				$container.find("#rez_"+config.idElement).text("");
				$container.find("#rez_"+config.idElement).append("Рейтинг: "+data['rating']+", Голосов: "+data['count']+"; ");
				$container.find("span.rating").text(data['request']);
				if(data['p']) {	
					$container.find(".image").css({display: "inline"});
				} else {
					$container.find(".image").css({display: "none"});
				}	
			},
			error: function(){
				$container.find("#rez_"+config.idElement).text("");
				$container.find("#rez_"+config.idElement).append('Error. The request failed.');  
			}
		});
		
		$container.find("img:even").attr("src", config.passiveImageSrc).css({display: "inline"}).
		bind("mouseover", function(e) 
		{	    
			var len = $container.find("img:even").index(e.target) + 1;
			$container.find("img:even").slice(0, len).css({display: "none"});
			$container.find("img:odd").slice(0, len).css({display: "inline"});
			$container.find("span.rating").text(config.messages[len]);
		}).end().
		find("img:odd").attr("src", config.activeImageSrc).css({display: "none"}).
		bind("mouseout", function(e) 
		{
			var len = $container.find("img:odd").index(e.target) + 1;
			$container.find("img:odd").slice(0, len).css({display: "none"});
			$container.find("img:even").slice(0,  len).css({display: "inline"});
			$container.find("span.rating").text("");
		}).
		bind("click", function(e) 
		{
			$container.find("img").unbind("mouseover").unbind("mouseout").unbind("click");
			$container.find("span.rating").text(config.messages[0]);
			var len = $container.find("img:odd").index(e.target) + 1;
			config.fn.call(this, e, len);
			jQuery.ajax(
			{
				type: "GET",
				url: config.url_ajax,
				data: "val=" + len + "&id="+config.idElement, 
				success: function (data)
				{
					var data = eval('('+data+')'); 
					$container.find("#rez_"+config.idElement).text("");
					$container.find("#rez_"+config.idElement).append("Рейтинг: "+data['rating']+", Голосов: "+data['count']+"; ");
					$container.find("span.rating").text(data['request']);
				},
				error: function(){
					$container.find("#rez_"+config.idElement).text("");
					$container.find("#rez_"+config.idElement).append('Error. The request failed.');  
				}
			}); 
		});
    });
};


jQuery(document).ready(function() {
		jQuery(".vote").each(function(){
			var id = jQuery(this).attr('id');
			jQuery(this).vote({maxScore:5, idElement:id});
	    });
 });

