// -----------------------------------------------------------------------------------------------------------
// More items management
//

var disabled = false;

function toggleOtherRowDisplay(nodeId, actionUrl) {
    var moreLessButton = $(nodeId + '_icon');

    if (disabled) {
        return;
    }

    var buttonImage = moreLessButton.getElementsByTagName('img')[0];
    var buttonLabel = moreLessButton.getElementsByTagName('span')[0];
    var group = $(nodeId + '_groups');

    if (moreLessButton.open == "true") {
        buttonImage.src = "styles/default/images/more.gif";
        $(buttonLabel).show();

        disabled = true;
        new Effect.BlindUp(group, {afterFinish: function() {
            disabled = false;
        }});
        new Effect.Fade(group);

        moreLessButton.open = "false";
    }
    else {

        disabled = true;

        if (moreLessButton.alreadyLoaded) {
            buttonImage.src = "styles/default/images/less.gif";
            $(buttonLabel).hide();

            new Effect.BlindDown(group, {afterFinish: function() {
                moreLessButton.open = "true";
                disabled = false;
            }});
            new Effect.Appear(group);

        }
        else {
            var loadingPanel = moreLessButton.getElementsByTagName('div')[0];
            Element.toggle(loadingPanel);

            var ajax = new Ajax.Updater(group, actionUrl, {
                method: 'get',
                onFailure: function() {
                    disabled = false;
                    Element.toggle(loadingPanel);
                    alert('Le serveur WEB ne repond pas !');
                },
                onComplete: function(request) {
                    moreLessButton.alreadyLoaded = true;
                    disabled = false;
                    Element.toggle(loadingPanel);
                    group.innerHTML = request.responseText;
                    toggleOtherRowDisplay(nodeId, actionUrl);
                }
            });

        }
    }
}

