// JavaScript Document
// for modec.cz boxes

var working = false;
var waiting = true;
var paneOn = false;
var fadeSteps = 10;
var fadeStepDown = 10;
var fadeStepUp = 0;
var timeOut = 30;
var processingId = null;
var activePane = false;

function removePane() {
    if(working)
        return;
    
    // if activated by active entry
    if(activePane) {
        processingId =  document.getElementById('descMenu' + activePane);
        activePane = false;      
        paneOn = true;
    }
    
    if(!paneOn) {
        return;
    }
    
    if(processingId == null) 
        return;
    
    working = true;
    fadeDown(); 
}

function bringPane(number) {
    
    if(waiting && working) {
        setTimeout("bringPane(" + number + ")", 100);
        return;
    }
    
    if(working)
        return;
    
    if(processingId != null)
        if(processingId.id == 'descMenu' + number)
            return;
    
    if(paneOn || activePane) {
        removePane();
        waiting = true;
        setTimeout("bringPane(" + number + ")", 100);
        return;
    }
    
    working = true;
    waiting = false;
    
    if(processingId = document.getElementById('descMenu' + number)) {
        setOpacity(processingId, 0);
        processingId.style.visibility = 'visible';
        processingId.style.zIndex = '1000';
        fadeUp();
    } else {
        return;
    }
}

function fadeDown() {
    if(processingId == null)
        return;
        
    if(!working) 
        return;

    if(fadeStepDown > 0) {
        fadeStepDown--;
        setOpacity(processingId, fadeStepDown/fadeSteps);
        setTimeout("fadeDown()", timeOut);
    } else {
        processingId.style.visibility = 'hidden';
        processingId.style.zIndex = '100';
        setOpacity(processingId, 0);
        working = false;
        paneOn = false;
        processingId = null;
        fadeStepDown = fadeSteps;
        return;
    }
}

function fadeUp() {
    if(processingId == null)
        return;
        
    if(!working) 
        return;

    if(fadeStepUp < fadeSteps) {
        fadeStepUp++;
        setOpacity(processingId, fadeStepUp/fadeSteps);
        setTimeout("fadeUp()", timeOut);
    } else {
        setOpacity(processingId, 1);
        working = false;
        fadeStepUp = 0;
        paneOn = true;
        return;
    }
}

