//==============================================================================================================
// test de la pertinance d'une adresse mail
//==============================================================================================================

// Test de la validité d'une adresse e-mail
function checkemail(str){
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (filter.test(str))
	testresults=true
else{
	testresults=false
}
if(str=='') testresults=true;
return (testresults)
}

// Ouverture d'une fenêtre popup en 450 x 350
function openPopup(theURL) {
	var w = 450;
	var h = 350;
	var l = Math.ceil((screen.width / 2) - (w / 2));
	var t = Math.ceil((screen.height / 2) - (h / 2));
	popupW = window.open(theURL, "popupW", "resizable=1, scrollbars=1, width="+w+", height="+h+", left="+l+", top="+t);
	popupW.focus();
}

// Ouverture d'une fenêtre popup en 800 x 500
function largePopup(theURL) {
	var w = 800;
	var h = 500;
	var l = Math.ceil((screen.width / 2) - (w / 2));
	var t = Math.ceil((screen.height / 2) - (h / 2));
	popupLW = window.open(theURL, "popupLW", "resizable=1, scrollbars=1, width="+w+", height="+h+", left="+l+", top="+t);
	popupLW.focus();
}

// Affichage de la date du jour
function afficheDateJour() { 
	var datedujour, date, mois, mois1, jour, jour1, an; 
	datedujour = new Date();
	jour = datedujour.getDay()
	switch(jour){
	    case 1 : 
	        jour1 ="Lundi" 
	        break;
	    case 2 :
	        jour1 ="Mardi"
	        break;
	    case 3 :
        	jour1 ="Mercredi"
        	break;
	    case 4 :
        	jour1 ="Jeudi"
        	break;
	    case 5 :
        	jour1 ="Vendredi"
        	break;
    	case 6 : 
        	jour1 ="Samedi" 
        	break;
    	case 0 :
        	jour1 ="Dimanche"
        	break;
    }
	date = datedujour.getDate()
	mois = datedujour.getMonth()
    switch(mois+1){
    	case 1 : 
        	mois1 ="Janvier" 
        	break;
    	case 2 :
        	mois1 ="Février"
        	break;
    	case 3 :
        	mois1 ="Mars"
        	break;
    	case 4 :
        	mois1 ="Avril"
        	break;
    	case 5 :
        	mois1 ="Mai"
        	break;
    	case 6 : 
        	mois1 ="Juin" 
        	break;
    	case 7 :
        	mois1 ="Juillet"
        	break;
    	case 8 : 
        	mois1 ="Août" 
        	break;
    	case 9 :
        	mois1 ="Septembre"
        	break;
    	case 10 :
        	mois1 ="Octobre"
        	break;
    	case 11 :
        	mois1 ="Novembre"
        	break;
    	case 12 :
        	mois1 ="Décembre"
        	break;
	}
	an = datedujour.getFullYear()
	document.write(jour1, " ");
	document.write(date, " ");
	document.write(mois1 , " ");
	document.write(an, " ");
}

// Retaille dynamiquement une fenêtre
function resizeOuterTo(w,h) {
 if (parseInt(navigator.appVersion)>3) {
   if (navigator.appName=="Netscape") {
    top.outerWidth=w;
    top.outerHeight=h;
   }
   else top.resizeTo(w,h);
 }
}

// Redirige vers une URL
function redirige(lurl) {	
  self.location = lurl;  
}

// Mise à jour de la list-box en fonction du département cliqué
function majdep(obj)
{
  var depsel = obj;     
  var j
  for (j=0; j<document.chx.nodep.length; j++)
  {     
    if (document.chx.nodep.options[j].value == depsel)
    { 
      document.chx.nodep.options[j].selected=true; 
    }  
  }	 
  document.chx.submit(); 	  
}

// Fonction qui recopie le terme cliqué dans une popup 
// dans un champ de formulaire de la page parent
function recopieTerm(term, nomform, nomchamps) {
	window.opener.document.forms[nomform].elements[nomchamps].value = term;
	top.close();
}

// Confirmation de la suppression d'un enregistrement
function confirmSuppr(chemin, msg) {
	var confirmation = confirm(msg);
	if (confirmation) {
		document.location.href = chemin;
	}
}

// Test du siret
function EstSiretValide(siret) {
var estValide;
if ( (siret.length != 14) || (isNaN(siret)) )
  estValide = false;
else {
   // Donc le SIRET est un numérique à 14 chiffres
   // Les 9 premiers chiffres sont ceux du SIREN (ou RCS), les 4 suivants
   // correspondent au numéro d'établissement
   // et enfin le dernier chiffre est une clef de LUHN. 
  var somme = 0;
  var tmp;
  for (var cpt = 0; cpt<siret.length; cpt++) {
	if ((cpt % 2) == 0) { // Les positions impaires : 1er, 3è, 5è, etc... 
	  tmp = siret.charAt(cpt) * 2; // On le multiplie par 2
	  if (tmp > 9) 
		tmp -= 9;	// Si le résultat est supérieur à 9, on lui soustrait 9
	}
   else
	 tmp = siret.charAt(cpt);
	 somme += parseInt(tmp);
  }
  if ((somme % 10) == 0)
	estValide = true; // Si la somme est un multiple de 10 alors le SIRET est valide 
  else
	estValide = false;
}
return estValide;
}

// --------------------------------------------------------------------------------------------------
// function isRibValid()
// calcul/vérification de la validité d'un RIB/RIP (Relevé d'Identité Bancaire/Postale)
// accepte 3 ou 4 arguments
// - 3 arguments :    code banque (numérique)
//                    code guichet (numérique)
//                    numéro de compte (alpha)
//                La fonction retourne alors la clé RIB Calculée
// - 4 arguments :    Clé RIB en plus (numérique)
//                La fonction retourne alors un booleen indiquant si le RIB est valide
//
// Attention : la validité des arguments (code bqe numérique, numéro de compte à 11 caractères, etc ...) n'est pas contrôlée par la fonction.
// --------------------------------------------------------------------------------------------------
function isRIBvalid()
    {
    if (isRIBvalid.arguments.length>=3)
        {
        var bqe=isRIBvalid.arguments[0];
        var gui=isRIBvalid.arguments[1];
        var cpt=isRIBvalid.arguments[2].toUpperCase();
        var tab= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        var tab1="123456789123456789234567890123456789".split("");
        while (cpt.match(/\D/) != null)
            cpt=cpt.replace(/\D/, tab1[tab.indexOf(cpt.match(/\D/))]);
        var cp=parseInt    (cpt, 10);
        
        a=bqe%97;
        a=a*100000+parseInt(gui, 10);
        a=a%97;
        a=a*Math.pow(10, 11) + cp;
        a=a%97
        a=a*100;
        a=a%97
        a=97-a;
        if (isRIBvalid.arguments.length>3)
            return isRIBvalid.arguments[3]==a;
        else
            return a;
        }
    else
        {
        return false;
        }
    }


