var my_form = Class.create({
	
	form_obj: null,
	fields: $H(),
	obligatories: [],
	empty_message: "Merci de saisir l'intégralité des champs obligatoires.",
	
	initialize: function(form, options)
	{
		this.form_obj = $(form);
		Object.extend(this, options || { } );
		this._analyse();
		this.after_initialize();
	},
	
	_analyse: function()
	{
		var i=0;
		var fields = $$(this.fields_call);
		var collect = new Hash();
		$A(fields).each(function(elt){
			var input = elt.down("input") || elt.down("textarea") || elt.down("select");
			var key = input.name || input[0].name;
			this.fields.set(key, {
				"input": input
			});
		}.bind(this));
	},
	
	empty_fields: function()
	{
		this.fields.each(function(elt){
			if (elt[1].input.type == "text" || elt[1].input.type == "textarea")
				elt[1].input.value = "";
		});
	},
	
	_validate_field: function(obligatory)
	{
		var input = this.fields.get(obligatory).input;
		if (input.value == "")
		{
			input.className = "input obligatory_indicator";
			return true;
		}
		else
			input.className = "input";
	},
	
	validate: function()
	{
		var error = false;
		this.obligatories.each(function(item){
			error = this._validate_field(item);
		}.bind(this));
		if (error)
			alert(this.empty_message);
		else
			this.execute_action();
	},
	
	execute_action: function() {},
	after_initialize: function() {}
	
});
