var locked = false;
var waiting = [];

$(function () {
    $(".img-tabs-main li").first().addClass("img-tabs-selected");

    var beginData = imgTabContent[0];
    $("#img-tabs-bg").attr("src", beginData.image);
    if (imgTabsUseLabels == true) {
        $("#img-tabs-right-head").text(beginData.head);
        $("#img-tabs-right-desc").text(beginData.desc);
        $("#img-tabs-bottom").text(beginData.info);
    }
    else $("#img-tabs-headline-bottom").text(beginData.head);

    var autoSwitchTabImgIntervalId;
    var switchTabImg = function (newSelectedElement, internalIgnoreLock) {
        if (internalIgnoreLock == null && locked == true) {
            waiting.push(newSelectedElement);
            return;
        }

        locked = true;
        $(".img-tabs-selected").removeClass("img-tabs-selected");
        $(newSelectedElement).addClass("img-tabs-selected");
        var selectedData = imgTabContent[$(".img-tabs-main li").index(newSelectedElement)];
        $("#img-tabs-bg").fadeOut(260, "swing", function () {
            $(this).show().css({ visibility: "hidden" });
            if (imgTabsUseLabels == true) {
                $("#img-tabs-right-head").text(selectedData.head);
                $("#img-tabs-right-desc").text(selectedData.desc);
                $("#img-tabs-bottom").text(selectedData.info);
            }
            else $("#img-tabs-headline-bottom").text(selectedData.head);
            var myTimeout = setTimeout(function () {
                $("#img-tabs-bg").unbind("load").css({ opacity: 0.0, visibility: "visible" }).animate({ opacity: 1.0 }, 420, "swing", function () {
                    if (waiting.length == 0) locked = false;
                    else switchTabImg(waiting.shift(), true);

                    switchTabImgStartInterval();
                });
            });
            $(this).load(function () {
                clearInterval(myTimeout);
                $(this).unbind("load").css({ opacity: 0.0, visibility: "visible" }).animate({ opacity: 1.0 }, 420, "swing", function () {
                    if (waiting.length == 0) locked = false;
                    else switchTabImg(waiting.shift(), true);

                    switchTabImgStartInterval();
                });
            }).attr("src", selectedData.image);
        });
    };

    var autoSwitchTabImg = function () {
        var newSelectedElement = $(".img-tabs-selected")
        switchTabImg($(".img-tabs-main li").index(newSelectedElement) == 4
								? $(".img-tabs-main li").first()
								: newSelectedElement.next(".img-tabs-main li"));
    };

    var switchTabImgStartInterval = function () {
        clearInterval(autoSwitchTabImgIntervalId);
        autoSwitchTabImgIntervalId = setInterval(autoSwitchTabImg, 8000);
    };
    switchTabImgStartInterval();


    $(".img-tabs-main li").each(function () {
        $(this).mouseenter(function () {
            switchTabImg(this);
        });
    });
});


