// Fonction qui déselectionne tous les éléments du select
// dont le nom est passé en argument

function clear_select(name) {

  var i;

  var select = document.choix[name];

  for(i = 0; i < select.length; i++) {

    if(select[i].selected == true) {

      select[i].selected = false;

    }

  }


}



// Fonction appelée lorsque l'utilisateur clique sue le bouton "Recommencer" 
 
function recommencer() {


  var form = document.choix;

  var t = form.START_DATE;
  var u = form.FIRST_DATE.value;

  if(t.value != u)
    t.value = u;


  t = form.END_DATE;
  u = form.LAST_DATE.value;

  if(t.value != u)
    t.value = u;


  t = form.START_DATE_JO;
  u = form.FIRST_DATE_JO.value;

  if(t.value != u)
    t.value = u;


  t = form.END_DATE_JO;
  u = form.LAST_DATE_JO.value;

  if(t.value != u)
    t.value = u;


  clear_select("FIELD_TYPE"); 
      
  clear_select("FIELD_AUTEUR");


  t = form.SEARCH_TERM;
      
  if(t.value != '')
    t.value = '';


  t = form.SEARCH_TERM_intitule;

  if(t.value != '')
    t.value = '';

  t = form.numero_du_texte;

  if(t.value != '')
    t.value = '';

}


      // Fonction pour convertir une date en millisecondes
      function convert_date(d) {

	var a = d.split('/');
	var dt = new Date(parseInt(a[2]), parseInt(a[1]) -1, parseInt(a[0]));
	return dt.getTime();
      }

     // Fonction appelée pour vérifier qu'une date est valide

     // Arguments : d => la date à valider, sous forme de chaîne de caractères
     // ref => la date de référence, sous forme de chaîne de caractères
     // how => le sens de la comparaison entre d et ref : 0 siginifie inférieur ou égal, 1 siginifie supérieur ou égal
     // message : chaîne de caractères à ajouter dans le message

     // Si d n'est pas inférieur ou égal (respectivement supérieur ou égal) à ref, on modifie la valeur de d pour qu'elle soit égale à ref

     function check_date(d, ref, how, message) {

	// Commencer par vérifier si la date est au bon format

	var a = d.value.split('/');

	if( (a.length != 3) || a[0].length == 0 || a[1].length == 0 || a[2].length == 0 ) {
	  
	  confirm("La date que vous avez entrée est incorrecte\nVeuillez entrer une date selon le format J(J)/M(M)/AAAA");
	  d.value = ref.value;

	}

	// Inférieur ou égal
	if(how == 0) { 

	    if(convert_date(d.value) > convert_date(ref.value) ) {

	      confirm("La date " + message + "\nne doit pas être postérieure au " + ref.value + " !");
            d.value = ref.value;
            }

	      
	}
	// Supérieur ou égal
	else if(how == 1) {

            if(convert_date(d.value) < convert_date(ref.value) ) {

              confirm("La date " + message + "\n ne doit pas être antérieure au " + ref.value + " !");
	    d.value = ref.value;
	    }

	}
     }

// Fonction appelée pour vérifier qu'un intervalle de dates est bien valide
// Arguments : 
// - start => le début de l'intevalle
// - end => la fin de l'intevalle
// ' ref => la date de référence à substituer à la date erronée 
// - what => lequel des deux premiers arguments modifier au cas où l'intervalle ne serait pas valide
function check_range(start, end, ref, what) {

  // Ne rien faire

  return;

  // Si l'intervalle est valide, on quitte imédiatement

  if( convert_date(start.value) <= convert_date(end.value) )
    return;

  // L'intervalle n'est pas valide On donne un message d'erreur

  confirm("Intervalle de dates incorrect : " + start.value + " - " + end.value + " !");

  var d;

  if(what == 0) d = start;
  else d = end;

  d.value = ref.value;
}
