/**
 * Copyright: newmagic datensysteme gmbH
 * Autor:     Matthias Eipeldauer
 * Datum:     25.09.2008
 *
 * mm8Atom.js (ehemals mm8_Atom) stellt die kleinste Einheit im System dar.
 * 
 **/

//----
// mm8Atom Superclass
// See
/*class*/function mm8Atom(id)
{
  /*public*/this.type = ["mm8Atom"];
  /*public*/this.id   = id;
  
  this.childClass = null;
  
  this.log = log;

  // --
  // ToString liefert eine Identifikation zurück. Diese Funktion kann, muss aber nicht überschrieben werden.
  /*public*/this.ToString = function()
  {
    return "{" + this.type[this.type.length - 1] + " instance named " + this.id + "}";
  };
  
  
  
  
  // --
  // Is prüft, ob das gegebene Objekt ein Element des angegebenen Typs ist.
  /*public*/this.Is = function(type)
  {
    for(x in this.type)
    {
      if (this.type[x] == type) return true;
    }
    return false; 
  };
  
  /* Diese Funktion liefert die in der Ableitungs/Vererbungsstruktur niedrigste Klasse (also die am stärksten abgeleitete)
   * und liefert diese zurück.
   */
  /*private */this.GetHighestLevelClass = function()
  {
    tmpChildClass = null;
    retChildClass = null;
    if (this.childClass) 
    {
      tmpChildClass = this.childClass;
      retChildClass = tmpChildClass;
    }
    while(tmpChildClass != null)
    {
      if (retChildClass.childClass)
      {
        tmpChildClass = retChildClass.childClass;
        retChildClass = tmpChildClass.childClass;
      }
      else
      {
        tmpChildClass = null;
      }
    }
    return retChildClass;
  };

};


// ----
// Konfiguration für alle Elemente, die Verschachtelte Container bilden
mm8BaseContainerTag = "Container";




// MM8 - LoadCallback
mm8Callback("mm8Atom.js");
