      var jsqmVset = new Array();
      var jsqmVaMID = -1; /*Aktuell geöffnetes MID, NUR eines!*/
      var jsqmVI = null;
      var jsqmVO = null;

      function jsqmStart (MID,SID,ele,orient) {

         //if (typeof jsqmVI == 'number')
         //      window.clearTimeout(jsqmVI);

         if (typeof jsqmVO == 'number')
            if (jsqmVaMID == MID || jsqmVaMID == -1)
               window.clearTimeout(jsqmVO);


//document.getElementById('ADMINDEBUG').innerHTML = ' S('+MID+'-'+jsqmVO+')';
         jsqmVI = window.setTimeout(function(){ jsqmFfadein (MID,SID,ele,orient); },150);
      }


      function jsqmFfadein (MID,SID,ele,orient) {

           if (typeof jsqmVO == 'number')
                 window.clearTimeout(jsqmVO);

           //JSQInhalt schließen, falls offen
           if (jsqI_PAkt) jsqInhaltOut();

//document.getElementById('ADMINDEBUG').innerHTML += ' I('+MID+'/'+jsqmVaMID+')';
           if (jsqmVset[MID]['SIDs'].contains(SID)) return 0; /* Bereits eingeblendet */

           /* Anderes Menü geöffnet? */
           if (jsqmVaMID != MID && jsqmVaMID != -1) jsqmFfadeOut(jsqmVaMID,0);
           jsqmVaMID = MID;

           jsqmVset[MID]['SIDs'].push(SID);

           var IDENT = MID + '_' + SID;
           switchDisplay('jsqm'+IDENT,1,'table');


           if (SID == 0) ele.style.zIndex = 100;

           var orientArr = orient.split(' ');
           if (orientArr.length <= 0) orientArr.push('right');
           if (orientArr.length <= 1) orientArr.push('undefined');

           var frOffset = 1;
           if (!isIE && !isOpera) frOffset -= 1;

           var lpos, tpos = 0;
           var pos = getPosition(ele);
           var pos2 = getPosition(document.getElementById('jsqm'+IDENT));

           if (SID) { var rand = 10; } else { var rand = 7; }

           if (orientArr[0] == 'right') {
               lpos = pos.x + pos.w + 2;
               if (lpos + pos2.w > 900) lpos = pos.x - pos2.w - 2; // wie left

               switch(orientArr[1]) {
                 case 'bottom':
                      tpos = pos.y + pos.h - pos2.h + 1 + rand;
                      break;
                 case 'top':
                 default:
                      tpos = pos.y - frOffset - rand;
                      break;
               }
           }
           if (orientArr[0] == 'left') {
               lpos = pos.x - pos2.w - 2;

               switch(orientArr[1]) {
                 case 'bottom':
                      tpos = pos.y + pos.h - pos2.h + 1 + rand;
                      break;
                 case 'top':
                 default:
                      tpos = pos.y - frOffset -rand;
                      break;
               }
           }

           if (orientArr[0] == 'bottom') {
               tpos = pos.y + pos.h + 2 - rand;
               switch(orientArr[1]) {
                 case 'right':
                      lpos = pos.x  + pos.w - pos2.w - frOffset + 1 + rand;

                      break;
                 case 'left':
                 default:
                      lpos = pos.x - frOffset + 1 - rand;
                      break;
               }
           }
           //12px = Seite beginnt
           lpos = Math.max(lpos,12-rand);

           document.getElementById('jsqm'+IDENT).style.left = lpos + 'px';
           document.getElementById('jsqm'+IDENT).style.top  = tpos + 'px';
           document.getElementById('jsqm'+IDENT).style.zIndex = 5;

//document.getElementById('ADMINDEBUG').innerHTML += ' i|';
           eval('if (window.jsqmFufadeIn'+MID+' && !SID) jsqmFufadeIn'+MID+'()');
      }

      function jsqmCBClick(ele) {

         if (ele.className == 'checked' ) {
            ele.className = '';
         } else {
            ele.className = 'checked';
         }
      }

      function jsqmFfadeOut(MID,SID) {

         //if (typeof jsqmVI == 'number')
         //     window.clearTimeout(jsqmVI);

         if (jsqmVaMID != MID) return 0;

         // Kinder vorher rekursiv schliessen
         SIDc = jsqmVset[MID]['SIDc'][SID];
         if (SIDc != undefined) {
             jsqmFfadeOut(MID,SIDc);
             jsqmVset[MID]['SIDc'][SID] = undefined;
         }
         if (SID == 0) jsqmVaMID = -1; /* WENN der Haupt-SID geschlossen wurde  */

         // Ausblenden
         switchDisplay('jsqm' + MID + '_' + SID,0);

         jsqmVset[MID]['SIDs'].pop();

//document.getElementById('ADMINDEBUG').innerHTML += ' O('+MID+')';
         eval('if (window.jsqmFufadeOut'+MID+' && !SID) jsqmFufadeOut'+MID+'();');
         // Auswahl entfernen falls vorhanden
         if (jsqmVset[MID]['aIID'][SID] != undefined) {
             document.getElementById('jsqmE'+MID+'_'+SID+'_'+jsqmVset[MID]['aIID'][SID]).className='';
             jsqmVset[MID]['aIID'][SID] = undefined;
         }
      }

      /* Tabellen */
      function jsqmFtabover(MID,SID,ele) {

               // Nicht ausblenden, es geht weiter ...
               if (typeof jsqmVO == 'number')
                  window.clearTimeout(jsqmVO);

               // Aktuelle Tabelle setzen
               jsqmVset[MID]['aSID']=SID;

               // Kinder des Kindes schließen, falls vorhanden
               var SIDc = jsqmVset[MID]['SIDc'][SID];
               if (SIDc != undefined) {
                   var SIDcc = jsqmVset[MID]['SIDc'][SIDc];
                   if (SIDcc != undefined) {
                       jsqmFfadeOut(MID,SIDcc);
                       jsqmVset[MID]['SIDc'][SIDc] = undefined;
                   }
               }
      }
      function jsqmFtabout(MID,SID,ele) {
         // Tabelle verlassen

         if (typeof jsqmVI == 'number')
              window.clearTimeout(jsqmVI);

         if (jsqmVaMID == MID)
              jsqmVO = window.setTimeout(function(){jsqmFfadeOut(MID,0); jsqmVset[MID]['aSID']=undefined; },333);

      }
      function jsqmFclick(cell,MID,SID,IID) {
               // Root ausblenden
               jsqmFfadeOut(MID,0);
               jsqmVset[MID]['aSID']=undefined;

               // Labeln gewünscht ?
               //document.getElementById('jsqmEt'+MID+'_'+SID+'_'+IID)
               //t = document.getElementById('jsqmEt'+MID+'_'+SID+'_'+IID).innerHTML;
               if (jsqmVset[MID]['labelID'] != undefined)
                   document.getElementById(jsqmVset[MID]['labelID']).innerHTML = cell.innerHTML;
      }

      /*Submenü - Zelle*/

      function jsqmFcellin(MID,SID,IID,ele,oSID,orient) {

               if (typeof orient === 'undefined') orient = 'right top';

               // Gleiche Zelle wie aktuelle ?
               aIID = jsqmVset[MID]['aIID'][SID];
               if (IID == aIID) return;

               // geöffnetes Submenü schliessen, falls nicht mehr passend
               SIDc = jsqmVset[MID]['SIDc'][SID];
               if (SIDc != undefined && SIDc != oSID)
                   jsqmFfadeOut(MID,SIDc);

               // vorigen Eintrag wieder zurücksetzen
               if (aIID != undefined && IID != aIID) {
                   document.getElementById('jsqmE'+MID+'_'+SID+'_'+aIID).className='';
               }

               // Neuen Sub öffnen
               if (oSID) {
                   jsqmFfadein (MID,oSID,ele,orient);
                   jsqmVset[MID]['SIDc'][SID] = oSID;
               } else {
                   jsqmVset[MID]['SIDc'][SID] = undefined;
               }

               // Neue Zelle setzen
               ele.className='active';
               jsqmVset[MID]['aIID'][SID]=IID;
      }
