(function($) {
	$.fn.charsLeft = function(options) {
		var defaults = {
			"message" : "character(s) left"
		};
			
		var options = $.extend(defaults, options);  
			
		return this.each(function() {  
			var length    = parseInt($(this).attr("maxlength") - $(this).val().length);

			if (length <= 0) {
				// pour IE
				$(this).val($(this).val().slice(0, parseInt($(this).attr("maxlength"))));
				
				length    = 0;
				classname = 'errors';
			} else {
				classname = 'success';
			}
			
			var ul = jQuery('<ul class="' + classname + '"><li>' + length + ' ' + options.message + '</li></ul>');
			
			$(this).after(ul);
			
			$(this).keyup(function() {
				length    = parseInt($(this).attr("maxlength") - $(this).val().length);
				
				if (length <= 0) {
					// pour IE
					$(this).val($(this).val().slice(0, parseInt($(this).attr("maxlength"))));
					
					length    = 0;
					classname = 'errors';
				} else {
					classname = 'success';
				}
				
				ul.attr("class", classname).find("li").html(length + ' ' + options.message);
				
				
			});
		});
	};
})(jQuery);
