// ####################################################################
// A Year HTML object is highlighted based
//
// INPUT:   year - 4 digit year value passed to footer links
//
// OUTPUT:  [none]
function _highlightYear(year) {
    var spanEl = document.getElementsByTagName("span");
    for (var i = 0; i < spanEl.length; i++) {
        if ((spanEl[i].className == "TextWhite" || spanEl[i].className == "TextHighlight") && spanEl[i].innerHTML == year) spanEl[i].className = "TextHighlight";
        else if (spanEl[i].className == "TextHighlight") spanEl[i].className = "TextWhite";
    }

    _setFooterLinks(year);
}

function _highlightText(text) {
    var spanEl = document.getElementsByTagName("span");
    for (var i = 0; i < spanEl.length; i++) {
        if ((spanEl[i].className == "TextWhite" || spanEl[i].className == "TextHighlight") && spanEl[i].innerHTML == text) spanEl[i].className = "TextHighlight";
        else if (spanEl[i].className == "TextHighlight") spanEl[i].className = "TextWhite";
    }
}

function _unhighlightAllYears() {
    var spanEl = document.getElementsByTagName("span");
    for (var i = 0; i < spanEl.length; i++) {
        if (spanEl[i].className == "TextHighlight") spanEl[i].className = "TextWhite";
    }
}

function _setFooterLinks(year, eventId) {
    var elCalendar = document.getElementById("linkCalendar");
    if (elCalendar != null) elCalendar.href = "Calendar.aspx?yr=" + year;

    var elResults = document.getElementById("linkResults");
    if (elResults != null) elResults.href = "Results.aspx?yr=" + year +
        (eventId != null ? "&ev=" + eventId : "");

    var elIndex = document.getElementById("linkIndex");
    if (elIndex != null) elIndex.href = "Index.aspx?yr=" + year;
}

// ####################################################################
// An HTML object is enabled/disabled based on the passed parameter
//
// INPUT:   id - HTML target id
//          bEnabled - enable/disable flag
//
// OUTPUT:  [none]
function _enableTarget(id, bEnabled)
{
    var el = document.getElementById(id);
    if (el == null) return;
    
    el.disabled = !bEnabled;
}

// ####################################################################
// An HTML object is made visible/hidden based on the passed parameter
//
// INPUT:   id - HTML target id
//          bVisible - visible/hidden flag
//
// OUTPUT:  [none]
function _makeVisible(id, bVisible)
{
    var el = document.getElementById(id);
    if (el == null) return;
    
    el.style.visibility = (bVisible ? "visible" : "hidden");
}

function _highlight(ev, bHigh)
{
    if (window.event) ev = window.event;
    var el = (ev.srcElement) ? ev.srcElement : ev.target;
    if (el == null) return;
    
    el.style.backgroundColor = (bHigh ? "#244061" : "#ffffff");
    el.style.color = (bHigh ? "#ffffff" : "#000000");
}

function _attachEvent(eventType, eventListener, eventCapture)
{
    // Firefox/Safari/IE Compatibility: create an addEventListener function if it does not exist
    if (typeof(window.addEventListener) == "undefined")
    {
        window.addEventListener = function (type, listener, useCapture) {document.body.attachEvent("on" + type, listener);}
    }
    
    window.addEventListener(eventType, eventListener, eventCapture);
}

function _detachEvent(eventType, eventListener, eventCapture)
{
    // Firefox/Safari/IE Compatibility: create a removeEventListener function if it does not exist
    if (typeof(window.removeEventListener) == "undefined")
    {
        window.removeEventListener = function (type, listener, useCapture) {document.body.detachEvent('on' + type, listener);}
    }
    
    window.removeEventListener(eventType, eventListener, eventCapture);
}

// ####################################################################
// An animated gif image is added to document if it does not exist.
// It is then made visible/hidden based on the passed parameter.
//
// INPUT:   id - HTML target id
//          yTop - vertical top screen coordinate
//          xLeft - horizontal left screen coordinate
//          bVisible - visible/hidden flag
//
// OUTPUT:  [none]
function _showWait(id, xLeft, yTop, bVisible)
{
    var elImg = document.getElementById(id);

    if (elImg == null)
    {
        elImg = document.createElement("img");
        elImg.id = "waitImg";
        elImg.src = "images/loading.gif";
        elImg.style.position = "absolute";
        document.body.appendChild(elImg);
    }

    elImg.style.left = xLeft;
    elImg.style.top = yTop;
    elImg.style.visibility = bVisible ? "visible" : "hidden";
}

function _scrollToElement(id) {
    var el = document.getElementById(id);
    if (el == null) return;
    el.scrollIntoView(true);
}

