/*
    http://simile.mit.edu/timeline/docs/create-timelines.html
*/
var tl;
function onLoad() {
  var today = new Date();

  // move today date at the beginning of the graph
  today.setDate(today.getDate() + 4);
  today.setHours(today.getHours() - 5);

  var eventSource = new Timeline.DefaultEventSource();
  var bandInfos = [
    Timeline.createBandInfo({
        eventSource:    eventSource,
        date:           today,
        width:          "70%", 
        intervalUnit:   Timeline.DateTime.DAY, 
        intervalPixels: 100,
        theme: Timeline.AcademyTheme.create()
    }),
    Timeline.createBandInfo({
        showEventText:  false,
        trackHeight:    0.5,
        trackGap:       0.2,
        eventSource:    eventSource,
        date:           today,
        width:          "30%", 
        intervalUnit:   Timeline.DateTime.MONTH, 
        intervalPixels: 200,
        theme: Timeline.AcademyTheme.create()
    })
  ];
  bandInfos[1].syncWith = 0;
  bandInfos[1].highlight = true;

  // use ACADEMY_SOURCE_PATH if is defined
  var path = typeof(ACADEMY_SOURCE_PATH) != "undefined" ? ACADEMY_SOURCE_PATH : "/akademie/";

  // overwrite fnc Timeline.Debug.exception at js/simile_mit_edu/timeline/api/bundle.js
/*  Timeline.Debug.exception = function(e) {
        // disable alert message
        // alert("Caught exception: "+(Timeline.Platform.isIE ? e.message : e));
  }; */

  tl = Timeline.create(document.getElementById("courses-timeline"), bandInfos);
  Timeline.loadXML(path+"courses.xml", function(xml, url) { eventSource.loadXML(xml, url); });
}

var resizeTimerID = null;
function onResize() {
    if (resizeTimerID == null) {
        resizeTimerID = window.setTimeout(function() {
            resizeTimerID = null;
            tl.layout();
        }, 500);
    }
}

Timeline.GregorianDateLabeller.prototype.labelPrecise = function(date) {
    // Overwrite function in api/scripts/labellers.js at 27
    return date.toLocaleString();
};


//    Uncomment this function for display month's names instead of numbers.
/*
Timeline.GregorianDateLabeller.labelIntervalFunctions["cs"] = function(date, intervalUnit) {
    // overwrite original at simile_mit_edu/timeline/api/scripts/l10n/cs/labellers.js
    var text;
    var emphasized = false;

    var date2 = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone);
    
    switch(intervalUnit) {
    case Timeline.DateTime.DAY:
    case Timeline.DateTime.WEEK:
        text = date2.getUTCDate() + ". " + Timeline.GregorianDateLabeller.monthNames["cs"][(date2.getUTCMonth() + 1)];
        break;
    default:
        return this.defaultLabelInterval(date, intervalUnit);
    }
    
    return { text: text, emphasized: emphasized };
};*/


