function Conversion_hex(q,b)
{
  var code="0123456789ABCDEF";
  var z="";
  var r="";
  var i=0;
  
  for (i=0;i<b;i++)
  {
    z+=code.substr(q%16,1);
    q=Math.floor(q/16);
  }
  
  for (i=b-1;i>=0;i--)
    r+=z.substr(i,1);
  
  return r;
}

function couleur_degrader(d1,a1,nb) // , de RGB1 a RGB2 pour nb1 jusqu'a RGB : 4 parametres 3 obligatoires
{
  var r,v,b;
  
  var Tab=new Array();
  var j=1;
  var k;
  // 1er RGB
  Tab[0]=d1;
  r1 = d1.substr(0,2);
  v1 = d1.substr(2,2);
  b1 = d1.substr(4,2);
  r1 = parseInt(r1,16);
  v1 = parseInt(v1,16);
  b1 = parseInt(b1,16);

  // 2eme RGB
  r2 = a1.substr(0,2);
  v2 = a1.substr(2,2);
  b2 = a1.substr(4,2);
  r2 = parseInt(r2,16);
  v2 = parseInt(v2,16);
  b2 = parseInt(b2,16);
        
    for (var i=1;i<=nb;i++,j++)
    {
      r=r1+Math.floor(i*((r2-r1)/nb));
      v=v1+Math.floor(i*((v2-v1)/nb));
      b=b1+Math.floor(i*((b2-b1)/nb));
    
      Tab[j]=Conversion_hex(r,2) + Conversion_hex(v,2) + Conversion_hex(b,2);
      
    }
    // je passe 2eme rGB en position 1 
    r1=r2; v1=v2; b1=b2;
    
    k = couleur_degrader.arguments.length-1;
    if(k > 2)
      {
        // 3eme RGB
        a1 = couleur_degrader.arguments[k]; 

        r2 = a1.substr(0,2);
  	v2 = a1.substr(2,2);
  	b2 = a1.substr(4,2);
  	r2 = parseInt(r2,16);
  	v2 = parseInt(v2,16);
  	b2 = parseInt(b2,16);
       for (var i=1;i<=nb;i++,j++)
       {
        r=r1+Math.floor(i*((r2-r1)/nb));
      	v=v1+Math.floor(i*((v2-v1)/nb));
      	b=b1+Math.floor(i*((b2-b1)/nb));
    
      	Tab[j]=Conversion_hex(r,2) + Conversion_hex(v,2) + Conversion_hex(b,2);
       }	
      }
  return(Tab);
}

  function mescouleurs(tcouleur, mmms, fp, fs)
  {
    var Couleur=null;   
    var lgmess;
    var ligneF;
    var tbr =new Array;
    var br,w,j;
    w=mmms.toUpperCase(mmms); 
    lgmess = mmms.length
    for(var i=0;i<=lgmess;i++) tbr[i]=false;
    br = w.indexOf("<BR>");
    while (br > 0) 
    {
      tbr[br]=true;
      w=w.substr(0,br)+w.substr(br+4);
      mmms=mmms.substr(0,br)+mmms.substr(br+4);
      br = w.indexOf("<BR>");
    }
    lgmess = mmms.length
    if(tcouleur.length > 2)  
        Couleur=couleur_degrader(tcouleur[0],tcouleur[1],lgmess/2,tcouleur[2]);
    else
        Couleur=couleur_degrader(tcouleur[0],tcouleur[1],lgmess);
    ligneF="<font face="+fp+" size="+fs+" color='#";
   
    for (var i=0;i<Couleur.length;i++){
        if(tbr[i]) document.write("<br>"); 
        document.write(ligneF+Couleur[i]+"'>"+mmms.charAt(i)+"</font>"); 
        }
   }
