﻿var SidebarHandler = {
    interval: 0,
    starter: null,
    started: 0,
    imageIds: null,
    docs: null,
    startup: true, targetCount: 6, imageIndex: 0, docIndex: 0, targetIndex: 0,
    ShowNext: function () {
        SidebarHandler.started++;
        if (SidebarHandler.targetIndex >= SidebarHandler.targetCount) SidebarHandler.targetIndex = 0;
        if (SidebarHandler.imageIndex >= SidebarHandler.imageIds.length) SidebarHandler.imageIndex = 0;
        if (SidebarHandler.docIndex >= SidebarHandler.docs.length) SidebarHandler.docIndex = 0;
        var elem = jQuery("#SidebarElement" + SidebarHandler.targetIndex + " a"),
                    img = jQuery("#SidebarImage" + SidebarHandler.targetIndex), title = jQuery("#SidebarTitle" + SidebarHandler.targetIndex),
                    link = jQuery("#SidebarLink" + SidebarHandler.targetIndex), text = jQuery("#SidebarText" + SidebarHandler.targetIndex),
                    pars = { fast: (SidebarHandler.started < 7), imageId: null, doc: ['', '', ''] };

        function ImageFadeIn() {
            //img.hide();
            img.attr("src", "readimage.aspx?quality=1&asset=dam:" + pars.imageId);
            img.fadeIn(800, TextFadeIn);
        }
        function TextFadeIn() {
            title.html(pars.doc[0]); text.html(pars.doc[1]); link.attr("href", pars.doc[2]);
            elem.slideDown(200, RunAnimation);
        }

        function ImageFadeOut() {
            img.fadeOut(pars.fast ? 10 : 200, ImageFadeIn);
        }

        function TextFadeOut() {
            elem.slideUp(pars.fast ? 10 : 200, ImageFadeOut);
        }

        if (SidebarHandler.imageIndex < SidebarHandler.imageIds.length) pars.imageId = SidebarHandler.imageIds[SidebarHandler.imageIndex];
        if (SidebarHandler.docIndex < SidebarHandler.docs.length) pars.doc = SidebarHandler.docs[SidebarHandler.docIndex];

        TextFadeOut();

        SidebarHandler.targetIndex++; SidebarHandler.imageIndex++; SidebarHandler.docIndex++;
    }
}

function RunAnimation() {
    setTimeout(SidebarHandler.ShowNext, SidebarHandler.started < 6 ? 1 : SidebarHandler.interval);
}

function InitSidebar(imageIds, docs, interval) {
    SidebarHandler.imageIds = imageIds;
    SidebarHandler.docs = docs;
    SidebarHandler.interval = interval;
    RunAnimation();
}
