jQuery.fn.limitMaxlength = function(options){

	var settings = jQuery.extend({
		attribute: "data_maxlength",
		onLimit: function(){},
		onEdit: function(){}
	}, options);

	// Event handler to limit the textarea
	var onEdit = function(){
		var textarea = jQuery(this);
		var maxlength = parseInt(textarea.attr(settings.attribute));

		if(textarea.val().length > maxlength){
			textarea.val(textarea.val().substr(0, maxlength));

			// Call the onlimit handler within the scope of the textarea
			jQuery.proxy(settings.onLimit, this)();
		}

		// Call the onEdit handler within the scope of the textarea
		jQuery.proxy(settings.onEdit, this)(maxlength - textarea.val().length);
	}

	this.each(onEdit);

	return this.keyup(onEdit)
				.keydown(onEdit)
				.focus(onEdit)
				.live('input paste', onEdit);
}


$(document).ready(function(){

	var onEditCallback = function(remaining){
		

		if(remaining == 0){
			$(this).siblings('.charsRemaining').text("aucun caractère restant");
		}else if(remaining == 1){
			$(this).siblings('.charsRemaining').text(remaining+" caractère restant");
		}else if(remaining > 1){
			$(this).siblings('.charsRemaining').text(remaining+" caractères restants");
		}
		
	}

	var onLimitCallback = function(){
		
	}

	$('.obs_textarea').limitMaxlength({
		onEdit: onEditCallback,
		onLimit: onLimitCallback
	});
});