htmlAddUser = '
\
  | \
     | \
  \
     | \
  \
     | \
  \
     | \
  \
     | \
   | \
';
passwordPatern=/^[a-zA-Z0-9]{8,16}$/;
loginPatern=/^[a-z]{8,16}$/
mailPatern=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;//https://emailregex.com/
$(function() {
$("#allRecord").on("keyup", ".pw input", function(){
  if(passwordPatern.test($(this).val()) || $(this).val() == "")
  {
    $(this).css("background-color", "");
    $('div', $(this).parent()).css("display", "none");
  }
  else
  {
    $(this).css("background-color", "red");
    $('div', $(this).parent()).css("display", "block");
  }
});
$("#allRecord").on("keyup", ".email input", function(){
  if(mailPatern.test($(this).val()))
  {
    $(this).css("background-color", "");
    $('div', $(this).parent()).css("display", "none");
  }
  else
  {
    $(this).css("background-color", "red");
    $('div', $(this).parent()).css("display", "block");
  }
});
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*~~~~~~~~~~~~~~~~TR TO DEL~~~~~~~~~~~~~~~~*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
$("#allRecord").on("click", ".delUser", function() {
  newUser = false;
   tr = $(this).parent().parent();
   var login = "";
   var sl = "";
   if(tr.find("i.editUser").length !== 0)
   {
     sl = ltrim($('.sl', tr).html())
     login = $('.login', tr).html();
   }
   else if(tr.find("i.confirmEditUser").length !== 0)
   {
     sl = $('.sl select', tr).val();
     login = $('.login', tr).html();
   }
   else
   {
     try{
       login = "New user "+$('.login input', tr).val();
       newUser = true;
     }
     catch(e)
     {
      swal("error : "+e);
      return ;
     }
    }
    if(sl == "10")
    {
      swal( "Oops" ,  "You can't del user with sl 10" ,  "error" );
      return;
    }
    login = ltrim(login);
    swal({
  title: "Are you sure to del "+login+" ?",
  text: "Once deleted, you will not be able to recover this!",
  icon: "warning",
  buttons: true,
  dangerMode: true,
})
.then((willDelete) => {
  if (willDelete) {
    if(!newUser)
      $.post("post.php", {userToDel: login}, function(){
        tr.remove();
        swal("Poof! "+login+" has been deleted!", {
          icon: "success",
        });
      });
    else {
      tr.remove();
      swal("Poof! "+login+" has been deleted!", {
        icon: "success",
      });
    }
  } else {
  }
});
});
  /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  /*~~~~~~~~~~~~~~~~TR TO EDIT~~~~~~~~~~~~~~~~*/
  /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 $("#allRecord").on("click", ".editUser", function() {
    $(this).toggleClass('fa-edit fa-check');
    $(this).toggleClass('editUser confirmEditUser');
    for(i=1; i<$("td", $(this).parent().parent()).length-1;i++)
    {
      j= $($("td", $(this).parent().parent())[i]);
      className = j.attr('class');
      if(className == "sl")
      {
        val = ltrim(j.html());
        j.html('')
      }
      else
      {
        inputOptions = '';
        if(className=="pw")
          inputOptions += 'type="password" data-oldpw="'+ltrim(j.html())+'" ';
        else if (j.attr('class') == "datene")
          inputOptions += 'type="date" '
        j.html('');
        if(className=="pw")
        {
          j.append("le mot de passe comporte entre 8 et 16 caractères parmi a..z A..Z 0..9
")
        }
      }
    }
 });
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 /*~~~~~~~~~~~~~~~~CONFIRM EDIT~~~~~~~~~~~~~~~~*/
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 $("#allRecord").on("click", ".confirmEditUser", function() {
   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
   /*~~~~~~~~~~~~~~~~CALL BACK DE LA VERIF DE MOT DE PASSE~~~~~~~~~~~~~~~~*/
   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
   function callBackVerif(data){
     var dataToSend =  new Object(); //Objet contenant les données à envoyé
     dataToSend["updatePW"] = (data===true?false:true);
     if($(".pw input", tr).val() === data || data === true) //Verif du mot de passe si nécesaire
     {
       for(i=0; i"+e ,  "error" );
         }
         console.log(data.return)
       }, "json");
     }
     else {
       swal( "Oops" ,  "Password don't match !" ,  "error" );
     }
   }
   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
   tds = $("td", $(this).parent().parent()); //Récupère les td concernant le click
   tr = $(this).parent().parent(); //Récupère le tr concernant le click
   that = this;
   if(mailPatern.test($(".email input", tr).val()) && (passwordPatern.test($(".pw input", tr).val()) || $(".pw input", tr).val() ==""))
     if ($(".pw input", tr).val() === "") {
       callBackVerif(true);
     }
     else {
       swal({
         closeOnClickOutside: false,
         closeOnEsc: false,
         content: {
           element: "input",
           attributes: {
             placeholder: "Confirmer le mot de passe",
             type: "password",
           },
         },
       }).then(callBackVerif);
     }
    else
      swal( "Oops" ,  "Input don't respect rules !" ,  "error" );
 });
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 /*~~~~~~~~~~~~~~~~ADD USER~~~~~~~~~~~~~~~~*/
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 $("#allRecord").on("click", ".fa-user-plus", function(){
   $(this).parent().parent().before(htmlAddUser);
 });
 $("#allRecord").on("click", ".confirmNewUser", function(){
 });
 $("#allRecord").on("click", ".delNewUser", function(){
   tr = $(this).parent().parent();
   tr.remove();
 });
});
//J'avais plein d'espace a droite en récupérent mon innerHTML
//https://stackoverflow.com/questions/24282158/removing-the-white-space-at-the-start-of-the-string
function ltrim(str) {
  if(str == null) return str;
  return str.replace(/^\s+/g, '');
}