/**
 *                                          BriqueLight
 */
/**
 * Suggestion de css:
 * Cas 2 colonnes:
.AutoCompleteDivTitle{font-family:Arial, Helvetica, sans-serif;font-size:11px;background-color:#fff;color:#333;text-align:center;height:14px;display:block;}
.AutoCompleteDivListeStyle{border:1px solid #aaa;word-wrap:break-word;background-color:#f8ecdf;margin:0;width:200px;z-index:10;text-align: left;}
.AutoCompleteDiv{padding:2px 0 2px 3px;border-collapse:collapse;line-height:14px;overflow:hidden;background-color:#f8ecdf;cursor:pointer;color:#333;font-family:Arial, Helvetica, sans-serif;font-size:11px;width:196px;}
.AutoCompleteDivCol1{width:150px;float:left;position: relative;}
.AutoCompleteDivCol2{width:40px;color:#999;}
.AutoCompleteDivAct{padding:2px 0 2px 3px;border-collapse:collapse;line-height:14px;background-color:#F60;cursor:pointer;color:#FFF;font-family:Arial, Helvetica, sans-serif;font-size:11px;overflow: hidden;}
.AutoCompleteId{display:none;visibility:hidden;}

 * Exemple d'initialisation:
 BLCompletion = new BLAutocompleter(document.getElementById('div_Completion'), document.getElementById('rdata'),'appelFromCompletionSearch', CUrl,'kw','dtd=2.0&cbf=BLCompletion.cmpl');
 */

/**
 * Appelle un script js, via l'entete html
 */
function writeScript(url){
  var head=document.getElementsByTagName('head')[0];
  var script=document.createElement('script');
  script.setAttribute('src',url);
  script.setAttribute('type','text/javascript');
  head.appendChild(script);
}

/**
 * Suppression rapide de l'autocompletion
 */
function removeAutoComplete(field){
  field.onkeyup=null;
}

/* Cacher les champs select (ie6) */
function hideSelectElementCompletion(divId){
  var nods=document.getElementById(divId).getElementsByTagName('select');
  for(i=0;i<nods.length;i++){
    nods[i].style.visibility='hidden';
    nods[i].cptHideDivAction=0;
  }
}
/* Afficher les champs select (ie6) */
function showSelectElementCompletion(divId){
  var nods=document.getElementById(divId).getElementsByTagName('select');
  for(i=0;i<nods.length;i++){
    if (nods[i].cptHideDivAction==0){
      nods[i].style.visibility='visible';
    }
    nods[i].cptHideDivAction=1;
  }
}

/**
 * Place le curseur a la fin du champ (ie)
 */
function cursorAfterValue(n){
  if (n.value){
    oldValue= n.value;
    n.value= "";    // effacement
    n.value= oldValue;    // puis reecriture
  }
}

/**
 * Retourne la valeur de la possibilite (texte) contenu dans une div de possibilite, dans la colonne col (0,1,2)
 */
function getSuggestion(uneDiv,col){
  if ((!uneDiv)||(!(uneDiv.getElementsByTagName('span')[col])))return null;
  return uneDiv.getElementsByTagName('span')[col].firstChild.data;
}

/**
 * Ecoute les evenements d'un element (window, document, ...)
 */
function gaddEvent(obj,evenement,fn){
  if (obj.addEventListener)
    obj.addEventListener(evenement,fn,false)
  else if (obj.attachEvent)
    obj.attachEvent("on"+evenement,fn)
  else
    return false;
}

/**
 * Declenchee quand on clique sur une div contenant une possibilite
 */
function divOnMouseDown(completeur,event,laDiv){
  completeur._inputField.value=getSuggestion(laDiv,0);
  completeur.affectValues(laDiv);
  completeur._suggestionUsed=true;
  if (completeur._useHistory==true){
    updateCookie(completeur._inputField.value,completeur._cookieName);
  }
  completeur.hideCompleteDiv();
  completeur.blurThenGetFocus();
  if (completeur._onSubmitFunction)
    eval(completeur._onSubmitFunction+'("'+completeur._inputField.value+'","'+completeur._2ndColumnValue+'","'+completeur._idValue+'")');
}

/**
 * Declenchee quand on passe sur une div de possibilite. La div precedente est passee en style normal
 */
function divOnMouseMove(completeur,event,laDiv){
  completeur._cursorUpDownPressed=false;
  if (completeur._highlightedSuggestionDiv){
    completeur.setStyleForElement(completeur._highlightedSuggestionDiv,"AutoCompleteDiv");
  }
  children = laDiv.parentNode.childNodes;
  for(i=0; i < children.length; i++) {
    if (laDiv==children[i]) {
      completeur._highlightedSuggestionIndex=i-1;
      completeur._highlightedSuggestionDiv= laDiv;
      break;
    }
  }
  completeur.setStyleForElement(laDiv,"AutoCompleteDivAct");
  if (completeur.onMouseOverUpdate) {
    completeur._suggestionUsed=true;
    completeur._inputField.value=getSuggestion(laDiv,0);
    completeur.affectValues(laDiv);
  }
}

/**
 * Declenchee quand la souris quitte une div de possiblite. La div repasse a l'etat normal
 */
function divOnMouseOut(completeur,event,laDiv){
  completeur.setStyleForElement(laDiv,"AutoCompleteDiv");
}

/**
 *                                          pluginHistory.js
 */
// le nombre de reponses a afficher dans l'historique
var _maxHistoryItemNb=5;

/**
 * Verifie si le parametre se trouve deja dans le cookie
 */
function itemInCookie(itemInfos,_cookieName){
  var cookie=greadCookie(_cookieName);
  if (cookie!=null){
    cookie=unescape(cookie);
    cookie=cookie.split("$");
    for(j=0;j<cookie.length;j++){
      if (itemInfos==cookie[j]){
        return true;
      }
    }
  }
  return false;
}

/**
 * Renvoie le contenu du cookie dans une liste
 */
function handleCookieData(_cookieName,_inputFieldValue){
  var cookie=greadCookie(_cookieName);
  var historyList=new Array();
  if (cookie!=null){
    cookie=unescape(cookie);
    cookie=cookie.split("$");
    for(i=0;i<cookie.length;i+=2){
      var currentItem=cookie[i+1];
     // if (currentItem.toLowerCase().indexOf(noAccentCmpl(_inputFieldValue.toLowerCase()))==0){
        historyList.push(cookie[i]);
      //}
    }
  }
  return historyList;
}

/**
 * Lecture du cookie
 * Renvoie le contenu brut du cookie
 */
function greadCookie(name){
  var arg=name+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var begin=0;
  while(begin<clen){
    var end=begin+alen;
    if (document.cookie.substring(begin,end)==arg){
      var endstr=document.cookie.indexOf(";",end);
      if (endstr==-1)endstr=document.cookie.length;
      return unescape(document.cookie.substring(end,endstr));
    }
    begin=document.cookie.indexOf(" ",begin)+1;
    if (begin==0)break;
  }
  return null;
}
function deleteCookie( _cookieName){
  document.cookie = _cookieName + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";
  return false;
}
/**
 * Met a jour le cookie, avec le parametre fourni
 */
function updateCookie(suggestSel,_cookieName){
  if (!itemInCookie(suggestSel,_cookieName)){
    suggestNoAccent=noAccentCmpl(suggestSel);
    var newCookieValue=escape(suggestSel);
    newCookieValue+="$"+escape(suggestNoAccent);
    var oldCookieValue=greadCookie(_cookieName);
    if (oldCookieValue!=null){
      oldCookieValue=unescape(oldCookieValue);
      oldCookieValue=oldCookieValue.split("$");
      for(i=1;i<=oldCookieValue.length;i+=2){
        //  empiler la nouvelle valeur au debut
        if (i<=_maxHistoryItemNb+2||_maxHistoryItemNb==0)
          newCookieValue+="$"+oldCookieValue[i-1]+"$"+oldCookieValue[i];
      }
    }
    document.cookie=_cookieName+"="+escape(newCookieValue)+";path=/";
  }
}
function noAccentCmpl(str){
  var a= "\xE0\xE2\xE4\xE1\xC0\xC1\xC4\xC2\xEB\xE8\xE9\xEA\xCA\xC9\xC8\xCB\xEF\xEE\xED\xEC\xCC\xCD\xCE\xCF\xFC\xF9\xFB\xFA\xDA\xD9\xDB\xDC\xE3\xF5\xF1\xC3\xD5\xD1\xE7";
  var b="aaaaAAAAeeeeEEEEiiiiIIIIooooOOOOuuuuUUUUaonAONc";
  for(var i=0;i<a.length;i++){
    str=str.split(a.charAt(i)).join(b.charAt(i));
  }
  return str;
}

/**
 * / pluginHistory.js
 */

/**
 *
 * Classe d'Autocompletion
 *
 */
var BLAutocompleter = function(divCompletion,field,onSubmitFunction,url,paramName,defaultParams,cssPrefix,selectToHide)
{
  if (!divCompletion) return false;
  if (!field) return false;
  this._completeDivRows=0;
  this._completeDivDivList=null;
  this._highlightedSuggestionIndex=-1;
  this._highlightedSuggestionDiv=null;
  this._cursorUpDownPressed=true;
  this._lastKeyCode=null;
  this._eventKeycode=null;
  if (typeof(cssPrefix)!='undefined')
    this._cssPrefix=cssPrefix;
  else this._cssPrefix='';
//    this._resultCache=new Object(); // mecanisme de cache des requetes
  this._cookieName="history";    // le nom du cookie
  this._maxNbSuggestions=10;    // le nombre de suggestions a afficher
  this._completeDiv=divCompletion;    // le div de completion
  this._useHistory=false;    // indique si l'historique doit etre affiche'
  this._use2ndColumn=null;    // indique si une 2nde colonne est a rechercher
  this._useId=null;    // indique si l'ID (invisible) est a gerer
  this._suggestionUsed=null;    // vaut true si la suggestion est utilisee dans l'input (clic, return, ...)
  this._inputField=field;    // le champ texte lui-meme
  this._onSubmitFunction=onSubmitFunction;    // fonction a lancer en cas de validation (clic, return).
  this._urlSearch=url;    //l 'adresse a interroger pour trouver les suggestions
  this._paramName=paramName;    // le nom du parametre. Ex: kw
  this._defaultParams=defaultParams;    // les parametres par defaut a envoyer. Ex: dtd=2.0
  this._selectElementToHide=selectToHide;    // un select eventuel a cacher
  this._inputField.setAttribute('autocomplete','off');
  this.createAutocompleteDiv();
  this.onMouseOverUpdate= true;
  this._currentInputFieldValue=this._inputField.value;
  this._oldInputFieldValue=this._currentInputFieldValue;
  var completeur=this;

//    this.cacheResults("",new Array());

  /**
   * Handler pour le keydown du document (fleches, ...)
   */
  this._inputField.onkeydown=function(event){
    // acces evenement compatible IE/Firefox
    if (!event&&window.event)
      event=window.event;
    // on enregistre la touche ayant declenche l'evenement
    if (event){
      completeur._lastKeyCode=event.keyCode;
      if ((completeur._lastKeyCode==18)||(completeur._lastKeyCode==27)) return false;
    }
    if (completeur.handleCursorUpDownEnter(completeur._lastKeyCode)&&(completeur._lastKeyCode!=0)){
      // si on a presse une touche autre que haut/bas/enter
      completeur._suggestionUsed=null;
      completeur.PressAction();
    } else
      if (completeur._highlightedSuggestionIndex>= 0)
        return false;
  };

  /**
   * Handler pour le keyup du champ texte
   */
  this._inputField.onkeyup=function(event){
    // acces evenement compatible IE/Firefox
    if (!event&&window.event)
      event=window.event;
    completeur._eventKeycode=event.keyCode;
    // touche alt (18) ou echap (27)
    if (completeur._eventKeycode==18) return false;
    if (completeur._eventKeycode==27){
      completeur.hideCompleteDiv();
      return false;
    }
    // touche fleche haut (38) ou fleche bas (40)
    if (completeur._eventKeycode==40||completeur._eventKeycode==38){
      // on autorise le blur du champ (traitement dans onblur)
      completeur.blurThenGetFocus();
    }
    // contenu du champ texte
    var V=completeur._inputField.value;
    if (completeur._eventKeycode!=0){
      // touche entree (13 / 3)
      if (completeur._eventKeycode==13||completeur._eventKeycode==3){
        var d=completeur._inputField;
        // on met en place l'ensemble du champ texte en repoussant la selection
        if (d.createTextRange){
          d.createTextRange().moveStart("character",d.value.length);
          d.select();
        }
        else if (d.setSelectionRange)
          d.setSelectionRange(d.value.length,d.value.length)
//          removeAutoComplete(completeur._inputField);
        if (completeur._useHistory==true)
          updateCookie(V,completeur._cookieName);
        if (completeur._onSubmitFunction){
          if (completeur._highlightedSuggestionIndex>= 0)
            eval(completeur._onSubmitFunction+'("'+escape(completeur._inputField.value)+'","'+completeur._2ndColumnValue+'","'+completeur._idValue+'")');
          }
        completeur.hideCompleteDiv();
        return false;
      }
      else{
        // si on n'a pas pu agrandir le champ non selectionne, on le met en place violemment.
        if (completeur._inputField.value!=V) completeur._inputField.value= V;
      }
    }
    // si la touche n'est ni haut, ni bas, on stocke la valeur utilisateur du champ
    if ((completeur._eventKeycode!=40)&&(completeur._eventKeycode!=38)){
      // le champ courant n est pas change si key Up ou key Down
      completeur._cursorUpDownPressed=false;
      completeur._currentInputFieldValue=V;
    }
    else cursorAfterValue(completeur._inputField);
    if (completeur._oldInputFieldValue!=completeur._currentInputFieldValue){
      var valeur=escape(completeur._currentInputFieldValue);
      if (valeur!=''){
/*          var suggestions=completeur._resultCache[completeur._currentInputFieldValue];
          if (suggestions){ // la reponse etait encore dans le cache
            completeur.displayComplete(valeur,suggestions)
          } else{
*/            writeScript(completeur._urlSearch+'&'+completeur._paramName+'='+valeur+'&'+completeur._defaultParams)// appel distant
          completeur._inputField.focus();
//          }
      }
      else completeur.hideCompleteDiv();
    }
    completeur._oldInputFieldValue=completeur._currentInputFieldValue;
  };

  /**
   * Handler de blur sur le champ texte
   */
  this._inputField.onblur=function(event){
    if (!completeur._cursorUpDownPressed){
      // si le blur n'est pas cause par la touche haut/bas
      setTimeout(function() { completeur.hideCompleteDiv(); },150);
    }
    completeur._cursorUpDownPressed=false;
  }

  /* Handler de resize de la fenetre: recalcule la taille des suggestions */
  gaddEvent(window,'resize',function(){
    completeur.setCompleteDivSize();
  });
}

BLAutocompleter.prototype={

  /**
   * Indique si le champ actuellement en place est issu de la completion
   */
  completionUsed:function(){
    return this._suggestionUsed;
  },
  /**
   * Fonction de callback appelee une fois que le javascript est retourne'
   */
  cmpl:function(jsonData){
    var liste=this.handleJsonSuggestions(jsonData);
//    this.cacheResults(this._currentInputFieldValue,liste);
    this.displayComplete(this._currentInputFieldValue,liste);
  },
  /**
   * Mecanisme de caching des reponses
   */
  //cacheResults: function (debut,suggestions){
  //  this._resultCache[debut]=suggestions;
  //},
  /**
   * Change la classe d'un element
   */
  setStyleForElement:function(c,name){
    if (c!=null){
      if (this._cssPrefix!='') c.className= name+ " "+ this._cssPrefix+name;      // surcharge
      else c.className= name;
    }
  },
  /**
   * Transformation des donnees JSON en tableau
   */
  handleJsonSuggestions:function(xmlDoc){
    var options= xmlDoc[1];
    var optionsListe= new Array();
    var optionsCol1= new Array();
    if ((options)&&(options.length)){
      for(var i=0;(i<options.length)&&(i< this._maxNbSuggestions);++i){
        optionsCol1.push(options[i]);
      }
      optionsListe.push(optionsCol1);
    }
    // colonne 2
    if (this._use2ndColumn&&xmlDoc[2]){
      var optionsCol2= this.handle2ndColumn(xmlDoc[2]);
      if (optionsCol2!= false)
        optionsListe.push(optionsCol2);
    }
    // ID
    if (this._useId&&xmlDoc[3]){
      var optionsCol3= this.handle2ndColumn(xmlDoc[3]);
      if (optionsCol3!= false)
        optionsListe.push(optionsCol3);
    }
    return optionsListe;
  },
  /**
   * Calcule la position du div de completion
   */
  setCompleteDivSize:function(){
    if (this._completeDiv){
      this._completeDiv.style.left= this._inputField.offsetLeft+"px";
      this._completeDiv.style.top= this._inputField.offsetTop+ this._inputField.offsetHeight-1+"px";
    }
  },
  /**
   * Cree le div de completion
   */
  createAutocompleteDiv:function(){
    this._completeDiv.style.visibility="hidden";
    this._completeDiv.style.position="absolute";
    this.setCompleteDivSize();
    this.setStyleForElement(this._completeDiv,"AutoCompleteDivListeStyle");
  },
  /**
   * Affiche le div de completion
   */
  displayComplete:function(valeur,liste){
    while(this._completeDiv.childNodes.length>0){
      this._completeDiv.removeChild(this._completeDiv.childNodes[0]);
    }
    if ((liste[0])&&(liste[0].length>0)){
      if (this._useHistory==true)
        this.displayHistory();
      var newDiv=document.createElement("SPAN");
      newDiv.innerHTML='Suggestions';      //titre de la liste
      newDiv.id='completeDivTitle';
      this.setStyleForElement(newDiv,"AutoCompleteDivTitle");
      this._completeDiv.appendChild(newDiv);
      var completeur=this;
      // mise en place des suggestions
      for (var f=0;f<liste[0].length;++f){
        var newDivLine= document.createElement("div");
        this.setStyleForElement(newDivLine,"AutoCompleteDiv");
        var newSpan= document.createElement("span");
        newSpan.innerHTML= liste[0][f];        // le texte de la suggestion
        this.setStyleForElement(newSpan,"AutoCompleteDivCol1");
        newDivLine.appendChild(newSpan);
        if (this._use2ndColumn){
          if ((liste[1])&&(liste[1][f]))
            this.display2ndColumn(newDivLine,liste[1][f]);
          else
            this.display2ndColumn(newDivLine,"&nbsp;");
        }
        if (this._useId){
          if (this._use2ndColumn&&(liste[2])&&(liste[2][f]))
            this.displayId(newDivLine,liste[2][f]);
          else if (!this._use2ndColumn&&(liste[1][f]))
            this.displayId(newDivLine,liste[1][f]);
        }
        this._completeDiv.appendChild(newDivLine);
        newDivLine.onmousedown=function(event){
          divOnMouseDown(completeur,event,this);
        };
        newDivLine.onmousemove=function(event){
          divOnMouseMove(completeur,event,this);
        };
        newDivLine.onmouseout=function(event){
          divOnMouseOut(completeur,event,this);
        };
        this._completeDiv.appendChild(newDivLine);
      }
      if (this._selectElementToHide)
        hideSelectElementCompletion(this._selectElementToHide);
      this.PressAction();
    }
    else { // pas de suggestions
      this.hideCompleteDiv();
      this._completeDivRows= 0;
    }
  },
  /**
   * Change la suggestion selectionnee
   * Cette methode traite les touches haut, bas et enter
   */
  handleCursorUpDownEnter:function(eventCode){
    if (eventCode==40){
      this.highlightNewValue(this._highlightedSuggestionIndex+1);
      return false;
    }
    else if (eventCode==38){
      this.highlightNewValue(this._highlightedSuggestionIndex-1);
      return false;
    }
    else if (eventCode==13||eventCode==3){
      return false;
    }
    this._suggestionUsed=null;
    return true;
  },
  /**
   * Gere une touche pressee autre que haut, bas et enter
   */
  PressAction:function(){
    var suggestionList= this._completeDiv.getElementsByTagName("div");
    var suggestionLongueur=suggestionList.length;
    // on stocke les valeurs precedentes
    // nombre de possibilites de completion
    this._completeDivRows=suggestionLongueur;
    // possiblites de completion
    this._completeDivDivList=suggestionList;
    // si le champ est vide, on cache les propositions de completion
    if (this._currentInputFieldValue==""||suggestionLongueur==0)
      this.hideCompleteDiv();
    else
      this.showCompleteDiv();

    // on deselectionne toutes les suggestions
    for(var i=0;i<suggestionLongueur;i++){
      this.setStyleForElement(suggestionList.item(i),"AutoCompleteDiv");
    }
    this._highlightedSuggestionIndex=-1;
    this._highlightedSuggestionDiv=null;
    var supprSelection=false;
    switch(this._eventKeycode){
      // fleche gauche, fleche droite, page up, page down, autres ?
      case 8:case 33:case 34:case 35:case 35:case 36:case 37:case 39:case 45:case 46:// on supprime la suggestion du texte utilisateur
      supprSelection=true;
      break;
      default:break
    }
    // si on a une suggestion (n-1) selectionnee
    if (!supprSelection&&this._highlightedSuggestionDiv){
      this.setStyleForElement(this._highlightedSuggestionDiv,"AutoCompleteDivAct");
      var z=this._currentInputFieldValue;
    }
    else{
      // sinon, plus aucune suggestion de selectionnee
      this._highlightedSuggestionIndex=-1;
    }
  },
  /**
   * Permet le blur du champ texte apres que la touche haut/bas ait ete pressee
   * Le focus est recupere apres traitement (via le timeout).
   */
  blurThenGetFocus:function(completeur){
    this._cursorUpDownPressed=true;
    this._inputField.blur();
    var _self=this;
    setTimeout(function(){
      _self._inputField.focus();
      if (_self._inputField.value){ // forcer le curseur en fin de ligne (ie6)
        oldValue= _self._inputField.value;
        _self._inputField.value= "";    // effacement
        _self._inputField.value= oldValue;    // puis reecriture
      }
    },10);
    return;
  },
  /**
   * Cache completement les choix de completion
   */
  hideCompleteDiv:function(){
    this._completeDiv.style.visibility="hidden";
    this._highlightedSuggestionIndex=-1;
    if (this._selectElementToHide) showSelectElementCompletion(this._selectElementToHide);
  },
  /**
   * Rend les choix de completion visibles
   */
  showCompleteDiv:function(){
    this.setCompleteDivSize();
    this._completeDiv.style.visibility="visible";
  },
  /**
   * Change la suggestion en surbrillance
   */
  highlightNewValue:function(C){
    if (!this._completeDivDivList||(this._completeDivRows<=0))
      return;

    this.showCompleteDiv();
    this._suggestionUsed=true;
    this.setStyleForElement(this._highlightedSuggestionDiv,"AutoCompleteDiv");
    if (C>=this._completeDivRows)
      C=0;
    if (C<0)
      C=this._completeDivRows-1;  // pour retourner dans l'input, mettre   this._highlightedSuggestionIndex=-1;    this._inputField.focus();
    this._highlightedSuggestionIndex=C;
    this._highlightedSuggestionDiv= this._completeDivDivList.item(C);
    if (this._highlightedSuggestionDiv!= null){
      this.setStyleForElement(this._highlightedSuggestionDiv,"AutoCompleteDivAct");
      this._inputField.value= getSuggestion(this._highlightedSuggestionDiv,0);
      this.affectValues(this._highlightedSuggestionDiv);
      this._completeDiv.scrollTop= C*this._highlightedSuggestionDiv.offsetHeight;
    }
  },
  affectValues:function(theDiv){
    if (this._use2ndColumn)
      this._2ndColumnValue=getSuggestion(theDiv,1);
    if (this._useId){
      if (this._use2ndColumn)
        this._idValue=getSuggestion(theDiv,2);
      else
        this._idValue=getSuggestion(theDiv,1);
    }
  },
  /**
   * Affiche un div contenant la 2nde colonne
   */
  display2ndColumn:function(newDiv,element){
    var newSpan=document.createElement("SPAN");
    newSpan.innerHTML=element;
    this.setStyleForElement(newSpan,"AutoCompleteDivCol2");
    newDiv.appendChild(newSpan);
    return false;
  },
  handle2ndColumn:function(liste){
    var optionsCol2=new Array();
    var options2=liste;
    if ((liste)&&(liste.length)){
      for(var i=0;i<liste.length;++i){
        optionsCol2.push(liste[i]);
      }
      return optionsCol2;
    }
    return false;
  },
  /**
   * creer un span invisible contenant l'id
   */
  displayId:function(newDiv,element){
    var newSpan=document.createElement("SPAN");
    newSpan.innerHTML=element;
    this.setStyleForElement(newSpan,"AutoCompleteId");
    newDiv.appendChild(newSpan);
    return false;
  },
  /**
   * Affiche l'historique
   */
  displayHistory:function(){
    cookieHistory=handleCookieData(this._cookieName,this._inputField.value);
    if (cookieHistory.length>0){
      var historyDiv=document.createElement("SPAN");
      historyDiv.innerHTML='Historique&nbsp;(<a href="#" class="AutoCompleteDivDel" onClick="javascript:deleteCookie(\''+this._cookieName+'\');return false; ">effacer</a>)';
      historyDiv.id='completeDivTitle';
      this.setStyleForElement(historyDiv,"AutoCompleteDivTitle");
      this._completeDiv.appendChild(historyDiv);
      var completeur=this;
      for(var f=0;f<cookieHistory.length;f++){
        var nouveauDiv=document.createElement("DIV");
        nouveauDiv.onmousedown=function(event){
          divOnMouseDown(completeur,event,this);
        };
        nouveauDiv.onmousemove=function(event){
          divOnMouseMove(completeur,event,this);
        };
        nouveauDiv.onmouseout=function(event){
          divOnMouseOut(completeur,event,this);
        };
        this.setStyleForElement(nouveauDiv,"AutoCompleteDiv");
        var nouveauSpan=document.createElement("SPAN");
        nouveauSpan.innerHTML=cookieHistory[f];        // le texte de la suggestion
        this.setStyleForElement(nouveauSpan,"AutoCompleteDivCol1");
        nouveauDiv.appendChild(nouveauSpan);
        this._completeDiv.appendChild(nouveauDiv);
      }
    }
  }
}
/* /BLAutocompleter.prototype */
