

var theBrowserType;

if (navigator.userAgent.indexOf("Opera")!=-1
    && document.getElementById) theBrowserType="opera"; if (document.layers) {theBrowserType = "netscape4"} if (document.all) {theBrowserType = "ie"} if (window.navigator.userAgent.toLowerCase().match("gecko")) {
   theBrowserType= "gecko"
}
if (!document.all && document.getElementById) theBrowserType="firefox";

function findElement(id){
    var element;
    if (theBrowserType == "gecko" ) {
        element =
            eval('document.getElementById("' + id + '")');
    }
    else if (theBrowserType == "ie") {
        element =
            eval('document.getElementById("' + id + '")');
    }
    else if (theBrowserType == "firefox"){
        element =
            eval('document.getElementById("' + id + '")');
    }
    else if (theBrowserType == "netscape4") {
        element =
            eval('document.layers["' + id + '"]');
    }
    else {
        // Unknown
        return null;
    }
    return element;
}

function hide(id, formatContentClass, hideContentClass) {
    //alert("hide(" + id + "," + formatContentClass + "," + hideContentClass + ")");
    var element = findElement(id);
    if (element != null) {
        var updatedClasses = "";
        if (formatContentClass != null) {
            updatedClasses = formatContentClass;
            if (hideContentClass != null) {
                updatedClasses += " " + hideContentClass;
            }
        }
        else if (hideContentClass != null) {
            updatedClasses = hideContentClass;
        }
        // EXAMPLE: "article hidden-tab-article";
        element.className=updatedClasses;

        //alert("finished hide(" + id + ")");
    }
    else {
        //alert("failed in hide(" + id + ")");
    }
}

function inactivate_link(id, formatLinkClass, hideLinkClass) {
    //alert("inactivate_link(" + id + "," + formatLinkClass + "," + hideLinkClass + ")");
    var element = findElement(id);
    if (element != null) {
        var updatedClasses = "";
        if (formatLinkClass != null) {
            updatedClasses = formatLinkClass;
            if (hideLinkClass != null) {
                updatedClasses += " " + hideLinkClass;
            }
        }
        else if (hideLinkClass != null) {
            updatedClasses = hideLinkClass;
        }
        // EXAMPLE: "article-link unselected-tab";
        element.className=updatedClasses;

        //alert("finished inactivate_link(" + id + ")");
    }
    else {
        //alert("failed in inactivate_link(" + id + ")");
    }
}

function show(id, formatContentClass, showContentClass, anchorID) {
    //alert("show(" + id + "," + formatContentClass + "," + showContentClass + "," + anchorID + ")");
    var element = findElement(id);
    if (element != null) {
        var updatedClasses = "";
        if (formatContentClass != null) {
            updatedClasses = formatContentClass;
            if (showContentClass != null) {
                updatedClasses += " " + showContentClass;
            }
        }
        else if (showContentClass != null) {
            updatedClasses = showContentClass;
        }
        // EXAMPLE: "article selected-tab-article";
        element.className=updatedClasses;

        if (anchorID != null) {
            var theAnchor = document.getElementById(anchorID);
            if (theAnchor != null) theAnchor.focus();
        }

        //alert("finished show(" + id + ")");
    }
    else {
        //alert("failed in show(" + id + ")");
    }
}

function activate_link(id, formatLinkClass, showLinkClass) {
    //alert("activate_link(" + id + "," + formatLinkClass + "," + showLinkClass + ")");
    var element = findElement(id);
    if (element != null) {
        var updatedClasses = "";
        if (formatLinkClass != null) {
            updatedClasses = formatLinkClass;
            if (showLinkClass != null) {
                updatedClasses += " " + showLinkClass;
            }
        }
        else if (showLinkClass != null) {
            updatedClasses = showLinkClass;
        }
        // EXAMPLE: "article-link selected-tab";
        element.className=updatedClasses;

        //alert("finished activate_link(" + id + ")");
    }
    else {
        //alert("failed in activate_link(" + id + ")");
    }
}

// Use for named articles, where there is an array containing the names of tab IDs
// This function depends on these variables being declared in the override's Javascript:
// var calMonths =           ['name1','name2',...];

// var calAnchorSuffix =           'anchor';         // or similar

// var calContentPrefix =       'dir';            // or similar
// var calContentFormatClass =  'calendar';       // or similar
// var calHideContentClass =    'unselected-tab-content'; // or similar
// var calShowContentClass =    'selected-tab-content';   // or similar

// var calLinkPrefix =          'link';           // or similar
// var calLinkFormatClass =     'calendar-link';  // or similar
// var calShowLinkClass =       'selected-tab';   // or similar
// var calHideLinkClass =       'unselected-tab'; // or similar
function switchNamedTabDisplay(tabBaseName){
    try{
        // Hide tabs and content/articles:
        for (var i=0; i < calMonths.length; i++) {
            if (tabBaseName != calMonths[i]) {
                // Content
                if (calContentPrefix != null
                    //&&
                    //calContentFormatClass != null &&
                    //calHideContentClass != null
                ) {

                    hide(calContentPrefix + "-" + calMonths[i], //id
                            calContentFormatClass, //formatContentClass
                            calHideContentClass    //hideContentClass
                        );
                }
                // Link at top
                if (calLinkPrefix != null
                    //&&
                    //calLinkFormatClass != null &&
                    //calHideLinkClass != null
                ) {

                    inactivate_link(calLinkPrefix + "-" + calMonths[i], //id
                            calLinkFormatClass, //formatLinkClass
                            calHideLinkClass    //hideLinkClass
                        );
                }
            }
        }
        // Display selected link and content:
        // Content
        if (calContentPrefix != null &&
            //calContentFormatClass != null &&
            //calShowContentClass != null &&
            calAnchorSuffix != null
        ) {

            show(calContentPrefix + "-" + tabBaseName,
                    calContentFormatClass, //formatContentClass
                    calShowContentClass,   //showContentClass
                    calContentPrefix + "-" + tabBaseName + "-" + calAnchorSuffix
                );
        }
        // Link at top
        if (calLinkPrefix != null
            //&&
            //calLinkFormatClass != null &&
            //calShowLinkClass != null
        ) {

            activate_link(calLinkPrefix + "-" + tabBaseName,
                    calLinkFormatClass,  //formatLinkClass
                    calShowLinkClass     //showLinkClass
                );
        }
    }
    catch(err){
        //alert("Error: " + err);
    }
}

