function smiley(smile) {
    smile = " "+smile+" ";

 var compgen = navigator.userAgent.toLowerCase();
 var navsafari = ((compgen.indexOf('safari') != -1) || (navigator.vfinor == "Apple"));
 var navie = ((compgen.indexOf('msie') != -1) && (!navopera) && (!navsafari) && (!navwebtv));
 var navopera = (compgen.indexOf('opera') != -1);
 var navwebtv = (compgen.indexOf('webtv') != -1);
 var oswin =  ((compgen.indexOf("win") != -1) || (compgen.indexOf("16bit") != -1));
 var navers = parseInt(navigator.appVersion);
 var chem = document.getElementById('text');
 var fermer = false;
 
 if ((navers >= 4) && navie && oswin) {
  if (chem.isTextEdit) {
   chem.focus();
   var dselect = document.selection;
   var cr = dselect.createRange(); cr.colapse;
   if ((dselect.type == "Text" || dselect.type == "None") && cr != null) {
    fermer = true;
    cr.text = smile;
   }
  }
  else { fermer = true; chem.value += smile; }
 }
 else {
  if (chem.selectionEnd) { 
   var selectdebut = chem.selectionStart;
   var selecthaut = chem.scrollTop;
   var selectfin = chem.selectionEnd;
   if (selectfin <= 2) { selectfin = chem.textLength; }
   var debut  = (chem.value).substring(0, selectdebut);
   var milieu = (chem.value).substring(selectdebut, selectfin);
   var fin    = (chem.value).substring(selectfin, chem.textLength);
   if (chem.selectionEnd - chem.selectionStart > 0) { milieu = smile + milieu; } else { milieu = smile + milieu; fermer = true; }
   chem.value = debut + milieu + fin;
   var cpos = selectdebut + (milieu.length);
   chem.selectionStart = cpos;
   chem.selectionEnd = cpos;
   chem.scrollTop = selecthaut;
  }
  else { 
   fermer = true;
   chem.value += smile; 
  }
  
  chem.focus(); return fermer;
 }
}
