﻿/*
    Power Panel Script
    ------------------
    Site: Central Source
    Author: Andrew Neale
*/

/*
    VARIABLES
*/

var powerPanel_rootElement;
var powerPanel_panels = [];
var powerPanel_images = [];
var powerPanel_homeSliderNavigation;
var powerPanel_homeSliderNavigationItems = [];
var powerPanel_navigationRootElement;
var powerPanel_navigationItems = [];
var powerPanel_activePanel = 0;
var powerPanel_panelOpacity = new Array();
var powerPanel_activeImage = 0;
var powerPanel_imageOpacity = new Array();
var powerPanel_panelCount;
var powerPanel_imageCount;
var powerPanel_timeout = -1;
var powerPanel_lockedPanel = -1;
var powerPanel_autoTransition = true;

/*
    FUNCTIONS
*/

function powerPanel_initialize() {

    var i = 0;
    var len = 0;
    var _Collection;

    powerPanel_rootElement = document.getElementById("powerPanel");

    if (powerPanel_rootElement != null) {

        _Collection = powerPanel_rootElement.getElementsByTagName("div");

        powerPanel_panelCount = 0;
        for (i = 0, len = _Collection.length; i < len; i++) {
            if (_Collection[i].className == "panel") {
                powerPanel_panels.push(_Collection[i]);
                powerPanel_panelOpacity[powerPanel_panelCount] = 0;
                powerPanel_panelCount++;
            }
        }

        _Collection = powerPanel_rootElement.getElementsByTagName("div");

        powerPanel_imageCount = 0;
        for (i = 0, len = _Collection.length; i < len; i++) {
            if (_Collection[i].className == "homeSlider") {
                powerPanel_images.push(_Collection[i]);
                powerPanel_imageOpacity[powerPanel_imageCount] = 0;
                powerPanel_imageCount++;
            }
        }

        powerPanel_homeSliderNavigation = document.getElementById("powerPanel_homeSliderNavigation");
        if (powerPanel_homeSliderNavigation != null) {
            powerPanel_homeSliderNavigationItems = powerPanel_homeSliderNavigation.getElementsByTagName("a");
        }

        if (powerPanel_imageCount > 0) {
            powerPanel_activePanel = -1;

            for (i = 0; i < powerPanel_panelCount; i++) {
                powerPanel_setOpacity(powerPanel_panels[i], 0);
                powerPanel_panels[i].style.display = "none";
            }
        }
        else {
            if (powerPanel_panelCount > 0) {
                powerPanel_activePanel = 0;
                powerPanel_panelOpacity[powerPanel_activePanel] = 100;
                powerPanel_panels[powerPanel_activePanel].style.zIndex = "2";

                for (i = 0; i < powerPanel_panelCount; i++) {
                    if (i != powerPanel_activePanel) {
                        powerPanel_setOpacity(powerPanel_panels[i], 0);
                        powerPanel_panels[i].style.display = "none";
                        powerPanel_panels[i].style.zIndex = "1";
                    }
                }
            }
        }
    }

    powerPanel_navigationRootElement = document.getElementById("powerPanelNavigation");

    if (powerPanel_navigationRootElement != null) {

        _Collection = powerPanel_navigationRootElement.getElementsByTagName("div");

        for (i = 0, len = _Collection.length; i < len; i++) {
            if (_Collection[i].className == "item" || _Collection[i].className == "item lastItem" || _Collection[i].className == "item veryActiveItem" || _Collection[i].className == "item veryActiveItem lastItem") {
                powerPanel_navigationItems.push(_Collection[i]);
                if (_Collection[i].className.indexOf("veryActiveItem") > -1) {
                    powerPanel_lockedPanel = powerPanel_navigationItems.length - 1;
                    powerPanel_activePanel = powerPanel_navigationItems.length - 1;
                    if (powerPanel_rootElement != null) {
                        if (powerPanel_activePanel > -1) {
                            powerPanel_setOpacity(powerPanel_panels[powerPanel_activePanel], 100);
                            powerPanel_panels[powerPanel_activePanel].style.display = "block";
                        }
                    }
                }
            }
        }

        if (powerPanel_rootElement != null && powerPanel_activePanel > -1) {
            if (powerPanel_navigationItems[powerPanel_activePanel].className == "item") {
                powerPanel_navigationItems[powerPanel_activePanel].className = "item activeItem";
            }
            else if (powerPanel_navigationItems[powerPanel_activePanel].className == "item lastItem") {
                powerPanel_navigationItems[powerPanel_activePanel].className = "item lastItem activeItem";
            }
        }
        else {
            if (powerPanel_rootElement != null) {
                powerPanel_activeImage = 0;
                for (var i = 0; i < powerPanel_imageCount; i++) {
                    powerPanel_imageOpacity[i] = 0;
                    powerPanel_setOpacity(powerPanel_images[i], 0);
                    powerPanel_images[i].style.display = "none";
                    powerPanel_images[i].style.zIndex = "1";
                    if (powerPanel_homeSliderNavigation != null) {
                        powerPanel_homeSliderNavigationItems[i].className = "";
                    }
                }
                powerPanel_imageOpacity[powerPanel_activeImage] = 100;
                powerPanel_setOpacity(powerPanel_images[powerPanel_activeImage], 100);
                powerPanel_images[powerPanel_activeImage].style.display = "block";
                powerPanel_images[powerPanel_activeImage].style.zIndex = "1";
                if (powerPanel_homeSliderNavigation != null) {
                    powerPanel_homeSliderNavigationItems[powerPanel_activeImage].className = "active";
                }
                powerPanel_timeout = setTimeout("powerPanel_update()", 1000);
            }
        }
    }

}

function powerPanel_showPanel(panelId) {
    var newMarketingPanel = document.getElementById("alternateMarketingPanel");
    if (marketingPanel_rootElement != null && newMarketingPanel != null) {
        if (marketingPanel_rootElement.id != newMarketingPanel.id) {
            marketingPanel_rootElement.style.display = "none";
            newMarketingPanel.style.display = "block";
            if (marketingPanel_timeout > -1) {
                clearTimeout(marketingPanel_timeout);
            }
            marketingPanel_rootElement;
            marketingPanel_panels = [];
            marketingPanel_navigationRootElement;
            marketingPanel_navigationItems = [];
            marketingPanel_activePanel = 0;
            marketingPanel_panelOpacity = new Array();
            marketingPanel_timeout = -1;
            marketingPanel_autoTransition = true;
            marketingPanel_initialize(newMarketingPanel.id);
        }
    }

    if (powerPanel_rootElement != null) {
        if (powerPanel_activePanel == -1) {
            for (var i = 0; i < powerPanel_images.length; i++) {
                powerPanel_images[i].style.display = "none";
            }
            if (powerPanel_homeSliderNavigation != null) {
                powerPanel_homeSliderNavigation.style.display = "none";
            }
        }
        else {
            if (powerPanel_activePanel != powerPanel_lockedPanel) {
                if (powerPanel_navigationItems[powerPanel_activePanel].className == "item activeItem") {
                    powerPanel_navigationItems[powerPanel_activePanel].className = "item";
                }
                else if (powerPanel_navigationItems[powerPanel_activePanel].className == "item lastItem activeItem") {
                    powerPanel_navigationItems[powerPanel_activePanel].className = "item lastItem";
                }
            }
        }

        if (panelId != powerPanel_lockedPanel) {
            if (powerPanel_navigationItems[panelId].className == "item") {
                powerPanel_navigationItems[panelId].className = "item activeItem";
            }
            else if (powerPanel_navigationItems[panelId].className == "item lastItem") {
                powerPanel_navigationItems[panelId].className = "item lastItem activeItem";
            }
        }
    }

    if (powerPanel_timeout == -1) {
        powerPanel_timeout = setTimeout("powerPanel_update()", 40);
    }
    else {
        clearTimeout(powerPanel_timeout);
        powerPanel_timeout = setTimeout("powerPanel_update()", 40);
    }

    powerPanel_activePanel = panelId;

}

function powerPanel_update() {

    if (powerPanel_activePanel == -1) {
        if (powerPanel_imageCount > 1) {
            var moveOn = false;

            for (var i = 0; i < powerPanel_imageCount; i++) {

                if (i == powerPanel_activeImage) {

                    powerPanel_images[i].style.display = "block";

                    powerPanel_imageOpacity[i] += 5;

                    if (powerPanel_imageOpacity[i] >= 50) {
                        powerPanel_images[i].style.zIndex = 2;
                    }

                    if (powerPanel_imageOpacity[i] >= 500) {
                        powerPanel_imageOpacity[i] = 100;
                        moveOn = powerPanel_autoTransition;
                    }

                    if (powerPanel_imageOpacity[i] >= 100) {
                        powerPanel_setOpacity(powerPanel_images[i], 100);
                    }
                    else {
                        powerPanel_setOpacity(powerPanel_images[i], powerPanel_imageOpacity[i]);
                    }
                }
                else {

                    powerPanel_imageOpacity[i] -= 5;

                    if (powerPanel_imageOpacity[i] <= 50) {
                        powerPanel_images[i].style.zIndex = 1;
                    }

                    if (powerPanel_imageOpacity[i] <= 0) {
                        powerPanel_imageOpacity[i] = 0;
                        powerPanel_images[i].style.display = "none";
                    }

                    powerPanel_setOpacity(powerPanel_images[i], powerPanel_imageOpacity[i]);

                }
            }

            if (moveOn) {
                powerPanel_activeImage++;
                if (powerPanel_activeImage == powerPanel_imageCount) {
                    powerPanel_activeImage = 0;
                }
                if (powerPanel_homeSliderNavigation != null) {
                    for (var i = 0; i < powerPanel_homeSliderNavigationItems.length; i++) {
                        if (i == powerPanel_activeImage) {
                            powerPanel_homeSliderNavigationItems[i].className = "active";
                        }
                        else {
                            powerPanel_homeSliderNavigationItems[i].className = "";
                        }
                    }
                }
                powerPanel_timeout = setTimeout("powerPanel_update()", 40);
            }
            else {
                powerPanel_timeout = setTimeout("powerPanel_update()", 40);
            }
        }
    }
    else {
        var moreChangesRequired = powerPanel_panelCount;

        for (var i = 0; i < powerPanel_panelCount; i++) {

            if (i == powerPanel_activePanel) {

                powerPanel_panels[i].style.display = "block";

                powerPanel_panelOpacity[i] += 20;

                if (powerPanel_panelOpacity[i] >= 100) {
                    moreChangesRequired--;
                    powerPanel_panelOpacity[i] = 100;
                }

                powerPanel_setOpacity(powerPanel_panels[i], powerPanel_panelOpacity[i]);

            }
            else {

                powerPanel_panelOpacity[i] -= 20;

                if (powerPanel_panelOpacity[i] <= 0) {
                    moreChangesRequired--;
                    powerPanel_panelOpacity[i] = 0;
                    powerPanel_panels[i].style.display = "none";
                }

                powerPanel_setOpacity(powerPanel_panels[i], powerPanel_panelOpacity[i]);

            }

        }

        if (moreChangesRequired > 0) {
            powerPanel_timeout = setTimeout("powerPanel_update()", 40);
        }
        else {
            powerPanel_timeout = -1;
        }
    }
}

function powerPanel_setHomeSlider(slider) {
    clearTimeout(powerPanel_timeout);
    powerPanel_activeImage = slider;
    powerPanel_update();
    powerPanel_autoTransition = false;
    if (powerPanel_homeSliderNavigation != null) {
        for (var i = 0; i < powerPanel_homeSliderNavigationItems.length; i++) {
            if (i == powerPanel_activeImage) {
                powerPanel_homeSliderNavigationItems[i].className = "active";
            }
            else {
                powerPanel_homeSliderNavigationItems[i].className = "";
            }
            if (powerPanel_imageOpacity[i] > 100) {
                powerPanel_imageOpacity[i] = 100;
            }
        }
    }
    return false;
}

function powerPanel_setOpacity(element, opacity) {

    var elementStyle = element.style;

    elementStyle.opacity = (opacity / 100);
    elementStyle.MozOpacity = (opacity / 100);
    elementStyle.KhtmlOpacity = (opacity / 100);
    elementStyle.filter = "alpha(opacity=" + opacity + ")";
}
