<!--
/*
 * Librairie de Gestion d'une zone d'input dynamique
 * Require : tool.js
 *           ajaxcaller.js
 * Note : id et le nom de la variable globale Js doivent Ãªtre egales
 */
function AjaxTextInput( inputId, inputObject, cFunction ){

/* identifiant de la zone a dynamiser */
this.id           = inputId;

/* identifiant de l'objet */
this.inputObj	= inputObject;

/* url d'envoie des donnees */
this.cFunction      = cFunction;

/* class sur over/actif */
this.enableClass  = "enableAjaxTextInput";

/* class sur over/actif */
this.disableClass = "disableAjaxTextInput";

/* valeur avant changement */
this.val = "";

/*
* Configuration de l'id 
* configuration des differents evenements sur l'id
*/
this.config = function (){
    this.makeUnWritable( );
  }

/* sur Focus du champ texte */
this.beginChange = function(){
    // Gestion des inputs et textarea
    this.val = $(this.id).value;
    this.makeWritable( );
  }

/* sur Focus du champ texte */
this.endChange = function(){
    // Gestion des inputs et textarea
    var tmpVal;
    tmpVal = $(this.id).value;
    this.makeUnWritable( );
    if(tmpVal != this.val){
      this.cFunction(this.inputObj, tmpVal);
    }else{
      return false;
    }
  }

/* Rend l'element en ecriture */
this.makeWritable = function (){
    $(this.id).readOnly=false;
    $(this.id).className=this.enableClass;
    this.setSelectionRange ();
  }

/* Rend l'element en champs text */
this.makeUnWritable = function (){
    $(this.id).readOnly=true;
    $(this.id).className=this.disableClass;
//    $(this.id).setAttribute("onDblclick", "javascript:"+ this.id +".beginChange( );");
//    $(this.id).setAttribute("onBlur", "javascript:"+this.id+".endChange( );");
  }

/* Pour la selcetion complete du texte dans l'input sur double click */
this.setSelectionRange = function( ) {
    /* calcul de la longueur max du champ */
    var tmpVal;
    tmpVal = $(this.id).value;

    selectionEnd = tmpVal.length;

    if ($(this.id).setSelectionRange) {
      $(this.id).focus();
      $(this.id).setSelectionRange(0, selectionEnd);
    }
    else if ($(this.id).createTextRange) {
      var range = $(this.id).createTextRange();
      range.collapse(true);
      range.moveEnd('character', selectionEnd);
      range.moveStart('character', 0);
      range.select();
    }
  }

}
//-->
