// page connexion
function testchamps (){
	if (!ValideTexte(document.forms['r_no_id'].pn.value,1,50,true) && !ValideTexte(document.forms['r_no_id'].desc.value,1,50,true)){
		alert ("Veuillez renseigner au moins un champ");
		document.forms['r_no_id'].pn.focus();
		return false;
	}
	return true;
}
// fin page connexion

// ********************************************************
// ********************************************************
// verifie que la taille du texte est comprise entre
// taillemin et taillemax
// ********************************************************
function ValideTexte (champ,taillemin,taillemax,obligatoire)
{
	if (!obligatoire)
		if (champ.length==0)
			return true;

	var t = champ.split(/\r/);
	champ = t.join(" ");
	t = champ.split(/\n/);
	champ = t.join(" ");
	regexp1 = eval ('/^(.{' + taillemin + ',' + taillemax + '})$/i');
	if (champ.search (regexp1)==0)
		return true;
	return false;
}

// ********************************************************
// ********************************************************
// verifie que le texte a bien le format d'un champ de
// base de données (lettres, chiffres, ponctuation simple)
//
// et ne dépasse pas la taille autorisée
// ********************************************************
function ValideLogin (champ,taillemin,taillemax,obligatoire)
{
	if (!obligatoire)
		if (champ.length==0)
			return true;

	regexp1 = eval ('/^[-_a-z0-9]{' + taillemin + ',' + taillemax + '}$/i');
	if (champ.search (regexp1)==0)
		return true;
	return false;
}

// ********************************************************
// ********************************************************
// verifie que le texte a bien le format d'une adresse mail
// et ne depasse pas la taille autorisee
// ********************************************************
function ValideMail (mail,taillemax,obligatoire)
{
	if (!obligatoire)
		if (mail.length==0)
			return true;

	if (mail.length<=taillemax)
	{
		regexp1 = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[_a-z0-9-]+(\.[_a-z0-9-]+)+$/i;
		if (mail.search (regexp1)==0)
			return true;
		else
			return false;
	}
	else
	{
		return false;
	}
}

// ********************************************************
// ********************************************************
// Verifie que le nombre est bien un nombre compris
// entre limitemin et limitemax
// ********************************************************
function ValideNombre (nombre,limitemin,limitemax,format,obligatoire)
{
	if (!obligatoire)
	{
		if (typeof(nombre)=="string")
			if (nombre.length==0)
				return true;
			else
			{
// remplacement des virgules par un point
				regexp = eval ('/,/i');
				nombre = nombre.replace (regexp,".");
			}
		else
			if (typeof(nombre)=="number")
				if (nombre==0)
					return true;
	}
	else
	{
		if (typeof(nombre)=="string")
		{
			if (nombre.length==0)
				return false;
// remplacement des virgules par un point
			regexp = eval ('/,/i');
			nombre = nombre.replace (regexp,".");
		}
	}

// Conversion en nombre
	nombre = -(-nombre);
	if (nombre==NaN)
		return false;
	else
		if (format=="entier" && nombre!=Math.round(nombre))
			return false
		if (nombre>=limitemin && nombre<=limitemax)
			return true;
		else
			return false;
}

// ********************************************************
// ********************************************************
// Verifie que le code est un code postal valide
// (5 chiffres max)
// ********************************************************
function ValideCodepostal (code,obligatoire)
{
	return ValideNombre (code,1000,99999,"entier",obligatoire);
}

// ********************************************************
// ********************************************************
// Verifie que l'image est une image valide
// si l'extension n'est pas precisée, l'image sera valide
// si elle possède plus de 5 caractères (X.EEE)
// ********************************************************
function ValideImage (image,limitemin,limitemax,extension,obligatoire)
{
	if (!obligatoire)
		if (image.length==0)
			return true;

	if (limitemin<5)
		limitemin = 5;

	if (extension.length==0)
	{
		return ValideTexte (image,limitemin,limitemax,obligatoire);
	}
	else
	{
		if (image.length<limitemin || image.length>limitemax)
			return false;
		regexp1 = eval ('/(.)+'+ extension +'./i');
		regexp2 = eval ('/(.)+'+ extension +'/i');
		return (image.search (regexp1) && !image.search (regexp2));
	}
}

// ********************************************************
// ********************************************************
// Verifie que le telephone est un numero valide
// Options :
//		sans : 0123456789
//		avec : 01.23.45.67.89
//		international : +33 1.23.45.67.89
// ********************************************************
function ValideTelephone (telephone,format,obligatoire)
{
	if (!obligatoire)
		if (telephone.length==0)
			return true;

	if (format=="sans")
	{
		regexp1 = /([0-9][0-9]){5}./i;
		regexp2 = /([0-9][0-9]){5}/i;
	}
	if (format=="avec")
	{
		regexp1 = /([0-9][0-9].){4}([0-9][0-9])./i;
		regexp2 = /([0-9][0-9].){4}([0-9][0-9])/i;
	}
	if (format=="international")
	{
		return true;
	}

	return (telephone.search (regexp1) && !telephone.search (regexp2));
}

// ********************************************************
// ********************************************************
// verifie que le texte a bien le format d'une date
// et que la date est valide
// ********************************************************
function ValideDate (date,langue,obligatoire)
{
	if (!obligatoire)
		if (date.length==0)
			return true;

	return true;
}

// ********************************************************
// ********************************************************
// verifie que le mois est valide
// ********************************************************
function ValideMois (mois,obligatoire)
{
	return ValideNombre (mois,1,12,"entier",obligatoire);
}

// ********************************************************
// ********************************************************
// verifie que le jour est valide par rapport au mois et
// a l'annee
// ********************************************************
function ValideJourMois (jour,mois,annee,obligatoire)
{
	return ValideNombre (jour,1,31,"entier",obligatoire);
}

function ValideClefRIB (banque,guichet,compte,clef)
{
	var b ='';
	var g = '';
	var c = '';
	var cl = '';

	for (i=0;i<(5-banque.length);i++)
		b = '0' + b;
	b = b + banque;
	for (i=0;i<(5-guichet.length);i++)
		g = '0' + g;
	g = g + guichet;
	for (i=0;i<(11-compte.length);i++)
		c = '0' + c;
	c = c + compte;
	c = c.toLowerCase();
	c = c.replace(/a/,'1');
	c = c.replace(/b/,'2');
	c = c.replace(/c/,'3');
	c = c.replace(/d/,'4');
	c = c.replace(/e/,'5');
	c = c.replace(/f/,'6');
	c = c.replace(/g/,'7');
	c = c.replace(/h/,'8');
	c = c.replace(/i/,'9');
	c = c.replace(/j/,'1');
	c = c.replace(/k/,'2');
	c = c.replace(/l/,'3');
	c = c.replace(/m/,'4');
	c = c.replace(/n/,'5');
	c = c.replace(/o/,'6');
	c = c.replace(/p/,'7');
	c = c.replace(/q/,'8');
	c = c.replace(/r/,'9');
	c = c.replace(/s/,'2');
	c = c.replace(/t/,'3');
	c = c.replace(/u/,'4');
	c = c.replace(/v/,'5');
	c = c.replace(/w/,'6');
	c = c.replace(/x/,'7');
	c = c.replace(/y/,'8');
	c = c.replace(/z/,'9');
	for (i=0;i<(2-clef.length);i++)
		cl = '0' + cl;
	cl = cl + clef;

	R = b;
	R = R % 97;
	R = (100000)*R + (1*g);
	R = R % 97;
	R = (100000)*R + (1*c.substring(0,5));
	R = R % 97;
	R = (1000000)*R + (1*c.substring(5,11));
	R = R % 97;
	R = 100*R;
	R = R % 97;


	if (97-R==clef)
		return true;
	return false;


}
