if (typeof(EdLib) == 'nothing')
	alert('EdLib.base.js est nécessaire pour  pouvoir utiliser cette librairie');


EdLib.formValidator = function() {
	this.Errors = new Array();	
	this.FieldsWithError = { };
}

EdLib.formValidator.prototype.setError = function(p_field, p_error_message, p_error_class, p_is_error) {
	if (p_is_error) {
		this.Errors.push( { 'field' : p_field, 'message' : p_error_message } );
		this.FieldsWithError[p_field.id] = true;
		if (p_error_class)
			$addCssClass(p_field, p_error_class);
	}
	else if (!this.FieldsWithError[p_field.id])
		$removeCssClass(p_field, p_error_class);
}
EdLib.formValidator.prototype.required = function(p_field, p_error_message, p_error_class) {
	p_field = $(p_field);
	var is_error = p_field && (!p_field.value || p_field.value.trim() == '');
	this.setError(p_field, p_error_message, p_error_class, is_error);
};
EdLib.formValidator.prototype.isEmail = function(p_field, p_error_message, p_error_class) {
	p_field = $(p_field);
	var is_error = p_field && p_field.value && !p_field.value.isEmail();
	this.setError(p_field, p_error_message, p_error_class, is_error);
};
EdLib.formValidator.prototype.notEqual = function(p_field, p_compare, p_error_message, p_error_class) {
	p_field = $(p_field);
	var is_error = p_field && p_field.value && (p_field.value == p_compare);
	this.setError(p_field, p_error_message, p_error_class, is_error);
};
EdLib.formValidator.prototype.isEqual = function(p_field, p_compare, p_error_message, p_error_class) {
	p_field = $(p_field);
	var is_error = p_field && p_field.value && (p_field.value != p_compare);
	this.setError(p_field, p_error_message, p_error_class, is_error);
};



EdLib.formValidator.prototype.showErrors = function(p_message) {
	if (this.Errors.length == 0)
	return true;
	var message = p_message + "\n\n";
	for (var i=0; i<this.Errors.length; i++)
		message += "  - " + this.Errors[i].message + "\n";
	message += '\n\n';
	alert(message);
	return false;
};
