// --------------------- Début fontion AJAX
function file(fichier){
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest(); 
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
     else 
          return(false); 
     xhr_object.open("GET", fichier, false); 
     xhr_object.send(null); 
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
}

function verif_enreg(formulaire, enreg, nom_ville_etab){
    //  nom du formulaire, nom du champ en cours, valeur du champ
        // choix / licX  / enreg               
    control_enr = eval('document.'+formulaire+"."+enreg);
    control_nom_ville_etab = eval('document.'+formulaire+"."+nom_ville_etab);
    var enreg = control_enr.value;
    if (enreg.length > 0 && enreg.length < 5){
        alert("Le N° d'AS comporte 5 chiffres !!");
        control_enr.value = "";
        control_enr.focus();
        control_enr.select();
        return(false);
    }

    //writediv(nom_div,'');
    //alert(enreg.length);  // Ok
    if(enreg.length == 5){
      //alert(enreg.length)
        // Vérifier si AS existe dans Base Etab
        if(texte = file('verif_enreg_etab_ville.php?enreg='+enreg)){
          //alert(texte);
            if(texte == 2){      // AS n'existe pas
                alert("Ce N° d'AS "+enreg+" n'existe pas.");
                //return(false);
                control_nom_ville_etab.value = "AS inexistante...";
                control_enr.focus();
                control_enr.select();
                return false;
            }else{
                //alert(texte);
                control_nom_ville_etab.value = texte;
            }
        }
    }
}


// ---------------------- Fin fontions AJAX

function checkdigit(o) {
    var s = clean(o.value);
	if(s!=o.value) o.value=s;
}

function checklic(o,formulaire,suivant) {
    var control_suivant = eval('document.' + formulaire + '.' + suivant);
    var s = clean(o.value);
	if(s!=o.value) o.value=s;
	var ch = o.value;
    if (ch.length == 5){
        control_suivant.focus();
    }
}

function clean(s){
	var s1 = s;
	for(i=0;i<s1.length;i++){
		if('0123456789'.indexOf(s1.substring(i,i+1))==-1) {s1=s1.substring(0,i)+s1.substring(i+1); i--;}
	}
	return s1;
}

function verifie_enreg(){
//var nom_form = "saisie1";
var control = eval('document.saisie1.enreg');
var _enreg = control.value;

if (_enreg.length < 5){
   alert("Le code AS doit comporter 5 caractères.");
   control.focus();
   return false;
}
}

function verif_effectif(formulaire,nb_gf,effectif){
   var control_nb_gf    = eval('document.' + formulaire + '.' + nb_gf);
   var control_effectif = eval('document.' + formulaire + '.' + effectif);
   var nb_gf = control_nb_gf.value;
   var effec = control_effectif.value;
   var v_nb_gf = parseInt(nb_gf);
   var v_effec = parseInt(effec);
   //alert(v_effec);
   if (v_effec > v_nb_gf){
      alert("Vous avez saisi plus de participants que votre effectif d'établissement.");
      control_effectif.value = "";
      control_effectif.focus();
      control_effectif.select();

      return false;
   }
}

// Les fonctions suivantes vérifient en sortie de saisie d'un champ.
// Fonction de blocage de la saisie si elle n'est pas conforme
function bloque(formulaire,champ) {
// Creation d'un raccourci pour manipuler le champ
	var control_bloque = eval('document.' + formulaire + '.' + champ);
// On se place sur le champ incrimine
        //document.getElementById(champ).champ.focus();
	control_bloque.focus();

// On selectionne le contenu pour faciliter la reprise de la saisie
	control_bloque.select();
}

// Variable marquant l'erreur (0 : tout va bien, 1 : blocage demande)
var necessaire = 0;
// Fonction de controle de validite de la saisie
// Creation d'une variable pour marquer s'il y a incoherence de saisie ou pas
var probleme = 0;

function validite(formulaire,champ,format,mini,maxi) {
//alert (format);
// Initialisation de la variable
	probleme = 0;

// Les differents tests possibles :
// On affecte a la variable 'RE' le test d'expression reguliere souhaite
//	A	: alphabetique
	if ( format == "A" ) { RE = /^([A-Za-zàâäéèêëîïôùûç]+[ ]*[-]*[A-Za-z]*)+$/;}


//	N	: numerique
	if ( format == "N" ) { RE = /^\d+$/;}

//	AN	: alphanumerique
	if ( format == "AN" ) { RE = /^[A-Za-zàâäéèêëîïôùûç\s,'0-9\-]+$/;}

//	EMAIL	: email
	if ( format == "EMAIL" ) { RE = /^[A-Za-z0-9\.\-_]+[@][A-Za-z0-9\-\.]+[\.][A-Za-z][A-Za-z][A-Za-z]?$/;}

// Creation d'un raccourci pour manipuler le champ a tester
	var controle = eval('document.' + formulaire + '.' + champ);

// On ne fera les tests que si le champ est rempli d'au moins un caractere (pas vide)
	if (controle.value.length > 0) {

// Si on ne trouve pas dans le champ l'expression reguliere recherchee
		if (!RE.test(controle.value)) {

// Envoi d'une alerte
			alert('Votre saisie est incorrecte.');

// On marque que la saisie n'est pas coherente
			probleme = 1;
			}

// Tests de longueur du champ (nombre de caracteres saisis)
// Si il a ete specifie '0', le test n'est pas effectue
		if ( mini != 0 ) {

// Si la longueur de la saisie est inferieure au minimum demande
			if ( controle.value.length < mini ) {

// Envoi d'une alerte
				alert('Vous devez saisir au moins ' + mini + ' caracteres.');
				probleme = 1;
				}
			}

// Si la longueur de la saisie est superieure au maximum demande
		if ( maxi != 0 ) {
			if ( controle.value.length > maxi ) {
				alert('Vous ne devez pas saisir plus de ' + maxi + ' caracteres.');
				probleme = 1;
				}
			}

// Si on a marque qu'il y avait un probleme
                 //alert(probleme);
                 //alert(formulaire);
                 //alert(champ);
		if ( probleme == 1 ) {

// On active le blocage du champ
			bloque(formulaire,champ);
			}else{
                  return true;
               }
		}
	}

function affiche_equipes(){
var nom_form = "choix";
var control_cat = eval('document.' + nom_form + '.categorie');
var c_cat = control_cat.options[control_cat.selectedIndex].text;
//alert(c_cat);
parent.top.location.href="liste_equipes.php?categorie=" + c_cat;
}

function f_aide(){
   var var_info="  Sur cette première page:\n"+
         " - sélectionnez l'activité et saisissez le code académique de l'AS à saisir.\n"+
         " - complétez avec les coordonnées du responsable de la section.\n"+
         " - puis cliquez sur 'Valider'\n\n"+
         "  Pour voir les AS inscrites dans une activité, sélectionnez l'activité,\n"+
         "puis cliquez sur 'Voir sections inscrites...'.\n\n"+
         "  Vous pourrez revenir sur le site pour compléter ou modifier les données d'une section."

   alert(var_info);
}

function envoi(formulaire,champ_enreg, liste_activite){
// alert("enreg "+champ_enreg+" /Activite: "+liste_activite+" /Categ: "+liste_categorie+" /ajout_sup: "+ajout_sup+" /une_toute: "+une_toute);
//alert(affichage_oui_non);
var cont_enreg = eval('document.' + formulaire + '.' + champ_enreg);
var_enr = cont_enreg.value;

var selectBox_act = document.getElementById(liste_activite);
var var_activite = selectBox_act.options[selectBox_act.selectedIndex].text;
//alert("var_enr: "+var_enr+"  var_activite: "+var_activite);

//return false ;
var_envoi = "affichage.php?enreg="+var_enr+"&activite="+var_activite;
//alert(var_envoi);
parent.location.href=var_envoi;
return
}  // Fin Function envoi()

// Test validité année
function verif_date(formulaire, annee){
 control_annne = eval('document.' + formulaire + "." + annee);

 var cAnnee = control_annne.value;
 if (cAnnee.length > 0){
  if (cAnnee.length < 10){
     alert('Format date: jj/mm/aaaa');
     probleme = 1;

  }else{
     var maDate = new Date ();
     var mois = maDate.getMonth ();
     var an = maDate.getYear ();
     var nb_j_fevrier = 28;
     var ch_31 = "01_02_03_05_07_08_10_12";  // On ajoute 02 car il est traité à part 
     //alert(EstBisextile(an));
     if (an < 1000){
          an = an + 1900;
     }
     //alert (an); 2005 Ok !
     mois = mois +1; // Janvier = 0 !!
     if (mois < 8) {           // Calcul de la catégorie à la rentré scolaire, donc à partir de Janvier, on enlève 1 an
        an = an -1;
     }
     probleme = 0;
     var annee_eleve = cAnnee.substring(6,10);
     var mois_eleve  = cAnnee.substring(3,5);
     var jour_eleve  = cAnnee.substring(0,2);
     //alert("annee_eleve: "+annee_eleve+" / "+"jour_eleve: "+jour_eleve+" / "+"mois_eleve: "+mois_eleve);

     var pos = ch_31.indexOf(format0(parseInt(mois_eleve),2));
     if (pos > 0){
         nb_j_mois = 31;
     }else{          
         nb_j_mois = 30;
     }

     if (parseInt(jour_eleve) > nb_j_mois){
         alert('Le jour est invalide.');
         probleme = 1;
     }

     if (parseInt(mois_eleve) > 12){
         alert('Le mois est invalide.');
         probleme = 1;
     }

     if (parseInt(mois_eleve) == 2){
        if (EstBisextile(annee_eleve)){  
            nb_j_fevrier = 29;
        }
        if ((parseInt(jour_eleve) > nb_j_fevrier)){
           alert('Jour invalide pour un mois de février.');
           probleme = 1;
        }   
     }

     ///// La bonne expression pour le contrôle du format de la date de naissance:
     RE = /^\d{2}([\/])+\d{2}([\/])+(\d{4})*$/;
     //alert(RE);
     if (!RE.test(cAnnee)) {
        alert('Format date: jj/mm/aaaa');
         probleme = 1;
     }
  }  // (control_an.value.length < 10)


  if ( probleme == 1 ) {
  // On active le blocage du champ
     bloque(formulaire,annee);
  }
 }
}  // test_cat(formulaire, champ, champcat){

function format0(nombre, taille) {
  if (isNaN(nombre)) return "";
  var chaine = nombre.toString();
  while (chaine.length < taille) chaine = "0" + chaine;
  return chaine;
}



