

//*******************************************************************************

// FONCTION : validemail(item) 

// DESCRIPTION : Teste si un email est valide

// PARAMETRE EN ENTREE : 

// item : qui contient l'email



function validemail(item) 

{ 

	if (!(item.length >= 5)) return false; 

	if (item.indexOf ('@', 0) == -1) return false; 

	if (item.indexOf ('.', 0) == -1) return false;

	return true; 

} 



//*******************************************************************************

// FONCTION : Date1InfDate2(date1,date2) 

// DESCRIPTION : Retourne faux si un date1 est inferieure à date2 sinon vrai

// PARAMETRE EN ENTREE : 

// date1 : contient une date

// date2 : contient une date

function Date1InfDate2(date1,date2)

{

	madate1 = parseInt(date1.slice(6,10)+date1.slice(3,5)+date1.slice(0,2));

	madate2 = parseInt(date2.slice(6,10)+date2.slice(3,5)+date2.slice(0,2))

	if (madate1>madate2) 

	{ 

		return(true); 

	} 

	else 

	{ 

		return(false); 

	}

}



//*******************************************************************************

// FONCTION : is_numeric(x) 

// DESCRIPTION : Teste si un email est valide

// PARAMETRE EN ENTREE : 

// x : valeur à tester

function numerique(x) 

{

	for(i=0; i<x.length; i++)

	{

		if (x.substring(i, i+1)<"0" || x.substring(i, i+1)>"9")

		{

			return(false)

		}

	}

	return(true)

}

		

//*******************************************************************************

// FONCTION : champs_vide(nom_formulaire,nom_champ,message,test) 

// DESCRIPTION : Teste si un champs est vide

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs à tester

// message : qui contient le texte à afficher

// test : qui contient le type de champs à tester



function champs_vide(nom_formulaire,nom_champ,message,test)

{

	// email obligatoire

	if (test == "email_obligatoire")

	{

		if  (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{           

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return false;

		}

		else

		{ 

			if (!validemail(eval("document." + nom_formulaire + "." + nom_champ + ".value")))

			{

				alert(message);

				eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

				return false;

			}

		}

		return(true);

	}

	

	// email testé si différent de vide mais pas obligatoire

	if (test == "email_non_obligatoire")

	{

		if  (eval("document." + nom_formulaire + "." + nom_champ + ".value") != "")

		{           

			if (!validemail(eval("document." + nom_formulaire + "." + nom_champ + ".value")))

			{

				alert(message);

				eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

				return false;

			}

		}

		return(true);

	}





	// bouton checkbox

	if (test.indexOf ('check/', 0) != -1)

	{

		tab = test.split("/");

		tab_rep = tab[1];

		tab_rep = tab_rep.split("|");

		for (i=0;i<(tab_rep.length);i+=1)

		{

			if (eval("document." + nom_formulaire + "." + tab_rep[i] + ".checked") == true)

			{

				return(true);

			}

		}

		alert(message);

		eval("document." + nom_formulaire + "." + tab_rep[0] + ".focus()");

		return(false);		

	}

	

	// bouton radio

	if (test.indexOf ('radio/', 0) != -1)

	{

		tab = test.split("/");

		nb_radio = tab[1];

		for (i=0;i<=nb_radio;i+=1)

		{

			if (eval("document." + nom_formulaire + "." + nom_champ + "["+i+"].checked"))

			{

				return(true);

			}

		}

		alert(message);

		eval("document." + nom_formulaire + "." + nom_champ + "[0].focus()");

		return(false);		

	}



	// multiselectbox

	if (test.indexOf ('multiselectbox/', 0) != -1)

	{

		tab = test.split("/");

		indice = tab[1];		

		for (x = 0; x < eval("document." + nom_formulaire + "["+indice+"].options.length"); x++)

		{

			valeur = eval("document." + nom_formulaire + "["+indice+"]["+x+"].value");

			index = eval("document." + nom_formulaire + "["+indice+"]["+x+"].index");

			SelectedIndex = eval("document." + nom_formulaire + "["+indice+"].options["+x+"].selected");

			if (SelectedIndex == true)

			{

				return(true);

			}

		}

		alert(message);

		eval("document." + nom_formulaire + "["+indice+"].focus()");

		return(false);

	}

	

	// selectbox

	if (test == "selectbox")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + "[document." + nom_formulaire + "." + nom_champ + ".selectedIndex].value") == "" || eval("document." + nom_formulaire + "." + nom_champ + "[document." + nom_formulaire + "." + nom_champ + ".selectedIndex].value") == "undefined" || eval("document." + nom_formulaire + "." + nom_champ + "[document." + nom_formulaire + "." + nom_champ + ".selectedIndex].value") == 0)

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{

			return(true);

		}

	}

	

	// input

	if (test == "")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{

			return(true);

		}

	}

	

	// on teste si different de vide alors ca doit etre un numérique

	if (test == "vide_numerique")

	{

		return(champs_num(nom_formulaire,nom_champ,message));

	}



	// on teste si different de vide alors ca doit etre un décimale	

	if (test == "vide_decimale")

	{

		return(champs_num_virgule(nom_formulaire,nom_champ,message));

	}		

	

	// on teste si numérique

	if (test == "numerique")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{

			return(champs_num(nom_formulaire,nom_champ,message));

		}	

	}



	// on teste si décimale	

	if (test == "decimale")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{	

			return(champs_num_virgule(nom_formulaire,nom_champ,message));

		}

	}



	// on teste si c'est une heure correcte

	if (test == "heure")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{

			return(champs_heure(nom_formulaire,nom_champ,message));

		}	

	}

	

	// on teste si c'est une heure correcte

	if (test == "minute")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{

			return(champs_minute(nom_formulaire,nom_champ,message));

		}	

	}			



	// on teste si c'est un jour correct

	if (test == "jour")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{

			return(champs_jour(nom_formulaire,nom_champ,message));

		}	

	}	



	// on teste si c'est un mois correct

	if (test == "mois")

	{

		if (eval("document." + nom_formulaire + "." + nom_champ + ".value") == "")

		{

			alert(message);

			eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

			return(false);

		}

		else

		{

			return(champs_mois(nom_formulaire,nom_champ,message));

		}	

	}	

	return(true);

}



//*******************************************************************************

// FONCTION : champs_num_virgule(nom_formulaire,nom_champ,message) 

// DESCRIPTION : Teste si un champs est numerique et possede une virgule ou un point

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs à tester

// message : qui contient le texte à afficher



function champs_num_virgule(nom_formulaire,nom_champ,message)

{

	x= eval("document." + nom_formulaire + "." + nom_champ + ".value");

	for(i=0; i<x.length; i++)

	{

		if (x.substring(i, i+1)<"0" || x.substring(i, i+1)>"9")

		{

			if (x.substring(i, i+1) !="." && x.substring(i, i+1) !=",")

			{		

				alert(message);

				eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

				return(false);

			}

		}

	}

	return(true);

}



//*******************************************************************************

// FONCTION : champs_num(nom_formulaire,nom_champ,message) 

// DESCRIPTION : Teste si un champs est numerique

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs a tester

// message : qui contient le texte à afficher



function champs_num(nom_formulaire,nom_champ,message)

{

	x= eval("document." + nom_formulaire + "." + nom_champ + ".value");

	if (!numerique(x))

	{

		alert(message);

		eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

		return(false);

	}

	return(true);

}



//*******************************************************************************

// FONCTION : champs_heure(nom_formulaire,nom_champ,message) 

// DESCRIPTION : Teste si un champs est numerique et compris entre 0 et 23

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs a tester

// message : qui contient le texte à afficher



function champs_heure(nom_formulaire,nom_champ,message)

{

	x= eval("document." + nom_formulaire + "." + nom_champ + ".value");

	if ( !numerique(x) || (x < 0 || x >23) )

	{

		alert(message);

		eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

		return(false);

	}

	return(true);

}



//*******************************************************************************

// FONCTION : champs_minute(nom_formulaire,nom_champ,message) 

// DESCRIPTION : Teste si un champs est numerique et compris entre 0 et 59

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs a tester

// message : qui contient le texte à afficher



function champs_minute(nom_formulaire,nom_champ,message)

{

	x= eval("document." + nom_formulaire + "." + nom_champ + ".value");

	if ( !numerique(x) || (x < 0 || x >59) )

	{

		alert(message);

		eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

		return(false);

	}

	return(true);

}



//*******************************************************************************

// FONCTION : champs_jour(nom_formulaire,nom_champ,message) 

// DESCRIPTION : Teste si un champs est numerique et compris entre 1 et 31

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs a tester

// message : qui contient le texte à afficher



function champs_jour(nom_formulaire,nom_champ,message)

{

	x= eval("document." + nom_formulaire + "." + nom_champ + ".value");

	if ( !numerique(x) || (x < 1 || x >31) )

	{

		alert(message);

		eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

		return(false);

	}

	return(true);

}



//*******************************************************************************

// FONCTION : champs_mois(nom_formulaire,nom_champ,message) 

// DESCRIPTION : Teste si un champs est numerique et compris entre 1 et 12

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs a tester

// message : qui contient le texte à afficher



function champs_mois(nom_formulaire,nom_champ,message)

{

	x= eval("document." + nom_formulaire + "." + nom_champ + ".value");

	if ( !numerique(x) || (x < 1 || x >12) )

	{

		alert(message);

		eval("document." + nom_formulaire + "." + nom_champ + ".focus()");

		return(false);

	}

	return(true);

}



//*******************************************************************************

// FONCTION : champs_mois(nom_formulaire,nom_champ,message) 

// DESCRIPTION : Teste si un champs est numerique et compris entre 1 et 12

// PARAMETRE EN ENTREE : 

// nom_formulaire : qui contient le nom du formulaire

// nom_champ : qui contient le nom du champs a tester

// message : qui contient le texte à afficher



function test_email(nom_formulaire,email,message)

{

	if  (eval("document." + nom_formulaire + "." + email + ".value") == "")

	{           

		alert(message);

		eval("document." + nom_formulaire + "." + email + ".focus()");

		return false;

	}

	else

	{ 

		if (!validemail(eval("document." + nom_formulaire + "." + email + ".value")))

		{

			alert(message);

			eval("document." + nom_formulaire + "." + email + ".focus()");

			return false;

		}

	}

	return(true);

}



//*******************************************************************************

// FONCTION : popup(adresse,target,largeur,hauteur,degauche,duhaut,status,varscroll,resize)

// DESCRIPTION : ouvre une fenêtre volante avec differents paramètres

// PARAMETRE EN ENTREE : 

// adresse : url à acceder

// target : nom de la fenêtre

// largeur : largeur de la fenêtre

// hauteur : hauteur de la fenêtre

// degauche : position de la fenêtre à partir du bord gauche de l'écran

// duhaut : position de la fenêtre à partir du haut de l'écran

// status : affiche la barre de status de la fenêtre

// varscroll : affiche les scrollbars

// resize : permet le redimmensionnement ou non de la fenêtre



function popup(adresse,target,largeur,hauteur,degauche,duhaut,status,varscroll,resize)

{

	//parametrage par defaut des variables

	if (target == "") { target = "new_window";}

	if (largeur == "") { largeur = "500";}

	if (hauteur == "") { hauteur = "400";}

	if (degauche == "") { degauche = "0";}

	if (duhaut == "") { duhaut = "0";}

	if (varscroll == "") { varscroll = "yes";}

	if (resize == "") {  resize = ",resizable";  } else { resize = ",resizable=no";}

	if (status == "") { status = "yes";}

	window.open(adresse,target,"width="+largeur+",height="+hauteur+",left="+degauche+",top="+duhaut+",status="+status+",toolbar=no,menubar=no,scrollbars="+varscroll+",location=no,directories=no"+resize);

}



//*******************************************************************************

// FONCTION : limite(zone,max)

// DESCRIPTION : Fonction pour limiter un textarea

// PARAMETRE EN ENTREE : 

// zone : zone de formulaire

// max : nombre max de caractère

function limite(zone,max)

{

	if(zone.value.length>=max)

	{

		zone.value=zone.value.substring(0,max);

	}

}



//*******************************************************************************

// FONCTION : coche(formulaire,bouton,numero) 

// DESCRIPTION : Fonction pour cocher les checkbox et boutons radios AVEC ou SANS calque

// PARAMETRE EN ENTREE : 

// formulaire : qui contient le nom du formulaire

// bouton : qui contient le nom du champs a tester

// numero : numero à cocher / il faut mettre un "X" pour les checbox



// Fonction pour cocher les checkbox et boutons radios AVEC ou SANS calque

function coche(formulaire,bouton,numero)

{

	// Detection du navigateur

	nc6 = (typeof(window.controllers) != 'undefined' && typeof(window.locationbar) != 'undefined')? true:false;

	nc4 = (document.layers)? true:false;

	ie4 = (document.all)? true:false;



	// Création d'un raccourci pour manipuler le champ visé

	var controle = eval("document." + formulaire + '.' + bouton);

	

	// Si le champ est de type 'checkbox' (par convention on place un 'X' si on est sur une case à cocher)

	if (numero == 'X')

	{

		

		// Si la case est cochée

		if (controle.status || controle.checked )

		{

			

			// Instruction pour Netscape 6.x

			if (nc6)

			{

				// On décoche la case

				controle.checked = false;

			}

			// Instruction équivalente pour Netscape 4.x et Internet Explorer

			else

			{

				controle.status = false;

			}

		}

		// Si la case n'est pas cochée

		else

		{

			if (nc6)

			{

				controle.checked = true;

			}

			else

			{

				controle.status = true;

			}

		}

	}

	// Si on ne trouve pas de 'X', c'est un bouton radio

	else

	{

		// Instruction pour Netscape 6.x

		if (nc6)

		{

			// On coche le bouton radio

			controle[numero].checked = true;

		}

		// Instruction équivalente pour Netscape 4.x et Internet Explorer

		else

		{

			controle[numero].status = true;

		}

	}

}
