/** Regexp_exec(string string, string regexp reference, boolean 0/1)
 *
 * verify the regexp of each parameter
 *
 * @version 1.2
 * @copyright 2004 / DataOnLine
 * webmaster@dol.fr
 **/

function Regexp_exec(as_str,as_ref,as_alert) {
	as_vide = "un champ obligatoire est vide !\n merci de le remplir.";
	as_prob = "le contenu :\n"+as_str+"\nn'est pas bien formé ou ne contient pas un des caractères suivants :\n";
// ------------------------------------- numeric
// all numeric
	if (as_ref == '000') {
		as_res = /^[0-9]+$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "0-9");
		} else return as_res;
	}
// ------------------------------------- caracter
// all caracters
	if (as_ref == '100') {
		as_res = /.+/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "presque tous les caractères");
		} else return as_res;
	}
// all alphanumeric
	if (as_ref == '101') {
		as_res = /^[a-zA-Z0-9]+$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "a-z A-Z 0-9");
		} else return as_res;
	}
// all alphabetical
	if (as_ref == '102') {
		as_res = /^[a-zA-Z]+$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "a-z A-Z");
		} else return as_res;
	}
// all lowercase alphabetical
	if (as_ref == '103') {
		as_res = /^[a-z]+$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "a-z");
		} else return as_res;
	}
// all uppercase alphabetical
	if (as_ref == '104') {
		as_res = /^[A-Z]+$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "A-Z");
		} else return as_res;
	}
// ------------------------------------- special
// email
	if (as_ref == '200') {
		as_res = /^([a-z0-9_\.-]+)@((([a-z0-9]+\-?)*[a-z0-9]+)\.?((\.?[a-z0-9]+\-?[a-z0-9]+)*\.([a-z]{2,4})))$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "a-z 0-9 - _ .");
		} else return as_res;
	}
// phone number
	if (as_ref == '201') {
		as_res = /^(([\.\+\(\) \/_-]*)?[0-9]+)+$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "0-9 . + ( ) / _ -");
		} else return as_res;
	}
// name
	if (as_ref == '202') {
    	as_res = /^([a-zA-Z' \.-]+)$/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "a-z A-Z ' . -");
		} else return as_res;
	}
// date
	if (as_ref == '203') {
    	as_res = /^(0[1-9]|[1-2][0-9]|30|31)\/(0[1-9]|10|11|12)\/(0[4-9]|[1-2][0-9])/.exec(as_str);
		if (!as_res && as_alert == 1) {
			if (as_str == '') alert(as_vide);
			else alert(as_prob + "01/01/04 - 31/12/29");
		} else return as_res;
	}
	return false;
}