//
// FILE     : fm_tools.js
// TASK     : Allgemeine, nuetzliche JavaScript-Funktionen
// PROJECT  : FloraWeb/FloraMap
// AUTHORS  : ik
// VERSION  : V1.0.0.0
// DATE     : 2001/11/01
// LAST     : 2001/11/30
// COPYRIGHT: (c) 2001 doctronic GmbH & Co. KG
//            Adenauerallee 45-49, D-53332 Bornheim, Germany
//
//-------------------------------------------------------------------------
//
// To do:
//
// History:
//   2001/11/30: V1.0.0.0
//
// Known Bugs:
//
//-------------------------------------------------------------------------
//

//
// SUMMARY: Oberster Frame
// TASK   : Liefert den obersten Frame des aktuellen Fensters bzw. des
//          angegebenen Fensters.
// PARAMS : oWin - Optional. Fenster, dessen oberster Frame gesucht
//                 wird. Wenn kein Fenster angegeben wurde, liefert die
//                 Funktion den obersten Frame des aktuellen Fensters.
//
function dtfwGetTopFrame (oWin)
{
  var oTop = null;


  if (dtfwGetTopFrame.arguments.length > 0)
  {
    oTop = oWin;
  };

  if (oTop == null)
  {
    oTop = this;
  };

  while (oTop.top != oTop)
  {
    oTop = oTop.top;
  };

  return oTop;
}

//-------------------------------------------------------------------------

//
// SUMMARY: Bestimmten Frame suchen
// TASK   : Sucht den Frame mit dem angegebenen Namen ab dem angegebenen
//          Frame oder Fenster. Die Funktion untersucht alle Kinder und
//          Kindeskinder, jedoch nicht die Eltern.
// PARAMS : oTop  - Frame oder Fenster, ab dem die Suche beginnen soll.
//          oName - Name des zu suchenden Frames.
// RETURNS: Den gesuchten Frame oder {tt:null}.
//
function dtfwFindFrame (oTop, oName)
{
  var oFrame = null;


  if (dtfwFindFrame.arguments.length == 2)
  {
    if ((oTop != null) && (oName != null))
    {
      if (oTop.name == oName)
      {
        oFrame = oTop;
      }

      else
      {
        if (isDefined (typeof (oTop.frames[oName])))
        {
          oFrame = oTop.frames[oName];
        }

        else
        {
          var nI;


          for (nI = 0; (nI < oTop.frames.length) && (oFrame == null); nI++)
          {
            oFrame = dtfwFindFrame (oTop.frames[nI], oName);
          };
        };
      };
    };
  };

  return oFrame;
}

//-------------------------------------------------------------------------

// Abhaengigkeiten pruefen und Bibliothek registrieren.

if ((typeof (daisyCheckLibrary) != "undefined") &&
    (typeof (daisyCheckLibrary) != "null"))
{
  daisyRegisterLibrary ("FloraMap_Tools", "1.00");
}

else
{
  alert ("ERROR: Unable to resolve dependencies:\n" +
         "fm_tools.js requires daisytools.js!");
};

//-------------------------------------------------------------------------
//-------------------------------------------------------------------------

