//***********************************************************************************
// Date de création : 03/11/2004
// Dernière date de modification : 
// Auteur : SRO / CRAM de Nantes
// Commentaires : Contrôle des zones de saisie HTML pour éviter certains caractères
//  partie "client"
//  la fonction appelée peut contrôler tous les champs des formulaires
//  et ce quels que soient : le nombre de champs, le nombre de formulaires, et le nom
//  des formulaires
// Toutes ces fonctions ne font qu'appuyer ce qui existe déjà côté "serveur" (et qui 
//  constitue évidemment le véritable contrôle)
// Date de création : 10/12/2007
// Dernière date de modification : 
// Auteur : CBO / CRAM de Nantes
// Commentaires : ajout de fonctions de contôle de format mail et de comparaison de deux valeurs
// Commentaires : modification de la liste blanche

// 22/09/2010 modification BV : ajout controle copie
//***********************************************************************************

var copy = false;

// Fonction de contrôle de caractères autorisés à la saisie
function ControleListeBlanche()
{
 // liste des caractères autorisés en saisie
 // de a à z, de A à Z, de 0 à 9, espace, @, accents etc

 //var listeblanche = /^[a-zA-Z0-9 @,.'àâäéèêëîïôöùûü_-]{0,}$/
 var listeblanche = /[^a-zA-Z0-9 @,.çàâäéèêëîïôöùûü_:!?\n\r-]/g;
 
 var result;

 for(j=0;j<document.forms.length;++j) { 
  for(i=0;i<document.forms[j].length;++i) {
   str = document.forms[j].elements[i].type.toLowerCase();

   // Seuls les types text et textarea sont étudiés, et seulement s ils ont été saisis
   if ((str == "text" || str == "textarea") && (document.forms[j].elements[i].value.length > 0)) {
    //alert("Zone à l'étude : " + document.forms[j].elements[i].name + " valeur " + document.forms[j].elements[i].value);

    result = document.forms[j].elements[i].value;
    
    // Suppression des RC éventuels (qui sont autorisés à la saisie, dans les textarea)
    //result = result.replace(/\n/g," ");
    //result = result.replace(/\r/g," ");
    
    // Tout caractère qui n'est pas dans la liste blanche est remplacé
    result = result.replace(listeblanche, "");
    
    document.forms[j].elements[i].value = result;
    //alert(result);
   }
  }
 }
}

// Fonction de contrôle de caractères NON autorisés à la saisie
// Il vaut mieux utiliser les listes blanches que les listes noires (cf conclusion audit)
function ControleListeNoire()
{
// liste des caractères non autorisés en saisie
// les caractères ?! n'y sont pas pour le moment
var listenoire = /[&%*#~^£§²<>()"|/\\{}=+\[\];:^$']/
var result;

for(j=0;j<document.forms.length;++j)
{ 
 for(i=0;i<document.forms[j].length;++i)
 {
  str = document.forms[j].elements[i].type.toLowerCase();
 
  // Seuls les types text et textarea sont étudiés, et seulement s ils ont été saisis
  if ((str == "text" || str == "textarea") && (document.forms[j].elements[i].value.length > 0))
  {
   //alert("Zone à l'étude : " + document.forms[j].elements[i].name + " valeur " + document.forms[j].elements[i].value);

   result = document.forms[j].elements[i].value;
   result = listenoire.exec(result);
   if (result != null)
   {alert("Le caractère " + result[0] + " n'est pas autorisé à la saisie.");
    document.forms[j].elements[i].focus();
    return false}
  }
 }
}
 return true;
}


function ControleConfirmation(v1,v2){
	rsl = false;
	if (v1==v2){
		rsl = true;
	}else{
		alert("Les deux adresses doivent être identiques.");
	}
	return rsl;
}

function ControleFormatMail(mail){
rsl = false;
if (!/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+\.[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$/.exec(mail)) {
	alert("L'adresse mail saisie n'est pas valide, vérifiez votre saisie.");		
}else{
	rsl = true;
}

return rsl;
}



function whichButton(event) 
{ 
if (event.button==2)//RIGHT CLICK 
{ 
   alert("Le menu contextuel est inactif pour l'adresse E-mail"); 
} 
  
} 
function noCTRL(e) 
{ 
var code = (document.all) ? event.keyCode:e.which; 
  
var msg = "La fonction copier/coller est interdite pour l'adresse E-mail"; 
if (parseInt(code)==17) //CTRL 
{ 
alert(msg); 
window.event.returnValue = false; 
} 
} 


function testcopy()
{
   if(copy==true)
   {
        alert("La fonction copier/coller est interdite pour la saisie de l'adresse E-mail de confirmation");
         document.getElementById("mail2").value ="";
          document.getElementById('mail2').focus();
    }
    copy=false;
}


