// Controle des champs d'un formulaire.

var formvalid;


function fieldvalid(fieldObj) {
	pattern = new RegExp(fieldObj.getAttribute("pattern"));
	str = fieldObj.value;
	finalValue = str.match(pattern);
	if(finalValue==null)
		finalValue = fieldObj.getAttribute("errorMsg");
	else
		finalValue = "";
	if((finalValue==null) || (finalValue=='null'))
		finalValue = "";
	return finalValue;
}


function validate_form() {
	formvalid = '';
	for (elt in document.forms[0]) {
		var obj;
		if (document.getElementById(elt)!=null) {
			obj = document.getElementById(elt);
			strR = fieldvalid(obj)	
			if (strR!="") {
				formvalid = formvalid + "\n" + strR;
			}
		}
	}
	if (formvalid != '') {
		window.alert(formvalid);
		return false;
	} else {
		return true;
	}
}


	//*** Paramètres
	//*** texte : objet représentant le textarea
	//*** max : nombre de caractères maximum
	// avec message d'alerte et réduction du texte
	function CaracMax(texte, maxCar)
	{
		result = true;

		sTexte = texte.value;

		if (sTexte.length > maxCar)
		{
			alert('Le texte ne doit pas comporter plus de ' + maxCar + ' caractère(s)') ;
			//texte = texte.substr(0, maxCar - 1) ;
			result = false;
		}

		return result;
	}

	//*** Paramètres
	//*** texte : objet représentant le textarea
	//*** max : nombre de caractères maximum
	// contrôle seul du nombre de caractères
	function CaracMax_check(texte, maxCar)
	{
		result = true;

		sTexte = texte.value;

		if (sTexte.length > maxCar)
		{
			result = false;
		}

		return result;
	}

function isDate(d) { 
    // Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa 
    // Par Romuald 

    if (d == "") // si la variable est vide on retourne faux 
        return false; 
     
//  e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$"); 
    e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$"); 
     
    if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date 
        return false; // Si pas bon, retourne faux 
  
    // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier 
    j = parseInt(d.split("/")[0], 10); // jour 
    m = parseInt(d.split("/")[1], 10); // mois 
    a = parseInt(d.split("/")[2], 10); // année 
  
    // Si l'année n'est composée que de 2 chiffres on complète automatiquement 
    if (a < 1000) { 
        if (a < 89)    a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900 
        else a+=1900; 
    } 
  
    // Définition du dernier jour de février 
    // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400 
    if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29; 
    else fev = 28; 
  
    // Nombre de jours pour chaque mois 
    nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31); 
  
    // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux 
    return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] ); 
} 

// contrôle la validité d'un mail
function isEmail(sEmail){
	var filter=/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(sEmail)){
		return true;
	}			
	else{
		return false;
	}
}
