﻿var galleryInterval = 10000;
var currentGalleryIndex = -1;
var maxGalleryIndex = 0;
var galleryChanged;
var _twc_gallery_interval;

$(function () {
    maxGalleryIndex = $('#twc-gallery').children('.contentPanel').length;

    if (maxGalleryIndex > 1) {
        $('#twc-gallery').append('<div id="gallery-nav"></div>');

        $('#twc-gallery > #gallery-nav').append('<a href="#" onclick="return false;" class="back">&lt;</a>');

        $('#twc-gallery > #gallery-nav').append('<ul class="items"></ul>');

        for (index = 0; index < maxGalleryIndex; index++) {
            $('#twc-gallery > #gallery-nav > ul.items').append('<li><a href="#" onclick="return false;" class="item"><span></span>' + (index + 1) + '</a></li>');
        }

        /* 
        //Change map button text
        if ($('.contentPanel > .map')) {
        $('#twc-gallery > #gallery-nav > ul.items > li:last-child a').html('<span class="map"></span>Map');
        }
        */

        $('#twc-gallery > #gallery-nav').append('<a href="#" onclick="return false;" class="forward">&gt;</a>');

        $('#twc-gallery > #gallery-nav').append('<ul class="playpause"></ul>');

        $('#twc-gallery > #gallery-nav > ul.playpause').append('<li><a href="#" onclick="return false;" class="play">Play</a></li>');

        $('#twc-gallery > #gallery-nav > ul.playpause').append('<li><a href="#" onclick="return false;" class="pause">Pause</a></li>');

        _twc_gallery_play();
    }
    else {
        $('#twc-gallery > .overlay').hide();
    }

    moveToGalleryIndex(0, true, false);

    $('#twc-gallery > #gallery-nav > .back').click(function () {
        moveToGalleryIndex(currentGalleryIndex - 1, false, true);
    });

    $('#twc-gallery > #gallery-nav > .forward').click(function () {
        moveToGalleryIndex(currentGalleryIndex + 1, false, true);
    });

    $('#twc-gallery > #gallery-nav > .items .item').click(function () {
        moveToGalleryIndex($('#gallery-nav > .items .item').index(this), false, true);
    });

    $('#twc-gallery > #gallery-nav > .playpause .play').click(function () {
        _twc_gallery_play();
    });

    $('#twc-gallery > #gallery-nav > .playpause .pause').click(function () {
        _twc_gallery_pause();
    });

    $('#twc-gallery > .contentPanel').click(function () {
        _twc_gallery_pause();
    });
});

function _twc_gallery_play() {
    if (!$('#twc-gallery > #gallery-nav > .playpause .play').hasClass('selected')) {
        $('#twc-gallery > #gallery-nav > .playpause .play').addClass('selected')
        $('#twc-gallery > #gallery-nav > .playpause .pause').removeClass('selected')
        _twc_gallery_interval = window.setInterval("_twc_gallery_moveToNextIndex()", galleryInterval);
    }
}

function _twc_gallery_pause() {
    if (!$('#twc-gallery > #gallery-nav > .playpause .pause').hasClass('selected')) {
        $('#twc-gallery > #gallery-nav > .playpause .pause').addClass('selected')
        $('#twc-gallery > #gallery-nav > .playpause .play').removeClass('selected')
        window.clearInterval(_twc_gallery_interval);
    }
}

function _twc_gallery_moveToNextIndex() {
    moveToGalleryIndex(currentGalleryIndex + 1, false, false);
}

function moveToGalleryIndex(index, instantShow, pause) {
    if (pause)
        _twc_gallery_pause();

    if (currentGalleryIndex != index) {
        if (currentGalleryIndex != index) {
            if (index >= maxGalleryIndex)
                index = 0;
            else if (index < 0)
                index = maxGalleryIndex - 1;

            $('#gallery-nav > .items .item').stop(true, true);
            $('#gallery-nav > .items .item').removeClass('selected');
            $('#gallery-nav > .items .item:eq(' + index + ')').addClass('selected');
            $('#twc-gallery > #outsideContent').remove();
            $('#twc-gallery > .contentPanel').stop(true, true);
            $('#twc-gallery > .contentPanel').hide();

            var newItem = $('#twc-gallery > .contentPanel:eq(' + index + ')');

            var outsideContent = $('#twc-gallery > .contentPanel:eq(' + index + ') > .outsideContentPanel');

            if (outsideContent.html() != null) {
                outsideContent.hide();
                $('#twc-gallery').append('<div id="outsideContent">' + outsideContent.html() + '</div>');
            }

            if (instantShow) {
                newItem.show();
            }
            else {
                newItem.fadeIn('slow');
            }

            currentGalleryIndex = index;

            if (galleryChanged != null)
                galleryChanged();
        }
    }
}

