function tickerMouseOver(id) {
    var ticker=$(id);
    
    var ContainerElement=getAncestorWithClass(id,'spq');
    
    if(!ContainerElement)
        return;
    
    removeClassFrom('spq_selectedTicker', 'spq_ticker', ContainerElement);
    
    if(ticker)
	    ticker.addClassName('spq_selectedTicker');
}

function tickerTabClick(tab) {
    var tabID='spq_tab_' + tab;
    var pageID='spq_tabPage_' + tab;
    
    var ContainerElement=getContainerElement(tabID);
    
    if(!ContainerElement) 
        return;
    
    removeClassFrom('spq_selectedTab', 'spq_tab', ContainerElement);
    addClassTo('spq_unselectedTab', 'spq_tab', ContainerElement);
    
    removeClassFrom('spq_selectedTabPage', 'spq_tabPage', ContainerElement);
    addClassTo('spq_unselectedTabPage', 'spq_tabPage', ContainerElement);
    
    $(tabID).addClassName('spq_selectedTab');
    $(pageID).addClassName('spq_selectedTabPage');
    
    /* The following is a hack to deal with IE. For some reason, when you click 
       away from a tab and back to that tab, all of the tickers dissappear. */
    var tickers=$(pageID).getElementsByClassName('spq_ticker');
    for(var i=0; i < tickers.length; i++) {
        ticker=tickers[i];
        ticker.addClassName('spq_selectedTicker');
        ticker.removeClassName('spq_selectedTicker');
    }
    
    if(tickers.length > 0)
        tickerMouseOver(tickers[0]);
}

function getContainerElement(tabID) {
    var TabBar=getAncestorWithClass(tabID,'spq_tabBar');
    
    if(TabBar != null)
        return TabBar.up();
    else
        return null;
}

function getAncestorWithClass(ID, PClass) {
    var Ancestors=$(ID).ancestors();
    
    for(var i=0; i < Ancestors.length; i++) {
        if(Ancestors[i].hasClassName(PClass))
            return Ancestors[i];
    }
    
    return null;
}

function removeClassFrom(classToRemove, classToSelect, ContainerElement) {
    var elements=ContainerElement.getElementsByClassName(classToSelect);
    
    for(var i=0; i < elements.length; i++) {
        elements[i].removeClassName(classToRemove);
    }
}

function addClassTo(classToAdd, classToSelect, ContainerElement) {
    var elements=ContainerElement.getElementsByClassName(classToSelect);
    
    for(var i=0; i < elements.length; i++) {
        elements[i].addClassName(classToAdd);
    }
}