
function PopUp(url, name, width,height,center,resize,scroll,posleft,postop)
{
		if (posleft != 0) { x = posleft }
		if (postop  != 0) { y = postop  }
	
		if (!scroll) { scroll = 1 }
		if (!resize) { resize = 1 }
	
		if ((parseInt (navigator.appVersion) >= 4 ) && (center)) {
		  X = (screen.width  - width ) / 2;
		  Y = (screen.height - height) / 2;
		}
		if (scroll != 0) { scroll = 1 }
	
		var Win = window.open( url, name, 'width='+width+',height='+height+',top='+Y+',left='+X+',resizable='+resize+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no');
}


function verifEmail(mail) {

  /*** Début de déclaration de variable ***/
  //var de retour boolean true ou false
  var ret = true;
  //var où l'on stock le caractère courant au fur et a mesure de l'analyse
  var car = "";
  //var où l'on stock le caractère place avant le @
  var carAfter = "";
  //var où l'on stock le caractère place après le @
  var carBefore = "";
  //var où l'on stock le nombre de caractères total
  var nbrcar = mail.length;
  //var où l'on stock le nombre de @ trouvé
  var nbrarobase = 0;
  //var où l'on stock le nombre de . trouvé
  var nbrpoint = 0;
  //var définissant les caractères authorisés
  var goodcar = "@0123456789.-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  /*** Fin de déclaration de variable ***/

  /*** Début de boucle de l'analyse ***/
  for(cnt=0;cnt<nbrcar;cnt++) {

    //Récupération du caractère courant
    var car = mail.substr(cnt,1);

    /** Début de l'analyse du caractère courant **/
    //Si le caractère est authorisé
    if(goodcar.indexOf(car) >= 0) {

      //On initialise les variables carAfter et carBefore à vide
      carAfter = "";
      carBefore = "";

      /* Début de l'analyse du @ */
      //Si le caractère est @
      if(car == "@") {


        //Si le @ n'est pas le premier
        if((cnt-1) >= 0) {

          //Récupération du caractère placé avant le @
          carBefore = mail.substr((cnt-1),1);
        }

        //Si le @ n'est pas le dernier
        if((cnt+1)<nbrcar) {

          //Récupération du caractère placé après le @
         carAfter = mail.substr((cnt+1),1);
        }

        //Si toutes les condition de @ sont respectées
        //conditions:
        //    - cnt>0                 : n'est pas placé en première position
        //    - nbrarobase==0   : est unique
        //    - cnt<(nbrcar-4)     : se trouve à une position max de 5 avant la fin
        //      (sachant que les domaines les plus petit sont : a.fr par ex.)
        //    - !(carBefore==".") : qu'il n'y est pas de . avant le @
        //    - !(carAfter==".")   : qu'il n'y est pas de . après le @
        //    - !(carBefore=="-") : qu'il n'y est pas de - avant le @
        //    - !(carAfter=="-")   : qu'il n'y est pas de - après le @
        //    - !(carBefore=="_") : qu'il n'y est pas de _ avant le @
        //    - !(carAfter=="_")   : qu'il n'y est pas de _ après le @
        if(cnt>0 && nbrarobase==0 && cnt<(nbrcar-4) && !(carBefore==".") && !(carAfter==".") && !(carBefore=="-") && !(carAfter=="-") && !(carBefore=="_") && !(carAfter=="_")) {

          //On incrémente le @
          nbrarobase++;
        } else {

         //Affectation Faux à la var de retour
         ret = false;
         //On sort de la boucle 
         break;
        }
      }
      /* Fin de l'analyse du @ */

      /* Début de l'analyse du . */
      //Si le caractère est .
      if(car == ".") {

        //Si le . n'est pas le premier
        if((cnt-1) >= 0) {

          //Récupération du caractère placé avant le .
          carBefore = mail.substr((cnt-1),1);
        }

        //Si le . n'est pas le dernier
        if((cnt+1)<nbrcar) {

          //Récupération du caractère placé après le .
         carAfter = mail.substr((cnt+1),1);
        }

        //Si toutes les condition de @ sont respectées
        //conditions:
        //    - cnt>0                 : n'est pas placé en première position
        //    - cnt<(nbrcar-2)     : se trouve à une position max de 3 avant la fin
        //      (sachant que les domaines les plus petit sont : a.fr par ex.)
        //    - !(carBefore==".") : qu'il n'y est pas de . avant le .
        //    - !(carAfter==".")   : qu'il n'y est pas de . après le .
        //    - !(carBefore=="-") : qu'il n'y est pas de - avant le .
        //    - !(carAfter=="-")   : qu'il n'y est pas de - après le .
        //    - !(carBefore=="_") : qu'il n'y est pas de _ avant le .
        //    - !(carAfter=="_")   : qu'il n'y est pas de _ après le .
        if(cnt>0 && cnt<(nbrcar-2) && !(carBefore==".") && !(carAfter==".") && !(carBefore=="-") && !(carAfter=="-") && !(carBefore=="_") && !(carAfter=="_")) {

          //On incrémente le .
          nbrpoint++;
        } else {

          //Affectation Faux à la var de retour 
          ret = false;
          //On sort de la boucle 
          break;
        }
      }
      /* Fin de l'analyse du . */

    } else {

      //Affectation Faux à la var de retour 
      ret = false;
      //On sort de la boucle 
      break;
    }
    /*** Fin de l'analyse du caractère courant ***/
  }
  /*** Fin de boucle de l'analyse ***/

  /*** Début de l'analyse du nombre de @ et de . ***/
  //Si il n'y a aucun @ et aucun .
  //Si le 1er et le dernier caractère est .
  //Si le 1er et le dernier caractère est -
  //Si le 1er et le dernier caractère est _
  if(nbrarobase == 0 || nbrpoint == 0 || mail.substr(0,1) == "." || mail.substr(0,1) == "-" || mail.substr(0,1) == "_" || mail.substr((nbrcar-1),1) == "." || mail.substr((nbrcar-1),1) == "-" || mail.substr((nbrcar-1),1) == "_") {

    //Affectation Faux à la var de retour 
    ret = false;
  }
  /*** Fin de l'analyse du nombre de . et de @ ***/

  //Renvoi de la valeur de la var de retour
  return ret;
}
/**** Fin de fonction : verifEmail ****/
