﻿/// <reference path="~/js/jquery-1.5-vsdoc.js" />

var SlideShowSpeed = 5000;
var tss;
var jss = 0;
var pss;
var Slideshow_Paused = false;
var twins = ['#slide1', '#slide2'];
var curIndex = 0;
var picWidth = 510;

var preLoad = new Array();

function ShowNextSlideInShow() {
    if (jss < pss)
        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() {
    return;
    if (Title[jss] != '') {
        $('#ShowcasePhotoTitle').html(Title[jss]);
        $('#ShowcasePhotoTitle').css({ opacity: 0.7, visibility: 'visible' });
        $('#ShowcasePhotoTitle').fadeIn('fast');
    }
}

function PreLoadImage(i) {
    if (preLoad[i] == null) {
        preLoad[i] = new Image();
        preLoad[i].src = Picture[i];
    }
}

var animating = false;
function ShowSlide(i, isLeft) {
    clearTimeout(tss);
    if (i < 0 || i > pss)
        return;
    if (i <= pss) PreLoadImage(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[i].src).attr('title', Title[i]).attr('alt', Title[i]);
    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', PhotoLinks[i]);
    $(newSlide).find('a').css('cursor', PhotoLinks[i] != '' ? 'pointer' : 'default');
    
//    $(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) jss = 0;
    ShowSlide(jss, true);
}

function ShowRightSlide() {
    if (--jss < 0) jss = pss;
    ShowSlide(jss, false);
}

$(function() {
    pss = Picture.length - 1;
    PreLoadImage(0);
    if (pss > 0) {
        PreLoadImage(1);
        $(twins[0]).mouseenter(PauseSlideShow).mouseleave(PlaySlideShow);
        $(twins[1]).mouseenter(PauseSlideShow).mouseleave(PlaySlideShow);
        tss = setTimeout(ShowNextSlideInShow, SlideShowSpeed);
    }
    ShowTitle();
});
