﻿/// <reference path="~/js/jquery-1.3.2-vsdoc2.js" />

var SlideShowSpeed = 5000;
var tss;
var jss = 0;
var pss;
var Slideshow_Paused = false;
var twins = ['#slide1', '#slide2'];
var curIndex = 0;
var picWidth = 450;
var batch = 0;

var preLoad = [new Array(), new Array()];

function ShowNextSlideInShow() {
    if (jss < pss[batch])
        ShowLeftSlide();
    else
        ShowSlide(0);
    //tss = setTimeout(ShowNextSlideInShow, SlideShowSpeed);
}

function CheckSlideShow() {
    clearTimeout(tss);
    if (!Slideshow_Paused) {
        tss = setTimeout(ShowNextSlideInShow, SlideShowSpeed);
    }
}

function PlayPauseSlideShow() {
    clearTimeout(tss);
    Slideshow_Paused = !Slideshow_Paused;
    if (!Slideshow_Paused) ShowNextSlideInShow(true);
}

function PlaySlideShow() {
    $('#showcasecontrols').hide();
    Slideshow_Paused = false;
    tss = setTimeout(ShowNextSlideInShow, 1000);
}

function PauseSlideShow() {
    if (!animating) $('#showcasecontrols').show();
    clearTimeout(tss);
    Slideshow_Paused = true;
}

function HideTitle() {
    $('#ShowcasePhotoTitle').fadeOut('fast');
}

function ShowTitle() {
    if (Title[batch][jss] != '') {
        $('#ShowcasePhotoTitle').html(Title[batch][jss]);
        $('#ShowcasePhotoTitle').css({ opacity: 0.7, visibility: 'visible' });
        $('#ShowcasePhotoTitle').fadeIn('fast');
    }
}

function PreLoadImage(b,i) {
    if (preLoad[b][i] == null) {
        preLoad[b][i] = new Image();
        preLoad[b][i].src = Picture[b][i];
    }
}

var animating = false;
function ShowSlide(i, isLeft) {
    clearTimeout(tss);
    if (i < 0 || i > pss[batch])
        return;
    if (i <= pss[batch]) PreLoadImage(batch, i + 1);
    if (isLeft == null)
        isLeft = i > jss;
    jss = i;
    HideTitle();
    var curSlide = twins[curIndex];
    var newSlide = twins[1 - curIndex];

    $(curSlide).stop();
    $('#showcasecontrols').hide();
    $(newSlide).find('img').attr('src', preLoad[batch][i].src);
    if (isLeft)
        $(newSlide).css({ 'left': '-' + picWidth + 'px', 'z-index': 2, 'visibility': 'visible' })
    else
        $(newSlide).css({ 'left': picWidth + 'px', 'z-index': 2, 'visibility': 'visible' })
    $(curSlide).css({ 'z-index': 1 });
    $(newSlide).find('a').attr('href', PhotoLinkPattern[batch].replace("*", PhotoLinks[batch][i]));
    $(curSlide).animate({
        left: (isLeft ? '' : '-') + picWidth + 'px'
    }, 1000, 'swing');
    animating = true;
    $(newSlide).animate({
        left: '0px'
    }
        , 1000, 'swing', function() {
            animating = false;
            $(curSlide).css({ 'visibility': 'hidden' });
            $(newSlide).append($('#ShowcasePhotoTitle'));
            $(newSlide).append($('#showcasecontrols'));
            if (Slideshow_Paused) $('#showcasecontrols').show();
            ShowTitle();
            CheckSlideShow();
        }
    );
    curIndex = 1 - curIndex;
}

function ShowLeftSlide() {
    if (jss >= pss[batch]) return;
    ShowSlide(++jss, true);
}

function ShowRightSlide() {
    if (jss <= 0) return;
    ShowSlide(--jss, false);
}

function ShowPhotoBatch(i) {
    if (batch == i) return;
    $('#showcase-photo-batch-' + batch).removeClass('showcase-tab-item-selected');
    batch = i;
    $('#showcase-photo-batch-' + batch).addClass('showcase-tab-item-selected');
    PreLoadImage(i, 0);
    ShowSlide(0, false);
}

$(function() {
    pss = [Picture[0].length - 1, Picture[1].length - 1];
    PreLoadImage(0, 0);
    PreLoadImage(0, 1);
    $(twins[0]).mouseenter(PauseSlideShow).mouseleave(PlaySlideShow);
    $(twins[1]).mouseenter(PauseSlideShow).mouseleave(PlaySlideShow);
    ShowTitle();
    tss = setTimeout(ShowNextSlideInShow, SlideShowSpeed);
});
