YAHOO.util.Event.onDOMReady(function() {
    var defaultPageTitle = document.title;
    var defaultTabState = param("",true);
    var bookmarkedTabState = YAHOO.util.History.getBookmarkedState("tv");
    var initialTabState = bookmarkedTabState || defaultTabState;
    if (YAHOO.lang.isNull(initialTabState)) {
        initialTabState = "music";
    }
    YAHOO.util.History.register("tv", initialTabState, function (state) {
        YAHOO.CMA.tabView.setActiveTab(state);
    });

    function initTabView () {
        YAHOO.util.Dom.addClass('pageLoader', 'yui-hidden');

        YAHOO.CMA.tabView = new YAHOO.widget.TabView('cTabs');
        YAHOO.CMA.tabView.getTabIdx = function(tabName) {
            var tabs = this.get('tabs');
            for (var idx = 0; idx < tabs.length; idx++) {
                var tab = tabs[idx];
                var tabId = tab.get('labelEl').id;
                if (tabId == tabName) {
                    return idx;
                }
            }
            return null;
        };
        YAHOO.CMA.tabView.setActiveTab = function(tabMode) {
            var tabIdx = this.getTabIdx("music"); // Default Tab
            if (!YAHOO.lang.isNull(tabMode)) {
                var tabs = this.get('tabs');
                for (var idx = 0; idx < tabs.length; idx++) {
                    var tab = tabs[idx];
                    var tabId = tab.get('labelEl').id;
                    if (tabId == tabMode) {
                        if (tab.get('disabled')) {
                            tabIdx = null;
                        } else {
                            tabIdx = idx;
                        }
                        break;
                    }
                }
            }
            if (tabIdx != null) {
                this.set('activeIndex',tabIdx);
            }
        };
        YAHOO.CMA.tabView.addListener('activeTabChange', function () {
            var currentTabState, adjustedPageTitle = "";
            var tabId = YAHOO.CMA.tabView.get('activeTab').get('labelEl').id;
            if (tabId=="about") {
                adjustedPageTitle += "[About] ";
                renderJoinOrUpgradeStageMessage(stageMessage.altTxt, stageMessage.user);
            } else if (tabId=="music") {
                adjustedPageTitle += "[Tracks] ";
                renderJoinOrUpgradeStageMessage(stageMessage.txt, stageMessage.user);
            } else if (tabId=="comments") {
                adjustedPageTitle += "[Comments] ";
                renderJoinOrUpgradeStageMessage(stageMessage.altTxt, stageMessage.user);
                loadComments();
            }
            document.title = adjustedPageTitle + defaultPageTitle;

            try {
                currentTabState = YAHOO.util.History.getCurrentState("tv");
                if (tabId != currentTabState) {
                    YAHOO.util.History.navigate("tv", tabId);
                }
            } catch (e) {
                YAHOO.CMA.tabView.setActiveTab(tabId);
            }
        });
    }

    YAHOO.util.History.onReady(function () {
        initTabView();

        var currentTabState = YAHOO.util.History.getCurrentState("tv");
        YAHOO.CMA.tabView.setActiveTab(currentTabState);
    });

    try {
        YAHOO.util.History.initialize("yui-history-field", "yui-history-iframe");
    } catch (e) {
        initTabView();
    }

    renderJoinOrUpgradeStageMessage(stageMessage.txt, stageMessage.user);
}, this);

function addAlbumToCart(el, aId, tId){
    alert(el.id)
    alert(YAHOO.util.Dom.hasClass(el,'added'))
    if(YAHOO.util.Dom.hasClass(el,'added')) {
        atc(this, tId);
    } else {
        showConfirmation("This track is album only", "Would you like to add this album to cart?", null
        , "Yes", function(){
            this.hide();
            aac(el, aId);
        }
        , "No", function(){
            this.hide();
        }
        , true);
    }
}