function verif_date_format1(chaine)
{
	//format jj/mm/aaaa	
	var test = false;
	
	if(chaine.length == 10)
	{
		if(isInteger(chaine.substr(0,2)) && chaine.substr(2,1) == '/' && isInteger(chaine.substr(3,2)) && chaine.substr(5,1) && isInteger(chaine.substr(6,4)))
		{
			test = true;
		}
	}
	
	return test;
}

function chaine_possede_caract_interdit(chaine)
{
        var pos=0;

        if(chaine.indexOf("*") != -1) return true; //  || chaine.indexOf("_") != -1
        pos=chaine.indexOf("&");
        if(pos != -1)
        {
                if(chaine[pos+1] == ' ') return true;
        }

        return false;
}


function verif_caracteres_interdits_champs_text()
{
        var inputs=window.document.getElementsByTagName("input");

        for(i = 0; i < inputs.length; i++)
        {
                if(inputs[i].type == 'text')
                {
                        inputs[i].value=inputs[i].value.replace(/"/g,"''");
                        //if(inputs[i].value.indexOf("*") != -1 || inputs[i].value.indexOf("_") != -1 || inputs[i].value.indexOf("&") != -1)
                        if(chaine_possede_caract_interdit(inputs[i].value))
                        {
                                alert("Les caractères suivants sont interdits: * _ &");
                                inputs[i].focus();
                                return false;
                        }
                }
        }
        return true;
}


function verif_num_facture(numF)
{
	if(numF.value.length != 12)
	{
		alert("Le n° de facture doit comporter 12 caractères");
		numF.focus();
		return false;
	}

	var tiret = numF.value.substr(5,1);
	if(tiret != "-")
	{
		alert("Le n° de facture doit comporter 2 parties séparé par un titret ('-') avec la partie droite composée de 6 chiffres");
		numF.focus();
		return false;
	}

	var numerique = numF.value.substr(6,6);
	if(trim(numerique) == "" || ! est_entier_positif(numerique))
	{
		alert("La partie droite du n° de facture doit être un nombre à 6 chiffres entiers");
		numF.focus();
		return false;
	}

	return true;
}

// < 23.10.08
function verifmail(mail) //verifie si la syntaxe du mail est bonne
{
	if( ! verif_email(mail,false,false))
	{
		alert("Veuillez entrer une adresse mail sous la forme xx@xx.xx");
		return false;
	}
	return true;

	/*var at = mail.indexOf("@"); //recupere l'indice du caractere--ds le if, il faut que ce soit au moins le 3eme car, sinon @<2 donne faux----ex: 12@
	var pt = mail.lastIndexOf(".");  //recupere l'indice du point----il faut qu'il y ait au moins 2 caractere apres le point,sinon, indice+3 est superieur à la chaine----ex: 123@12.12, indice du point=6 ==>6+3>8
	var caracts_interdits = false;

	if(mail.indexOf(" ") >= 0) caracts_interdits = true;

	if(mail=="")
	{
		//alert("Veuillez entrer une adresse e-mail");
		return true;
	}

	//il faut au moins 3 caracteres devant l'@, 2 apres le point et 2 entre l'@ et le point
	//ex 12@12.12

	if((at < 2) || (pt+3 > mail.length) || (pt < at+3) || caracts_interdits || isEmailAdress(mail) == false)
	{
		alert("Veuillez entrer une adresse mail sous la forme xx@xx.xx");
		return false;
	}
	return true;*/
}

// 23.10.08
function verif_email(email,is_obj,is_oblig)
{
	var email_tmp = "";

	if(is_obj)
		email_tmp = email.value;
	else
		email_tmp = email;
	email_tmp=trim(email_tmp);

	var at = email_tmp.indexOf("@"); //recupere l'indice du caractere--ds le if, il faut que ce soit au moins le 3eme car, sinon @<2 donne faux----ex: 12@
	var pt = email_tmp.lastIndexOf(".");  //recupere l'indice du point----il faut qu'il y ait au moins 2 caractere apres le point,sinon, indice+3 est superieur à la chaine----ex: 123@12.12, indice du point=6 ==>6+3>8
	var caracts_interdits = false;

	if(email_tmp.indexOf(" ") >= 0) caracts_interdits = true;

	if(email_tmp=="" && is_oblig)
	{
		if(is_obj) email.focus();
		return false;
	}
	if(email_tmp=="" && ! is_oblig) return true;

	//il faut au moins 3 caracteres devant l'@, 2 apres le point et 2 entre l'@ et le point
	//ex 12@12.12
	if((at < 2) || (pt+3 > email_tmp.length) || (pt < at+3) || caracts_interdits || isEmailAdress(email_tmp) == false)
	{
		if(is_obj) email.focus();
		return false;
	}

	return true;
}

function verifNomDomaine(obj_dom,www_verif,libelle) // monsite.com ou www.monsite.com si le param 'www_verif' est à true
{
	var dom = obj_dom.value;

	if(obj_dom && dom != "")
	{
		var www = dom.indexOf("www");
		var first_pt = dom.indexOf(".");
		var last_pt = dom.lastIndexOf(".");
		var taille_extension_min = 2; // com,org,de,fr
		var ext = dom.substr(last_pt+1);
		var wrong = false;

		if(www_verif)
		{
			if(www == -1) wrong = true;
			if(first_pt == -1) wrong = true;
			if(first_pt != 3) wrong = true;
		}

		if(last_pt == -1) wrong = true;



		if(ext.length < taille_extension_min) wrong = true;

		if(wrong)
		{
			var str	= libelle+" doit être de la forme: ";
			if(www_verif)
				str += "www.nom_du_site.domaine (ex. www.monsite.fr)";
			else
				str += "nom_du_site.domaine (ex. monsite.fr)";
			alert(str);
			obj_dom.focus();
			return false;
		}
	}
	return true;
}

function est_entier_positif(n)
{
	if(isNaN(n))
		return false;
	if(n.indexOf("-") != -1)
		return false;
	if(n.indexOf("+") != -1)
		return false;
	if(n.indexOf(".") != -1)
		return false;
	return true;
}

// <= 18.08.09
/* véirifié si un prix décimal est correct (11477.25 ou 1456,65). 2 ch. après la virgule, 1 point ou une virgule comme séparateur.*/
// on spécifie aussi la taille maxi de la partie entière
function verif_prix(prix,l_max_partie_ent)
{
	if(prix == "")
		return true;

	var delimit = "";
	if(prix.indexOf(".") != -1)
		delimit = ".";
	else if(prix.indexOf(",") == -1)
	{
		delimit = ".";
		prix += ".00";
	}

	if(delimit == "")
	{
		alert("La partie décimale d'un prix doit être marquée par un point.");
		return false;
	}
	else
	{
		var n = (prix.split(delimit))[0];
		var d = (prix.split(delimit))[1];

		//alert("n = "+n+" d = "+d);

		if(n.length == 0)
		{
			alert("Vous devez avoir entre 1 et 6 chiffres avant la virgule (ou le point)!");
			return false;
		}
		if(d.length != 2)
		{
			alert("Vous devez avoir 2 chiffres après la virgule (ou le point)!");
			return false;
		}

		if(l_max_partie_ent != "")
		{
			if(n.length > l_max_partie_ent || d.length > 2)
			{
				var max = "";
				for(var cpt = 0; cpt < l_max_partie_ent; cpt++)
					max += "9";

				alert("Prix trop grand. Le maximum autorisé est "+max+".99 ("+max+" chiffres et 2 décimaux)!");
				return false;
			}
		}

		if(!est_entier_positif(n))
		{
			alert(n+" n'est pas valide");
			return false;
		}
		if(!est_entier_positif(d))
		{
			alert(d+" n'est pas valide");
			return false;
		}
	}
	return true;
}

// > 18.08.09
/* vérifie si un prix décimal est correct (11477.25 ou 1456,65). 2 ch. après la virgule,
1 point ou une virgule comme séparateur.
Si on passe un objet la fonction tente de corriger l'erreur sans avertir l'internaute
 on spécifie aussi la taille maxi de la partie entière
 */
function verif_prix_new(obj_prix,l_max_partie_ent,is_obj)
{
	if(is_obj)
		prix = obj_prix.value;
	else
		prix = obj_prix;

	if(prix == "")
		return true;

	var delimit = "";

	if(prix.indexOf(",") != -1)  // si ',' est délimiteur on transforme en '.'
	{
		prix = prix.replace(/,/g,'.');
		if(is_obj)
			obj_prix.value = prix;
	}

	if(prix.indexOf(".") != -1) // si '.' est délimiteur
		delimit = ".";
	else // pas de délimiteur
	{
		delimit = ".";
		prix += ".00";
	}

	if(delimit == "")
	{
		prix += ".00";
		if(is_obj)
			obj_prix.value = prix;

	}

		var n = (prix.split(delimit))[0];
		var d = (prix.split(delimit))[1];

		//alert("n = "+n+" d = "+d);

		if(n.length == 0)
		{
			alert("Vous devez avoir entre 1 et 6 chiffres avant la virgule (ou le point)!");
			return false;
		}
		if(d.length == 1)
		{
			prix += "0";
			if(is_obj)
				obj_prix.value = prix;
		}

		if(d.length > 2)
		{
			alert("Vous devez avoir 2 chiffres après la virgule (ou le point)!");
			return false;
		}

		if(l_max_partie_ent != "")
		{
			if(n.length > l_max_partie_ent || d.length > 2)
			{
				var max = "";
				for(var cpt = 0; cpt < l_max_partie_ent; cpt++)
					max += "9";

				alert("Prix trop grand. Le maximum autorisé est "+max+".99 ("+max+" chiffres et 2 décimaux)!");
				return false;
			}
		}

		if(!est_entier_positif(n))
		{
			alert(n+" n'est pas valide");
			return false;
		}
		if(!est_entier_positif(d))
		{
			alert(d+" n'est pas valide");
			return false;
		}

	return true;
}

/**Méthode vérifiant que le champ soit une adresse email*/
function isEmailAdress(valeur){
   //var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/;

   var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/;

   if(!re.test(valeur)){
        //alert("Veuillez saisir une adresse email valide.");
        return false;
   }
   return true;
}

/**Méthode vérifiant que le champ ne soit pas vide*/
function isEmpty(valeur){
   //var re = /^\S+$/;
	var re = /^\s*$/;

   if(re.test(valeur)){
        return true;
   }
   return false;
}

/**Méthode vérifiant que le champ soit bien un fichier image*/
function isFile(valeur){
   var re = /^.+\.(gif|jpg|jpeg|png)$/i;

   if(!re.test(valeur)){
        alert("Vous n'avez saisie un fichier image !!!");
        return false;
   }
   return true;
}

/**Méthode vérifiant que la valeur saisie soit bien un entier*/
function isInteger(valeur){
   var re = /^\d+$/;

    if(!re.test(valeur)){
       // alert("Vous n'avez pas saisie d'entier !!!");
       return false;
   }
   return true;
}

/**Méthode vérifiant que le champ soit bien un réel*/
function isReal(valeur){
   var re = /^\d+([\.|,])?\d+$/;

   if(!re.test(valeur)){
        //alert("Vous n'avez pas saisie un réel !!!");
        return false;
   }
   return true;
}

/* utiliser: verif_login_et_pass(obj_login,obj_pass,lgr_mini_login,lgr_mini_pass) */
function verif_login_pass(login,pass,lgr_mini_login,lgr_mini_pass)
{
	if(isEmpty(login))
	{
		alert('Veuillez saisir un identifiant.');
		return false;
	}

	if(isEmpty(pass))
	{
		alert('Veuillez saisir un mot de passe.');
		return false;
	}

	if(login.length < lgr_mini_login)
	{
		alert("L'identifiant doit être constitué d'au moins "+lgr_mini_login+" caractère(s)");
		return false;
	}

	if(pass.length < lgr_mini_pass)
	{
		alert("Le mot de passe doit être constitué d'au moins "+lgr_mini_pass+" caractère(s)");
		return false;
	}
	return true;
}

function est_lettre(car,casse)
{
	if(casse == 0) // minuscule
		return ((car >= 'a' && car <= 'z') || car == '_');
	else if(casse == 1) // majuscule
		return ((car >= 'A' && car <= 'Z') || car == '_');
	else if(casse == 2) // les 2
		return ((est_lettre(car,0) || est_lettre(car,1)) || car == '_');
}

function est_chiffre(car)
{
	return (car >= 0 && car <= 9);
}

function contient_lettres_et_chiffres(chaine,casse)
{
	var car = '';

	for(var i=0; i<chaine.length;  i++)
	{
		car = chaine.charAt(i);
		if(( ! est_lettre(car,casse) && ! est_chiffre(car)) || car == ' ')
			return false;
	}
	return true;
}

function contient_caractere(chaine,car_comp)
{
	var car = '';

	for(var i=0; i<chaine.length;  i++)
	{
		car = chaine.charAt(i);
		if(car == car_comp)
			return true;
	}
	return false;
}

// > 23.10.08
function verif_password(obj_pass,lgr_mini_pass,is_obj,is_oblig)
{
	var pass = "";

	if(is_obj)
		pass = obj_pass.value;
	else
		pass = obj_pass;

	if(isEmpty(pass) && is_oblig)
	{
		if(is_obj)
			obj_pass.focus();
		return -1;
	}
	if( ! isEmpty(pass) && ! contient_lettres_et_chiffres(pass,2))
	{
		if(is_obj)
			obj_pass.focus();
		return -2;
	}
	if( ! isEmpty(pass) && (pass.length < lgr_mini_pass && lgr_mini_pass > 0))
	{
		if(is_obj)
			obj_pass.focus();
		return -3;
	}

	return 1;
}

// <= 23.10.08
function verif_password_old(obj_pass,lgr_mini_pass,is_obj)
{
        var pass = "";

        if(is_obj)
                pass = obj_pass.value;
        else
                pass = obj_pass;

        if(isEmpty(pass))
        {
                if(is_obj)
                        obj_pass.focus();
                return -1;
        }
        if( ! contient_lettres_et_chiffres(pass,2))
        {
                if(is_obj)
                        obj_pass.focus();
                return -2;
        }
        if(pass.length < lgr_mini_pass && lgr_mini_pass > 0)
        {
                if(is_obj)
                        obj_pass.focus();
                return -3;
        }

        return 1;
}


function verif_pass(obj_pass,lgr_mini_pass,is_obj)
{
	var ret=verif_password_old(obj_pass,lgr_mini_pass,is_obj);
	if(ret ==1) return true;
	else
	{
		switch(ret)
		{
			case -1:	alert('Veuillez saisir un mot de passe.');
						break;
			case -2:	alert("Le mot de passe ne doit contenir que des lettres et/ou des chiffres");
						break;
			case -3:	alert("Le mot de passe doit être constitué d'au moins "+lgr_mini_pass+" caractère(s)");
						break;
		}
		return false;
	}

	/*var pass = "";

	if(is_obj)
		pass = obj_pass.value;
	else
		pass = obj_pass;

	if(isEmpty(pass))
	{
		alert('Veuillez saisir un mot de passe.');
		if(is_obj)
			obj_pass.focus();
		return false;
	}
	if( ! contient_lettres_et_chiffres(pass,2))
	{
		alert("Le mot de passe ne doit contenir que des lettres et/ou des chiffres");
		if(is_obj)
			obj_pass.focus();
		return false;
	}
	if(pass.length < lgr_mini_pass && lgr_mini_pass > 0)
	{
		alert("Le mot de passe doit être constitué d'au moins "+lgr_mini_pass+" caractère(s)");
		if(is_obj)
			obj_pass.focus();
		return false;
	}

	return true;*/
}

function verif_login_et_pass(obj_login,obj_pass,lgr_mini_login,lgr_mini_pass)
{
	var login = "";

	if(!obj_login || !obj_pass)
		return true;

	login = obj_login.value;

	if(isEmpty(login))
	{
		alert('Veuillez saisir un identifiant.');
		obj_login.focus();
		return false;
	}
	if( ! contient_lettres_et_chiffres(login,2))
	{
		alert("L'identifiant ne doit contenir que des lettres et/ou des chiffres");
		obj_login.focus();
		return false;
	}
	if(login.length < lgr_mini_login && lgr_mini_login > 0)
	{
		alert("L'identifiant doit être constitué d'au moins "+lgr_mini_login+" caractère(s)");
		obj_login.focus();
		return false;
	}

	return verif_pass(obj_pass,lgr_mini_pass,true);
}

function is_valide_ref(obj_ref,is_obj)
{
	var ref = "";

	if(is_obj)
		ref = obj_ref.value;
	else
		ref = obj_ref;

	if(isEmpty(ref))
		return false;

	if( ! contient_lettres_et_chiffres(ref,2) && ! contient_caractere(ref,'-'))
		return false;

	return true;
}
/*
	1. Remplace les guillemets par des simples cotes
	2. Vérifie s'il y a un contenu (seulement si le champ texte doit être saisie)
	3. Vérifie si le contenu est une adresse mail valide (seulement si le champ texte accueil la saisie d'une adresse mail)
*/
function verif_champ_texte(obj_champ,nom_champ,is_oblig,is_mail)
{
	var vide = "";

	if(!obj_champ)
		return true;

	obj_champ.value = trim(obj_champ.value);
	vide = isEmpty(obj_champ.value);

	if(!vide) /* remplace les guillemets par 2 simples cotes */
		obj_champ.value = obj_champ.value.replace(/["]/g,"''");

	if(obj_champ.value.indexOf('&') >= 0)
	{
		if(nom_champ != "")
			alert("Le champ '"+nom_champ+"' ne peut contenir le caractère '&'");
		obj_champ.focus();
		return false;
	}

	if(is_oblig)
	{
		if(vide)
		{
			if(nom_champ != "")
				alert("Veuillez saisir le champ "+nom_champ);
			obj_champ.focus();
			return false;
		}
	}

	if(is_mail && !vide)
	{
		if(! verifmail(obj_champ.value))
		{
			obj_champ.focus();
			return false;
		}
	}

	return true;
}


function verifLength(Target,nb_car_max)
{
	if(Target)
	{
		StrLength = Target.value.length;
		if (StrLength > nb_car_max)
		{
			Target.value = Target.value.substring(0,nb_car_max)
			alert("Vous avez atteint la limite de "+nb_car_max+" caractères");
			CharsLeft = nb_car_max;
			return false;
		}
		else
		{
			CharsLeft = StrLength;
			return true;
		}
	}
	return false;
}

// on passe event en param de la fct
function toucheEntreeAppuyee(evenement)
{
	var touche_appuyee;

	var touche_appuyee = window.event ? evenement.keyCode : evenement.which;

	if(touche_appuyee == 13)
		return true;
	return false;
}


