jQuery.fn.voter = function(o){
    function mousexy(e){
        var x = 0, y = 0;
        var coord=new Array();
        if (!e) e = window.event;
        if (e.pageX || e.pageY){
            x = e.pageX;
            y = e.pageY;
        }else if (e.clientX || e.clientY){
            x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
            y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
        }
        coord[0]=x;coord[1]=y;
        return coord;
    }
    
    var blocks = 10, callBack = null, def=0, disable=false;
    
    if(typeof(o) == 'object'){
        blocks = o.blocks||blocks;
        callBack = o.callBack||callBack;
		def = o.def||def;
		disable = o.disable||disable;
    }
    
    $(this)
    .addClass('jquery-voter-enable')
    .html("<ul class='voted2'></ul>");
    
    var ready = 0, t = this, v = $(t).find('ul.voted2');

    var t1 = '';
    for(var i=0;i<blocks;i++) t1 += '<li>'+i+'</li>';
    
    $(v).html(t1);
    $(t).width(
        $(v)
        .find('li')
        .width()*blocks
    )
	
	if(def >= 0){
		$(v)
		.find('li')
		.each(
			function(i){
				if(i<=def)
					$(this).css("background-position","0px -26px");
			}
		)
	}
	if(disable)
		ready = 1;

    $(v)
    .find('li')
    .hover(
        function(){
            if(ready != 0) return;
            var id = parseInt($(this).html());
            $(v)
            .find('li')
            .each(
                function(i){
                    if(i<=id)
                        $(this).css("background-position","0px -13px");
                }
            )
        },function(){
            if(ready != 0) return;
            $(v)
            .find('li')
            .each(
                function(i){
                    $(this).css('background-position','0px 0px');
            })
			if(def >= 0){
				$(v)
				.find('li')
				.each(
					function(i){
						if(i<=def)
							$(this).css("background-position","0px -26px");
					}
				)
			}
        }
    )
    .click(
        function(){
            if(ready != 0) return;
            var id = parseInt($(this).html());
	        $(v)
            .find('li')
			.css("background-position","0px 0px");
            $(v)
            .find('li')
            .each(
                function(i){
                    if(i<=id)
                        $(this).css("background-position","0px -26px");
                }
            )
            
            if(callBack) callBack(id+1, t);
            ready = 1;
        }
    )
}