/*Pour Master-impact: certaines fonctions ne sont pas utilisés dans le cadre qui nous interresse
ou ont été mise en commentaire pour car plus à l'ordre du jour..*/

function affiche(){

   /*
        var parrainage=window.document.formulaire.selparr.value;
        var frequence=window.document.formulaire.selperiode.value;

       var _id;

        /*Je rend invisibles tous les paragraphes ayant un identifiant _id

        for (_id="1"; _id < "9" ; _id++){
        var paragraphe=document.getElementById(_id);
        paragraphe.style.display="none";
        }

        if (parrainage=="25")
        {
         if(frequence=="1"){_id="1"};
         if(frequence=="3"){_id="2"};
         if(frequence=="6"){_id="3"};
         if(frequence=="12"){_id="4"};
        }

        if (parrainage=="32")
        {
         if(frequence=="1"){_id="5"};
         if(frequence=="3"){_id="6"};
         if(frequence=="6"){_id="7"};
         if(frequence=="12"){_id="8"};
        }


  if((0< _id)&&(_id < 9)){
  var paragraphe=document.getElementById(_id);
  paragraphe.style.display="block";
  }
  */
}

/* ******************************************************************** */

/*  isDigit( ch ) : vraie, quand le signe est un nombre*/
function isDigit( ch )
  {
    if ( (ch >= '0') && (ch <= '9') )
      return true;
    else
      return false;
  }

/*isAlpha( ch ) : vraie, quand le signe est une lettre*/
  function isAlpha( ch )
  {
    if ( ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) )
      return true;
    else
      return false;
  }





/* isAlnum( ch ) : vraie, quand le signe est alphanumérique*/

  function isAlnum( ch )
  {
    if ( isAlpha( ch ) || isDigit( ch ) )
      return true;
    else
      return false;
  }



/*checkFqdn( fqdn ) : vraie, quand le nom de domaine complet (Fully Qualified Domain Name) est considéré comme valide*/

  function checkFqdn( fqdn )
  {
    var iL=0;
    var iC=0;
    var i=fqdn.length-1;

    if ( (fqdn.charAt(0) == '.') || (fqdn.charAt(0) == '-') )
      return false;
    if ( fqdn.charAt(i) == '.' )
      i=i-1;

    for( ; i>=0; i-- )
    {
      if ( fqdn.charAt(i) == '.' )
      {
        if ( iL < 2 && iC < 2 )
          return false;
        if ( fqdn.charAt(i-1) == '-' )
          return false;
        iC++;
        iL = 0;
        continue;
      }
      if ( isAlnum ( fqdn.charAt(i) ) )
      {
        iL++;
        continue;
      }
      if ( fqdn.charAt(i) == '-' )
      {
        if ( !iL )
          return false;
        iL++;
        continue;
      }
      return false;
    }

    if ( !iC || ( iL == 1 && iC < 2 ) || ( !iL && iC==1 ) ) {
      return false;
    }

    return true;

  }

/* verif_nom_hote( nom_hote ) : vraie quand le nom d'hôte (Hostname) est considéré comme valide */

  function verif_nom_hote( nom_hote )
  {
    if ( nom_hote.charAt(0) == '[' )
    {
      if ( nom_hote.charAt(nom_hote.length-1) != ']' )
        return false;
      var ipnr = nom_hote.substring( 1, nom_hote.length -1 );
        return checkIpnr( ipnr );
    }

    if ( nom_hote.charAt(0) == '#' )
    {
      var nr = nom_hote.substring( 1, nom_hote.length );
        return checkNr( nr );
    }

    return checkFqdn( nom_hote );
  }



/* notIn( str1, str2 ) : vraie, lorsqu'aucun signe de str2 ne se trouve dans str1 */

  function notIn( str1, str2 )
  {
    var i = 0;
    var j = str2.length;
    for( ; i<j; i++ )
    {
      var str3 =  str2.charAt(i);
      if( str1.indexOf( str3 ) != -1 )
        return false;
    }
    return true;
  }


/*verif_nom_utilisateur( nom_utilisateur, mustBeQuoted ) : vraie, quand le nom d'utilisateur est valide*/

  function verif_nom_utilisateur( nom_utilisateur, mustBeQuoted )
  {
    var i = 0;
    var j = nom_utilisateur.length;
    if ( nom_utilisateur.charAt(0) != '"' )
    {
      if ( (nom_utilisateur.charAt(0) <  ' ') || (nom_utilisateur.charAt(0) >  '~')
            || !notIn( mustBeQuoted, nom_utilisateur.charAt(0) ) )
        return false;
      for( i=1; i<j; i++ )
      {
        if ( ( (nom_utilisateur.charAt(i) < ' ') || (nom_utilisateur.charAt(i) >  '~')
              || !notIn ( mustBeQuoted, nom_utilisateur.charAt(i) ) )
             && ( nom_utilisateur.charAt(i-1) != '\\' ) )
          return false;
      }
    }
    else
    {
      if ( nom_utilisateur.charAt( j-1 ) != '"' )
        return false;
      for( i=1; i<j-1; i++ )
      {
        if ( ( (nom_utilisateur.charAt(i) == '\n') || (nom_utilisateur.charAt(i) == '\r')
              || (nom_utilisateur.charAt(i) == '\"') )
            && (nom_utilisateur.charAt(i-1) != '\\') )
          return false;
      }

    }
    return true;
  }




/* verif_adresse_elec( adresse ) : vraie, quand l'adresse électronique sans Realname est considérée comme valide */

  function verif_adresse_elec( adresse )
  {
    var status = true;
    var nom_utilisateur = "";
    var nom_hote = "";

    if ( adresse.length < 8 )
      return false;

    var separateur = adresse.lastIndexOf("@");
    if ( separateur == -1 )
      return false;

    nom_utilisateur = adresse.substring(0, separateur );
    if ( ! verif_nom_utilisateur( nom_utilisateur, "<>()[],;:@\" " ) )
      return false;

    nom_hote = adresse.substring(separateur+1, adresse.length );
    if ( ! verif_nom_hote( nom_hote ) )
      return false;

    return true;
  }




/* verif_adresse( email, allowFullname ) : vraie, quand l'adresse électronique */
/* est considérée comme valide, le deuxième paramètre fixant si le Realname est accepté ou non */

  function verif_adresse( email, allowFullname )
  {
    var existFullname = false;
    var status = true;
    var fullname = "";
    var adress = "";
    if ( email.length < 8 )
      return false;
    var emailBegin = email.indexOf("<");
    var emailEnd = email.lastIndexOf(">");

    if ( (emailBegin == -1) && (emailEnd == -1) )
      return verif_adresse_elec( email );

    if ( ( (emailBegin == -1) && (emailEnd != -1) )
        || ( (emailBegin != -1) && (emailEnd == -1) ) )
      return false;

    adress = email.substring( emailBegin+1, emailEnd );

    if ( ! verif_adresse_elec( adress ) )
      return false;

    if ( email.length == adress.length + 2 )
      return true;
    else
      if ( ! allowFullname )
        return false;

    if ( emailEnd == email.length - 1 )
    {
      if ( emailBegin == 0 )
        return true;
      if ( email.charAt( emailBegin -1 ) != ' ' )
        return false;
      fullname = email.substring( 0, emailBegin-1 );
      return verif_nom_utilisateur ( fullname, "<>()[],;:@\"" );
    }

    return false ;

  }


/* ******************************************************************** */


function tester()
{
  if(window.document.formulaire.nom.value==""){
                                               alert("Vous devez saisir votre nom");
                                               return "nom";
                                               };
  if(window.document.formulaire.prenom.value==""){
                                               alert("Vous devez saisir votre prénom");
                                               return "prenom";
                                               };
  if(window.document.formulaire.adresse.value==""){
                                               alert("Vous devez saisir votre adresse");
                                               return "adresse";
                                               };

  /* Tests du code postal : présence, longueur*/

  if(window.document.formulaire.codepostal.value==""){
                                               alert("Vous devez saisir votre code postal");
                                               return "codepostal";
                                               }
  if (window.document.formulaire.codepostal.value!="") {
     var lg =window.document.formulaire.codepostal.value.length
                                             if (lg<5){
                                              alert("Vous devez saisir un code postal valide");
                                              return "codepostal";
                                              }
                                                };

  if(window.document.formulaire.ville.value==""){
                                               alert("Vous devez saisir votre commune");
                                               return "ville";
                                               };
  if(window.document.formulaire.pays.value==""){
                                               alert("Vous devez saisir votre pays");
                                               return "pays";
                                               };											   
  /* tests sur l'adresse electronique : présence, validité selon les normes RFC */
  if(window.document.formulaire.email==""){
                                               alert("Veuillez indiquer ici votre adresse électronique!\n");
                                               return "email";
                                               }else{

      if ( ! verif_adresse( window.document.formulaire.email.value, true ) ) {
          alert ("La syntaxe de votre adresse électronique est erronée!\n");
          return "email";
      }
                                                     };

  if(window.document.formulaire.montant.value==""){
                                               alert("Vous devez saisir votre montant");
                                               return "montant";
                                               };

  if(window.document.formulaire.origine.value=="null"){
  alert("Veuillez selectionner une réponse à la question 'Comment êtes vous venu sur ce site'");
                                               return "origine";
                                               };

  /* formatage de certaines infos  */

  var MttParr=window.document.formulaire.selparr.value;
//  var frequence=window.document.formulaire.selperiode.value;
//  var MTT=MttParr * frequence;
//  window.document.formulaire.montant.value=MTT;

  return "true";
}


function verifier()
{
    var retour=tester();

    if(retour=="true")
    {
     window.document.formulaire.submit();
    }else{
     window.document.formulaire.elements[retour].focus();
	 return false;
    }
}


