/**
 * autocomplete Search file
 *
 * Contains every scripts for autocomplete
 *
 * @author Yannick Cenatiempo  <yannick.cenatiempo@fittingbox.com>
 * @since  2010-02-04
 */

jQuery(document).ready(function(event)
{
  //le premier param est une url pour récupérer le contenu de l'autocomplétion et le deuxième un objet de paramètre
  jQuery('#form_query').autocomplete("/recherche/autocomplete",
  {
    type: 'POST',
    extraParams: {
      limit: 10
    },
    matchContains: true,
    scroll: false,
    //multiple: true,
    //multipleSeparator: ' ',
    cacheLength: 1,
    minChars: 1,
    parse: function(data){
      /*if(jQuery.browser.msie){
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.loadXML(data);
        data = xmlDoc;
      }*/
      response = jQuery(data);
      if(!response.find('error').length){
        var elementsAsArray = new Array();
        response.find('element').each(function(){
          //on récupère dans result ce qui s'affichera dans le champ de saisie et dans text ce qui s'affiche dans la liste d'autocomplétion
          elementsAsArray.push({ result: jQuery(this).find('result').text(), text: jQuery(this).find('text').text() });
        });
        //alert(elementsAsArray);
        var parsed = [];
        var rows = elementsAsArray;
        for (var i=0; i < rows.length; i++) {
          if (rows[i]) {
            parsed[parsed.length] = {
              data: rows[i],
              value: jQuery.trim(rows[i].result),
              result: jQuery.trim(rows[i].result)
            };
          }
        }
        return parsed;
      }else{
        alert(response.find('error').text());
      }
    },
    formatItem: function(row, i, max) {
      return row.text;
        }
  });

  /**
   * Efface le texte la première fois
   * @author Laurent Bachelier <laurentb@theodo.fr>
   * @since 2010-02-17
   */
  jQuery('#form_query').bind('focus', function(event)
  {
    if (typeof this.not_example != "undefined" && this.not_example)
    {
      $(this).select();
    }
    else
    {
      this.not_example = true;
      $(this).val('');
    }
  });
});
