function fc_valide(nForm) {
  var RdCkOk = false;
  var RdMess = "";
  var CbMess = "";
  var CbCkOk = false;
  var msg = "";
  var crr = "";
  var msgf = "";

  var fra = "_____________________________________________________________\n\n";
      fra += "Le formulaire n\'a pas été envoyé, vous devez remplir tous les champs\n";
      fra += "obligatoires ou corriger des erreurs pour envoyer de nouveau le formulaire.\n";
      fra += "_____________________________________________________________\n\n";

  var obg = "* Vous devez entrer le(s) champ(s) suivant :"

  for (var i=0; i<nForm.elements.length; i++) {
      if (nForm.elements[i].type != 'submit' && nForm.elements[i].type != 'reset' && nForm.elements[i].type != 'button' && nForm.elements[i].type != 'hidden') {

      /** if (nForm.elements[i].type == 'select-one') {
         // alt n'est pas une propriété reconnue par Netspace, prise en compte de id 
       if (nForm.elements[i].id.indexOf("_n") == -1) {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].id.substr(8);
	  // msg += "\n         " + nForm.elements[i].id;
	  // msg += "\n         " + nForm.elements[i].alt;
        }
       }
      }
      else */
      if (nForm.elements[i].type == 'select-multiple') {
         /** alt n'est pas une propriété reconnue par Netspace, prise en compte de id */
       if (nForm.elements[i].id.indexOf("_n") == -1) {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].id.substr(8);
        }
       }
      }
      else
       if (nForm.elements[i].type == 'text') {
        fc_trim(nForm.elements[i]);
        /** Ajout pour déterminer si il s'agit d'un champ oblig. */
        if (nForm.elements[i].alt.indexOf("_n") == -1) {
         if (nForm.elements[i].value == '') {
                 msg += "\n         " + nForm.elements[i].alt;
          }
        }
      }
      else
      if (nForm.elements[i].type == 'file') {
        fc_trim(nForm.elements[i]);
        /** Ajout pour déterminer si il s'agit d'un champ oblig. */
        if (nForm.elements[i].alt.indexOf("_n") == -1) {
         if (nForm.elements[i].value == '') {
           msg += "\n         " + nForm.elements[i].alt;
          }
        }
      } else
      if (nForm.elements[i].type == 'textarea') {
         /** alt n'est pas une propriété reconnue par Netspace, prise en compte de id */
         fc_trim(nForm.elements[i]);
       if (nForm.elements[i].id.indexOf("_n") == -1) {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].id.substr(8);
        }
       }
      } else
      if (nForm.elements[i].type == 'password') {
            fc_trim(nForm.elements[i]);
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].alt;
        }
      } else
      if (nForm.elements[i].type == 'radio') {
        if (nForm.elements[i].checked) {
            RdCkOk = true;
            RdMess = "";
        }
        if (RdCkOk == false) {
          RdMess = "\n         " + nForm.elements[i].alt;
        }
      } 
      /** 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].alt;		*/
      /**  }								*/
      /**}								*/
    }
  }
  if (msg.length != 0||RdMess.length != 0||CbMess.length != 0||crr.length != 0) {
    msgf += RdMess + CbMess + fra;
    if (msg.length != 0) {
        msgf += obg + msg + "\n ";
    }
    if (crr.length != 0) {
        msgf += crr + "\n ";
    }
    alert(msgf);
    return false;
  }
  return true;
}
function fc_select(nForm,action) {
  for (var i=0; i<nForm.elements.length; i++) {						
      if (nForm.elements[i].type == 'checkbox') {	
        if (action=="On") {			
       	  nForm.elements[i].checked=true;				
        } else 	nForm.elements[i].checked=false;							
      }								
  }
  return true;
}
/** Fonction permettant de vérifier que les champs ne sont pas des espaces */
function fc_trim(nChamp) {
  var nb_spaces=0;
  var n_Refuse=" ";
  var nChar;
  for (var i=0; i<nChamp.value.length; i++) {
    nChar = "" + nChamp.value.substring(i, i+1);
        if (n_Refuse.indexOf(nChar)=="0") {
                nb_spaces = nb_spaces + 1;
        }
  }
        if (nb_spaces==nChamp.value.length) {
                nChamp.value="";
                return false;
        }
  return true;
}

/** Fonction permettant de vérifier que les champs ne sont pas des espaces */
function fc_trimfield(nChamp) {
  var stringToTrim = nChamp.value;
  nChamp.value=stringToTrim.replace(/^\s+|\s+$/g,''); 
}

function fc_compare_password(nPass1,nPass2) {
  // Ajouter ce code dans la saisie du deuxième mot de passe
  // onChange="twCompare_password(this.form.pass1,this);"
  // Noter que le premier mot de passe doit avoir le nom "pass1"
  if (nPass1.value != nPass2.value) {
    nPass1.value = "";
    nPass2.value = "";
    nPass1.focus();
    alert ("Vous n'avez pas saisi le même mot de passe deux fois.\n Veuillez entrer à nouveau le mot de passe.");
        return false;
  }
  return true;
}

function fc_submit(nForm) {
        if (fc_valide(nForm)==true) {
                nForm.submit();
        }
}

function fc_reset(nForm) {
                nForm.reset();
}

function fc_redirectwithconfirmation(msg,url) {
     if (confirm(msg)==1) {
         document.location.href=url;
     }
}

function fc_checknumeric(field,resetvalue)
{
        pattern = /^[0-9]*$/;
        if(pattern.test(field.value)==false)
        {
            alert("Valeur "+ field.value +" incorrecte pour le champ \'" + field.title+"\'\nLa valeur ne peut être que numérique.");
            field.value = resetvalue;
            field.focus();
            return false;
        }
}

function fc_checkemail(sEmail) {
   var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
   if (filter.test(sEmail)) { return true; }
   else{
      alert("L'adresse est invalide, le format est : <nom>@<domaine>.<extension>\nLes caractères spéciaux ne sont pas autorisés.");
      return false;
   }
}

function fc_checkphonenumber(sPhoneNumber) {
   var filter=/\d{2}.\d{2}.\d{2}.\d{2}.\d{2}/;

   if (filter.test(sPhoneNumber)) { return true; }
   else{
      alert("Le numéro de téléphone est invalide, le format est : XX.XX.XX.XX.XX\nLes caractères spéciaux et alphabétiques ne sont pas autorisés.");
      return false;
   }
}

function fc_checkip(sadrIP) {
   var filter=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
   var retCode=true;
   if (filter.test(sadrIP)) { 
        var myArray = sadrIP.split(/\./);
        if (myArray[0] > 255 || myArray[1] > 255 || myArray[2] > 255 || myArray[3] > 255) {
            retCode = false; }
        if (myArray[0] == 0 && myArray[1] == 0 && myArray[2] == 0 && myArray[3] == 0) {
            retCode = false; }
    }
   else{ retCode = false; }
   
   if (retCode == false) {
      alert("L'adresse IP est invalide, le format est : XXX.XXX.XXX.XXX\nLes caractères spéciaux et alphabétiques ne sont pas autorisés,\nles valeurs nulles ou supérieures à 255 ne sont pas autorisées.");
      return false;     	
	} else { return true; }
}

function fc_allowonlynumbers(e) {
	var key = window.event ? e.keyCode : e.which;
	
	if(key == 13 || key == 8 || key == 9 || key == 46)
		return true;

	var keychar = String.fromCharCode(key);
	reg = /\d/;
	return reg.test(keychar);
}

