

$(function () {
    TNT.init(3000);
});


var TNT = {};
TNT.init = function (tickerInterval) {
    TNT.contentRotaterInit(tickerInterval);
};

/* BEGIN: Content rotater */
TNT.contentRotaterInterval = 5500;
TNT.timeoutHandle = null;
TNT.preHoverPauseState = false;

TNT.contentRotaterInit = function (tickerInterval) {
    if ($(".latest-news-sub ul").length > 0) {
        TNT.contentRotaterInterval = tickerInterval;
        var newsTicker = ".latest-news-sub ul";
        TNT.contentRotaterStart(newsTicker, true);
        $(".latest-news-sub #ticker-next").click(function () { TNT.contentRotaterGoNextItem(newsTicker); });
        $(".latest-news-sub #ticker-prev").click(function () { TNT.contentRotaterGoPrevItem(newsTicker); });
        $(".latest-news-sub #ticker-pause").click(function () { TNT.contentRotaterGoPauseItem(newsTicker); });
    }
    if ($(".latest-jobs-ticker").length > 0) {
        TNT.contentRotaterStart(".latest-jobs-ticker", true);
    }
};

TNT.contentRotaterStart = function (selector, pauseOnHover) {
    if (typeof (pauseOnHover) === "undefined") {
        pauseOnHover = false;
    }
    var listItems = $(selector).children("li");
    if (listItems.length == 0) {
        return;
    }
    // initialise hidden/displayed items
    $(listItems).each(
        function (i) {
            if (i == 0) {
                $(this).css("display", "block");
            } else {
                $(this).css("display", "none");
            }
        }
    );
    // set up hover/pause effect
    if (pauseOnHover) {
        $(selector).mouseover(function () { TNT.contentRotaterHoverItem(true, selector); }).mouseout(function () { TNT.contentRotaterHoverItem(false, selector); });
    }
    // set up the interval
    TNT.contentRotateSetTimeout(selector);
};

TNT.contentRotaterNextItem = function (selector) {
    // if the ticker is paused, reset the interval and start rotating to the next item
    if ($(selector).hasClass("pause")) {
        // set up the interval
        TNT.contentRotateSetTimeout(selector);
        return;
    }
    // get the index of the currently display element
    var currentItemIndex = $(selector + " > li").index($(selector + " > li:visible"));
    // hide the currently displayed element
    $($(selector + " > li").get(currentItemIndex)).hide();
    // sort out the next item index
    var nextItemIndex = 0;
    if (currentItemIndex + 1 < $(selector + " > li").length) {
        nextItemIndex = currentItemIndex + 1;
    }
    // display the new item
    $($(selector + " > li").get(nextItemIndex)).show();
    // queue up the next run of this function
    TNT.contentRotateSetTimeout(selector);
};

TNT.contentRotaterGoNextItem = function (selector) {
    TNT.contentRotatePauseMode(false, selector);
    TNT.contentRotaterNextItem(selector);
    TNT.contentRotatePauseMode(true, selector);
};

TNT.contentRotaterGoPrevItem = function (selector) {
    // get the index of the currently display element
    var currentItemIndex = $(selector + " > li").index($(selector + " > li:visible"));
    // hide the currently displayed element
    $($(selector + " > li").get(currentItemIndex)).hide();
    // sort out the prev item index
    var prevItemIndex = 0;
    if (currentItemIndex - 1 >= 0) {
        prevItemIndex = currentItemIndex - 1;
    }
    else {
        prevItemIndex = $(selector + " > li").length - 1;
    }
    // display the new item
    $($(selector + " > li").get(prevItemIndex)).show();
    TNT.contentRotatePauseMode(true, selector);

    // Wait again
    TNT.contentRotateSetTimeout(selector);
};

TNT.contentRotaterGoPauseItem = function (selector) {
    if ($(selector).hasClass("pause")) {
        TNT.contentRotaterGoNextItem(selector);
        TNT.contentRotatePauseMode(false, selector);
    }
    else {
        // set up the interval
        TNT.contentRotateSetTimeout(selector);
        TNT.contentRotatePauseMode(true, selector);
    }
};

TNT.contentRotaterHoverItem = function (hoverStart, selector) {
    if (hoverStart) {
        if ($(selector).hasClass("pause")) {
            TNT.preHoverPauseState = true;
        } else {
            $(selector).addClass("pause");
            TNT.preHoverPauseState = false;
        }
    } else {
        if (TNT.preHoverPauseState == false) {
            $(selector).removeClass("pause");
        }
    }
};

TNT.contentRotatePauseMode = function (paused, selector) {
    if (paused) {
        $('.latest-news-sub #ticker-pause').attr('title', 'Play');
        $('.latest-news-sub #ticker-pause').css("background-image", "url(/Images/ticker-play.png)");
        $(selector).addClass("pause");
    } else {
        $('.latest-news-sub #ticker-pause').attr('title', 'Pause');
        $('.latest-news-sub #ticker-pause').css("background-image", "url(/Images/ticker-pause.png)");
        $(selector).removeClass("pause");
    }
};

TNT.contentRotateSetTimeout = function (selector) {
    if (TNT.timeoutHandle != null) {
        clearTimeout(TNT.timeoutHandle);
    }
    TNT.timeoutHandle = setTimeout("TNT.contentRotaterNextItem(\"" + selector + "\")", TNT.contentRotaterInterval);
};
/* END: Content rotater */
