var collections = {};

YAHOO.util.Event.onContentReady('cma-doc',function() {
    YAHOO.util.Dom.addClass("pageLoader", "yui-hidden");
    YAHOO.util.Dom.removeClass("tabContent", "yui-hidden");
}, this);

var collectionSelector = null, selectedCollection = null;
try {
    selectedCollection = YAHOO.util.History.getCurrentState("tvf");
} catch (e) {
    selectedCollection = readCookie("tab");
    selectedCollection = (selectedCollection === null || selectedCollection == "") ? "tracks" : selectedCollection;
}

function handleSelectorsReady() {
    if (collectionSelector) {
        var csSel = collectionSelector.getState().selection;
        if (csSel) {
            showSelection(csSel);
            renderUserMessage(csSel);
        }
    }
}

function handleCollectionChanged() {
    if (collectionSelector) {
        var currentState = YAHOO.util.History.getCurrentState("tvf");
        if (collectionSelector.getState().selection != currentState) {
            YAHOO.util.History.navigate("tvf", collectionSelector.getState().selection);
            createCookie("tab", collectionSelector.getState().selection);
        }
        var csSel = collectionSelector.getState().selection;
        if (csSel) {
            showSelection(csSel);
            renderUserMessage(csSel);
        }
    }
}

var pVF = null;
function showSelection(selected) {
    var cVF = null;
    if (selected == 'all') {
        cVF = $('wAll');
    } else if (selected == 'tracks') {
        cVF = $('wTracks');
    } else if (selected == 'free') {
        cVF = $('wFree');
    } else if (selected == 'midi') {
        cVF = $('wMidi');
    }

    if (YAHOO.lang.isObject(pVF)) {
        if (pVF != cVF) {
            if (pVF != null) {
                YAHOO.util.Dom.addClass(pVF, 'yui-hidden');
            }
            YAHOO.util.Dom.removeClass(cVF, 'yui-hidden');
        }
    } else {
        YAHOO.util.Dom.removeClass(cVF, 'yui-hidden');
    }
    pVF = cVF;
}

function renderUserMessage(selected) {
    var el = $("collectionUserMessage");
    if (selected && YAHOO.lang.isObject(collections.userMessages)) {
        if (YAHOO.lang.isString(collections.userMessages[selected]) && collections.userMessages[selected].length > 0) {
            el.innerHTML = collections.userMessages[selected];
            YAHOO.util.Dom.addClass("collectionSelectorHeader", "tall");
            YAHOO.util.Dom.removeClass(el, "yui-hidden");
        } else {
            YAHOO.util.Dom.addClass(el, "yui-hidden");
            YAHOO.util.Dom.removeClass("collectionSelectorHeader", "tall");
            el.innerHTML = "";
        }
    } else {
        YAHOO.util.Dom.addClass(el, "yui-hidden");
        YAHOO.util.Dom.removeClass("collectionSelectorHeader", "tall");
        el.innerHTML = "";
    }
}
YAHOO.util.Event.onDOMReady(function() {
    collectionSelector = new YAHOO.widget.Selector("collectionSelector", {
        "message":"Select your collection:"
        , "selections":collectionItems
        , "selection":selectedCollection
    });

    collectionSelector.subscribe('rendered', handleSelectorsReady, this, true);
    collectionSelector.subscribe('selectionChanged', handleCollectionChanged, this, true);
    collectionSelector.render();


    var defaultPageTitle = document.title;
    if (!(YAHOO.lang.isString(selectedCollection) && selectedCollection.length > 0)) {
        selectedCollection = "tracks";
    }
    var bookmarkedCollectionState = YAHOO.util.History.getBookmarkedState("tvf");
    var initialCollectionState = bookmarkedCollectionState || selectedCollection;
    YAHOO.util.History.register("tvf", initialCollectionState, function (state) {
        if (collectionSelector) {
            collectionSelector.setSelection(state);
        } else {
            selectedCollection = state;
        }
    });

    YAHOO.util.History.onReady(function () {
        var currentCollectionState = YAHOO.util.History.getCurrentState("tvf");
        if (currentCollectionState) {
            if (collectionSelector) {
                collectionSelector.setSelection(currentCollectionState);
            } else {
                selectedCollection = currentCollectionState;
            }
        }
    });

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


