dojo.require('dojo.fx');

webma.webma3 = {

};



/**
 * Make direct children nodes with specified name in container equal height.
 *
 * @param {HTMLElement} container
 * @param {String} nodeName
 */
webma.util.equalHeightNodes = function(container, nodeName) {
    var i,
        nodes,
        maxHeight = 0;

    if (!container) {
        return container;
    }
    nodes = container.childNodes;
    for (i = 0; i < nodes.length; i++) {
        if (nodes[i].nodeName === nodeName && maxHeight < nodes[i].offsetHeight) {
            maxHeight = nodes[i].offsetHeight;
        }
    }
    for (i = 0; i < nodes.length; i++) {
        if (nodes[i].nodeName === nodeName) {
            nodes[i].style.height = maxHeight + 'px';
        }
    }
    return container;
};

webma.webma3.widgets = {

};

/**
 * Convert a list of elements to a slider widget.
 *
 * @param {Object} args {container, slides, ctrlLabels}
 */
webma.webma3.widgets.sliderWidget = function(args) {
    var container = args.container,
        slides = args.slides,
        i = 0;
    if (!container){
        return container;
    }

    /**
     * Show next, and hide previous slide.
     *
     * @param {Number} step Amount of steps (may be negative)
     */
    function goSlide(step) {
        var fadeOut = dojo.fadeOut({node: container, duration: 500}),
            fadeIn = dojo.fadeIn({node: container, duration: 500});
        dojo.connect(fadeOut, 'onEnd', function() {
            dojo.removeClass(slides[i], 'active');
            if (typeof step == 'number') {
                i += step;
            } else {
                i++;
            }
            // Infinite loop
            if (i >= slides.length) {
                i = 0;
            } else if (i < 0) {
                i = slides.length - 1;
            }
            dojo.addClass(slides[i], 'active');
            fadeIn.play();
        });
        fadeOut.play();
    };

    /**
     * Create controllers to step slides.
     *
     * @return {Array} List of created controller elements
     */
    function createControllers() {
        var ctrlPrev = document.createElement('A'),
            ctrlNext = document.createElement('A');
        ctrlPrev.innerHTML = args.ctrlLabels[0];
        ctrlNext.innerHTML = args.ctrlLabels[1];
        dojo.addClass(ctrlPrev, 'controller controller-prev');
        dojo.addClass(ctrlNext, 'controller controller-next');
        container.parentNode.insertBefore(ctrlPrev, container);
        container.parentNode.insertBefore(ctrlNext, container);
        dojo.connect(ctrlPrev, 'onclick', function() {
            goSlide(-1);
        });
        dojo.connect(ctrlNext, 'onclick', function() {
            goSlide(1);
        });
        return [ctrlPrev, ctrlNext];
    };

    return createControllers();

};

// entry
webma.util.addEvent(window, 'load', function() {
    new webma.widgets.TocWidget();
    webma.webma3.widgets.sliderWidget({
        container: document.getElementById('testimonial-inner-block'),
        slides: dojo.query('#testimonial-inner-block blockquote'),
        ctrlLabels: ['vissza<span></span>', 'előre<span></span>']
    });
});

