window.addEvent('load', function() {
    new PollBarController();
});

PollBarController = new Class({
    initialize: function() {
        var bar = null;
        var bar_arr = $ES('li div.bar');

        for (var i = 0; i < bar_arr.length; i++) {
            bar = new PollBar(bar_arr[i]);
        }
    }
});

PollBar = new Class({
    initialize: function(element) {
        var width = element.getStyle('width').toInt();

        element.setStyle('width', 0);
        element.empty();

        this.fx = new Fx.Style(element, 'width', {
            duration: 600,
            transition: Fx.Transitions.Quart.easeInOut
        });
        this.fx.start(width);
    }
});

/*/
PollBarController = new Class({
    initialize: function() {
        this.bar_arr = [];
        this.current = null;

        var bar_arr = $ES('li div.bar');

        for (var i = 0; i < bar_arr.length; i++) {
            this.bar_arr.push(new PollBar(this, bar_arr[i]));
        }

        if (this.bar_arr.length) {
            this.current = 0;
            this.animate();
        }
    },

    animate: function() {
        if (this.current < this.bar_arr.length) {
            this.bar_arr[this.current++].animate();
        }
    }
});

PollBar = new Class({
    initialize: function(controller, element) {
        this.controller = controller;
        this.element = element;
        this.width = this.element.getStyle('width').toInt();

        this.element.setStyle('width', 0);
        this.element.empty();

        var thisObject = this;
        this.fx = new Fx.Style(element, 'width', {
            duration: 300,
            transition: Fx.Transitions.Quart.easeInOut,
            onComplete: function () {
                thisObject.controller.animate();
            }
        });
    },

    animate: function() {
        this.fx.start(this.width);
    }
});/**/