// Détection du navigateur
var bIE = (navigator.appName.indexOf('Netscape') == -1 )?true:false;

// Filtre Lettre
// N'autorise que la saisie de lettre
function bF_Filtre_Lettre(oEvent) {

  if (bIE) oEvent = event;

  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
  if ( keyCode != 13){
    sCaractere = String.fromCharCode(keyCode).toUpperCase()
 
    if ( !(sCaractere.charCodeAt(0) >= ("A").charCodeAt(0) && sCaractere.charCodeAt(0) <= ("Z").charCodeAt(0)) && sCaractere != " " ) {
      oEvent.returnValue = false;
      return false;
    }
  }
  else{
    oEvent.returnValue = false;
    return false;
  } 
}

function bF_minusculeEtChiffres(oEvent) {

  if (bIE) oEvent = event;

  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
  sCaractere = String.fromCharCode(keyCode);

  if ( keyCode != 13 || isNAN( sCaractere ))
  {
    if ( sCaractere.charCodeAt(0) <97 || sCaractere.charCodeAt(0) > 122) 
    {
    	if ( sCaractere.charCodeAt(0) <48 || sCaractere.charCodeAt(0) > 57) 
    	{
      	oEvent.returnValue = false;
      	alert("Ne saisissez que des minuscules et des chiffres !!");
      	return false;
   	}
    }
  }
}



function bF_Filtre_NoSpace(oEvent)
{
	if (bIE) oEvent = event;
	var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
	if ( keyCode != 13)
	{
    	sCaractere = String.fromCharCode(keyCode)
    	if(sCaractere==" ")
    		oEvent.returnValue = false;
    	if(sCaractere=="@")
    		oEvent.returnValue = false;
    	if(sCaractere=="\'")
    		oEvent.returnValue = false;
    	if(sCaractere=="\"")
    		oEvent.returnValue = false;
    	if(sCaractere=="é")
    		oEvent.returnValue = false;
    	if(sCaractere=="è")
    		oEvent.returnValue = false;
    	if(sCaractere=="à")
    		oEvent.returnValue = false;
    	if(sCaractere=="ç")
    		oEvent.returnValue = false;
    	if(sCaractere=="#")
    		oEvent.returnValue = false;
    	if(sCaractere=="&")
    		oEvent.returnValue = false;
    }
}


// Filtre Alphabétique
// N'autorise pas la saisie de chiffre
function bF_Filtre_Alpha(oEvent){

  if (bIE) oEvent = event;

  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
  if ( keyCode != 13){
    sCaractere = String.fromCharCode(keyCode)
 
    if ( !isNaN(sCaractere) && sCaractere != " " || sCaractere == "\"" ){
      oEvent.returnValue = false;
      return false;
    }
  }
  else{
    oEvent.returnValue = false;
    return false;
  } 
}

// Filtre Entier
// N'autorise que la saisie de nombre entier
function bF_Filtre_Entier(oEvent) {

  if (bIE) oEvent = event;

  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
  if ( keyCode != 13){
    if ( keyCode != 8) { // BackSpace
      sCaractere = String.fromCharCode(keyCode)
 
      if ( isNaN( sCaractere ) || sCaractere == " ") {
          oEvent.returnValue = false;
         return false;
      } 
    }
  }
  else{
    oEvent.returnValue = false;
    return false;
  }
}

// Filtre Décimal
// N'autorise que la saisie de nombres entiers ou décimaux
function bF_Filtre_Decimal( oEvent){

  if (bIE) oEvent = event;

  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
  if ( keyCode == 44){
    alert("Vous devez utiliser le point comme séparateur de décimal");
  }
  if ( keyCode != 13){
    if ( keyCode != 8){ // BackSpace
      if ( keyCode != 46){ // point
        sCaractere = String.fromCharCode(keyCode)
 
        if ( isNaN( sCaractere ) || sCaractere == " "){
          oEvent.returnValue = false;
          return false;
        }
      }
    }
  }
  else{
    oEvent.returnValue = false;
    return false;
  }
}

// Filtre Date
// N'autorise que la saisie de nombres entiers et du '/'
function bF_Filtre_Date( oEvent){

  if (bIE) oEvent = event;

  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;

  if ( keyCode != 13){
    if ( keyCode != 8){ // BackSpace
      if ( keyCode != 47){ // '/'
        sCaractere = String.fromCharCode(keyCode)
 
        if ( isNaN( sCaractere ) || sCaractere == " "){
          oEvent.returnValue = false;
          return false;
        }
      }
    }
  }
  else{
    oEvent.returnValue = false;
    return false;
  }
}

// Filtre total
// N'autorise aucune saisie sauf backspace
function bF_Filtre_Total(oEvent){

  if (bIE) oEvent = event;
  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
  if ( keyCode != 8){ // BackSpace
    sCaractere = String.fromCharCode(keyCode)
    oEvent.returnValue = false;
    return false;
  }
}


//fonction qui desactive toute action pour l'evenement qui l'appelle
function bF_Disable(oEvent){
  if (bIE) oEvent = event;
  oEvent.returnValue = false;
  return false;
}

// FiltreEntree
// N'autorise pas la saisie de entree
function bF_Filtre_Entree(oEvent){

  if (bIE) oEvent = event;
  var keyCode = (bIE) ? oEvent.keyCode : oEvent.which;
  if ( keyCode == 13){
    oEvent.returnValue = false;
    return false;
  }
}


function MailValid (emailStr) 
{

var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<&éçà/°^'\"#|^~?!§€{}è+>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


var matchArray=emailStr.match(emailPat)


if (emailStr == '')
{  emailValide=0;
 //alert("Le champs de l'adresse E-mail est vide");
 return true;}

else
{

 if (matchArray==null) 
 {
  alert("L'adresse E-Mail :\n\t" + emailStr + "\n est incorrecte.");
  emailValide=0;
  return false;
 } 

 var user=matchArray[1]
 var domain=matchArray[2]

 if (user.match(userPat)==null) 
 {
  alert("L'adresse E-Mail :\n\t" + emailStr + "\n est incorrecte.");
  emailValide=0;
  return false;
 }


 var domainArray=domain.match(domainPat)

 if (domainArray==null) 
 {
  alert("L'adresse E-Mail :\n\t" + emailStr + "\n est incorrecte.");
  emailValide=0;
  return false;
 }

 var atomPat=new RegExp(atom,"g")
 var domArr=domain.match(atomPat)
 var len=domArr.length

 if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
 {
  alert("L'adresse E-Mail :\n\t" + emailStr + "\n doit se terminer par 3 lettres de domaine ou par 2 lettres de pays. (Ex : wanadoo.fr et yahoo.com)");
  emailValide=0;
  return false
 }

 if (len<2) 
 {
  var errStr="L'adresse E-Mail :\n\t" + emailStr + "\n doit se terminer par 3 lettres de domaine ou par 2 lettres de pays. (Ex : wanadoo.fr et yahoo.com)";
  alert(errStr);
  emailValide=0;
  return false
 }
emailValide=1;
 return true;

}
}
//========================================================
// function to test if the RECIPIENT contains only numbers
    function isANumber(entry) {
        for(var i = 0; i < entry.length; i++){
            if (entry.charAt(i) != " ") {
                if ((!parseInt(entry.charAt(i), 10)) && (entry.charAt(i) != "0")) {
                    return false;
                }
            }
            else
                return false;
        } 
        return true;
    }

function isTelFixe(str) {
        var rNumTel = new RegExp("(^0[1,2,3,4,5,8,9]([0-9]{2}){4}$)");
        return rNumTel.test(str);
}


function isTelPortable(str) {
        var rNumTel = new RegExp("(^06([0-9]{2}){4}$)");
        return rNumTel.test(str);
}


function isTelSfr(str) {
        var rNumTel = new
RegExp("^(06((03)|(09)|(1[0-9])|(2[0-5]))([0-9]{2}){3})$");
        return rNumTel.test(str);
}


    function checkString(entry) {
        for(var i = 0; i < entry.length; i++){
            if (entry.charAt(i) != " ") {
                return true;
            }		
        }
		return false;
    }
	

	function PlusLongQue(entry, mini)  {
		if(entry.length >= mini) 
		{return true;}
		
		else 
		{
		return false;
		}
	}


function StrimMam(entry) {
		i=0;
	
		while(i<entry.length)
			{
				if(entry.charAt(i) != " ")
				{
					entry = entry.substr(i,entry.length-i);
					break;
				}
				i++;
			}

		i=entry.length;
		while(i>=0)
			{
				if(entry.charAt(i-1) != " ")
				{
					entry = entry.substr(0,i);
					break;
				}
				i--;
			}

		while(entry.indexOf("  ")!=-1)
			{
				entry = entry.replace(/  /, " ");
			
			}
		return entry;
}

function enleveEspace(entry) {
	i=0;
	entry2 = new String();
	entry3 = new String();
	while(i<entry.length)
	{
		if(entry.charAt(i) != " " && entry.charAt(i) != "." && entry.charAt(i) != "-" && entry.charAt(i) != ")" && entry.charAt(i) != "(")
		{
			entry2 = entry.substr(i,1);
			entry3 = entry3 + entry2;
			//alert(entry2+" | "+entry3);
		}
		i++;
	}
	return entry3;
}

/**
 * Compteur pour zone TEXTAREA
 */

// Intervalle du compteur Script développé par : Anouar MOUMEN
var compteurInterval ;

// Début du compteur
function compteurInit(id_textarea, id_compteur, maxlength)
{
	compteurUpdate(id_textarea, id_compteur, maxlength) ;
	document.getElementById(id_textarea).onfocus = function()
		{
			compteurInterval = setInterval("compteurUpdate('"+id_textarea+"', '"+id_compteur+"', "+maxlength+");", 100) ;
		}
	document.getElementById(id_textarea).onblur = function()
		{
			clearInterval(compteurInterval) ;
		}
}

// Exécution du compteur Script développé par : Anouar MOUMEN
function compteurUpdate(id_textarea, id_compteur, maxlength)
{
	var actuallength = document.getElementById(id_textarea).value.length ;
	var title = document.getElementById(id_compteur).title ;
	var el_compteur = document.getElementById(id_compteur) ;
	nbcaracter = maxlength - actuallength;
	title = title.replace(/%1\\\$s/, (nbcaracter)) ;
	title = title.replace(/%2\\\$s/, actuallength) ;
	title = title.replace(/%3\\\$s/, maxlength) ;
	if(nbcaracter <0 )
	{
		document.getElementById(id_textarea).style.background='red';
		document.getElementById(id_textarea).value = document.getElementById(id_textarea).value.substr(0, maxlength);
	}
	else if(nbcaracter >=0 )
		document.getElementById(id_textarea).style.background='#FFFFFF';
	el_compteur.innerHTML = title ;
	//classRemove(el_compteur, 'compteur-ko') ;
	//classRemove(el_compteur, 'compteur-ok') ;
	//classAdd(el_compteur, actuallength > maxlength ? 'compteur-ko' : 'compteur-ok') ;
	
}
