function show(nom)
{

  for (i=1;i<5;i++)
  {
     document.getElementById(nom+''+i).style.visibility = 'visible';
     document.getElementById(nom+''+i).style.display = 'block';

  }
  var element = document.getElementById('recherche');
	element.setAttribute('class', '');
	element.setAttribute('className', '');

  element = document.getElementById('avancee');
	element.setAttribute('class', 'active');
	element.setAttribute('className', 'active');
}
function hidde(nom)
{

  for (i=1;i<5;i++)
  {
     document.getElementById(nom+''+i).style.visibility = 'hidden';
     document.getElementById(nom+''+i).style.display = 'none';
  }
  // REinitialise tout.
  document.forms["enreg"].duree.options[0].selected = true;
  document.forms["enreg"].destination.options[0].selected = true;
  document.forms["enreg"].tranche_prix.options[0].selected = true;
  document.forms["enreg"].mot_clef.value = 'Mot clé';

  var element = document.getElementById('avancee');
	element.setAttribute('class', '');
	element.setAttribute('className', '');

  element = document.getElementById('recherche');
	element.setAttribute('class', 'active');
	element.setAttribute('className', 'active');
}
function vide_mot_cle(text)
{
  if(text=="Mot clé"){document.forms["enreg"].mot_clef.value="";}
}

//*******************************************************************************
// FONCTION : show_hide(calque)
// DESCRIPTION : Affiche ou cache le calque
// PARAMETRE EN ENTREE :
// calque : Contient le nom du calque
function show_hide(calque)
{
	if (document.getElementById(calque).style.display=='block')
	{
		document.getElementById(calque).style.display='none';
	}
	else
	{
		document.getElementById(calque).style.display='block';
	}
}


//*******************************************************************************
// 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) && (eval("document." + nom_formulaire + "." + nom_champ + "[document." + nom_formulaire + "." + nom_champ + ".selectedIndex].value") != "00") )

		{

			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;

		}

	}

}

function test_date(nom_formulaire,nom_champ_date,message)
{
	if (!isDate(eval('document.'+nom_formulaire+'.'+nom_champ_date+'.value')))
	{alert(message);return false;}
	else
	{return (true);}
}


function isDate(d)
{
// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
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})$");

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 retourne faux
return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

function format_virgule(nom_formulaire,nom_champ,valeur)
{
	// On regarde si la valeur a été saisie avec le caractère ","
	var pos_virgule = valeur.indexOf(",");
	if (pos_virgule != -1)
	{
		var reg=new RegExp("(,)", "");
		valeur = valeur.replace(reg,".");
	}
	eval("document." + nom_formulaire + "." + nom_champ + ".value = "+valeur);
	return (true);
}



function CheckDate(d) {
  // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
  // Le séparateur est défini dans la variable separateur
  var amin=1900; // année mini
  var amax=2100; // année maxi
  var separateur="/"; // separateur entre jour/mois/annee
  var j=(d.substring(0,2));
  var m=(d.substring(3,5));
  var a=(d.substring(6));
  var ok=1;
  if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
     alert("Le jour n'est pas correct."); ok=0;
  }
  if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
     alert("Le mois n'est pas correct."); ok=0;
  }
  if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
     alert("L'année n'est pas correcte."); ok=0;
  }
  if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
     alert("Les séparateurs doivent être des "+separateur); ok=0;
  }
  if (ok==1) {
     var d2=new Date(a,m-1,j);
     j2=d2.getDate();
     m2=d2.getMonth()+1;
     a2=d2.getFullYear();
     if (a2<=100) {a2=1900+a2}
     if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
        alert("La date "+d+" n'existe pas !");
        ok=0;
     }
  }
  return ok;
}

