jQuery.fn.vote = function(config) {
    config = config || {};
    var defaults = {
        activeImageSrc: "images/vote_yes.gif",
		passiveImageSrc: "images/vote.gif",
		maxScore: 5,
		fn: new Function()
    };   
    
    config = jQuery.extend(defaults, config); 	
	return this.each(function() {
        var $container = jQuery(this);	
		for (var i = 0, num = config.maxScore * 2; i < num; ++i) {
			jQuery("<img />").appendTo($container);    
		}		
		iStatus = $container.attr('status')*1;
		if(iStatus)
		{
			$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).css({display:"inline"}).slice(0,len).css({display:"none"});	    
				$container.find("img:odd").slice(0).css({display:"none"}).slice(0,len).css({display:"inline"}); 	
			}).
			end().find("img:odd").attr("src", config.activeImageSrc).css({display: "none"}).
			bind("mouseout", function(e) {
				var len = $container.find("img:odd").index(e.target);				
				$container.find("img:even").slice(0).css({display:"inline"}).slice(0,len).css({display:"none"});	    	    
				$container.find("img:odd").slice(0).css({display:"none"}).slice(0,len).css({display:"inline"}); 	
			}).
			bind("click", function(e) {
				$container.attr('do', 1);
				$container.find("img").unbind("mouseover").unbind("mouseout").unbind("click");				
				config.fn.call(this, $container.attr('id'), $container.find("img:odd").index(e.target) + 1);
			});	
			
			$container.bind("mouseleave", function(e) {
				if(!$container.attr('do')){
					len = $container.attr('score')*1;	
					$container.find("img:even").slice(0).css({display:"inline"}).slice(0,len).css({display:"none"});	    	    
					$container.find("img:odd").slice(0).css({display:"none"}).slice(0,len).css({display:"inline"}); 	
				}
			});
		}
		else
		{
			$container.find("img:even").attr("src", config.passiveImageSrc).css({display: "inline"});
			$container.find("img:odd").attr("src", config.activeImageSrc).css({display: "none"});
		}		
		iScore = $container.attr('score')*1;		
		if(iScore){
			$container.find("img:even").slice(0,iScore).css({display: "none"});	    
			$container.find("img:odd").slice(0,iScore).css({display: "inline"}); 			
		}		
    });
}; 

function setVote(id,num)
{	
	$("#"+id+"").find("img:even").slice(0).css({display:"inline"}).slice(0, num).css({display:"none"});
	$("#"+id+"").find("img:odd").slice(0).css({display:"none"}).slice(0,num).css({display:"inline"}); 	
}
