﻿//var galleryInterval = 10000;
var currentGalleryIndex = -1;
var maxGalleryIndex = 0;
var galleryChanged;
var _twc_gallery_interval;

var gallerySettings = {
    navShowBack: true,
    navShowNext: true,
    navShowItems: false,
    navShowPlay: false,
    navShowPause: false,
    galleryInterval: 10000,
    lesserInterval: 5000
};

$(function () {
    maxGalleryIndex = $('#twc-gallery').children('.contentPanel').length;

    if (maxGalleryIndex > 1) {
        $('#twc-gallery').append('<div id="gallery-nav"></div>');

        if (gallerySettings.navShowBack) {
            $('#twc-gallery > #gallery-nav').append('<a href="#" onclick="return false;" class="back">&lt;</a>');
        }

        if (gallerySettings.navShowItems) {
            for (index = 0; index < maxGalleryIndex; index++) {
                $('#twc-gallery > #gallery-nav').append('<a href="#" onclick="return false;" class="item">*</a>');
            }
        }

        if (gallerySettings.navShowNext) {
            $('#twc-gallery > #gallery-nav').append('<a href="#" onclick="return false;" class="forward">&gt;</a>');
        }

        if (gallerySettings.navShowPlay) {
            $('#twc-gallery > #gallery-nav').append('<a href="#" onclick="return false;" class="play">Play</a>');
        }

        if (gallerySettings.navShowPause) {
            $('#twc-gallery > #gallery-nav').append('<a href="#" onclick="return false;" class="pause">Pause</a>');
        }

        _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 > .item').click(function () {
        moveToGalleryIndex($('#gallery-nav > .item').index(this), false, true);
    });

    $('#twc-gallery > #gallery-nav > .play').click(function () {
        _twc_gallery_play();
    });

    $('#twc-gallery > #gallery-nav > .pause').click(function () {
        _twc_gallery_pause();
    });

    $('#twc-gallery > .contentPanel').click(function () {
        _twc_gallery_pause();
    });
});

function _twc_gallery_play() {
    if (!$('#twc-gallery > #gallery-nav > .play').hasClass('selected')) {
        $('#twc-gallery > #gallery-nav > .play').addClass('selected')
        $('#twc-gallery > #gallery-nav > .pause').removeClass('selected')
        _twc_gallery_interval = window.setInterval("_twc_gallery_moveToNextIndex()", gallerySettings.galleryInterval);
    }
}

function _twc_gallery_pause() {
    if (!$('#twc-gallery > #gallery-nav > .pause').hasClass('selected')) {
        $('#twc-gallery > #gallery-nav > .pause').addClass('selected')
        $('#twc-gallery > #gallery-nav > .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 > .item').stop(true, true);
            $('#gallery-nav > .item').removeClass('selected');
            $('#gallery-nav > .item').eq(index).addClass('selected');
            $('#twc-gallery > #outsideContent').remove();
            $('#twc-gallery .contentPanel').stop(true, true).hide();

            var newItem = $('#twc-gallery > .contentPanel').eq(index);

            var outsideContent = $('#twc-gallery > .contentPanel').eq(index).children('.outsideContentPanel');

            if (outsideContent.html() != null) {
                outsideContent.hide();
                $('#twc-gallery').append('<div id="outsideContent">' + outsideContent.html() + '</div>');
            }

            if (instantShow) {
                newItem.show();
            }
            else {
                //console.log(newItem.length);
                newItem.fadeIn('slow');
            }

            currentGalleryIndex = index;

            if (galleryChanged != null)
                galleryChanged();
        }
    }
}
