// affiche la date de l'ordinateur de l'utilisateur
// ******************************************************************************
function fct_date_du_jour_utilisateur (vLangue) {
  var maintenant = new Date();
  // jour en lettre et numero
  var jour_numero = maintenant.getDate();
  var jour_dans_semaine = maintenant.getDay();
  if (vLangue == "fr")  var jour_semaine = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
  else  var jour_semaine = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
  // mois
  var mois_annee = maintenant.getMonth();
  if (vLangue == "fr")  var mois = new Array("janvier","f&eacute;vrier","mars","avril","mai","juin","juillet","ao&ucirc;t","septembre","octobre","novembre","d&eacute;cembre");
  else  var mois = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
  // annee
  var annee = maintenant.getFullYear();
  // date aujourd hui
  if (vLangue == "fr")  date_aujourdhui = jour_semaine[jour_dans_semaine] + " " + jour_numero + " " + mois[mois_annee] + " " + annee;
  else  date_aujourdhui = jour_semaine[jour_dans_semaine] + ", " + mois[mois_annee] + " " + jour_numero + ", " + annee;
  // return date_aujourdhui;
  document.write(date_aujourdhui);
}

// ************************************************************************************
// CHRISTELLE : annuaire des formations appelé par le formulaire de recherche à droite
// récupère les pays sélectionnés dans la liste déroulante et renseigne choix_pays (hidden)
// avec une liste des valeurs sélectionnés
// fait un submit du formulaire
// ************************************************************************************
function avant_submit_formation (nomForm) {
// on rempli la variable hidden qui contient la liste des pays choisis

	var result = '';
	var vForm = document.forms[nomForm];
	var total =  vForm.elements['nbligne'].value - 1;

	for (i=0; i < total; i++) {
		if (vForm.elements['selection_pays'][i].selected==true){
			if (result == ""){
				result=vForm.elements['selection_pays'].options[i].value;
			}else{
				result=result + "," + vForm.elements['selection_pays'].options[i].value;
			}
		}
	}
	vForm.elements['choix_pays'].value = result;
	vForm.submit(); 
}
// ************************************************************************************
// CHRISTELLE : annuaire des formations appelé par le formulaire de recherche au centre
// récupère les pays sélectionnés dans la liste déroulante et renseigne choix_pays (hidden)
// avec une liste des valeurs sélectionnés
// retourne true pour faire le submit
// ************************************************************************************
function verifRechercheFormation (nomForm) {
	// on rempli la variable hidden qui contient la liste des pays choisis
	var result = '';
	var vForm = document.forms[nomForm];
	var total =  vForm.elements['nbligne'].value - 1;

	for (i=0; i < total; i++) {
		if (vForm.elements['selection_pays'][i].selected==true){
			if (result == ""){
				result=vForm.elements['selection_pays'].options[i].value;
			}else{
				result=result + "," + vForm.elements['selection_pays'].options[i].value;
			}
		}
	}
	vForm.elements['choix_pays'].value = result;
	return true;
}
// ************************************************************************************
// CHRISTELLE : saisie du formulaire des anciens
// vérifie les champs en saisie obligatoire
// vérifie qu'un moins un thème a été sélectionné
// récupère les thèmes sélectionnés dans la liste déroulante et renseigne result_theme (hidden)
// avec une liste des valeurs sélectionnés
// retourne true si tous les champs ok
// ************************************************************************************
function verifSaisieFormAncien (nomForm) {

	var saisieok = false;
	var vForm = document.forms[nomForm];
	
	// verif champs obligatoires
	if (verifChampTxt(vForm,'civilite')){
		if (verifChampTxt(vForm,'nom')) {
			if (verifChampTxt(vForm,'prenom')) {
				if (verifChampTxt(vForm,'date_naissance')) {
					if (verifChampTxt(vForm,'nationalite')){
						if (verifChampTxt(vForm,'adresse')){
							if (verifChampTxt(vForm,'zip')){
								if (verifChampTxt(vForm,'city')){
									if (verifListSelect(vForm,'pays_liste')){
										if (verifChampTxt(vForm,'tel_portable')){
											if (verifChampTxt(vForm,'username')){
												if (verifChampTxt(vForm,'form_annee1')){
													if (verifChampTxt(vForm,'form_diplome1')){
														if (verifChampTxt(vForm,'form_ecole1')){
															if (verifChampTxt(vForm,'form_pays1')){
																saisieok = 1;
															}else{
																msg = "Indicate the country in which the educational institution is based.";
															}
														}else{
															msg = "Indicate the educational institution that delivered the diploma.";
														}
													}else{
														msg = "Indicate the diploma obtained.";
													}
												}else{
													msg = "Indicate the year the diploma was obtained.";
												}
											}else{
												msg = "Indicate the e-mail address.";
											}
										}else{
											msg = "Indicate your mobile.";
										}
									}else{
										msg = "Indicate your country of residence.";
									}						
								}else{
									msg = "Indicate your city.";
								}										
							}else{
								msg = "Indicate your postal code.";
							}		
						}else{
							msg = "Indicate your adress.";
						}		
					}else{
						msg = "Indicate the nationality.";
					}
				}else{
					msg = "Indicate the date of birth.";
				}
			}else{
				msg = "Indicate the first name.";
			}
		}else{
			msg = "Indicate the last name.";
		}
	}else{
		msg = "Indicate the marital status.";
	}

	if (!saisieok){
		alert(msg);
	}
	
	if (saisieok==true){
		if (!verifFmtDate(vForm.elements['date_naissance'].value)){
			alert("The date of birth is incorrect.");
			saisieok = false;
		}
	}
	
	// vérifie l'adresse email de l'utilisateur
	if (saisieok==true){
		if (!verifEmail(vForm,'username')) {
			alert("The e-mail address is incorrect.");
			saisieok = false;
		}
	}
	
	// vérifie si au moins un thème dans la liste de choix multiples (thème de compétences)
	if (saisieok==true){
		var result = '';
		var saisie_theme=0;
		var total =  vForm.elements['nbligne'].value - 1;
		for (i=0; i < total; i++) {
			if (vForm.elements['choix_theme'][i].selected==true){
				saisie_theme=1;
				if (result == ""){
					result=vForm.elements['choix_theme'].options[i].value;
				}else{
					result=result + "," + vForm.elements['choix_theme'].options[i].value;
				}
			}
		}
		vForm.elements['result_theme'].value = result;
		
		if (saisie_theme==0){
			alert("Choose at least one professional skill.");
			saisieok = false;
		}
	}
	
	// vérifie l'adresse email de la société si il a été saisi
	if (saisieok==true){
		if (verifChampTxt(vForm,'email_pro')) {
			if (!verifEmail (vForm,'email_pro')) {
				saisieok = false;
				alert("The e-mail address of your company is incorrect.");
			}
		}
	}
	
	if (saisieok==true){
		saisieok = verifCaseAcocher(vForm,'accepte',1);
		if (saisieok == false){
			alert("You have not checked the box 'I have read and accept the statement above.'");
		}
	}
	return saisieok;	
}
	
// verif champs texte non vide
// ******************************************************************************
function verifChampTxt(vForm,vChampTxt) {

var txtsansespaces = vForm.elements[vChampTxt].value;
   txtsansespaces = suppEspacesDebut(txtsansespaces);
   txtsansespaces = suppEspacesFin(txtsansespaces);
   var veriftxt = addslashes(addbr(txtsansespaces));
   if (veriftxt=="") {
     // vide champs txt pour supprimer espaces eventuels
     vForm.elements[vChampTxt].value = '';

	 return false;
   } else {
	 vForm.elements[vChampTxt].value = txtsansespaces;

     return true;
   }
}

// verif selection cases a cocher
// ******************************************************************************
function verifCaseAcocher(vForm,vCase,vNbCases) {
  caseselect = false;
  //nbcases = eval("document." + vForm + "." + vCase + ".length");
  for(i=1;i<=vNbCases;i++) 
  { 
    //unecase = eval("document." + vForm + "." + vCase + i);
	refCase = vCase + i;
    unecase = vForm.elements[refCase];
      if(unecase.checked) {
        return true; }
  } 
  return caseselect;
}

// verif adresse email
// ******************************************************************************
function verifEmail (vForm,vEmail) {
   email = vForm.elements[vEmail].value;
   var reg = /^([a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+)$/;
   return reg.test(email);
}

// verif selection dans une liste
// ******************************************************************************
function verifListSelect (vForm,vSelect) {
   selection = vForm.elements[vSelect].value;
   if (selection == "nothing" || selection == "") {
     return false;
   } else {
     return true;
   }  
}

// verif le format d une date (jj/mm/aaaa)
// ******************************************************************************
function verifFmtDate(vDate) {

   var anneeMin=1900;
   var separateur="/";
   var mois=(vDate.substring(0,2));
   var jour=(vDate.substring(3,5));
   var annee=(vDate.substring(6));
   var fmtValid=1;
   // verif jour
   if ( ((isNaN(jour))||(jour<1)||(jour>31)) && (fmtValid==1) ) {
     fmtValid=0;
   }
   // verif mois
   if ( ((isNaN(mois))||(mois<1)||(mois>12)) && (fmtValid==1) ) {
     fmtValid=0;
   }
   // verif annee
   if ( ((isNaN(annee))||(annee<anneeMin)) && (fmtValid==1) ) {
     fmtValid=0;
   }
   // verif separateur
   if ( ((vDate.substring(2,3)!=separateur)||(vDate.substring(5,6)!=separateur)) && (fmtValid==1) ) {
     fmtValid=0;
   }

   // verif date existe
   if (fmtValid==1) {
     var dateOk=new Date(annee,mois-1,jour);
     jourOk=dateOk.getDate();
     moisOk=dateOk.getMonth()+1;
     anneeOk=dateOk.getYear();
     if (anneeOk<=100) {anneeOk=1900+anneeOk}
     if ( (jour!=jourOk)||(mois!=moisOk)||(annee!=anneeOk) ) {
       alert("La date '"+vDate+"' n'existe pas !");
       fmtValid=0;
     }
   }
   return fmtValid;
}

// affiche msg alerte saisie champs obligatoires
// ******************************************************************************
function alert_saisie_incomplete (vLangue) {
	if (vLangue == 0)  alert("Please enter required information.");
	else  alert("Veuillez renseigner les champs de saisie obligatoires.");
}


// affiche msg alerte format email incorrect
// ******************************************************************************
function alert_email_incorrect (vLangue) {
	if (vLangue == 0)  alert("[en] L'adresse email est incorrecte.");
	else  alert("L'adresse email est incorrecte.");
}

// supprime les espaces en début de texte
// ******************************************************************************
function suppEspacesDebut(vTxt) {
  if (vTxt!="") {
    if (vTxt.charAt(0)==" ") {
	  while (vTxt.charAt(0) == " ") {
	    vTxt = vTxt.substring(1,vTxt.length);
	 }
    }
  }
  return vTxt;
}


// supprime les espaces en fin de texte
// ******************************************************************************
function suppEspacesFin(vTxt) {
  if (vTxt!="") {
    if (vTxt.charAt(vTxt.length-1)==" ") {
	  while (vTxt.charAt(vTxt.length-1) == " ") {
	    vTxt = vTxt.substring(0,(vTxt.length-1));
	 }
    }
  }
  return vTxt;
}


// remplace les retours à la ligne par des <br>
// ******************************************************************************
function addbr(ch) {
   ch = ch.replace(String.fromCharCode(13),"<br>");
   ch = ch.replace(String.fromCharCode(10),"");
   return ch
}


// ajoute des slashes pour les apostrophes
// ******************************************************************************
function addslashes(ch) {
   ch = ch.replace(/\\/g,"\\\\") 
   ch = ch.replace(/\'/g,"\\'") 
   ch = ch.replace(/\"/g,"\\\"")
   return ch
}

