function checkMail(inputId)
{
	var input = document.getElementById(inputId);
	if (!(input && input.value.match(/^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,}$/i)))
		return false;
	return true;
}

function checkInput(inputId)
{
	// peut etre une checkbox ou un radio
	var input = document.getElementById(inputId);
	if (!(input && input.checked))
		return false;
	return true;
}

function checkInputs(inputIdTab)
{
	var n = 0;
	var len = inputIdTab.length;
	for (var i = 0; i < len; ++i)
		if (checkInput(inputIdTab[i]))
			n++;
	return n > 0;
}

function checkEmpty(inputId)
{
	var input = document.getElementById(inputId);
	return !(input.value.length == 0);
}

function realTabToString(t)
{
	var s = "";
	for (var i = 0; i < t.length; ++i)
		s += "'" + t[i] + "',";
	return '[' + s.substring(0, s.length - 1) + ']';
}

/*
params = {
	'id_element_a_checker': ['fonction_qui_check', 'message_erreur'],
	'inputMail': ['checkMail', 'Adresse email invalide'],
	'inputCivilite': ['checkInput', 'blabla'],
	'all': ['checkInputs', 'Vous devez selectionner au moins un ...', ['checkbox1', 'checkbox2']]
	// etc ...
}

<form ... onsubmit="return checkForm({'id_element_a_checker': ['fonction_qui_check', 'message_erreur'], ...});" ...>
	...
</form>
*/
function checkForm(params)
{
	var errors = [];
	
	for (key in params)
	{
		var func = params[key][0];
		var param = params[key].length == 3 ? realTabToString(params[key][2]) : "'" + key + "'";
		var ret = eval(func + "(" + param + ")");
		if (!ret)
			errors.push(params[key][1]);
	}
	
	if (errors.length > 0)
	{
		alert(errors.join("\n"));
		return false;
	}
	
	return true;
}
