﻿var TimeToFade = 1000.0;
var divChangeInterval = 5000;
var CurrentSelectedDiv = 'TabButton1';
var linkclicked = false;

function fade(eid) {
    var element = document.getElementById(eid);
    if (element == null)
        return;

    if (element.FadeState == null) {
        if (element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1') {
            element.FadeState = 2;
        }
        else {
            element.FadeState = -2;
        }
    }

    if (element.FadeState == 1 || element.FadeState == -1) {
        element.FadeState = element.FadeState == 1 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
    }
    else {
        element.FadeState = element.FadeState == 2 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade;
        setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
    }
}

function animateFade(lastTick, eid) {
    debugger;
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;

    var element = document.getElementById(eid);

    if (element.FadeTimeLeft <= elapsedTicks) {
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = '
        + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        return;
    }

    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft / TimeToFade;
    if (element.FadeState == 1)
        newOpVal = 1 - newOpVal;

    element.style.opacity = newOpVal;
    element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';

    setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function FadeDiv(tabButton) {
    if (tabButton != CurrentSelectedDiv) {
        linkclicked = true;
        FadeDivLocal(tabButton);
    }
}

function FadeDivLocal(tabButton)
{
    var element = document.getElementById(CurrentSelectedDiv);
    element.className = 'TabButton TabNotSelected';
    hidemydiv(CurrentSelectedDiv);
    CurrentSelectedDiv = tabButton;
    element = document.getElementById(CurrentSelectedDiv);
    element.className = 'TabButton TabSelected';
    showmydiv(CurrentSelectedDiv);
}

function hidemydiv(tabbutton) {

    var divname = getDivName(tabbutton);
    var element = document.getElementById(divname);
    element.style.display = 'none';

}

function getDivName(tabbutton) {
    var divname = '';
    if (tabbutton == 'TabButton1') {
        divname = 'ScrollerTab1';
    }
    else if (tabbutton == 'TabButton2') {
        divname = 'ScrollerTab2';
    }
    else if (tabbutton == 'TabButton3') {
       divname = 'ScrollerTab3';
   }

   return divname;
}

function getNextButtonName(tabbutton) {
    var divname = '';
    if (tabbutton == 'TabButton1') {
        divname = 'TabButton2';
    }
    else if (tabbutton == 'TabButton2') {
        divname = 'TabButton3';
    }
    else if (tabbutton == 'TabButton3') {
        divname = 'TabButton1';
    }

    //check if visible, if not get next one. This will go round and get the original name if no others are visible. ie only showing one tab.
    var elem = document.getElementById(divname);
    if (elem == null)
        divname = getNextButtonName(divname);
        
    return divname;
}

function showmydiv(tabbutton) {
    var divname = getDivName(tabbutton);
    var element = document.getElementById(divname);
    element.style.display = '';
}

function StartSlideShow() {
    setTimeout("RefreshSlide()", divChangeInterval);
}

function RefreshSlide() {
    var doSlideShow = true;
    if (linkclicked == true) {
        linkclicked = false;
    }
    else {
        var nextDiv = getNextButtonName(CurrentSelectedDiv);
        if (nextDiv != CurrentSelectedDiv) {
            FadeDivLocal(nextDiv);
        }
        else {
            //only the one tab showing so do not set slideshow going
            doSlideShow = false;
        }
    }
    if (doSlideShow) {
        setTimeout("RefreshSlide()", divChangeInterval);
    }
}

