function addLoadEvent(iFunction)
{
  var xOldOnload = window.onload;

  if (typeof window.onload != 'function')
     window.onload = iFunction;
  else
  {
     window.onload = function()
       {
         xOldOnload();
         iFunction();
       }
  }
}

function sig_collapse(B, E)
{
  if (!is_regexp)
    return false;

  var arrD = getElementsById("collapseobj_" + B);
  var arrA = getElementsById("collapseimg_" + B);
  var arrC = getElementsById("collapsecel_" + B);

  for (var lp = 0; lp < arrD.length; lp++)
  {
    var D = arrD[lp];
    var A = arrA[lp];
    var C = arrC[lp];

    if (!D)
    {
      if (A)
        A.style.display = "none";

      return false;
    }

    if (D.style.display == "none" || "open" == E)
    {
      D.style.display = "";

      if (!E)
        save_collapsed(B, false);

      if (A)
      {
        img_re = new RegExp("_collapsed\\.gif$");
        A.src = A.src.replace(img_re, ".gif");
      }

      if (C)
      {
        cel_re = new RegExp("^(thead|tcat)(_collapsed)$");
        C.className = C.className.replace(cel_re, "$1");
      }
    }
    else
    {
      if (D.style.display != "none" || "closed" == E)
      {
        D.style.display = "none";

        if (!E)
          save_collapsed(B, true);

        if (A)
        {
          img_re = new RegExp("\\.gif$");
          A.src = A.src.replace(img_re, "_collapsed.gif");
        }

        if (C)
        {
          cel_re = new RegExp("^(thead|tcat)$");
          C.className = C.className.replace(cel_re, "$1_collapsed");
        }
      }
    }
  }

  return false;
}

function getElementsById(sId)
{
  var outArray = new Array();

  if(typeof(sId)!='string' || !sId)
    return outArray;

  if(document.getElementsByTagName)
  {
    var aEl = document.getElementsByTagName('*');

    for(var i=0,j=aEl.length;i<j;i+=1)
    {

      if(aEl[i].id == sId )
        outArray.push(aEl[i]);
    }

  }

  return outArray;
}
