﻿var _timer;
var _thumbTimer;
var _thumbTick;
var _thumbIndex;
var _panels;
var _texts;
var _thumbs;
var _index;
var _animating = false;

function rotate_load(sender, args) {
    Sys.Application.add_unload(rotate_unload);
    _panels = $('.rotatingImagePanel');
    _texts = $('.text');
    _thumbs = $('.thumb');

    for (var i = 1; i < _panels.length; i++) {
        $($(_panels)[_index]).fadeOut(1);
    }
    for (var i = 1; i < _texts.length; i++) {
        $($(_texts)[_index]).slideUp(1);
    }

    _index = 0;
    _timer = new Sys.Preview.Timer();
    _timer.set_interval(6000);
    _timer.add_tick(timer_tick);
    _timer.set_enabled(true);

    _thumbTimer = new Sys.Preview.Timer();
    _thumbTimer.set_interval(250);
    _thumbTimer.add_tick(thumb_tick);

    $('.thumb').hover(
        function() {
            if (!_animating) {
                _thumbIndex = getThumbIndex(this);
                _thumbTimer.set_enabled(true);
            }
        },
        function() {
            _thumbTimer.set_enabled(false);
            
            if (!_timer.get_enabled()) {
                _timer.set_interval(2000);
                _timer.set_enabled(true);
            }
        }
    );
}

function rotate_unload(sender, args) {
    _timer.set_enabled(false);

    if (_timer) {
        _timer.remove_tick(timer_tick);
        _timer.dispose();
        _timer = null;
    }

    if (_thumbTimer) {
        _thumbTimer.remove_tick(thumb_tick);
        _thumbTimer.dispose();
        _thumbTimer = null;
    }

    Sys.Application.remove_load(rotate_load);
    Sys.Application.remove_unload(rotate_unload);
}

function timer_tick(sender, args) {
    _animating = true;
    $(_texts[_index]).slideUp(400);
    $(_thumbs[_index]).fadeTo(300, 0.5);
    $(_panels[_index]).fadeOut(600, function() {
        if (++_index == $(_panels).length) _index = 0;
        $(_panels[_index]).fadeIn(600);
        $(_thumbs[_index]).fadeTo(300, 1.0);
        $(_texts[_index]).slideDown(400);
        _animating = false;
    });
    _timer.set_interval(10000);
}

function thumb_tick(sender, args) {
    _thumbTimer.set_enabled(false);
    _timer.set_enabled(false);
    if (_index != _thumbIndex) showPanel(_thumbIndex);
}

function showPanel(index) {
    _animating = true;
    $(_texts[_index]).slideUp(200);
    $(_thumbs[_index]).fadeTo(150, 0.5);
    $(_panels[_index]).fadeOut(300, function() {
        _index = index;
        $(_panels[_index]).fadeIn(300);
        $(_thumbs[_index]).fadeTo(150, 1.0);
        $(_texts[_index]).slideDown(200);
        _animating = false;
    });
}

function getThumbIndex(thumb) {
    for (var i = 0; i < _thumbs.length; i++) {
        if (thumb === _thumbs[i]) return i;
    }
    return 0;
}