/**********************************
fonctions de vérifications génériques
**********************************/

// fonction de vérification d'email
// e = l'email a tester
function fj_ste_verifEmail(e)
{
if (e.value.length < 4)
	   {
	   	   alert('Indiquez votre email, SVP.');
		   return false;
	   }else {
  // recherche des espaces dans l'adresse e-mail
  // '-1' signifie qu'aucun espace n'a été trouvé
  if(e.value.search(/ /) != '-1')
  {
    alert('Une adresse e-mail ne peut contenir un espace !');
    return false;
  }

  // vérification du format de l'email. 
  var regexEmail=/^([a-zA-Z0-9]+(([\.\-\_]?[a-zA-Z0-9]+)+)?)\@(([a-zA-Z0-9]+[\.\-\_])+[a-zA-Z]{2,4})$/;
  var textEmail=e.value;
  if (!(regexEmail.test(textEmail)))
  {
   return false;
	
  }
}//fin else
}//fin fonction fj_ste_verifEmail(e)

//fonction qui retourne "TRUE" s'il y a un espace dans la variable
// e = le texte à tester
function fj_ste_verifEspace(e)
	{
	// recherche des espaces dans un paramètre
  // '-1' signifie qu'aucun espace n'a été trouvé.
  if(e.value.search(/ /) != '-1')
  {
    return(true);
  }
	}//fin fonction fj_ste_verifEspace()

// fonction qui teste si un paramètre(v) est inférieur à la taille donnée (t)
//retourne "true" si celle si est inférieure

function fj_ste_verifTaille(v,t)
{
 if (v.value.length < t)
	   {
	   	  return true;
	   }
}// fin fonction fj_ste_verifTaille(v,t)


function fj_ste_verifTailleSup(v,t)
{
 if (v.value.length > t)
	   {
	   	  return true;
	   }
}// fin fonction fj_ste_verifTailleSup(v,t)


/***************************************************************************
fonctions de formatages génériques
***************************************************************************/

//fonction qui change la paramètre en majuscule
//le paramètre s doit être du type "f.NomDuChamp.value"
function fj_ste_changeMajuscule(s)
{
var text=s.toString();
text=text.toUpperCase();
return text;
}
// fin fonction fj_ste_changeMajuscule(s)



// fonction qui met toutes les premières lettres des mots en majuscule
//et le reste en minuscule, utile pour formater les prénoms
//le paramètre Valchamp doit être du type "f.NomDuChamp.value"
function fj_ste_changePrenom(ValChamp) {
var index;
var tmpStr;
var tmpChar;
var preString;
var postString;
var strlen;
var texte=ValChamp.toString();

// on nettoie la variable texte avec un regex:
// - suppression des tirets inutiles
// - ajout d'un seul espace avant et après le tiret
var modeleregex1=/[ ]*[-]+[ ]*[-]*/;
texte=texte.replace(modeleregex1," - ");
// nettoyage de la variable texte effectuée

tmpStr = texte.toLowerCase();
strLen = tmpStr.length;
if (strLen > 0)  {
for (index = 0; index < strLen; index++)  {
if (index == 0)  {
tmpChar = tmpStr.substring(0,1).toUpperCase();
postString = tmpStr.substring(1,strLen);
tmpStr = tmpChar + postString;
}
else {
tmpChar = tmpStr.substring(index, index+1);
if (tmpChar == " " && index < (strLen-1))  {
tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
preString = tmpStr.substring(0, index+1);
postString = tmpStr.substring(index+2,strLen);
tmpStr = preString + tmpChar + postString;
         }
      }
   }
}
texte = tmpStr;
return texte;
}
// fin de la fonction fj_ste_changePrenom(ValChamp) 

/****************************************************************************
****************************  TRAITEMENT FORMULAIRE  ************************
*****************************************************************************
fonction fj_ste_traitementForm(f) est la  fonction principale qui lance la vérification
et le formatage du formulaire avec respectivement les fonctions fj_ste_verifForm(f)
et fj_ste_formatForm(f) voir plus bas dans le script
*****************************************************************************/
function fj_ste_traitementForm(f)
{
// lancement des vérifications
var resultat = fj_ste_verifForm(f);
if (resultat==false)
{
return false;
}//fin if
else
{
//lancement des formatages
fj_ste_formatForm(f);
return true;
}//fin else 
}//fin de la fontion fj_ste_traitementForm(f)


/*****************************************************************************
************************  VERIFICATION DU FORMULAIRE  ************************
*****************************************************************************
fonction qui identifie le forum par son nom et effectue les tests spécifiques
le paramètre f correspond au nom du forum
****************************************************************************/
function fj_ste_verifForm(f)
{
	// cas du Forum adminNewUser
	if (f.name == "adminNewUser")
	{
	   // contrôle du champ Nom
	   if (fj_ste_verifTaille(f.nomNewUser,1))
	   {
	   	   alert('Indiquez votre nom, SVP.');
		   return false;
	   }
	   // contrôle du champ prénom
	   if (fj_ste_verifTaille(f.prenomNewUser,1))
	   {
	   	    alert('Indiquez votre prénom, SVP.');
		   return false;
	   }
	  
	  //controle d'email
	  if (fj_ste_verifEmail(f.emailNewUser) == false)
	  {
	   alert('Une adresse e-mail doit avoir le format "Utilisateur@domaine",\n'+'par ex.: "nom.prenom@france.fr"');
       return false;	 				
	  }
	  // contrôle du champ description
	  if (fj_ste_verifTaille(f.descriptionNewUser,1))
	   {
	   	   alert('Remplissez la description, SVP.')
		   return false;
	   }
	   // contrôle du champ login
	   if (fj_ste_verifTaille(f.loginNewUser,4) || fj_ste_verifEspace(f.loginNewUser))
	   {
	   	    alert('Indiquez votre login (4 caractères minimum, sans espaces), SVP.');
		   return false;
	   }
   	   // contrôle du champ Mot de passe
	   if (fj_ste_verifTaille(f.passwordNewUser,4) || f.passwordNewUser.value != f.password2NewUser.value || fj_ste_verifEspace(f.passwordNewUser))
	   {
	   	   alert('Indiquez et confirmez votre mot de passe correctement (4 caractères minimum, sans espaces), SVP.');
		   return false;
	   }
	return true;
	}//fin if du formulaire adminNewUser
	
	// Cas du formulaire de message du forum
	if (f.name == "formMsgForum")
	{	   	  
	   // contrôle du champ discussion
	   if (f.sujet.value == "")
	   {
	   	  alert('Indiquez un sujet à votre message, SVP.');
		  f.sujet.focus();
		  return false;
	   }
	   
	   if (fj_ste_verifTailleSup(f.sujet,40))
	   {
	   	   alert('Le sujet de votre discussion ne doit pas dépasser 40 caractères');
		   f.sujet.focus();
		   return false;
	   }
	   
	   // contrôle du champ message
	   if (f.message.value == "")
	   {
	   	  alert('Indiquez un message, SVP.');
		  f.message.focus();
		  return false;
	   }
	   return true;
	}//fin if du formulaire formMsgForum
	
	// cas du formulaire d'authentification d'abonné dans le forum
	if (f.name == "formAuthAbonne")
	{
	   // contrôle du champ login
	   if (fj_ste_verifTaille(f.login,1))
	   {
	   	   alert('Indiquez votre login, SVP.');
		   f.login.focus();
		   return false;
	   }
	   // contrôle du champ pwd
	   if (fj_ste_verifTaille(f.pwd,1))
	   {
	   	    alert('Indiquez votre mot de passe, SVP.');
			f.pwd.focus();
		   return false;
	   }	  	  	  
	   // contrôle du champ login
	   if (fj_ste_verifTaille(f.login,4) || fj_ste_verifEspace(f.login))
	   {
	   	    alert('Indiquez votre login (4 caractères minimum, sans espaces), SVP.');
			f.login.focus();
		   return false;
	   }
   	   // contrôle du champ Mot de passe
	   if (fj_ste_verifTaille(f.pwd,4) || fj_ste_verifEspace(f.pwd))
	   {
	   	   alert('Indiquez et confirmez votre mot de passe correctement (4 caractères minimum, sans espaces), SVP.');
		   f.pwd.focus();
		   return false;
	   }
	return true;
	}//fin if du formulaire formAuthAbonne
	
	// cas du formulaire d'authentification d'un nouvel abonné dans le forum
	if (f.name == "formAuthNew")
	{
	   // contrôle du login
	   if (fj_ste_verifTaille(f.login,1))
	   {
	   	   alert('Indiquez votre login, SVP.');
		   f.login.focus();
		   return false;
	   }
	   // contrôle du champ pwd
	   if (fj_ste_verifTaille(f.pwd,1))
	   {
	   	    alert('Indiquez votre mot de passe, SVP.');
			f.pwd.focus();
		   return false;
	   }	
	   // contrôle du champ pwd2
	   if (fj_ste_verifTaille(f.pwd2,1))
	   {
	   	    alert('Confirmez votre mot de passe, SVP.');
			f.pwd2.focus();
		   return false;
	   }	  
	  //controle d'email
	  if (fj_ste_verifEmail(f.email) == false)
	  {
	   alert('Une adresse e-mail doit avoir le format "Utilisateur@domaine",\n'+'par ex.: "nom.prenom@france.fr"');
	   f.email.focus();
       return false;	 				
	  }	  
	   // contrôle du champ login
	   if (fj_ste_verifTaille(f.login,4) || fj_ste_verifEspace(f.login))
	   {
	   	    alert('Indiquez votre login (4 caractères minimum, sans espaces), SVP.');
			f.login.focus();
		   return false;
	   }
   	   // contrôle du champ Mot de passe
	   if (fj_ste_verifTaille(f.pwd,4) || f.pwd.value != f.pwd2.value || fj_ste_verifEspace(f.pwd))
	   {
	   	   alert('Indiquez et confirmez votre mot de passe correctement (4 caractères minimum, sans espaces), SVP.');
		   f.pwd2.focus();
		   return false;
	   }
	return true;
	}//fin if du formulaire formAuthNew
	
	// cas du formulaire d'authentification de téléchargement dans le club utilisateur
	if (f.name == "formAuthTelecharg")
	{
	   
	   // contrôle du champ pwd
	   if (fj_ste_verifTaille(f.pwd,1))
	   {
	   	    alert('Indiquez votre mot de passe, SVP.');
			f.pwd.focus();
		   return false;
	   }	  	  	  
	  
   	   // contrôle du champ Mot de passe
	   if (fj_ste_verifTaille(f.pwd,4) || fj_ste_verifEspace(f.pwd))
	   {
	   	   alert('Indiquez et confirmez votre mot de passe correctement (4 caractères minimum, sans espaces), SVP.');
		   f.pwd.focus();
		   return false;
	   }
	return true;
	}//fin if du formulaire formAuthTelecharg


	}//fin fonction fj_ste_verifForm()
	
	
/***************************************************************************
****************************  FORMATAGE DU FORMULAIRE  *********************
****************************************************************************
fonction qui identifie le forum par son nom et formate certains champs
****************************************************************************/
function fj_ste_formatForm(f)
{
	// cas du Forum adminNewUser
	if (f.name == "adminNewUser")
	{
	f.nomNewUser.value=fj_ste_changeMajuscule(f.nomNewUser.value);// nom en majuscule
	f.prenomNewUser.value=fj_ste_changePrenom(f.prenomNewUser.value);// formate le prénom
	}// fin du if et du cas du Forum adminNewUser
}// fin fonction  fj_ste_formatForm(f)
	


	
		
