/*-----------------------------------------------------------------------------
    module.js
-----------------------------------------------------------------------------*/

function SWiXlib()
  {
  var libararyInitialized=false;
  var rootFrame;
  var currentFrame;
  var libraryFrame;

  /*-------------------------------------------------------------------------*/
  function initialize( frame)
    {
    // alert( 'init frame: '+frame.name);
    frame.loadModule=swixlib.loadModule;
    swixlib.currentFrame=frame;
    }
  this.initialize=initialize;

  /*-------------------------------------------------------------------------*/
  function showSWiXlib( txt)
    {
    var x=''; for (prop in swixlib) {  x+='swixlib['+prop+"];\n"; }
    alert( txt+":\n"+x);
    }
  this.showSWiXlib=showSWiXlib;

  /*-------------------------------------------------------------------------*/
  function loadModule( modulename)
    {
    if (    !swixlib[ modulename] 
           || swixlib.currentFrame.document.all ) // ...msie?
      { // not yet here so load it..  load it anyway if msie, because
        // msie cannot run functions in unloaded scripts like ns does)
      swixlib[ modulename]= eval( 'new swixlib.currentFrame.'+modulename);
      if (!swixlib.S[ modulename])
        { // create space for static vars...
        swixlib.S[ modulename]=new Object;
        }
      swixlib[ modulename].S=swixlib.S[ modulename];
      }
    if (swixlib[ modulename].initialize) { swixlib[ modulename].initialize(); }
    }
  this.loadModule=loadModule;

  /*-------------------------------------------------------------------------*/
  function writeLine( frame, offset, line)
    { 
    var intro='';
    while (offset>0) { intro+=' '; offset--; }
    l=line.split("\n");
    for (i=0; i<l.length; i++)
      { frame.document.writeln( intro+l[i]); }

    }
  this.writeLine=writeLine;

  } // SWiXlib

if (!parent || parent==self)
  { // new session
  alert( 'mother frame...parent/self='+parent.name+'/'+self.name+";");
  self.swixlib=new SWiXlib;
  swixlib.S=new Object;
  swixlib.rootFrame=self;
  if (self.javascript_libraryFrame)
    { swixlib.libraryFrame=self.javascript_libraryFrame; }
  }
else
  {
  if (self.name.substring(0,28)=='javascript_applicationFrame_' 
      && !parent.swixlib)
    {
    alert( 'no SWiXlib found! Application frame...name='+self.name+";");
    }
  else 
    {
    if (self.name=='javascript_libraryFrame' && !parent.swixlib)
      {
      parent.swixlib=new SWiXlib;
      parent.swixlib.S=new Object;
      parent.swixlib.rootFrame=parent;
      if (parent.javascript_libraryFrame)
        { parent.swixlib.libraryFrame=parent.javascript_libraryFrame; }
      self.swixlib=parent.swixlib;
      //swixlib.showSWiXlib( 'library frame...name='+self.name+";");
      }
    else 
      {
      if (!self.swixlib)
        {
        self.swixlib=parent.swixlib; 
        if (self.document.all) { self.document.charset='iso-8859-1'; }
        //alert( 'sister/charset='+self.document.charset+'/'+
        //        self.document.defaultCharset);
        //swixlib.showSWiXlib( 'sister frame...name='+self.name+";");
        }
      else
        { // nichts mehr zu tun
        //swixlib.showSWiXlib( 'daughter frame...name='+self.name+";");
        if (self.document.all) { self.document.charset='iso-8859-1'; }
        //alert( 'daughter/charset='+self.document.charset+'/'+
        //        self.document.defaultCharset);
        }
      }
    }
  }

swixlib.initialize( self);


