	  // register callback
    qx.event.Registration.addListener(window, "ready", onReady);
    var navi_parent = new qx.type.Array();
    var listNavi = null;
    // var qxPool = new qx.util.ObjectPool();
 
    function navi_openTooltip(event)
    {
      var c = qx.bom.Collection.create(event.getTarget()).closest("li");
      var offset = c.getOffset();
      var content = c.children("ul").remove();
      
      if (content.valueOf() == 0)
        return;
        
      content.resetStyle("display");
      var tt = qx.bom.Collection.html('<div class="popoutNavi_tooltip" style="top:'+(offset.top-5)+'px; left:'+(offset.left+c.getWidth())+'px"></div>');
      qx.bom.Collection.query("body").append(tt);

        navi_parent.push({parent: c, tooltip: tt});

      tt.append(content).addListener("mouseout", onTTMouseout, tt);
    }
    
    function onTTMouseout(event)
    {
      var tt, target = event.getTarget(), rTarget = event.getRelatedTarget(), oTarget = event.getOriginalTarget();
      var index = navi_parent.valueOf()-1;    
      
      if (qx.dom.Node.isNodeName(this, "li"))
      {
        var commonParent = qx.dom.Hierarchy.getCommonParent(target, rTarget);
        
        if (!commonParent || qx.dom.Node.isNodeName(commonParent, "body"))
          return;
          
        tt = navi_parent[index].tooltip;
      }
      else if (this.classname != undefined && this.classname == "qx.bom.Collection")
      {
        if (qx.dom.Hierarchy.contains(this[0], target)  || qx.dom.Hierarchy.contains(this[0], rTarget))
          return;
          
        tt = navi_parent[index].tooltip;
      }
      else return;
      
      navi_closeTooltip(tt);
    }
    
    function navi_closeTooltip(tt)
    {
      do
      {
        var p = navi_parent.pop();
        p.tooltip.children("ul").setStyle("display", "none");
        p.parent.append(p.tooltip.children().remove());
        p.tooltip.destroy();
      }while (p.tooltip != tt);
    }
    
    // executed when the application/scripts are loaded 
    function onReady()
    {
      listNavi = qx.bom.Collection.id("popoutNavi");
      listNavi.find("li ul").setStyle("display", "none").parent("li").addListener("mouseover", navi_openTooltip).addListener("mouseout", onTTMouseout).children("a").prepend("<img src='modules/NaviManager/PopOutNavi/img/folder_closed.png /> ").after("<span class='navi_arrow'> &#x25B8;</span>");//.addListener("mouseout", navi_hide);
/*      listNavi.find("li").forEach(function(val, index, arr)
      {
        var elem = arr.eq(index);
        var offset = elem.getOffset();
        var space = elem.getWidth()-elem.children("a").getWidth();
        elem.prepend("<span class='note' style='top: "+(offset.top-6)+"px; left: "+(offset.left-15)+"px'>"+elem.getContentWidth()+"</span>");
        
       });
 */
    }

