﻿var carousel = {
    slideDelay: 10 * 1000,
    timeout: null,
    desctxt: [],

    init: function () {
        $('#carousel_dots a').click(function () {
            window.clearTimeout(timeout);
            carousel.slideTo($(this).attr('ix'));
            timeout = window.setTimeout("carousel.autoSlide();", carousel.slideDelay);
            return false;
        });

        carousel.tickerSetup();

        timeout = window.setTimeout("carousel.autoSlide();", carousel.slideDelay);
    },

    autoSlide: function () {
        var $active = $('#carousel img.active');
        if ($active.length == 0) $active = $('#carousel img:last');
        if ($active.length == 0) return;
        var aix = parseInt($active.attr('id').split('_')[2]);
        var nix = aix + 1;
        if ($("#carousel_img_" + nix).length == 0) nix = 0;

        carousel.slideTo(nix);

        window.clearTimeout(timeout);
        timeout = window.setTimeout("carousel.autoSlide();", carousel.slideDelay);
    },

    slideTo: function (ix) {
        var $active = $('#carousel img.active');
        if ($active.length == 0) $active = $('#carousel img:last');

        var $next = $('#carousel_img_' + ix);

        if (!$next.is('.active')) {
            $active.addClass('last-active');
            $next.css({ opacity: 0.0 })
                    .addClass('active')
                    .animate({ opacity: 1.0 }, 1000, function () {
                        $active.removeClass('active last-active');
                    });

            var $activep = $('#carousel_bar p.active');
            if ($activep.length == 0) $activep = $('#carousel_bar p:last');
            var $nextp = $('#carousel_desc_' + ix);
            $activep.removeClass('active');
            $nextp.addClass('active');

            $('#carousel_dots a.active').removeClass('active');
            $('#carousel_dots a.carousel_dot_' + ix).addClass('active');

            carousel.ticker(ix, 0);
        }
    },

    tickerSetup: function () {
        var d = 0;
        var $desc = $('#carousel_desc_' + d);
        while ($desc.length > 0) {
            carousel.desctxt[d] = $desc.html();
            d++;
            $desc = $('#carousel_desc_' + d);
        }
    },

    ticker: function (ix, pos) {
        var text = carousel.desctxt[ix];
        var $el = $('#carousel_desc_' + ix)

        ctext = text.substring(0, pos) + '_'; // (pos % 2 ? '-' : '_');
        $el.html(ctext);

        if (pos >= text.length)
            $el.html(text);
        else
            window.setTimeout('carousel.ticker(' + ix + ', ' + (pos + 1) + ');', 30);
    }
};


