// +---------------------------+
// | Liste des modules chargés |
// +---------------------------+

var AL_Liste_librairie;

if (AL_Liste_librairie!=undefined)
  AL_Liste_librairie[AL_Liste_librairie.length]=new AL_Definir_module_librairie("debug","V2.0");

// +-----------------------------------+

function Debugger(Objet)
{
  Propriete = "";
  for (i in Objet)
    Propriete = Propriete + " - " + i;
        
  alert(Propriete);
}
    
function Compare_texte_debug(a,b)
{
  if (a<b) return(-1);
  if (a>b) return(1);
  return(0);
}

function AL_Proprietes_debug(nom)
{
  var objet=eval(nom);
  var Propriete=new Array();
  var Texte="";
  var Attributs="";
  
  j=0;

  try {
    for (var i in objet)
    {
      Propriete[j] = "<tr><td>" + nom.toString() + "."+ i +"</td><td><PRE>"+objet[i]+"</PRE></td></tr>";
      Attributs += nom.toString() + "."+ i +"="+objet[i]+"\n";
      j++;
    }
  }
  catch(err) { }

  Propriete.sort(Compare_texte_debug);

  Texte = "<TABLE border=1>";
  for (k=0;k<j;k++)
    Texte += Propriete[k];
  Texte += "</TABLE>";

  if (!this.fenetre1)
    return(Attributs);

  if (!this.fenetre1.document)
    return(Attributs);
    
  this.fenetre1.document.write("<HR>Proprietes de " + nom + "("+objet+") : <BR>" + Texte +"<HR>");
  return(Attributs);
}

function AL_Effacer_debug()
{
  if (!this.fenetre1)
    return;
    
  if (!this.fenetre1.document)
    return;
    
  this.fenetre1.document.close();
  this.fenetre1.document.open('text/html','replace');
}

function AL_Ecrire_debug(Valeur)
{
  if (!this.fenetre1)
    return;
    
  if (!this.fenetre1.document)
    return;
    
  this.fenetre1.document.write(Valeur);
}

function AL_Activer_debug()
{
  if (this.fenetre2)
  {
    this.fenetre1=this.fenetre2;
    this.fenetre2=null;
  }
  
  if (this.fenetre1)
    return;
    
  this.fenetre1 = open("","Tracer");
}

function AL_Desactiver_debug()
{
  if (!this.fenetre1)
    return;
    
  this.fenetre2=this.fenetre1;
  this.fenetre1=null;
}

function AL_Definir_debug()
{
  this.fenetre1 = null;
  this.fenetre2 = null;
  
  this.Ecrire = AL_Ecrire_debug;
  this.Effacer = AL_Effacer_debug;
  this.Proprietes = AL_Proprietes_debug;
  this.Activer = AL_Activer_debug;
  this.Desactiver = AL_Desactiver_debug;
  
  return(this);
}

var Trace;

if (!Trace)
  Trace = new AL_Definir_debug();