$(function() {

    var bnr = $('#homepagebanner');
    var Running;

    function bannerTransition(opts) {
        var _opts = {
            ajax: 1,
            view: 'banner.next',
            current: bnr.find('#banner_current').attr('class')
        }, opts = opts || {};

        $.extend(_opts, opts);

        $.get(BANNER_URL, _opts, function(data) {
            if (data.length > 0) {
                bnr.html(data);
            } else {
                stop();
            }
        }, 'html');
    }

    function start() {
        Running = true;
        bnr.data('interval', setInterval(bannerTransition, 10000));
        $('.play').removeClass('play').addClass('pause');
    }
            
    function stop() {
        Running = false;
        clearInterval(bnr.data('interval'));
        $('.pause').removeClass('pause').addClass('play');        
    }

    function doStep(dir) {
        var dir = dir || 'next';
        stop();
        bannerTransition({
            view: 'banner.' + dir
        });
        start();
    }

    bnr.delegate('.controls a', 'click', function(e) {
        var elem;

        e.stopPropagation();
        e.preventDefault();

        elem = $(this);

        switch (this.className) {
            case 'previous':
                doStep('previous');
                break;

            case 'pause': case 'play':
                if (!Running) {
                    start();
                } else {
                    stop();
                }
                break;

            case 'next':
                doStep('next');
                break;
        }
    });

    if (bnr.length == 1) {
        start();
    }

    if (bnr.length == 0) {
        console.log("length 0");
    }

});
