function ValidForm(nForm)
{
// ****************************************************
// FONCTION UNIVERSELLE POUR FORCER LA SAISIE
// DES TOUS LES TYPES DE CHAMPS D'UN FORMULAIRE
// Plus plusieurs validations de champs.
// ****************************************************
// twValide 2.2 (octobre 2001)
// Création : Django (Oznog) Blais
// http://www.trucsweb.com
//
// LIBRE DE DROITS À LA CONDITION DE LAISSER
// CETTE REMARQUE.
//
// INSTRUCTION
// Dans le fichier "valide.htm" ou sur le site à
// http://www.trucsweb.com/Javascript/
// (cliquer > Fonction de validation twValide)
// ***************************************************
  var RdCkOk   = false;
  var RdMess   = "";
  var CbMess   = "";
  var CbCkOk   = false;

  var msg = "";
  var Error = "_____________________________________________________________\n\n";
      Error+= "Le formulaire n\'a pas été envoyé, vous devez remplir tous les champs obligatoires.\n";
      Error+= " Veuillez corriger et envoyer de nouveau le formulaire. Merci!\n";
      Error+= "_____________________________________________________________\n\n";
      Error+= "- Vous devez entrer le(s) champ(s) suivant :"
      
  for (var i=0; i<nForm.elements.length; i++) {
    if (varValid.indexOf(nForm.elements[i].id) == -1 && InputTyp.indexOf(nForm.elements[i].type) == -1) {
       if (nForm.elements[i].type == 'select-one') {
        if (nForm.elements[i].selectedIndex == 0) {
          msg += "\n         " + nForm.elements[i].id;
        }
      }else
      if (nForm.elements[i].type == 'select-multiple') {
        if (nForm.elements[i].selectedIndex < 0) {
          msg += "\n         " + nForm.elements[i].id;
        }
      } else
      if (nForm.elements[i].type == 'text') {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].id;
        }
      } else
      if (nForm.elements[i].type == 'textarea') {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].id;
        }
      } else
      if (nForm.elements[i].type == 'password') {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].id;
        }
      } else
      if (nForm.elements[i].type == 'radio') {
        if (nForm.elements[i].checked) {
            RdCkOk = true;
            RdMess = "";
        }
        if (RdCkOk == false) {
          RdMess = "\n         " + nForm.elements[i].id;
        }
      } else
      if (nForm.elements[i].type == 'checkbox'&&CbCkOk == false) {
        if (nForm.elements[i].checked) {
          CbCkOk = true;
          CbMess = "";
        }
        if (CbCkOk == false) {
            CbMess = "\n         " + nForm.elements[i].id;
        }
      } 	
    }
  }
  if (msg.length != 0||RdMess.length != 0||CbMess.length != 0) {
    msg += RdMess + CbMess; 
    alert(Error + msg + "\n");
    return false;
  }
}

//-----------------------------------------------------------------------------------------

function SubmitForm(Url, Formulaire)
{
	Formulaire.action = Url; 
	Formulaire.submit();
}

function confirmaction(myURL,myMES)
{
  if(confirm(myMES))
		location.href=myURL;
}

function MM_openBrWindow(theURL,winName,features)
{ 
  window.open(theURL,winName,features);
}

//fonction qui permet la Sélectionner et la désélectionner des checkboxs
function CheCk_All(Formulaire)
{   
Leng = Formulaire.elements.length; 
 if (Formulaire.elements[0].checked==false)
    for (i=0; i < Leng; i++)
		Formulaire.elements[i].checked = true; 
  else
   for (i=0; i < Leng; i++)
		Formulaire.elements[i].checked = false; 
}

//Suite de la fonction : CheCk_All
//fonction qui permet de valider la sélection afin de rediriger le résultat vers la page 'myURL'
function confirm_checked(myURL,Formulaire)
{
   Leng = Formulaire.elements.length; 
   n=0;
 
 for (i=0; i< Leng; i++)
     if(Formulaire.elements[i].type=="checkbox")
		   if(Formulaire.elements[i].checked) n=n+1;
  
  if(n==0){ 
   alert('Il faut choisir au moins un élément à supprimer'); 
   return (false); 
   }
 else{
	if(confirm('Voulez vous vraiment supprimer ce(s) élément(s)'))
			location.href=myURL;
     else 
	   return (false);
	}
 }

function ValidNum(Valeur)
{
  return (/^\+?[0-9]+$/.test(Valeur));
}

function Valide_date(nDate,nA1,nA2,nFormat)
{
  // Valide_date(this,1950,2020,'jj-mm-aaaa')"
  // La date valide doit être entre 1950 et 2020.
  // vous pouvez changer l'interval.
  // Format valide: (ne pas utiliser d'autre format...
  // - jj-mm-aaaa
  // - mm-jj-aaaa
  // - aaaa-mm-jj
  // Noter que vous devriez indiquer à l'usager le format valide...
  var ok = "oui";
  var nChar;
  var aDate;
  var nJ;
  var nM;
  var nA;
  var jMax = 31;
  nAccepte = "0123456789-";
  if (nDate.length > 0) {
    if (nDate.length < 8 || nDate.length > 10) ok = "non";
    for (var i=0; i<nDate.length; i++) {
      nChar = "" + nDate.substring(i, i+1);
      if (nAccepte.indexOf(nChar) == "-1") ok = "non";
    }
    if (ok == "oui") {
      aDate = nDate.split("-");
      if (nFormat == "jj-mm-aaaa") { nJ = aDate[0]; nM = aDate[1]; nA = aDate[2];
      } else if (nFormat == "mm-jj-aaaa") { nJ = aDate[1]; nM = aDate[0]; nA = aDate[2];
        } else if (nFormat == "aaaa-mm-jj") { nJ = aDate[2]; nM = aDate[1]; nA = aDate[0]; }
      if ((nJ < 1 || nJ > jMax) || (nM < 1 || nM > 12) || (nA < nA1 || nA > nA2)) ok = "non";
      else {
        if (nM == 2) { 
          if (bissextile(nA) == true) { jMax = 29 } else { jMax = 28 }
        }
        if ((nM == 1 || nM == 3 || nM == 5 || nM == 7 || nM == 8 || nM == 10 || nM == 12)) jMax = 31
        if ((nM == 4 || nM == 6 || nM == 9 || nM == 11)) jMax = 30
        if (nJ < 1 || nJ > jMax) ok = "non";
      }
    }
    
	if(ok == "non") 
 	   return false; 
  }
}

function ValidRadio(Formulaire)
{
  var Trouve = false;
  var CkbxOk = false;

  for(var i=0; i<Formulaire.elements.length; i++)
    if(Formulaire.elements[i].type == 'radio' && CkbxOk == false){
		if ((Formulaire.elements[i].checked) &&(Formulaire.elements[i].value != ""))
			CkbxOk = true;
		 else{	
  		    Msg_Erreur = "Merci de sélectionner au moins un élément !";
		}
    }	
	
	if(CkbxOk != true){
		alert(Msg_Erreur);
		return false;
	}	
}

function ShowHide(ID)
{
  for (Ind = 1; Ind <= 3; Ind++) { //Masquer tous les <tr> qui possèdent l'id suivant Tab_(x)
    document.getElementById('Tab_'+Ind).style.display = 'none';
  }
  
  if (ID != 0) { //Afficher que le <tr> qui a comme ID une valeur != 0	 
   document.getElementById('Tab_'+ID).style.display = 'inline';
  } 
}

//-------------------------------------------------------------------------------------------------------------
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-------------------------------------------------------------------------------------------------------------
function HideAndShow(VarTab){
 if(document.getElementById(VarTab).style.display == "inline")
	 document.getElementById(VarTab).style.display="none"; 
	 else  
	  document.getElementById(VarTab).style.display="inline";
}
