function voteNav(ulSelector, callback)
{
	this.ulClassLock      = 'votado';
    this.ulClassSelect    = 'select';
	this.ulClassOverSelect= 'Oselect';
	this.ulPrevVoteClass  = 'Pselect';
    this.ulSelector       = ulSelector || '';
    this.anchorSelector   = 'li a';
    this.ulScores         = $(this.ulSelector);
    this.anchorScores     = this.ulScores.find('li a');
    this.callback = callback || function(){};
}

voteNav.prototype = {    
	init : function() {
        var that = this;
        this.anchorScores
            .mouseover(function(e)
            {
                if( !$(this).parents(that.ulSelector).hasClass( that.ulClassLock ) )
                {
                    that.anchorScores.removeClass( that.ulClassOverSelect );
                    $(this)
						.addClass( that.ulClassOverSelect )
						.parent().prevAll().find('a').addClass( that.ulClassOverSelect );
                }
            })
            .mouseout(function(e)
            {
				if( !$(this).parents( that.ulSelector ).hasClass( that.ulClassLock ) )
                {
					that.anchorScores.removeClass( that.ulClassOverSelect );
					$(this)
						.removeClass( that.ulClassOverSelect )
						.parent().prevAll().find('a').removeClass( that.ulClassOverSelect );
                }
            })
            .click(function(e)
            {
				if( !$(this).parents( that.ulSelector ).hasClass( that.ulClassLock ) )
                {
					that.anchorScores.removeClass( that.ulClassSelect );
					$(this).parent().prevAll().find('a').addClass( that.ulClassSelect );
					$(this)
						.parents( that.ulSelector )					
							.removeClass( that.ulClassLock )
							.addClass( that.ulClassLock );

					//$(this).addClass( that.ulClassSelect );
					
					$(this).parent().nextAll().find('a').removeClass( that.ulPrevVoteClass );					
					
					that.callback();
                }
                return false;
            }); 
    }
}
