var CurrentQueryContext =
{
    TopicNodeMap:null,
    init:function()
    {
        this.TopicNodeMap = {};
        this._processQuery();
        this._createQueryStateButton();
        this._createQueryStaticButton();
    },
    _processQuery:function()
    {
        var qItems = location.pathname.split("/");
        for (var i = 2; i < qItems.length; i++)
        {
            var qString = null;
            var keyPosition = qItems[i].indexOf("topic=")
            if (keyPosition >= 0)
            {
                qString = qItems[i].substr(6);
                this._processTopic(qString);
            }
        }
    },
    _processTopic:function(queryString)
    {
        queryString = decodeURIComponent(decodeURIComponent(queryString));
        var tItems = queryString.split("+");
        for (var i in tItems) this.TopicNodeMap[tItems[i]] = i;
    },
    _createQueryStateButton:function()
    {
        var buttons = YAHOO.util.Dom.getElementsByClassName('queryState_button', 'a', 'current');
        for (var i = 0; i < buttons.length; i++) new YAHOO.widget.Button(buttons[i]);
    },
    _createQueryStaticButton:function()
    {
        var buttons = YAHOO.util.Dom.getElementsByClassName('queryStatic_button', 'a', 'static_choice');
        for (var i = 0; i < buttons.length; i++) new YAHOO.widget.Button(buttons[i]);
    },
    composeTopicQuery:function()
    {
        var QueryString = '';
        for(var topic in CurrentQueryContext.TopicNodeMap) QueryString += (QueryString == '') ? topic : '+'+topic;
        return encodeURIComponent(encodeURIComponent(QueryString));
    }
};

YAHOO.util.Event.onDOMReady
(
    function ()
    {
        CurrentQueryContext.init();
    }
);