/*globals $$: false, $: false, Browser: falsei, Accordion: false */
window.addEvent('domready', function() {
    var options, flatten;

    flatten = function (arr) {
        return [].concat.apply([], arr);
    };

    $$('a.external').addEvent('click',function(event) {
        event.preventDefault();
        window.open($(this).get('href'));
    });

    if (Browser.Engine.trident4) {
        $$('.ie6Hide').each(function(el) {
            el.setStyle('display', 'none');
        });
    }
    
    if(document.getElement("#runDescriptions  ul.documentsTree")) {
        options = {
            onActive: function (toggler, element) {
                toggler.removeClass('inactive').addClass('active');
            },

            onBackground: function (toggler, element) {
                toggler.removeClass('active').addClass('inactive');
            },

            alwaysHide: true,

            display: -1
        };

        new Accordion(
            $$("#runDescriptions  ul.documentsTree > li > h4"),
            $$("#runDescriptions  ul.documentsTree > li > ul"), 
            options    
        );

        $$('#runDescriptions  ul.documentsTree > li > ul').each(function (item) {
            var li = item.getChildren('li'),
                togglers = $$(flatten(li.getChildren('h4'))),
                pages = $$(flatten(li.getChildren('ul'))),
                acc;

            if (togglers.length === pages.length) {
                acc = new Accordion(togglers, pages, options);
                acc.addEvents({
                    active: function (toggle, page) {
                        if (item.getStyle('height') !== 0) {
                            item.setStyle('height', '');
                        }
                    },

                    complete: function (a) {
                        var height = 0;

                        if (a) {
                            item.getChildren().each(function (el) {
                                height += el.offsetHeight;
                            });

                            if (height !== item.offsetHeight && item.offsetHeight !== 0) {
                                item.setStyle('height', '');
                            }
                        }
                    }  
                });
            }
        })
    }
});


