
// Expressions régulières de test de types administratifs français
var regExpCodePostal=/^([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}$/g;	// Accepte une chaine de type 'code postal'. Ex : F-33370 ou 33 370 ou 33370 ou F-1 370
var regExpTelephoneFixe=/^(01|02|03|04|05)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'fixe'. Ex : 01.34.12.52.30 ou 0134125230
var regExpTelephonePortable=/^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;			// Accepte un numero de téléphone de type 'portable'.
var regExpTelephoneNational=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'national' y compris numéros en '08'.
var regExpFax=/^(0[1234568])?[0-9]{2}?[0-9]{2}?[0-9]{2}?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'national' y compris numéros en '08'.
var regExpTelephoneInternational=/^(\+[0-9]{2})[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;	// Accepte un numero de téléphone de type 'international'. Ex : (+33) 1 34 12 52 30
//var regExpEmailAdress=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;	// Expressions régulières de test de types liés à internet
var regExpEmailAdress=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9_\.\-]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;  // Expressions régulières de test de types liés à internet
var regExpNumeric=/[0-9]$/g;	// Accepte une chaine numérique
var regExpDecimal=/^(0|[1-9]\d{0,3})(\.\d{1,3})?$/g; 
var regExpTime=/^([0-9]|[01][0-9]|2[0123])\:([012345][0-9])(\:([012345][0-9])(.([0-9]{3})+)?)?$/g;		 // Accepte une chaine de type 'time'. Ex : 12:51 ou 21:45:35.654
var regExpFrenchDate=/^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/g;  // date au format jj/mm/aaaa ou jj-mm-aaaa ou jj mm aaaa ou jj.mm.aaaa avec aaaa compris entre 1900 et 2099.
var regExpCompte = /^([0-9]{6}[ \.\-]?[a-zA-Z]{1})$/g;

//Les deux fonction suivantes servent à identifier si une chaine de caractère est compatible ou non avec une expression régulière passée en paramètre
function matchRegularExpression(valeur, regularExpression) {
	var resultat = valeur.match(regularExpression);
	if(resultat!=null && resultat.length==1) return true;
	else return false;
}
function doesntMatchRegularExpression(valeur, regularExpression) {
	if(matchRegularExpression(valeur, regularExpression)) return false;
	else return true;
}

function check_input(field_name, field_size, span_id) {
  if ($(field_name) && ($(field_name).type != "hidden")) {
    var field_value = $(field_name).value;
    if (field_value == '' || field_value.length < field_size) {
      error = true;
	  $(span_id).set('style','color:red');
    }
	else{
		$(span_id).set('style','');
	}
  }
}




function check_input_email(field_name, span_id) {
	if(doesntMatchRegularExpression($(field_name).value, regExpEmailAdress) ) {
		error= true;
	 	$(span_id).set('style','color:red');
	}
	else{
		$(span_id).set('style','');
	}
}


function check_input_codepostal(field_name, message_codepostal){
	if(doesntMatchRegularExpression(form.elements[field_name].value, regExpCodePostal)){
		error_message = error_message + "* " + message_codepostal + "\n";
		error= true;
	}
}

function check_input_telephone(field_name, span_id)	{
	if(doesntMatchRegularExpression($(field_name).value, regExpTelephoneNational)){
	 	$(span_id).set('style','color:red');
		error = true;
	} 
	else{
		$(span_id).set('style','');
	}
}

function check_input_telephonenational(field_name, message_telephone)	{
	if(doesntMatchRegularExpression(form.elements[field_name].value, regExpTelephoneNational)){
		error_message = error_message + "* " + message_telephone + "\n";
		error = true;
	} 
}

function check_input_telephoneinternational(field_name, message_telephone)	{
	if(doesntMatchRegularExpression(form.elements[field_name].value, regExpTelephoneInternational)){
		error_message = error_message + "* " + message_telephone + "\n";
		error = true;
	} 
}

function check_input_fax(field_name, message_fax)	{
	if(doesntMatchRegularExpression(form.elements[field_name].value, regExpFax)){
		error_message = error_message + "* " + message_fax + "\n";
		error = true;
	} 
}


function check_date(field_name, message_field) {
	if( doesntMatchRegularExpression(form.elements[field_name].value, regExpFrenchDate)) {
			error_message = error_message + "* " + message_field + "\n";
			error= true;
	}
}


function check_checkbox_filtre(checkbox_name, filtre, message_field ){
	nb_checked = 0;
	
	str_filtre = new String(filtre);
	
	for(c=0; c<form.elements[checkbox_name].length ; c++)
	{
		if(new String(form.elements[checkbox_name][c].value).substr(0,str_filtre.length) == filtre)
		{
			if(form.elements[checkbox_name][c].checked) nb_checked ++;
		}
	}
	
	if(nb_checked == 0){
			error_message = error_message + "* " + message_field + "\n";
			error= true;
	}
}

function check_date_jjmmaaaa(jj_field_name,mm_field_name,aaaa_field_name,message_field ){
	if(estunedatevalide(form.elements[jj_field_name].value,form.elements[mm_field_name].value,form.elements[aaaa_field_name].value) == false){
			error_message = error_message + "* " + message_field + "\n";
			error= true;
	}
}


