//Fonctions JAVASCRIPT Formations

//Fonctions liées aux contrôles des formulaires dossiers
function EnregistrerDossier(){
//vérifie si la valeur true qui correspond à une bonne saisie est envoyée
  if (verifier_dossier())
    {
      document.formCreationDossier.submit();
    }

}

//Vérification des champs du formulaire de saisie d'un nouveau dossier
function verifier_dossier(){
	if (document.formCreationDossier.num_dossier.value==''){
		alert('*** Le numéro de dossier ne doit pas être vide !  ***');
		document.formCreationDossier.num_dossier.focus();
		return false;
	}
   if (document.formCreationDossier.mdp.value==''){
		alert('*** Le mot de passe ne doit pas être vide !  ***');
		document.formCreationDossier.mdp.focus();
		return false;
	}
	if (document.formCreationDossier.conf_mdp.value==''){
		alert('*** Le mot de passe de confirmation ne doit pas être vide !  ***');
		document.formCreationDossier.conf_mdp.focus();
		return false;
	}
	if (document.formCreationDossier.mdp.value != document.formCreationDossier.conf_mdp.value){
		alert('*** Les mots de passes saisis ne sont pas identiques !  ***');
		document.formCreationDossier.mdp.value = "";
		document.formCreationDossier.conf_mdp.value = "";
		document.formCreationDossier.mdp.focus();
		return false;
	}
	if (document.formCreationDossier.nom.value==''){
		alert('*** Le nom ne doit pas être vide !  ***');
		document.formCreationDossier.organisme_form.focus();
		return false;
	}
	if (document.formCreationDossier.prenom.value==''){
		alert('*** Le prénom ne doit pas être vide !  ***');
		document.formCreationDossier.diplome_form.focus();
		return false;
	}	
	return true;
}

//Fonctions JAVASCRIPT Formations

//Fonctions liées aux contrôles des formulaires dossiers
function ModifierDossier(){
//vérifie si la valeur true qui correspond à une bonne saisie est envoyée
  if (verifier_modif_dossier())
    {
      document.formInfosPerso.submit();
    }

}

//Vérification des champs du formulaire de saisie d'une nouvelle formation
function verifier_modif_dossier(){
	if(document.formInfosPerso.date_prem_dem.value !="" && document.formInfosPerso.date_prem_dem.value !="00-00-0000"){
		if(!(isDate_dossier(document.formInfosPerso.date_prem_dem.value))){
			alert('*** La date de première demande doit être de la forme jj-mm-aaaa ***');
			document.formInfosPerso.date_prem_dem.focus();
			return false;
		}
	}
	if(document.formInfosPerso.date_valid.value !="" && document.formInfosPerso.date_valid.value !="00-00-0000"){
		if(!(isDate_dossier(document.formInfosPerso.date_valid.value))){
			alert('*** La date de validation doit être de la forme jj-mm-aaaa ***');
			document.formInfosPerso.date_valid.focus();
			return false;
		}
	}
	if(document.formInfosPerso.date_com_appui1.value !="" && document.formInfosPerso.date_com_appui1.value !="00-00-0000"){
		if(!(isDate_dossier(document.formInfosPerso.date_com_appui1.value))){
			alert('*** La date de la première commission d\'appui doit être de la forme jj-mm-aaaa ***');
			document.formInfosPerso.date_com_appui1.focus();
			return false;
		}
	}
	if(document.formInfosPerso.date_com_appui2.value !="" && document.formInfosPerso.date_com_appui2.value !="00-00-0000"){
		if(!(isDate_dossier(document.formInfosPerso.date_com_appui2.value))){
			alert('*** La date de la deuxième commission d\'appui doit être de la forme jj-mm-aaaa ***');
			document.formInfosPerso.date_com_appui2.focus();
			return false;
		}
	}
	if(document.formInfosPerso.date_naiss.value !="" && document.formInfosPerso.date_naiss.value !="00-00-0000"){
		if(!(isDate_dossier(document.formInfosPerso.date_naiss.value))){
			alert('*** La date de naissance doit être de la forme jj-mm-aaaa ***');
			document.formInfosPerso.date_naiss.focus();
			return false;
		}
	}
	if(document.formInfosPerso.inscr_anpe.value !="" && document.formInfosPerso.inscr_anpe.value !="00-00-0000"){
		if(!(isDate_dossier(document.formInfosPerso.inscr_anpe.value))){
			alert('*** La date d\'inscription à l\'ANPE doit être de la forme jj-mm-aaaa ***');
			document.formInfosPerso.inscr_anpe.focus();
			return false;
		}
	}
	if(document.formInfosPerso.email.value!=''){
		var email   = document.formInfosPerso.email.value;
		var verif = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$/
		if (verif.exec(email) == null){
			alert("*** Votre adresse email est incorrecte (Format : xxx[.]xxx@xxxxxx.xxx)***");
			return false;
		}
 	}
	return true;
}


//Fonction qui active les mots de passe
function activer_mdp_dossier(){
	if (document.formInfosPerso.changer_mdp.checked == true){
		document.formInfosPerso.new_mdp.disabled = false;
		document.formInfosPerso.conf_mdp.disabled = false;
	}else{
		document.formInfosPerso.new_mdp.disabled = true;
		document.formInfosPerso.conf_mdp.disabled = true;
	}
}


function isDate_dossier(date) {
  // Cette fonction permet de vérifier la validité d'une date au format jj-mm-aa ou jj-mm-aaaa

  d = date;
  //if (d == "") // si la variable est vide on retourne faux
  // return false;

  e = new RegExp("^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$");

  if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
    return false; // Si pas bon, retourne faux

  // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
  j = parseInt(d.split("-")[0], 10); // jour
  m = parseInt(d.split("-")[1], 10); // mois
  a = parseInt(d.split("-")[2], 10); // année

  // Si l année n est composée que de 2 chiffres on complète automatiquement
  if (a < 1000) {
    if (a < 89){
    	a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
    }else{
    	a+=1900;
    }
  }

  // Définition du dernier jour de février
  // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
  if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
  else fev = 28;

  // Nombre de jours pour chaque mois
  nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

  // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
  return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}
