/**
 * @description Javascript code for loading the mini Timegrid displaying
 *   picked classes
 */

var miniEventSource = new Timegrid.DefaultEventSource();

function updateMiniTimegrid(preview, previewSectionID) {
    var collection = window.exhibit.getCollection("picked-sections");
    var dayMap = {
        'S' : 0,
        'M' : 1,
        'T' : 2,
        'W' : 3,
        'R' : 4,
        'F' : 5
    };
    
    var itemSet = collection.getRestrictedItems();
    var eventSet = [];
    var addEvent = function(eventID) {
        var db = window.exhibit.getDatabase();
        var color = db.getObject(eventID, "color");

        var dateTimeFormat = "iso8601";
        var parseDateTimeFunction = miniEventSource._events.getUnit().getParser(dateTimeFormat);
        var parseTime = function(s) {
            return s ? parseDateTimeFunction(s) : null;
        };
        var start = parseTime(db.getObject(eventID, "start-full"));
        var end   = parseTime(db.getObject(eventID, "end-full"));

        var ev = new Timegrid.DefaultEventSource.Event(
            start,
            end,
            start,
            end,
            false,
            db.getObject(eventID, "label"), 
            db.getObject(eventID, "description-full"),
            "", 
            g_baseUrl + db.getObject(eventID, "url"),
            "",
            color,
            "white"
        );
        eventSet.push(ev);
    };
    
    itemSet.visit(addEvent);
    if (preview) {
        if (previewSectionID) {
            addEvent(previewSectionID);
        }
        miniEventSource.clear();
        miniEventSource.addMany(eventSet);
    } else {
        miniEventSource.clear();
        miniEventSource.addMany(eventSet);
    }
};

function enableMiniTimegrid() {
    var collection = window.exhibit.getCollection("picked-sections");
    
    collection.addListener({ onItemsChanged: function() { updateMiniTimegrid(false); } });
    updateMiniTimegrid();
    
    window.timegrids = [
        Timegrid.createFromDOM($('#mini-timegrid').get(0))
    ];
    
    window.onresize = function() { Timegrid.resize(); };
};
