// JavaScript Document
function check_vide() {
	if (document.identifiant.email.value!='' && document.identifiant.pass.value!='') {
		document.identifiant.submit();
	} else { 
		alert("Vous n'avez pas rempli correctement les champs");
	}
}


function check_vide_general(form) {
	//alert(form.elements[5].value);
	if (form.elements[5].value=='') {
		alert("Vous n'avez pas rempli correctement les champs");
	}
}

// Test qu'un champ iddiscipline soit different de "Non renseigné"-----------------------------------------------------
function check_nonrenseigne(champ) {
	var chp=champ.value;
	if ( chp == '0') {
   		alert("Merci de renseigner tous les champs");
		return false;
	}
return true;
}


// Test qu'un champ iddiscipline soit different de "Non renseigné"-----------------------------------------------------
function check_pasdefonction(champ) {
	var chp=champ.value;
	if ( chp == '1600') {
   		alert("Merci de sélectionner une fonction");
		return false;
	}
return true;
}


// Test sur un entier--------------------------------------------------------------------------------------------
function check_entier(champ) {
	var entier=champ.value;
   if ( (entier == '') || (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Certains champs obligatoires sont vides ou comportent des lettres ou décimales sans raison");
		return false;
	}
return true;
}


// Test sur un entier facultatif---------------------------------------------------------------------------------
function check_entierfac(champ) {
	var entier=champ.value;
   if (entier!='' && (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Certains champs comportent des lettres ou décimales sans raison");
		return false;
	}
return true;
}


// Test sur un email -------------------------------------------------------------------------------------------
function check_email(champ) {
	var adrmail=champ.value;
	if (adrmail == '') {
   		alert("Veuillez remplir le champ email s'il vous plait");
		return false; //le return false est important car une fonction qui ne retourne rien bloque
	}
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (adrmail.indexOf(interdits[i])!= -1) {
			alert("Les caractères $, &, or, where, from, and et alter sont interdits");
			return false; 
		}
	}
	var autourat = (adrmail).split("@");
	if ( (autourat.length != 2) || ((autourat[0]).length <2) || ((autourat[1]).length <5) ) {
   		alert("Le format du champ email n'est pas valide");
		return false;
	}
	var autourdot = (autourat[1]).split(".");
	if ( (autourdot.length != 2) || ((autourdot[0]).length <2) || ((autourdot[1]).length <2) || ((autourdot[1]).length >3) ) {
   		alert("Le format du champ email n'est pas valide");
		return false;
	}
	return true; //le return true est important car une fonction qui ne retourne rien bloque
}


// Test sur un email facultatif----------------------------------------------------------------------------------
function check_emailfac(champ) {
	var adrmail=champ.value;
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (adrmail.indexOf(interdits[i])!= -1) {
			alert("Les caractères $, &, or, where, from, and et alter sont interdits");
			return false; 
		}
	}
	if (adrmail != '') {
	var autourat = (adrmail).split("@");
	if ( (autourat.length != 2) || ((autourat[0]).length <2) || ((autourat[1]).length <5) ) {
   		alert("Le format du champ email n'est pas valide");
		return false;
	}
	var autourdot = (autourat[1]).split(".");
	if ( (autourdot.length != 2) || ((autourdot[0]).length <2) || ((autourdot[1]).length <2) || ((autourdot[1]).length >3) ) {
   		alert("Le format du champ email n'est pas valide");
		return false;
	}
	}
	return true; //le return true est important car une fonction qui ne retourne rien bloque
}


// Test sur une chaine de caractères sans chiffres----------------------------------------------------------------
function check_chainedecaracteressanschiffres(champ) {
	var chaine=champ.value;
	if (chaine == '') {
   		alert("Veuillez remplir tous les champs obligatoires s'il vous plait");
		return false;
	}
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (chaine.indexOf(interdits[i])!= -1) {
			alert("Les caractères $, &, or, where, from, and et alter sont interdits");
			return false;
		}
	}
	chiffresinterdits=new Array("0","1","2","3","4","5","6","7","8","9");
	for (var i =0; i < (chiffresinterdits.length); i++) { 
		if (chaine.indexOf(chiffresinterdits[i])!= -1) {
			alert("Certains champs comportent des chiffres sans raison");
			return false;
		}
	}
	return true;
}


// Test sur une chaine de caractères sans chiffres facultative---------------------------------------------------
function check_chainedecaracteressanschiffresfac(champ) {
	var chaine=champ.value;
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (chaine.indexOf(interdits[i])!= -1) {
			alert("Les caractères $, &, or, where, from, and et alter sont interdits");
			return false;
		}
	}
	chiffresinterdits=new Array("0","1","2","3","4","5","6","7","8","9");
	for (var i =0; i < (chiffresinterdits.length); i++) { 
		if (chaine.indexOf(chiffresinterdits[i])!= -1) {
			alert("Certains champs comportent des chiffres sans raison.");
			return false;
		}
	}
	return true;
}


// Test sur une chaine de caractères avec chiffres----------------------------------------------------------------
function check_chainedecaracteres(champ) {
	var chaine=champ.value;
	if (chaine == '') {
   		alert("Veuillez remplir tous les champs obligatoires s'il vous plait");
		return false;
	}
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (chaine.indexOf(interdits[i])!= -1) {
			alert("Les caractères $, &, or, where, from, and et alter sont interdits");
			return false;
		}
	}
	return true;
}


// Test sur une chaine de caractères facultative avec chiffres--------------------------------------------------
function check_chainedecaracteresfac(champ) {
	var chaine=champ.value;
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (chaine.indexOf(interdits[i])!= -1) {
			alert("Les caractères $, &, or, where, from, and et alter sont interdits");
			return false;
		}
	}
	return true;
}


// Test sur un code postal---------------------------------------------------------------------------------------
function check_postal(champ) {
	var postal1=champ.value;
    if (postal1 == '' || ( postal1.length!=5 && postal1.length!=2 ) || isNaN(postal1*1) ) {	
		alert("Veuillez remplir le code postal avec 5 chiffres ou indiquer le numéro de département s'il vous plait");
		return false;
	}
	else return true;
}


// Test sur un code postal facultatif----------------------------------------------------------------------------
function check_postalfac(champ) {
	var postal2=champ.value;
	if (postal2!='') {
		if ( ( postal2.length!=5 && postal2.length!=2 ) || isNaN(postal2*1) ) {	
			alert("Veuillez remplir le code postal avec 5 chiffres ou indiquer le numéro de département s'il vous plait");
			return false;
		}
		else return true;
	}	
	else return true;
}


// Test sur présence code postal si champ ville renseigné--------------------------------------------------------
function check_postalville(varpostal,varville) {
	var postal=varpostal.value;
	var ville=varville.value;
	if (ville!='' && postal=='') {	
			alert("Veuillez remplir le code postal avec 5 chiffres ou indiquer le numéro de département afin que le nom de la ville soit pris en compte s'il vous plait");
			return false;
	}	
	else return true;
}


// Test sur une annee--------------------------------------------------------------------------------------------
function check_annee(champ) {
	var annee=champ.value;
   if ( (annee == '') || (annee.length != 4) || ((parseInt(annee,10)+"").length !=4) || (annee <1930) || (annee >2020) ) {
   		alert("Veuillez remplir le champ année selon le format aaaa s'il vous plait");
		return false;
	}
return true;
}


// Test sur une date en mm/aaaa-------------------------------------------------------------------------------------
function check_datemmaaaa(champ) {

//Je récupère le contenu du champs à traiter
	var chaineDate=champ.value;

// Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
   if (chaineDate == '') {
   		alert("Veuillez remplir le champ date s'il vous plait");
		return false;
	}

// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
// J'attends une date formatée en MM/AAAA
   var ladate = (chaineDate).split("/");

// Si je n'ai pas récupéré deux éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
   if ((ladate.length != 2) || (ladate[1].length !=4) || (ladate[0].length >2) || (parseInt(ladate[1],10)+"").length!=4 || (parseInt(ladate[0],10)+"").length>2 ) {
   		alert("Veuillez remplir le champ selon le format mm/aaaa s'il vous plait");
		return false;
	}

// Si j'ai récupéré des valeurs loufoques, pas la peine non plus d'aller plus loin
   if ((ladate[1] <1930) || (ladate[1] >2020) || (ladate[0] <1) || (ladate[0] >12)) {
   		alert("Veuillez remplir le champ avec une date correcte au format s'il vous plait");
		return false;
	}

return true;
}



// Test sur une date---------------------------------------------------------------------------------------------
function check_date(champ) {

//Je récupère le contenu du champs à traiter
	var chaineDate=champ.value;

// Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
   if (chaineDate == '') {
   		alert("Veuillez remplir le champ date s'il vous plait");
		return false;
	}

// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
// J'attends bien sûr une date formatée en JJ/MM/AAAA
   var ladate = (chaineDate).split("/");

// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
   if ((ladate.length != 3) || (ladate[2].length !=4) || (ladate[1].length !=2) || (ladate[0].length !=2) || (parseInt(ladate[2],10)+"").length!=4 || (parseInt(ladate[1],10)+"").length>2 || (parseInt(ladate[0],10)+"").length>2 ) {
   		alert("Veuillez remplir le champ selon le format jj/mm/aaaa s'il vous plait");
		return false;
	}

// Si je n'ai pas récupéré des valeurs loufoques, pas la peine non plus d'aller plus loin
   if ((ladate[2] <1930) || (ladate[2] >2020) || (ladate[1] <1) || (ladate[1] >12) || (ladate[0] <1) || (ladate[0] >31)) {
   		alert("Veuillez remplir le champ avec une date correcte s'il vous plait");
		return false;
	}

return true;
}


// Test sur une date---------------------------------------------------------------------------------------------
function check_datefac(champ) {

//Je récupère le contenu du champs à traiter
	var chaineDate=champ.value;
	if (chaineDate!='') {
	
// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
// J'attends bien sûr une date formatée en JJ/MM/AAAA
   var ladate = (chaineDate).split("/");

// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
   if ((ladate.length != 3) || (ladate[2].length !=4) || (ladate[1].length !=2) || (ladate[0].length !=2) || (parseInt(ladate[2],10)+"").length!=4 || (parseInt(ladate[1],10)+"").length>2 || (parseInt(ladate[0],10)+"").length>2 ) {
   		alert("Veuillez remplir le champ selon le format jj/mm/aaaa s'il vous plait");
		return false;
	}

// Si je n'ai pas récupéré des valeurs loufoques, pas la peine non plus d'aller plus loin
   if ((ladate[2] <1930) || (ladate[2] >2020) || (ladate[1] <1) || (ladate[1] >12) || (ladate[0] <1) || (ladate[0] >31)) {
   		alert("Veuillez remplir le champ avec une date correcte s'il vous plait");
		return false;
	}

return true;
}
return true;
}




// Reprise des fonctions avec les noms des variables possibles ----------------------------------------------------

/************************************************************************/
/* Reprises des functions                                               */
/* ===========                                                          */
/*                                                                      */
/* Je fais cela pour que les utilisateurs comprennent mieux les         */
/* messages d'erreur à la saisie des formulaires.                       */
/* Au lieu d'avoir, problème de caractère non attendu, je pourrais      */
/* préciser quel champ exactement pose problème.                        */
/************************************************************************/


// Test sur une chaine de caractères sans chiffres----------------------------------------------------------------
function check_chainedecaracteressanschiffresnom(champ) {
	var chaine=champ.value;
	if (chaine == '') {
   		alert("Veuillez remplir le champ 'nom' s'il vous plait");
		return false;
	}
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (chaine.indexOf(interdits[i])!= -1) {
			alert("Erreur au champ 'nom' : les caractères $, &, or, where, from, and et alter sont interdits");
			return false;
		}
	}
	chiffresinterdits=new Array("0","1","2","3","4","5","6","7","8","9");
	for (var i =0; i < (chiffresinterdits.length); i++) { 
		if (chaine.indexOf(chiffresinterdits[i])!= -1) {
			alert("Erreur au champ 'nom' : la saisie ne doit pas comporter de chiffres");
			return false;
		}
	}
	return true;
}


// Test sur une chaine de caractères sans chiffres----------------------------------------------------------------
function check_chainedecaracteressanschiffresprenom(champ) {
	var chaine=champ.value;
	if (chaine == '') {
   		alert("Veuillez remplir le champ 'prenom' s'il vous plait");
		return false;
	}
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (chaine.indexOf(interdits[i])!= -1) {
			alert("Erreur au champ 'prenom' : les caractères $, &, or, where, from, and et alter sont interdits");
			return false;
		}
	}
	chiffresinterdits=new Array("0","1","2","3","4","5","6","7","8","9");
	for (var i =0; i < (chiffresinterdits.length); i++) { 
		if (chaine.indexOf(chiffresinterdits[i])!= -1) {
			alert("Erreur au champ 'prenom' : la saisie ne doit pas comporter de chiffres");
			return false;
		}
	}
	return true;
}


// Test sur une chaine de caractères sans chiffres facultative---------------------------------------------------
function check_chainedecaracteressanschiffresfacnomrecruteur(champ) {
	var chaine=champ.value;
	interdits=new Array(" $ "," & "," or "," where "," from "," and "," alter ");
	for (var i =0; i < (interdits.length); i++) { 
		if (chaine.indexOf(interdits[i])!= -1) {
			alert("Erreur au champ 'recruteur' : les caractères $, &, or, where, from, and et alter sont interdits");
			return false;
		}
	}
	chiffresinterdits=new Array("0","1","2","3","4","5","6","7","8","9");
	for (var i =0; i < (chiffresinterdits.length); i++) { 
		if (chaine.indexOf(chiffresinterdits[i])!= -1) {
			alert("Erreur au champ 'recruteur' : la saisie ne doit pas comporter de chiffres.");
			return false;
		}
	}
	return true;
}


// Test sur un entier--------------------------------------------------------------------------------------------
function check_entiersalairebas(champ) {
	var entier=champ.value;
   if ( (entier == '') || (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'salaire mini' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier--------------------------------------------------------------------------------------------
function check_entiersalairehaut(champ) {
	var entier=champ.value;
   if ( (entier == '') || (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'salaire maxi' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier--------------------------------------------------------------------------------------------
function check_entieranneesdexistence(champ) { 
	var entier=champ.value;
   if ( (entier == '') || (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'années d existence' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier--------------------------------------------------------------------------------------------
function check_entiereffectif(champ) { 
	var entier=champ.value;
   if ( (entier == '') || (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'effectif' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier facultatif---------------------------------------------------------------------------------
function check_entierfacsalairerech(champ) {
	var entier=champ.value;
   if (entier!='' && (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'salaire' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier facultatif---------------------------------------------------------------------------------
function check_entierfaceffectifmini(champ) {
	var entier=champ.value;
   if (entier!='' && (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'effectif mini' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier facultatif---------------------------------------------------------------------------------
function check_entierfaceffectifmaxi(champ) {
	var entier=champ.value;
   if (entier!='' && (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'effectif maxi' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier facultatif---------------------------------------------------------------------------------
function check_entierfacca(champ) {
	var entier=champ.value;
   if (entier!='' && (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'ca' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier facultatif---------------------------------------------------------------------------------
function check_entierfaceffectifexperience(champ) {
	var entier=champ.value;
   if (entier!='' && (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'effectif' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}


// Test sur un entier facultatif---------------------------------------------------------------------------------
function check_entierfaceffectifexp(champ) {
	var entier=champ.value;
   if (entier!='' && (entier.length != (parseInt(entier,10)+"").length) ) {
   		alert("Erreur au champ 'effectif' : la saisie ne doit contenir que des chiffres");
		return false;
	}
return true;
}

// Fin de la reprise des fonctions avec les noms des variables possibles ------------------------------------------





// Validation de la page d'incription/modification membre 1____----------------------------------------------------
function checketsubmitinscription(formulaire,chemin) {
if (
check_chainedecaracteressanschiffresnom (formulaire.nom)
&& check_chainedecaracteressanschiffresprenom (formulaire.prenom)
&& check_email (formulaire.email)
&& check_chainedecaracteres (formulaire.prepass)
&& check_date (formulaire.naissance)
&& check_chainedecaracteres (formulaire.titreprofil)
&& check_chainedecaracteres (formulaire.objectifs)
)
{
	passwd=formulaire.prepass.value;	
//	formulaire.prepass.value="";
	buf=MD5(passwd);
	formulaire.pass.value=buf;
	
	formulaire.action=chemin;
}	

else return;
}


// Validation de la page d'incription/modification membre 1____----------------------------------------------------
function checketsubmitmodifdonneesgenerales(formulaire,chemin) {
if (
check_chainedecaracteressanschiffresnom (formulaire.nom)
&& check_chainedecaracteressanschiffresprenom (formulaire.prenom)
&& check_email (formulaire.email)
&& check_date (formulaire.naissance)
&& check_chainedecaracteres (formulaire.titreprofil)
&& check_chainedecaracteres (formulaire.objectifs)
)
{
	formulaire.action=chemin;
}	

else return;
}


// Validation de la page de recherche membre ---------------------------------------------------------------------
function checketsubmitrecherche(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.motcle)

)
{
	formulaire.action=chemin;
}	

else return;
}


// Validation de la page d'incription/modification membre 2-------------------------------------------------------
function checketsubmitformation(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.intituleformation)
&& check_chainedecaracteres (formulaire.ecole)
&& check_chainedecaracteres (formulaire.descriptionformation)
)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification experience----------------------------------------------------
function checketsubmitexperience(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.titreexp)
&& check_chainedecaracteres (formulaire.entexp)
&& check_chainedecaracteres (formulaire.descrexp)
&& check_entierfaceffectifexperience (formulaire.effectifexp)
&& check_chainedecaracteresfac (formulaire.nomgroupeexp)
)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification complement---------------------------------------------------
function checketsubmitcomplement(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.competence1)
&& check_chainedecaracteresfac (formulaire.titrecompetence1)
&& check_chainedecaracteresfac (formulaire.competence2)
&& check_chainedecaracteresfac (formulaire.titrecompetence2)
&& check_chainedecaracteresfac (formulaire.competence3)
&& check_chainedecaracteresfac (formulaire.titrecompetence3)
&& check_chainedecaracteresfac (formulaire.competence4)
&& check_chainedecaracteresfac (formulaire.titrecompetence4)
&& check_chainedecaracteresfac (formulaire.autrescomplements)
)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification experience----------------------------------------------------
function checketsubmitrechercheexperience(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.motscletitreoudescrexp)
&& check_chainedecaracteresfac (formulaire.motscleentexp)
&& check_chainedecaracteresfac (formulaire.motscledescractivite)
&& check_entierfaceffectifexp (formulaire.effectifexp)
)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification experience----------------------------------------------------
function checketsubmitrechercheformation(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.motscle)
)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification experience----------------------------------------------------
function checketsubmitrecherchecomplement(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.motsclecompetence)
&& check_chainedecaracteresfac (formulaire.motscleautrescomplements)
)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification complement---------------------------------------------------
function checketsubmitprojet(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.titreprojet)
&& check_chainedecaracteres (formulaire.descrprojet)
&& check_datefac (formulaire.datelancement)
&& check_chainedecaracteresfac (formulaire.competencesrech)
)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification complement---------------------------------------------------
function checketsubmitrechercheprojet(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.motscletitreoudescr)
&& check_chainedecaracteresfac (formulaire.motsclecomp)

)
{
	formulaire.action=chemin;
}
else return;
}


// Validation de la page d'incription/modification annonce-------------------------------------------------------
function checketsubmitannonce(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.intituleposte)
&& check_chainedecaracteres (formulaire.descrposte)
&& check_entiersalairebas (formulaire.salairebas)
&& check_entiersalairehaut (formulaire.salairehaut)
&& check_chainedecaracteressanschiffresfacnomrecruteur (formulaire.nomrecruteur)
&& check_emailfac (formulaire.emailreponse)
&& check_chainedecaracteresfac (formulaire.adressereponse)
)
{
	formulaire.action=chemin;
}	
else return;
}


// Validation de la page d'incription/modification annonce-------------------------------------------------------
function checketsubmitrechercheannonce(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.motscle)
&& check_chainedecaracteresfac (formulaire.rechnomentreprise)
&& check_entierfacsalairerech (formulaire.salairerech)
)
{
	formulaire.action=chemin;
}	
else return;
}


// Validation de la page d'incription/modification annonce-------------------------------------------------------
function checketsubmitrechercheentreprise(formulaire,chemin) {
if (
check_chainedecaracteresfac (formulaire.nomentrepriseougroupe)
&& check_chainedecaracteresfac (formulaire.motscle)
&& check_entierfaceffectifmini (formulaire.effectifmini)
&& check_entierfaceffectifmaxi (formulaire.effectifmaxi)
)
{
	formulaire.action=chemin;
}	
else return;
}


// Validation de la page d'incription entreprise---------------------------------------------------------------
function checketsubmitinscription_e(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.nomentreprise)
&& check_chainedecaracteres (formulaire.adresse)
&& check_chainedecaracteres (formulaire.siret)
&& check_email (formulaire.email)
&& check_chainedecaracteres (formulaire.prepass)
&& check_entieranneesdexistence (formulaire.anneesdexistence)
&& check_entiereffectif (formulaire.effectif)
&& check_chainedecaracteresfac (formulaire.siteinternet)
&& check_chainedecaracteresfac (formulaire.nomgroupe)
&& check_entierfacca (formulaire.ca)
&& check_chainedecaracteres (formulaire.descractivite)
)
{
	passwd=formulaire.prepass.value;
//  	formulaire.prepass.value="";
	buf=MD5(passwd);
	formulaire.pass.value=buf;
	
	formulaire.action=chemin;
}
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitcreation_i(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.titreinfo)
&& check_chainedecaracteresfac (formulaire.entrepriseinfo)
&& check_chainedecaracteresfac (formulaire.groupeinfo)
&& check_postalfac (formulaire.postalinfo)
&& check_chainedecaracteressanschiffresfac (formulaire.villeinfo)
&& check_postalville (formulaire.postalinfo,formulaire.villeinfo)
&& check_chainedecaracteres (formulaire.contenuinfo)
)
	formulaire.action=chemin;
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitcreation_exp(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.titreexperience)
&& check_chainedecaracteresfac (formulaire.entrepriseexperience)
&& check_chainedecaracteresfac (formulaire.groupeexperience)
&& check_postalfac (formulaire.postalexperience)
&& check_chainedecaracteressanschiffresfac (formulaire.villeexperience)
&& check_postalville (formulaire.postalexperience,formulaire.villeexperience)
&& check_chainedecaracteres (formulaire.contenuexperience)
)
	formulaire.action=chemin;
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitcreation_p(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.entrepriseprojet)
&& check_postalfac (formulaire.postalprojet)
&& check_chainedecaracteressanschiffresfac (formulaire.villeprojet)
&& check_chainedecaracteres (formulaire.contenuprojet)
&& check_postalville (formulaire.postalprojet,formulaire.villeprojet)
)
	formulaire.action=chemin;
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitcontactmail(formulaire) {
if (
check_chainedecaracteres (formulaire.message)
)
	formulaire.submit();
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitcommentaire(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.commentaire)
)
	formulaire.action=chemin;
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitmodification(formulaire,chemin) {
if (
check_chainedecaracteressanschiffres (formulaire.pseudo)
&& check_chainedecaracteres (formulaire.prepass)
)
{
	passwd=formulaire.prepass.value;
  	formulaire.prepass.value="";
	buf=MD5(passwd);
	formulaire.pass.value=buf;

	formulaire.action=chemin;
}
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitidentification_m(formulaire,chemin) {
if (
check_email (formulaire.email)
&& check_chainedecaracteres (formulaire.prepass)
)
{
	passwd=formulaire.prepass.value;
  	formulaire.prepass.value="";
	buf=MD5(passwd);
	formulaire.pass.value=buf;

	formulaire.action=chemin;
}
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitidentification_e(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.nomentreprise)
&& check_chainedecaracteres (formulaire.prepass)
)
{
	passwd=formulaire.prepass.value;
  	formulaire.prepass.value="";
	buf=MD5(passwd);
	formulaire.pass.value=buf;
	
	formulaire.action=chemin;
}
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitemailwebmaster(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.message)
&& check_email (formulaire.emaildemandeur)
)
	formulaire.submit();
else return;
}


// Validation de la page de creation info----------------------------------------------------------------------
function checketsubmitemailmembre(formulaire,chemin) {
if (
check_chainedecaracteres (formulaire.message)
)
	formulaire.submit();
else return;
}


// Validation de la page de vote enquete-----------------------------------------------------------------------
function checketsubmitcreation_enquete(formulaire) {
if (
check_chainedecaracteresfac (formulaire.complement)
)
	formulaire.submit();
else return;
}


// Cryptage du mot de passe-----------------------------------------------------------------------------------
//function crypt_pass(formulaire)
//{
//  passwd=formulaire.pass.value;
//  formulaire.pass.value="";
//  buf=MD5(passwd);
//  formulaire.md5.value=buf;

//  return true;
//}


// $Revision: 2.0 $

/************************************************************************/
/* phpAdsNew 2                                                          */
/* ===========                                                          */
/*                                                                      */
/* Copyright (c) 2000-2002 by the phpAdsNew developers                  */
/* For more information visit: http://www.phpadsnew.com                 */
/*                                                                      */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License.       */
/************************************************************************/

/*
 *  md5.jvs 1.0b 27/06/96
 *
 * Javascript implementation of the RSA Data Security, Inc. MD5
 * Message-Digest Algorithm.
 *
 * Copyright (c) 1996 Henri Torgemane. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for any purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. 
 *
 * Of course, this soft is provided "as is" without express or implied
 * warranty of any kind.
 *
 * $Id: md5.js,v 2.0 2002/10/29 21:01:41 rakaz Exp $
 *
 */



function array(n) {
  for(i=0;i<n;i++) this[i]=0;
  this.length=n;
}

/* Some basic logical functions had to be rewritten because of a bug in
 * Javascript.. Just try to compute 0xffffffff >> 4 with it..
 * Of course, these functions are slower than the original would be, but
 * at least, they work!
 */

function integer(n) { return n%(0xffffffff+1); }

function shr(a,b) {
  a=integer(a);
  b=integer(b);
  if (a-0x80000000>=0) {
    a=a%0x80000000;
    a>>=b;
    a+=0x40000000>>(b-1);
  } else
    a>>=b;
  return a;
}

function shl1(a) {
  a=a%0x80000000;
  if (a&0x40000000==0x40000000)
  {
    a-=0x40000000;  
    a*=2;
    a+=0x80000000;
  } else
    a*=2;
  return a;
}

function shl(a,b) {
  a=integer(a);
  b=integer(b);
  for (var i=0;i<b;i++) a=shl1(a);
  return a;
}

function and(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0) 
    if (t2>=0) 
      return ((t1&t2)+0x80000000);
    else
      return (t1&b);
  else
    if (t2>=0)
      return (a&t2);
    else
      return (a&b);  
}

function or(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0) 
    if (t2>=0) 
      return ((t1|t2)+0x80000000);
    else
      return ((t1|b)+0x80000000);
  else
    if (t2>=0)
      return ((a|t2)+0x80000000);
    else
      return (a|b);  
}

function xor(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0) 
    if (t2>=0) 
      return (t1^t2);
    else
      return ((t1^b)+0x80000000);
  else
    if (t2>=0)
      return ((a^t2)+0x80000000);
    else
      return (a^b);  
}

function not(a) {
  a=integer(a);
  return (0xffffffff-a);
}

/* Here begin the real algorithm */

    var state = new array(4); 
    var count = new array(2);
	count[0] = 0;
	count[1] = 0;                     
    var buffer = new array(64); 
    var transformBuffer = new array(16); 
    var digestBits = new array(16);

    var S11 = 7;
    var S12 = 12;
    var S13 = 17;
    var S14 = 22;
    var S21 = 5;
    var S22 = 9;
    var S23 = 14;
    var S24 = 20;
    var S31 = 4;
    var S32 = 11;
    var S33 = 16;
    var S34 = 23;
    var S41 = 6;
    var S42 = 10;
    var S43 = 15;
    var S44 = 21;

    function F(x,y,z) {
	return or(and(x,y),and(not(x),z));
    }

    function G(x,y,z) {
	return or(and(x,z),and(y,not(z)));
    }

    function H(x,y,z) {
	return xor(xor(x,y),z);
    }

    function I(x,y,z) {
	return xor(y ,or(x , not(z)));
    }

    function rotateLeft(a,n) {
	return or(shl(a, n),(shr(a,(32 - n))));
    }

    function FF(a,b,c,d,x,s,ac) {
        a = a+F(b, c, d) + x + ac;
	a = rotateLeft(a, s);
	a = a+b;
	return a;
    }

    function GG(a,b,c,d,x,s,ac) {
	a = a+G(b, c, d) +x + ac;
	a = rotateLeft(a, s);
	a = a+b;
	return a;
    }

    function HH(a,b,c,d,x,s,ac) {
	a = a+H(b, c, d) + x + ac;
	a = rotateLeft(a, s);
	a = a+b;
	return a;
    }

    function II(a,b,c,d,x,s,ac) {
	a = a+I(b, c, d) + x + ac;
	a = rotateLeft(a, s);
	a = a+b;
	return a;
    }

    function transform(buf,offset) { 
	var a=0, b=0, c=0, d=0; 
	var x = transformBuffer;
	
	a = state[0];
	b = state[1];
	c = state[2];
	d = state[3];
	
	for (i = 0; i < 16; i++) {
	    x[i] = and(buf[i*4+offset],0xff);
	    for (j = 1; j < 4; j++) {
		x[i]+=shl(and(buf[i*4+j+offset] ,0xff), j * 8);
	    }
	}

	/* Round 1 */
	a = FF ( a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
	d = FF ( d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
	c = FF ( c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
	b = FF ( b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
	a = FF ( a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
	d = FF ( d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
	c = FF ( c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
	b = FF ( b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
	a = FF ( a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
	d = FF ( d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
	c = FF ( c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
	b = FF ( b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
	a = FF ( a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
	d = FF ( d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
	c = FF ( c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
	b = FF ( b, c, d, a, x[15], S14, 0x49b40821); /* 16 */

	/* Round 2 */
	a = GG ( a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
	d = GG ( d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
	c = GG ( c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
	b = GG ( b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
	a = GG ( a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
	d = GG ( d, a, b, c, x[10], S22,  0x2441453); /* 22 */
	c = GG ( c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
	b = GG ( b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
	a = GG ( a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
	d = GG ( d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
	c = GG ( c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
	b = GG ( b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
	a = GG ( a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
	d = GG ( d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
	c = GG ( c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
	b = GG ( b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */

	/* Round 3 */
	a = HH ( a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
	d = HH ( d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
	c = HH ( c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
	b = HH ( b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
	a = HH ( a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
	d = HH ( d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
	c = HH ( c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
	b = HH ( b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
	a = HH ( a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
	d = HH ( d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
	c = HH ( c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
	b = HH ( b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
	a = HH ( a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
	d = HH ( d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
	c = HH ( c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
	b = HH ( b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */

	/* Round 4 */
	a = II ( a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
	d = II ( d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
	c = II ( c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
	b = II ( b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
	a = II ( a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
	d = II ( d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
	c = II ( c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
	b = II ( b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
	a = II ( a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
	d = II ( d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
	c = II ( c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
	b = II ( b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
	a = II ( a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
	d = II ( d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
	c = II ( c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
	b = II ( b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */

	state[0] +=a;
	state[1] +=b;
	state[2] +=c;
	state[3] +=d;

    }

    function init() {
	count[0]=count[1] = 0;
	state[0] = 0x67452301;
	state[1] = 0xefcdab89;
	state[2] = 0x98badcfe;
	state[3] = 0x10325476;
	for (i = 0; i < digestBits.length; i++)
	    digestBits[i] = 0;
    }

    function update(b) { 
	var index,i;
	
	index = and(shr(count[0],3) , 0x3f);
	if (count[0]<0xffffffff-7) 
	  count[0] += 8;
        else {
	  count[1]++;
	  count[0]-=0xffffffff+1;
          count[0]+=8;
        }
	buffer[index] = and(b,0xff);
	if (index  >= 63) {
	    transform(buffer, 0);
	}
    }

    function finish() {
	var bits = new array(8);
	var	padding; 
	var	i=0, index=0, padLen=0;

	for (i = 0; i < 4; i++) {
	    bits[i] = and(shr(count[0],(i * 8)), 0xff);
	}
        for (i = 0; i < 4; i++) {
	    bits[i+4]=and(shr(count[1],(i * 8)), 0xff);
	}
	index = and(shr(count[0], 3) ,0x3f);
	padLen = (index < 56) ? (56 - index) : (120 - index);
	padding = new array(64); 
	padding[0] = 0x80;
        for (i=0;i<padLen;i++)
	  update(padding[i]);
        for (i=0;i<8;i++) 
	  update(bits[i]);

	for (i = 0; i < 4; i++) {
	    for (j = 0; j < 4; j++) {
		digestBits[i*4+j] = and(shr(state[i], (j * 8)) , 0xff);
	    }
	} 
    }

/* End of the MD5 algorithm */

function hexa(n) {
 var hexa_h = "0123456789abcdef";
 var hexa_c=""; 
 var hexa_m=n;
 for (hexa_i=0;hexa_i<8;hexa_i++) {
   hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;
   hexa_m=Math.floor(hexa_m/16);
 }
 return hexa_c;
}


var ascii="01234567890123456789012345678901" +
          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
          "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";

function MD5(entree) 
{
 var l,s,k,ka,kb,kc,kd;

 init();
 for (k=0;k<entree.length;k++) {
   l=entree.charAt(k);
   update(ascii.lastIndexOf(l));
 }
 finish();
 ka=kb=kc=kd=0;
 for (i=0;i<4;i++) ka+=shl(digestBits[15-i], (i*8));
 for (i=4;i<8;i++) kb+=shl(digestBits[15-i], ((i-4)*8));
 for (i=8;i<12;i++) kc+=shl(digestBits[15-i], ((i-8)*8));
 for (i=12;i<16;i++) kd+=shl(digestBits[15-i], ((i-12)*8));
 s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka);
 return s; 
}
