/* Cette note ne doit pas être effacée.

Nom : verifForm.js   
Version : 1.0
Auteur : Yannick Fel
Date de dernière modification : 10/07/2007
Description : script permettant de vérifier de la validité des données formulaires 
avant leur soumission au serveur Web en utilisant toute la puissance de votre 
navigateur :))

*/

/**
 * <TT>isDateValid</TT> 
 * 
 *  @param chaineDate Chaîne de caractère correspondant à une date JJ/MM/AAAA
 *  @return TRUE en cas de succès
 * 
 */
function isDateValid(chaineDate) {

   if(chaineDate == '') {
   		return true;
   } else {

   //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) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) return false;

   //Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
   var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));

   //Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
   var annee = unedate.getYear();
   if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;

   //alert(unedate)
   //Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
   return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])));
   } 
}

/**
 * <TT>getDate</TT> 
 * 
 *  @param chaineDate Chaîne de caractère correspondant à une date JJ/MM/AAAA
 *  @return unedate Une Date au format date
 * 
 */
function getDate(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) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) return false;

   //Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
   var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));
   
   return unedate;
   
}

/**
 * <TT>isalib</TT> 
 * 
 *  @param lecar Caractère
 *  @return TRUE si lachaîne de caractère ets un email
 * 
 */
function isanemail(lecar) 
{ 
	 	
        
        
        if (lecar.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1)
        { 
          
            return false; 
        }
}
        
/**
 * <TT>isalib</TT> 
 * 
 *  @param lecar Caractère
 *  @return TRUE si le caractère est alphanumérique + caractères spéciaux
 * 
 */
function isalib(lecar){
   chaine =lecar.toLowerCase();
   var lettre="abcdefghijklmnopqrstuvwxyz0123456789()+-/* ";
   for(var i=0;i<chaine.length;i++)
      {
      temp=chaine.substring(i,i+1);
      if (lettre.indexOf(temp,0)==-1)
         {
         return false;
         }
      }
}


/**
 * <TT>isachar</TT> 
 * 
 *  @param lecar Caractère
 *  @return TRUE si le caractère est alphanumérique 
 * 
 */
function isachar(lecar){
   chaine =lecar.toLowerCase();
   var lettre="abcdefghijklmnopqrstuvwxyz0123456789*";
   for(var i=0;i<chaine.length;i++)
      {
      temp=chaine.substring(i,i+1);
      if (lettre.indexOf(temp,0)==-1)
         {
         return false;
         }
      }
}


/**
 * <TT>isalib</TT> 
 * 
 *  @param lecar Caractère
 *  @return TRUE si le caractère est numérique
 * 
 */
function isachiffre(lecar)
   {
   chaine =lecar.toLowerCase();
   var chiffre="0123456789";
   for(var i=0;i<chaine.length;i++)
      {
      temp=chaine.substring(i,i+1);
      if (chiffre.indexOf(temp,0)==-1)
         {
         return false;
         }
      }
   }


/**
 * <TT>isaespace</TT> 
 * 
 *  @param lecar Caractère
 *  @return TRUE si le caractère est numérique
 * 
 */
function isaespace(lecar)
   {
   chaine =lecar.toLowerCase();
   var espace=" ";
   for(var i=0;i<chaine.length;i++)
      {
      temp=chaine.substring(i,i+1);
      if (espace.indexOf(temp,0)==-1)
         {
         return false;
         }
      }
   }


/**
 * <TT>confirmSup</TT> 
 * 
 *  @param choix nom du formulaire sur laquelle la confirmation de suppression va porter
 *  @param chaine Chaîne de caractère correspondant au commentaire qui apparaît dans la boîte de dialogue
 * 
 */  
function confirmSup(choix,chaine,valeur){ 
	
    switch (choix)
    {
    	case 'myFormReporting' :
    	
   		 if(document.getElementById("myFormReporting")){
              var listeRapports = document.getElementById("myFormReporting").listeRMA.value;
			 
			  if(listeRapports != '') {
			   
			
  			  if (confirm(chaine)) { 
  				document.forms['myFormReporting'].mode.value = valeur; 
  			  	D = document.forms['myFormReporting']; 
  			  	D.submit(); 
  			  } 
              } else {
              alert('Vous devez sélectionner un rapport'); 
              }
         }
        break;
		default : ;
    }
}

/**
 * <TT>verifForm</TT> 
 * 
 *  @param choix Nom du formulaire sur lequel la vérification va être effectuée
 *  @return TRUE en cas de succès
 * 
 */  
function verifForm(choix){

 
 
  switch (choix)
    {
       
	   case 'myFormContact' :
	   if(document.getElementById("myFormContact")){
	 
	   var nom = document.getElementById("myFormContact").nom.value;
	   var prenom = document.getElementById("myFormContact").prenom.value;
	   var email = document.getElementById("myFormContact").email.value;
	 
	    
	   // Nom
	    if(nom == '' ) {
                  alert("Merci de renseigner le champ obligatoire 'Nom'");
                  document.getElementById("myFormContact").nom.focus();
      			  return false;
              }
	   // prenom
	   if(prenom == '' ) {
                  alert("Merci de renseigner le champ obligatoire 'Prénom'");
                  document.getElementById("myFormContact").prenom.focus();
      			  return false;
              }
	   
       // email
	   if(email == '' ) {
                  alert("Merci de renseigner le champ obligatoire 'E-Mail'");
                  document.getElementById("myFormContact").email.focus();
      			  return false;
              }   
       if(isanemail(email) == false ) {
                  alert("Merci de renseigner le champ 'E-Mail' avec un e-mail valide");
                  document.getElementById("myFormContact").email.focus();
      			  return false;
             }       
              
      }        
	   break;
     
   
        default : ;
        break;
    }
}
