var nbredates; // initialisée après le chargement et/ou par le php

function formation_app(inpt){

var f=document.getElementById("learning_collector");
if (inpt=="public_equipe")
  {
  if(f.public_equipe.checked)
    {
      f.public_equipe_detail.style.display="inline";
      f.public_autre_detail.style.display="none";
    }else{
      f.public_equipe_detail.style.display="none";
    }
  }

if (inpt=="public_autre")
  {
  if(f.public_autre.checked)
    {
      f.public_autre_detail.style.display="inline";
      f.public_equipe_detail.style.display="none";
      
    }else{
      f.public_autre_detail.style.display="none";
    }
  }

if (inpt=="contact_autre0")
  {
  if(f.contact_autre0.checked)
    {
      //document.getElementById('contact_autre1').style.display="inline";
      document.getElementById('contact_autre2').style.display="inline";
      f.contact_meme.checked=false;
    }else{
      //document.getElementById('contact_autre1').style.display="none";
      document.getElementById('contact_autre2').style.display="none";
      f.contact_meme.checked=true;
    }
  }
if (inpt=="contact_meme")
  {
  if(f.contact_meme.checked)
    {
      //document.getElementById('contact_autre1').style.display="none";
      document.getElementById('contact_autre2').style.display="none";
      f.contact_autre0.checked=false;
      f.contact_nom.value   = f.rempl_nom.value;
      f.contact_tel.value   = f.rempl_tel.value;
      f.contact_email.value = f.rempl_email.value;
    }else{
      //document.getElementById('contact_autre1').style.display="inline";
      document.getElementById('contact_autre2').style.display="inline";
      f.contact_autre0.checked=true;
      f.contact_nom.value   = "";
      f.contact_tel.value   = "";
      f.contact_email.value = "";
    }
  }
}
function nettoie_champ(champ){
var f=document.getElementById("learning_collector");
//si on trouve "Pr\u00E9cisez :" tout seul, on vide le champ
if (champ=="public_autre_detail")
  {
  if (f.public_autre_detail.value.length <= 10 && f.public_autre_detail.value.lastIndexOf("cisez :")!=-1)
    {
     f.public_autre_detail.value="";
    }
  }
if (champ=="public_equipe_detail")
  {
  if (f.public_equipe_detail.value.length <= 10 && f.public_autre_detail.value.lastIndexOf("cisez :")!=-1)
    {
     f.public_equipe_detail.value="";
    }
  }
}

/* ******************************* les controles pr\u00E9liminaires **********************************/

function dioform_ctrl(f){

// return true ici pour voir les erreurs en php


if (!controle_validite_champs_dates(f))return false;

if (f.formation_titre.value.length==0)
              {
              omission_df(f.formation_titre,"Vous n'avez pas saisi le titre de la formation");
              return false; 
              }
if(f.rempl_nom.value.length==0)
              {
              omission_df(f.rempl_nom,"Vous n'avez pas indiqu\u00E9 votre nom");
              return false;
              }
if(f.rempl_tel.value.length==0 || f.rempl_tel.value.length<10)
              {
              omission_df(f.rempl_tel,"Vous n'avez pas indiqu\u00E9 votre num\u00E9ro de t\u00E9l\u00E9phone\r\n ou le num\u00E9ro est incorrect");
              return false;
              }
if(f.rempl_email.value.length==0)
              {
              omission_df(f.rempl_email,"L'adresse email est manquante");
              return false;
              }
if (!syntaxeMail_df(f.rempl_email.value))
              {
              omission_df(f.rempl_email,"L'adresse email est erronn\u00E9e");
              return false;
              }
              
if(f.prop_entite.options[f.prop_entite.options.selectedIndex].value==0
&& f.prop_nom_liste[f.prop_nom_liste.options.selectedIndex].value.length==0)              {
              omission_df("nofield", "Vous n'avez pas choisi l'entit\u00E9");
              return false;
              }
if(f.prop_nom.value.length==0 && f.prop_nom_liste[f.prop_nom_liste.options.selectedIndex].value.length==0)
              {
              omission_df(f.prop_nom,"Vous n'avez pas indiqu\u00E9 le nom de l'entit\u00E9");
              return false;
              }
if(f.prop_type.options[f.prop_type.options.selectedIndex].value==0)
              {
              omission_df("nofield", "Vous n'avez pas choisi la rubrique de la formation");
              return false;
              }
if(f.formation_obj.value.length==0)
              {
              omission_df(f.formation_obj,"Vous n'avez pas défini l'objectif de la formation");
              return false;
              }
if(f.formation_obj.value.length>500)
              {
              omission_df(f.formation_obj,"Votre description trop longue : "+f.formation_obj.value.length+" caract\u00E8res. La limite est de 500.");
              return false;
              }
              
// cases : il faut au moins une des trois
//var ctrl_methode =
if(!f.conference.checked && !f.atelier.checked && !f.groupe.checked){
              omission_df(f.conference,"Vous n'avez pas indiqu\u00E9 la m\u00E9thode"); // case
              return false;
              }

// cases : il faut au moins une des trois

if(!f.public_tous.checked && !f.public_equipe.checked && !f.public_autre.checked )
              {
              omission_df("nofield","Vous n'avez pas pr\u00E9cis\u00E9 le public concern\u00E9");
              return false;
              }
              
// doit être compl\u00E9t\u00E9e si public_equipe checked
if(f.public_equipe.checked)
              {
              if(f.public_equipe_detail.value.length==0 || f.public_equipe_detail.value.lastIndexOf("cisez :")>0 )
                            {
                            omission_df(f.public_equipe_detail,"Vous n'avez pas pr\u00E9cis\u00E9 le public concern\u00E9");
                            return false;
                            }
            
              if(f.public_equipe_detail.value.length>100  )
                            {
                            omission_df(f.public_equipe_detail,"Description des \u00E9quipes trop longue : "+f.public_equipe_detail.value.length+" caract\u00E8res. La limite est de 100.");
                            return false;
                            }
              }

              
              

// doit être compl\u00E9t\u00E9e si public_autre checked
if(f.public_autre.checked)
              {
              if(f.public_autre_detail.value.length==0 || f.public_autre_detail.value.lastIndexOf("cisez :")>0)
                            {
                            omission_df(f.public_autre_detail,"Vous n'avez pas pr\u00E9cis\u00E9 le public concern\u00E9");
                            return false;
                            }

              if(f.public_autre_detail.value.length>100)
                            {
                            omission_df(f.public_autre_detail,"Description du public trop longue :"+public_autre_detail.value.length+" caract\u00E8res. La limite est de 100");
                            return false;
                            }
              
              }

if(f.intervenant.value.length==0)
              {
              omission_df(f.intervenant,"Vous n'avez pas indiqu\u00E9 d'intervenant(s)");
              return false;
              }
if(f.lieu.value.length==0)
              {
              omission_df(f.lieu,"Vous n'avez pas indiqu\u00E9 de lieu");
              return false;
              }
if(f.lieu.value.length>150)
              {
              omission_df(f.lieu,"Adresse trop longue :"+f.lieu.value.length+" caract\u00E8res. La limite est de 150.");
              return false;
              }




if(f.part_mini.value.length==0)
              {
              omission_df(f.part_mini,"Vous n'avez pas indiqu\u00E9 le nombre minimum de participants");
              return false;
              }
if(f.part_maxi.value.length==0)
              {
              omission_df(f.part_maxi,"Vous n'avez pas indiqu\u00E9 le nombre maximum de participants");
              return false;
              }
if(f.dateHdyn0.value.length==0)
              {
              omission_df(f.dateHdyn0,"Vous n'avez indiqu\u00E9 ni date ni heure");
              return false;
              }
              


// les frais ne sont pas obligatoires

if(f.frais.value.length>0)
              {
                   // valeur non nulle, autres élements attendus :
                      if(f.ordre_chq.value.length==0)
                      {
                        omission_df(f.ordre_chq,"Veuillez pr\u00E9ciser l'ordre du ch\u00E8que");
                        return false;
                      }
                      if(f.dest_chq.value.length==0)
                      {
                      omission_df(f.dest_chq,"Veuillez indiquer les nom et adresse de la personne qui enregistre les inscriptions");
                      return false;
                      }
              }

if(f.dest_chq.value.length>200)
              {
              omission_df(f.dest_chq,"Informations trop longues : "+f.dest_chq.value.length+" caract\u00E8res. La limite est de 200.");
              return false;
              }


if(!f.contact_autre0.checked && !f.contact_meme.checked)
                            {
                            omission_df(f.contact_meme,"Vous n'avez pas pr\u00E9cis\u00E9 le contact");
                            return false;
                            }
if(f.contact_autre0.checked)
              {

              if(f.contact_nom.value.length==0)
                            {
                            omission_df(f.contact_nom,"Vous n'avez pas indiqu\u00E9 le nom du contact");
                            return false;
                            }
              if(f.contact_tel.value.length==0 || f.contact_tel.value.length<10)
                            {
                            omission_df(f.contact_tel,"Vous n'avez pas indiqu\u00E9 le num\u00E9ro de t\u00E9l\u00E9phone du contact\r\nou le num\u00E9ro est incorrect");
                            return false;
                            }

              // email contact non obligatoire
              if(f.contact_email.value.length>0)
                            {
                            /*
                            omission_df(f.contact_email,"Vous n'avez pas indiqu\u00E9 l'adresse email du contact");
                            return false;
                            }
                            */
                            if (!syntaxeMail_df(f.contact_email.value))
                              {
                              omission_df(f.contact_email,"L'adresse email du contact est erronn\u00E9e");
                              return false;
                              }
                            }
              }


f.preview.value=1;
return true;
}

function validation(f){
         f.valider.value=1;
}

/* ************************ gestion des ajouts dynamiques de dates *******************/
function ajouteDate(){
// 1 - init

  nbredates=document.getElementById('nbdates').value*1;
  var i;
  var nomChamp = new Array();

// 2 - boucle
  var recupValeurs = new Array();
  for (i = 0; i < nbredates; i++){
      nomChamp[i]= 'dateHdyn'+i;

      // si l'élément existe
      if (document.getElementById(nomChamp[i])){
         recupValeurs[i]=document.getElementById(nomChamp[i]).value;

         // ne pas ajouter de champ si pas de valeur (ou l'espace ajouté pour le php) dans le dernier
         if (recupValeurs[i]=="" || recupValeurs[i]==" " )
            {
            return;
            }
         }
  }

// 3 - ajouter le champ
   document.getElementById('nbdates').value = nbredates+1;
   nouveauchamp = '<br /><input type="text" class="textinput" name="dateHdyn'+nbredates+'" id="dateHdyn'+nbredates+'" size="48"value=""  />';
   document.getElementById('dates_a_rallonge').innerHTML += nouveauchamp+"\n";
   nbredates++;

// 4 - repoker les valeurs
for (i = 0; i < nbredates-1; i++){
    if (document.getElementById(nomChamp[i])){
       document.getElementById(nomChamp[i]).value = recupValeurs[i]
       }
    }
}



// validité des champs de date ajoutés dynamiquement
function controle_validite_champs_dates(f){
var i;
var nElems = f.elements.length;
for (i=0; i<nElems; i++){
    if (f.elements[i].id.lastIndexOf('dateHdyn')>-1)
    {
          // vérifier qu'il y a un contenu à partir de 1 sinon bug php : on met un espace vide
            {
             if (!f.elements[i].value)
                {
                alert (f.elements[i].id+" vide !");
                f.elements[i].value = " ";
                }
              }
      }
  }
return true;
}


// les boites d'options des noms de proposants
function change_liste_options(){
document.getElementById('prop_liste_noms_div').style.display="none"; // cache la boite d'option des noms
document.getElementById('prop_nom_div').style.display="inline"; // affiche le champ de saisie manuelle
document.getElementById('prop_entite_div').style.display="inline"; // affiche la boite des entites
}
















/*********************** fonctions annexes *****************************/
function incorrect_df(){
alert("Attention : le formulaire est incomplet ou erron\u00E9.\n Merci de v\u00E9rifier vos informations avant de recommencer.")
return;
}

function omission_df(frm_champ,mess) {
         if (frm_champ !="nofield") // prevoir qu'on ne peut pas faire de focus pour les selects sous la meme forme
         {
            frm_champ.focus();
            frm_champ.select();
         }
        alert(mess);
        return;
}

function syntaxeMail_df(m){
var lg=m.length;
for(i=0; i<lg; ++i){
    if (m.charAt(i)=="@"&&i==0)return false;
    if (m.charAt(i)=="@"&&i==lg-1)return false;
    if (m.charAt(i)=="@"){
        for(j=i; j<lg; j++){
             if(m.charAt(j)=="."&& j==lg-1)return false;
             if(m.charAt(j)==".") return true;
            }//fin de j
        }//fin de if @ trouve
    }//fin de i
}//fin de fonction


function remplissage_auto(lFormulaire){
/* remplissage automatique pour les tests appelé en dev par squelette article 8 (onload) */

// on ne remplit que si c'est vide pour ne pas effacer les modifs, apportées par le php
var f=document.getElementById(lFormulaire);
if (f.formation_titre.value.length==0){
    f.formation_titre.value="TEST - rempli par le js";
    f.rempl_nom.value="Michel";
    f.rempl_tel.value="01 58 56 45 78";
    f.rempl_email.value="micheldev@hotmail.fr";
    //f.prop_entite.value="Secteur"; // init incorrect selectedIndex
    f.prop_nom.value="Service diocésain des vocations";
    //f.prop_type.value="Aider à Bâtir une formation à domicile"; // init incorrect selectedIndex
    f.formation_obj.value="Apprendre à tout un chacun à se servir correctement et avec facilit\u00E9 d'un logiciel de messagerie";
    f.conference.checked=true;
    f.atelier.checked=true;
    f.groupe.checked=true;
    f.public_tous.checked=true;
    f.public_equipe.checked=true;
    f.public_equipe_detail.value="les membres des \u00E9quipes cpm";
    f.public_autre.checked=true;
    f.public_autre_detail.value="toutes les bonnes volont\u00E9s";
    f.intervenant.value="Mr le professeur d'informatique";
    f.lieu.value="24 rue Monmartel - 91800 Brunoy";
    f.part_mini.value="24";
    f.part_maxi.value="150";
    //f.dateheure.value="mardi 18 janvier 2009 à partir de 14h30 jusqu'à 17h";
    f.dateHdyn0.value="mardi 18 janvier 2009 à partir de 14h30 jusqu'à 17h";
    f.frais.value="100.50";
    f.ordre_chq.value="M. le Tr\u00E9sorier Principal";
    f.dest_chq.value="MM. les organisateurs associ\u00E9s, 34 rue de la Bourdonnais 91458 Tigery les Essards";
    f.contact_meme.checked=true;
    f.contact_autre0.checked=true;
    f.contact_nom.value="Responsable des formations informatiques";
    f.contact_tel.value="06 57 45 12 89";
    f.contact_email.value="cama.marche-il@ok.com";
    }
}



