﻿// These globals must be set for the fader functions to work
var gRotatorEnabled = true;
var gRotatorRestarting = false;
var gblObjFader;

// Rotator Configurations
var gblIntRotatorTimer = 8500;
var gblIntRotatorNextOffset = 1500;
var gblIntRotatorFadeSpeed = 1.85;

function RotatorRestart(intCurrentElement, arrObject) {
    gRotatorRestarting = true;
    if (gblIntRotatorNextOffset) {
        gRotatorEnabled = true;

        RotatorHideElement(intCurrentElement, arrObject);

        intCurrentElement = intCurrentElement + 1;
        if (intCurrentElement == arrObject.length) {
            intCurrentElement = 0;
        }
        setTimeout('RotatorRotateElement(intCurrentElement,' + arrObject + ',true)', gblIntRotatorNextOffset);
    }
}

function MultiRotatorHideElement(intCurrentElement, arrObject, intSpeed) {
    var arrObj;

    if (typeof (arrObject) == "object") {
        arrObj = arrObject;
    } else {
        arrObj = arrObject.toString().split(',');
    }
    
    if (gRotatorEnabled) {
        if (!intSpeed) {
            if (gblIntRotatorFadeSpeed) {
                intSpeed = gblIntRotatorFadeSpeed;
            } else {
                intSpeed = 100; // Immediate
            }
        }

        objFadeElement = document.getElementById(arrObj[intCurrentElement]);
        gblObjFader = new Fadomatic(objFadeElement, intSpeed);
        gblObjFader.fadeOut();
    }
}

function MultiRotatorRotateElement(intCurrentElement, arrObject) {
    var arrObj;
    var blnRotateEnabled = true;

    if (typeof (arrObject) == "object") {
        arrObj = arrObject;
    } else {
        arrObj = arrObject.toString().split(',');
    }
    // Start with a random element if none was specified
    if (isNaN(intCurrentElement) || intCurrentElement < 0 || intCurrentElement > arrObj.length - 1) { // -1 important because arrays start at 0;
        intCurrentElement = Math.floor(Math.random() * (arrObj.length));
    }

    if (!gblIntRotatorTimer || !gblIntRotatorNextOffset || !gblIntRotatorFadeSpeed || !arrObj || arrObj.length <= 1) {
        //gRotatorEnabled = false;
        blnRotateEnabled = false;
    } else {
        intShowNextTimer = gblIntRotatorTimer + gblIntRotatorNextOffset;
    }

    //if (gRotatorEnabled) {
    if (blnRotateEnabled) {
        //RotatorHighlightLink(intCurrentElement);

        objFadeElement = document.getElementById(arrObj[intCurrentElement]);
        objFadeElement.style.display = 'block';
        gblObjFader = new Fadomatic(objFadeElement, gblIntRotatorFadeSpeed, 0);
        gblObjFader.fadeIn();

        setTimeout("MultiRotatorHideElement(" + intCurrentElement + ",'" + arrObj + "')", gblIntRotatorTimer);

        intCurrentElement++;

        if (intCurrentElement == arrObj.length) {
            intCurrentElement = 0;
        }

        setTimeout("MultiRotatorRotateElement(" + intCurrentElement + ",'" + arrObj + "')", intShowNextTimer);
    } else {
        objFadeElement = document.getElementById(arrObj[0]);
        objFadeElement.style.display = 'block';
    }
}

// Change the rotator link styles in this function if needed
/*function RotatorHighlightLink(intCurrentElement) {

    // Set the class for all links and info
    for (var i = 0; i < arrRotatorElements.length; i++) {
        RotatorSetObjectClass(arrRotatorElements[i] + gstrRotatorLinkObjectClassNameExtension, gstrRotatorLinkClassName);
        RotatorSetObjectClass(arrRotatorElements[i] + gstrRotatorInfoObjectClassNameExtension, gstrRotatorInfoClassName);
    }

    // Set the class for the current link and info
    RotatorSetObjectClass(arrRotatorElements[intCurrentElement] + gstrRotatorLinkObjectClassNameExtension, gstrRotatorCurrentLinkClassName);
    RotatorSetObjectClass(arrRotatorElements[intCurrentElement] + gstrRotatorInfoObjectClassNameExtension, gstrRotatorCurrentInfoClassName);
}*/