/*--------------------------------------------------------------------------
  FICHIER:       functions.js
  DESCRIPTION:   Banque de fonctions javascript
  DATE:          25 juillet 2001
---------------------------------------------------------------------------*/


/* --------------------------------------------------------------------
    FONCTION:   isDecimal
    OBJECTIF:   Vérifier si une chaîne de caractère représente un
                nombre décimal sous le format demandé
    ENTREE:     valeur:  Chaîne de caractères à vérifier  (STRING)
                gauche:  Nombre de chiffre avant le point (INT)
                droite:  Nombre de chiffre après le point (INT)
    SORTIE:     TRUE:   Si c'est un nombre decimal
                FALSE:  Si ce n'est pas un nombre decimal
-------------------------------------------------------------------- */

function isDecimal(valeur, gauche, droite)
  {
    if (isNaN(valeur))
        return false;

    if (valeur.indexOf('.') >= 0)
      {
        if ((valeur.substring(valeur.indexOf('.') + 1,valeur.length)).length > droite)
          {
            return false;
          }

        if ((valeur.substring(0,valeur.indexOf('.'))).length > gauche)
          {
            return false;
          }

      }

    else
      {
        if (valeur.length > gauche)
          {
            return false;
          }
      }

  return true;
}


/* --------------------------------------------------------------------
    FONCTION:   isNumrTel
    OBJECTIF:   Vérifier si une chaîne de caractère a le bon format de
                numéro de téléphone (999-9999)
    ENTREE:     valeur:  Chaîne de caractères à vérifier 

    SORTIE:     TRUE:   chaine est composé comme ceci 999-9999
                FALSE:  sinon
-------------------------------------------------------------------- */
function isNumrTel(chaine) 
{
	
	var accpt = false;
	var cpt   = 0;

	
	if (chaine.length == 8)
	{
		accpt = true;
		
		if (chaine.indexOf("-") != 3)
		{
			accpt = false;
		}	
		else
		{
			while(cpt < chaine.indexOf("-") && accpt)
			{
				if ((chaine.charAt(cpt) < "0"  ||
				     chaine.charAt(cpt) > "9"))
				{
					accpt = false;
				}
				cpt++;
			}
			
			cpt = chaine.indexOf("-") + 1;
			
	   
			while(cpt < chaine.lenght && accpt)
	    {
				if ((chaine.charAt(cpt) < "0"  ||
				     chaine.charAt(cpt) > "9"))
				{
					accpt = false;
				}
				cpt++;
	    }
		}		
	}
	
	return accpt;

}


/* --------------------------------------------------------------------
    FONCTION:   isUserCode
    OBJECTIF:   Vérifier si une chaîne de caractère est valide comme
    						username et qu'elle est composée au maximum de 8 
    						caractères.

                Vérifier que seulement des chiffres et/ou des lettres
    						sont entrés.

    ENTREE:     valeur:  Chaîne de caractères à vérifier 

    SORTIE:     TRUE: si valide
                FALSE  si pas valide
-------------------------------------------------------------------- */
function isUserCode(chaine) {

    var accept = false;

    /* le code doit avoir au maximum 8 de long. */

    if (chaine.length <= 8)
     {
       var accept = true;

       /* Et avoir des caractères valides */

       for (var cpt=0; cpt < chaine.length; cpt++)
        {
           if ((chaine.charAt(cpt) < "0"  ||
                chaine.charAt(cpt) > "9") &&
               (chaine.charAt(cpt) < "A"  ||
                chaine.charAt(cpt) > "Z") &&
               (chaine.charAt(cpt) < "a"  ||
                chaine.charAt(cpt) > "z"))
            {
              accept = false;
            }
        }
     }

    if (accept)
     {
       return true;
     }

    return false;
}


/*--------------------------------------------------------------------------
   Descr  :  Fonction qui vérifie si le champ passé en paramètre est une 
						 adresse de courriel valide. 
 	 Appel  :  isEmail("moi@lacapitale.com");                                                               
   Retour :  true = succès, false = échec                                                            
--------------------------------------------------------------------------*/
function isEmail(chaine) {
   var accept = true;
   for (var cpt=0; cpt < chaine.length; cpt++) {
      if ((chaine.charAt(cpt) != "." &&
           chaine.charAt(cpt) != "-" &&
           chaine.charAt(cpt) < "0") ||
          (chaine.charAt(cpt) > "9" &&
           chaine.charAt(cpt) < "@") ||
          (chaine.charAt(cpt) != "_" &&
           chaine.charAt(cpt) > "Z" &&
           chaine.charAt(cpt) < "a") ||
          (chaine.charAt(cpt) > "z")) accept = false;
   }

   if ((chaine.indexOf("@") == -1) ||
       (chaine.indexOf(".") == -1) ||
       (chaine.indexOf(".") == 0) ||
       (chaine.indexOf("..") != -1) ||
       (chaine.lastIndexOf("@") == chaine.length - 1) ||
       (chaine.lastIndexOf(".") == chaine.length - 1) ||
       (chaine.indexOf("@") != chaine.lastIndexOf("@")) ||
       (chaine.charAt(chaine.indexOf("@") - 1) == ".") ||
       (chaine.charAt(chaine.indexOf("@") + 1) == ".") ||
       (chaine.length < 9)) accept = false;

   if (accept) return true;
   return false;
}

