(function($){
	$.fn.chars = function(total, sufixo)
	{
		var helper = function(chars)
		{
			sufixo = sufixo == undefined ? "caracteres" : sufixo;
			var classname = chars > total? 'exceeded' : '';
			return '<span class="' + classname + '">' + chars +  '</span>' +
					'/<span class="total">' + total + '</span> ' + sufixo;
		}
		
		$(this).each(function(){
			if ($(this).is('textarea') || $(this).is(':text') || $(this).is(':password')) {
				$(this)
					.attr('maxlength', total);
				
				if($(this).parent().find('.chars').length == 0) {
					$(this).after('<span class="chars"></span>');
				}
				
				
				$(this)
					.parent()
					.find('.chars')
					.html(helper(this.value.length));
				
				var callback = function(){
					var len = this.value.length;
					
					if (len > total) {
						this.value = this.value.substr(0, total);
					}
					
					$(this)
						.parents(':eq(0)')
						.find('.chars')
						.html(helper(len));
				};
				$(this).keydown(callback);
				/*
				$(this).keypress(callback);
				$(this).keyup(callback);
				*/
			}
		});
		
		return this;
	}
})(jQuery);