/**
 * Met à jour le tableau de recherche simple
 * @param string asQuery valeur du champ + methode SQL codée qui permet de générer le tableau
 * @param boolean abLoadPage 'true'  indique la fonction est exécutée au chargement de la page,
 *                           'false' indique la fonction est exécutée sur le changement de recherche simple
 * @version 1.0
 * @since 10.10.2005
 * @author Fabien Grandgérard
 * @access private
 */
function updateFilter(asQuery, abLoadPage)
{
   if (asQuery.indexOf('#') > 0)
   {
      laQuery = asQuery.split('#');
      var http = getHTTPObject();
      http.open("GET", "../../library/ajax/filter.php?asQuery="+laQuery[1], true);
      /*http.onreadystatechange = handleHttpResponse;*/
      http.onreadystatechange = function()
      {
         if (http.readyState == 4)
         {
            //document.getElementById('div_load_message').style.display = 'none';
            if (http.status == 200)
            {
               results = http.responseText;
               var liste = results.split("#+#");
               var tableauRechercheSimple = new Array(liste.length);
               for (var i = 0 ; i< liste.length ; i++)
               {
                  var sousliste = liste[i].split("#-#");
                  tableauRechercheSimple[sousliste[0]] = sousliste[1];
               }
               changeFilter(tableauRechercheSimple, abLoadPage)
            }
            else
            {
                alert('Un problème est survenu dans le chargement des données.');
            }
         }
         /*else
         {
            //document.getElementById('div_load_message').style.display = 'block';
         }*/
      }
      http.send(null);
      working = true;
   }
   else
   {
      changeFilter(new Array(), abLoadPage)
   }
}


/**
 * Affiche ou cache la listebox et charge la listbox de recherche simple
 * @param string aaValues tableau de valeurs de la recherche
 * @param boolean abLoadPage 'true'  indique la fonction est exécutée au chargement de la page,
 *                           'false' indique la fonction est exécutée sur le changement de recherche simple
 * @version 1.0
 * @since 10.10.2005
 * @author Fabien Grandgérard
 * @access private
 */
function changeFilter(aaValues, abLoadPage)
{
   if (aaValues.length > 0)
   {
      var valeurListe;
      if (abLoadPage == true)
      {
         valeurListe = document.filter.lsFilterValue1.value;
         document.filter.lsFilterValue1.value = document.filter.lsFilterValue2.options[document.filter.lsFilterValue2.options.selectedIndex].innerHTML;
         if (document.filter.lsFilterValue1.value == '&nbsp;')
         {
            document.filter.lsFilterValue1.value = '';
         }
      }
      else
      {
         valeurListe = document.filter.lsFilterValue2.value;
      }
      if (document.getElementById('tbFilterValue').style.display == 'none')
      {
         document.filter.lsFilterValue1.value = document.filter.lsFilterValue2.options[document.filter.lsFilterValue2.options.selectedIndex].innerHTML;
      }

      while (document.filter.lsFilterValue2.options.length != 0)
      {
         lgth = document.filter.lsFilterValue2.options.length - 1;
         document.filter.lsFilterValue2.options[lgth] = null;
      }

      document.filter.lsFilterValue2.options.length=1;
      var o = new Option("","");
      document.filter.lsFilterValue2.options[0]=o;
      for (var i in aaValues)
      {
         if (aaValues[i] != null)
         {
            o = new Option(aaValues[i],i);
            document.filter.lsFilterValue2.options.length++;
            document.filter.lsFilterValue2.options[document.filter.lsFilterValue2.options.length-1]=o;
         }
      }
      if (valeurListe != "")
      {
         for (var i = 1 ; i < document.filter.lsFilterValue2.options.length ; i++)
         {
            if (   document.filter.lsFilterValue2.options[i].value == valeurListe
                && (abLoadPage || document.filter.lsFilterValue1.value == document.filter.lsFilterValue2.options[i].innerHTML)
                )
            {
               document.filter.lsFilterValue2.options.selectedIndex = i;
               break;
            }
      }
         document.filter.lsFilterValue2.value = document.filter.lsFilterValue2.options[document.filter.lsFilterValue2.options.selectedIndex].value;
      }

      if (document.getElementById('lbFilterValue').style.display == 'none')
      {
         document.getElementById('tbFilterValue').style.display = 'none';
         document.getElementById('lbFilterValue').style.display = 'block';
      }
   }
   else if (document.getElementById('tbFilterValue').style.display == 'none')
   {
      if (document.getElementById('lbFilterValue').style.display == 'block')
      {
         if (document.filter.lsFilterValue2.value != "")
         {
            document.filter.lsFilterValue1.value = document.filter.lsFilterValue2.options[document.filter.lsFilterValue2.options.selectedIndex].innerHTML;
         }
      }
      document.getElementById('lbFilterValue').style.display = 'none';
      document.getElementById('tbFilterValue').style.display = 'block';
   }
}
