    var dynamicBox = "";
    
    function showDynamicBox(formName, divName, hiddenName, inputName, tableName, fromName)
    {
        if(divName != dynamicBox)
        {
            if(oDynamicBox = document.getElementById(dynamicBox))
            {
                oDynamicBox.style.display = 'none';
                oDynamicBox.innerHTML = "";        
            }
            dynamicBox = divName;
        }
        
        var oDiv = document.getElementById(divName);
        var sURL = '/ajax-dynamicBox.php?form='+formName+'&div='+divName+'&hidden='+hiddenName+'&field='+inputName+'&table='+tableName+'&from='+fromName;
        
        if(typeof(getDynamicParameters) == 'function')
        {
            sParameters = getDynamicParameters(divName);
            if(sParameters != "")
            {
                sURL += '&params='+sParameters;    
            }
        }
        
        var oHidden = document.forms[formName][hiddenName];
        if(oHidden.value != "")
        {
            sURL += "&checked="+oHidden.value;        
        }
        
        var oRequest = new Ajax.Request(sURL, {onComplete : function(p_oRequest)
        {
            oDiv.innerHTML = p_oRequest.responseText;
            
            // var iLocalization = document.forms[formName].needLocalization.value;
            // if(iLocalization > 0)
            // {
                // parseDynamicBox(oDiv);
            // }
            
            oDiv.style.display = '';
        }, onException : function(p_oRequest, p_oException)
        {
            throw p_oException;
        },
        onLoaded : function()
        {
        }});    
    }
    
    // Shows a "dynamic" box that contains hard-coded values.
    function showDynamicBox_HC(formName, divName, hiddenName, inputName, tableName, fromName) {
        if(divName != dynamicBox) {
            if(oDynamicBox = document.getElementById(dynamicBox)) {
                oDynamicBox.style.display = 'none';
                oDynamicBox.innerHTML = "";        
            }
            dynamicBox = divName;
        }
        
        var oDiv = document.getElementById(divName);
        var sURL = '/ajax-hcDynamicBox.php?form='+formName+'&div='+divName+'&hidden='+hiddenName+'&field='+inputName+'&table='+tableName+'&from='+fromName;
        
        if(typeof(getDynamicParameters) == 'function') {
            sParameters = getDynamicParameters(divName);
            if(sParameters != "") {
                sURL += '&params='+sParameters;    
            }
        }
        
        var oHidden = document.forms[formName][hiddenName];
        if(oHidden.value != "") {
            sURL += "&checked="+oHidden.value;        
        }
        
        var oRequest = new Ajax.Request(sURL, {onComplete : function(p_oRequest) {
            oDiv.innerHTML = p_oRequest.responseText;
            oDiv.style.display = '';
        }, onException : function(p_oRequest, p_oException) {
            throw p_oException;
        },
        onLoaded : function()
        {
        }});    
    }
    
    function hideDynamicBox(divName)
    {
        var oDiv = document.getElementById(divName);
        oDiv.style.display = 'none';
        oDiv.innerHTML = "";
    }
    
    function checkDynamicBox(formName, divName, hiddenName, inputName, tableName)
    {
        var iQuantity = document.forms[formName].nbCheckbox.value;
        var strDynamic = "";
        var idDynamic = "";
        
        for(iCheckBox = 0; iCheckBox < iQuantity; iCheckBox ++)
        {
            if(oCheckBox = document.forms[formName]['chk'+hiddenName+iCheckBox])
            {
                if(oCheckBox.checked)
                {
                    if(idDynamic == "")
                    {
                        idDynamic = oCheckBox.value;
                    }
                    else
                    {
                        idDynamic += "," + oCheckBox.value;
                    }
                    
                    if(oLabel = document.getElementById("lbl"+hiddenName+iCheckBox))
                    {
                        if(strDynamic == "")
                        {
                            strDynamic = oLabel.innerHTML;
                        }
                        else
                        {
                            strDynamic += "," + oLabel.innerHTML;
                        }
                    }    
                }
            }
        }
        document.forms[formName][hiddenName].value = idDynamic;
        document.forms[formName][inputName].value = strDynamic;
        
    }
    
    function applyDynamicBox(formName, divName, hiddenName, inputName, tableName)
    {
        checkDynamicBox(formName, divName, hiddenName, inputName, tableName);
        hideDynamicBox(divName);    
    }
    
    function parseDynamicBox(oParent)
    {
        var iChild = 0;
        for(iChild = 0; iChild < oParent.childNodes.length; iChild ++)
        {
            var oChild = oParent.childNodes[iChild];
            
            if(oChild.nodeName.toLowerCase() == 'label')
            {
                if(vAttribute = oChild.getAttribute('localized'))
                {
                    if(vAttribute == 'true')
                    {
                        oChild.innerHTML = Localization.getTranslation(oChild.innerHTML);   
                    }   
                }
            }
            
            if(oChild.hasChildNodes())
            {
                parseDynamicBox(oChild);
            }
        }
    }
