

             function jsInfoBoxShow(eEle,ID,orient) {

                 var eBox = document.getElementById('jsInfoBox_'+ID);

                 if (eBox == null) { return null; alert('Objekt nicht gefunden'); }
                 eBox.style.display = 'block';

                 var pos = getPosition(eEle);
                 var pos2 = getPosition(eBox);

                 var orientArr = orient.split(' ');
                 if (orientArr.length <= 0) orientArr.push('left');
                 if (orientArr.length <= 1) orientArr.push('bottom');

                 if (orientArr[0] == "right") {
                         setLeft = pos.x  + pos.w - pos2.w;
                 } else {
                         setLeft = pos.x;
                 }
                 if (orientArr[1] == "top") {
                         setTop  = pos.y-pos2.h-3
                 } else {
                         setTop  = pos.y+pos.h+3;
                 }

                 eBox.style.left = setLeft + 'px';
                 eBox.style.top = setTop + 'px';
             }

             function jsInfoBoxHide(eEle,ID) {
                 var eBox = document.getElementById('jsInfoBox_'+ID);
                 eBox.style.display = 'none';
             }



function slowFadeMulti(ele,modus) {

         var group = ele.parentNode;

         if (typeof modus === 'undefined') modus = 1;

         var exec = 'slowFade(getE(\"'+ele.id+'\"),'+modus+');';

         for (m=0; m < group.childNodes.length; m++) {

                 if (group.childNodes[m].id != ele.id && group.childNodes[m].tagName == 'DIV' && group.childNodes[m].style.display != 'none') {
                         slowFade(group.childNodes[m],0,exec);
                         doWait = 700;
                         exec = null;
                 }
         }
         eval(exec);
}

// FADING

var slowFadeV = new Object();

function slowFade(ele,modus,execE,execS,dur) {

         var exp = 0.5;

         if (typeof ele !='object') return -1;

         var aID = ele.id;

         if (ele.tagName != 'DIV') { alert(ele.tagName+ ' ('+aID+')= falscher Wrapper!'); return 0; }

         if (typeof modus === 'undefined') modus = 2;
         if (typeof dur === 'undefined') dur = 0;

         // wenn gerade nicht aktiv
         // und bereits zu/auf ist, dann mache nichts ...
         if (slowFadeV[ele.id] === undefined) {
            if (modus==1 && ele.style.display != 'none') return 0;
            if (modus==0 && ele.style.display == 'none') return 0;
         } else {
            if (modus==2) {
                 if (slowFadeV[ele.id]['modus'] == 0) { modus = 1; } else { modus = 0; }
            }
         }

         // Moduswechsel
         if (modus==2) {
                 if (ele.style.display == 'none') { modus = 1; } else { modus = 0; }
         }
         // ist bereits aktiv
         if (slowFadeV[ele.id] !== undefined) {
            if (slowFadeV[ele.id]['modus'] == modus) return 0;

            // Status & Modus umsetzen
            slowFadeV[aID]['status'] = Math.pow(1-slowFadeV[aID]['status'],1/exp);
            slowFadeV[aID]['modus'] = modus;
            return modus;
         }

         // neu anlegen
         slowFadeV[ele.id] = new Object();

         slowFadeV[ele.id]['modus'] = modus;

         // Maximalhöhe
         ele.style.overflow = 'hidden';
         if (modus==1) {
            ele.style.display = 'block';
            ele.style.height = '100%';
         }
         var POS = getPosition (ele);
         slowFadeV[ele.id]['height']=POS.h -10; // - parseInt(ele.currentStyle.padding)*2


         var duration;
         var fps = 25;

         duration = dur;
         if (!duration) {
                 if (modus==0) { duration = 0.25; } else { duration=0.75; }
         }
         //duration = 2;
         slowFadeV[ele.id]['delay'] = Math.round(1000/fps);
         slowFadeV[ele.id]['step'] = 1/(duration*fps);
         slowFadeV[ele.id]['status'] = 0;

         slowFadeV[ele.id]['execE'] = execE;
         slowFadeV[ele.id]['execS'] = execS;
         slowFadeV[ele.id]['exp'] = exp;
         slowFadeV[ele.id]['step_cnt'] = 0;

         slowFadeStep(ele);
         return modus;
}

function slowFadeStep(ele) {

         var aID = ele.id;
         var values = slowFadeV[aID];

         if (values['step'] < 1/1000) return 'ungültiger Schritt';
         var status = Math.max(0,Math.min(1,parseFloat(values['status'])+parseFloat(values['step'])));

         slowFadeV[aID]['status'] = status;
         slowFadeV[aID]['step_cnt']++;

         var cS = Math.pow(status,values['exp']);
         if (values['modus']==0) cS = 1-cS;

         ele.style.height = Math.ceil(values['height']*cS)+'px';

         //document.getElementById('STATUS').innerHTML = Math.round( 100*status) + ' >> ' + Math.round(100*cS) + ' = ' +  Math.ceil(values['height']*cS)+'px ('+parseFloat(values['step'])+')';
         eval (values['execS']);

         if (status < 1) {
           window.setTimeout(function(){ slowFadeStep(ele); },values['delay']);
         } else if (status == 1) {
           if (values['modus']==0) {
              ele.style.display = 'none';
           } else {
              ele.style.height = '100%';
           }
           eval (values['execE']);
           eval (values['execS']);
           delete slowFadeV[aID];
         }

}
