﻿/* Common Variables */
var stageLinkId = "";
var stageContentId = "";
var stageLinkClass = "";
var stageContentClass = "";

var stageLinks = null;

$(document).ready(function() {
    ResearchSupportsInit();
    InitTextSizeSwitchingObjects();

    BindEventsToStages();
    AssignTextSizeEvents();

    LoadTextSize();

    AssignSiteMapEvents();
});

/*
##################################################################################################################################
Research Supports Script
##################################################################################################################################
*/

function ResearchSupportsInit()
{
    stageLinkId = "ResearchSupportsLink_";
    stageContentId = "ResearchSupport_StageContainer_";
    stageLinkClass = "ResearchSupportsStage";
    stageContentClass = "ResearchSupport_StageContentContainer";

    stageLinks = $("a." + stageLinkClass);
}

function BindEventsToStages()
{
    if ((stageLinks != null) && (stageLinks.length >= 1))
    {
        for (var i = 0; i < stageLinks.length; i++)
        {
            stageLinks[i].onclick = function() {
                // Configure Link
                ResetStageLinks();
                SetStageLink(this.id);

                // Configure Content
                HideStageContents();
                ShowStageContent(this.id);

                ChangeDocumentBreadcrumbTitle($("a[id='" + this.id + "']").text());
            }
        }
    }
}

function ResetStageLinks()
{
    if ((stageLinks != null) && (stageLinks.length >= 1))
    {
        for (var i = 0; i < stageLinks.length; i++)
        {
            var tempObj = $("a#" + stageLinks[i].id);
            tempObj.removeClass("selected");
        }
    }
}

function SetStageLink(linkId)
{
    var linkObj = $("a#" + linkId);
    if (linkObj != null)
    {
        linkObj.addClass("selected");
    }
}

function ShowStageContent(linkId)
{
    var stageId = linkId.replace(stageLinkId, stageContentId);
    var stageContentObj = $("div[id=" + stageId + "]");
    
    if (stageContentObj != null)
    {
        stageContentObj.show();
    }
}

function HideStageContents()
{
    var stageContentObjects = $("div." + stageContentClass);
    
    if ((stageContentObjects != null) && (stageContentObjects.length >= 1))
    {
        for (var i = 0; i < stageContentObjects.length; i++) {
            var tempObj = $("div[id=" + stageContentObjects[i].id + "]");
            tempObj.hide();
        }
    }
}

function ChangeDocumentBreadcrumbTitle(documentName)
{
    if ((documentName != null) && (documentName != ""))
    {
        var bcDocTitle = $("span[id='Breadcrum_CurrentDocument']");
        if (bcDocTitle != null)
        {
            bcDocTitle.text(documentName);
        }
    }
}

/*
##################################################################################################################################
Text Size Switching
##################################################################################################################################
*/

var normalTextButtonID = "";
var largerTextButtonID = "";
var largestTextButtonID = "";

var normalTextCSS = "";
var largerTextCSS = "";
var largestTextCSS = "";

var normalTextButton = null;
var largerTextButton = null;
var largestTextButton = null;

var coreStylesLinkId = "";
var coreStylesLink = null;

/* Cookies */
var cookieName = "";

function InitTextSizeSwitchingObjects() {
    normalTextButtonID = "TextSizeNormal";
    largerTextButtonID = "TextSizeLarger";
    largestTextButtonID = "TextSizeLargest";

    normalTextCSS = "/includes/css/Core.css";
    largerTextCSS = "/includes/css/CoreLarger.css";
    largestTextCSS = "/includes/css/CoreLargest.css";

    normalTextButton = $("a[id=" + normalTextButtonID + "]");
    largerTextButton = $("a[id=" + largerTextButtonID + "]");
    largestTextButton = $("a[id=" + largestTextButtonID + "]");

    coreStylesLinkId = "CoreStylesheet";
    coreStylesLink = $("link[id=" + coreStylesLinkId + "]");
    
    cookieName = "CurrentTextSize";
}

function AssignTextSizeEvents() {

    if ((normalTextButton != null) && (coreStylesLink != null)) {
        normalTextButton.click(function() {
            coreStylesLink.attr("href", normalTextCSS);
            SaveTextSize("Normal");
        });
    }

    if ((largerTextButton != null) && (coreStylesLink != null)) {
        largerTextButton.click(function() {
            coreStylesLink.attr("href", largerTextCSS);
            SaveTextSize("Larger");
        });
    }
    
    if ((largestTextButton != null) && (coreStylesLink != null)) {
        largestTextButton.click(function() {
            coreStylesLink.attr("href", largestTextCSS);
            SaveTextSize("Largest");
        });
    }
}

function SaveTextSize(currentTextSize) {
    if ((currentTextSize != null) && (currentTextSize != '')) {
        $.cookie(cookieName, currentTextSize, { path: '/', expires: 75 });
    }
}

function LoadTextSize() {
    if (($.cookie(cookieName) != null) && ($.cookie(cookieName) != '')) {
        var tsValue = $.cookie(cookieName);

        if (coreStylesLink != null) {
            if (tsValue == "Normal") {
                coreStylesLink.attr("href", normalTextCSS);
            }

            else if (tsValue == "Larger") {
                coreStylesLink.attr("href", largerTextCSS);
            }

            else if (tsValue == "Largest") {
                coreStylesLink.attr("href", largestTextCSS);
            }

            else {
                coreStylesLink.attr("href", normalTextCSS);
            }
        }
    }
}

/*
##################################################################################################################################
Full SiteMap
##################################################################################################################################
*/

function AssignSiteMapEvents() {
    $("input[id=btnShowDocuments]").click(function() {
        ShowDocuments();
    });

    $("input[id=btnHideDocuments]").click(function() {
        HideDocuments();
    });

    $("input[id=btnShowResources]").click(function() {
        ShowResources();
    });

    $("input[id=btnHideResources]").click(function() {
        HideResources();
    });
}

function ShowDocuments() {
    var documentLists = $("ul.FullSiteMap_DocumentList");

    if (documentLists != null) {
        documentLists.show();
    }
}

function HideDocuments() {
    var documentLists = $("ul.FullSiteMap_DocumentList");

    if (documentLists != null) {
        documentLists.hide();
    }
}

function ShowResources() {
    var resourceLists = $("ul.FullSiteMap_ResourceList");

    if (resourceLists != null) {
        resourceLists.show();
    }
}

function HideResources() {
    var resourceLists = $("ul.FullSiteMap_ResourceList");

    if (resourceLists != null) {
        resourceLists.hide();
    }
}
