    //<![CDATA[
    
// (c) Mikael Högqvist, ZIB 2006-2007

// Timeline showing gridjobs

var tl;
var model = new Model();

Timeline.DefaultEventSource.prototype.timelineJSON = function(data, url) {

    var base = this._getBaseURL(url);
    var added = false;
    if (data && data.results.bindings){
//        var wikiURL = ("wikiURL" in data) ? data.wikiURL : null;
//        var wikiSection = ("wikiSection" in data) ? data.wikiSection : null;
    
//        var dateTimeFormat = ("dateTimeFormat" in data) ? data.dateTimeFormat : null;
        // let timeline handle the format
        var dateTimeFormat = 'iso8601';
        var parseDateTimeFunction = this._events.getUnit().getParser(dateTimeFormat);
        //alert(this._events.getUnit().getParser(''));
        for (var i=0; i < data.results.bindings.length; i++){
            var event = data.results.bindings[i];
            var title = 'Private Target [' + event.state.value + ']';
            var description = "<b>Obs. ID: </b>" + event.jobid.value + '<br/>';
            description += "<b>PI: </b>" + event.user.value + '<br/>';
            description += "<b>Host: </b>" + event.host.value + '<br/>';
            description += "<b>Details:</b> private<br/>";
            description += '<br/>';

            var color = "#C0C0C0";
            
            var state = event.state.value; //.toLowerCase();
            var name = ""; 
            if(undefined!=event.name) {name=event.name.value;}//.toLowerCase();

            if(state == 'stagein')
                color = "#FFFF00";
            else if(state == 'active')
                color = "#FF8C00";
            else if(state == 'stageout')
                color = "#FFFF00";
            else if(state == 'cleanup')
                color = "#4682B4";
            else if(state == 'done')
                color = "#008000";
            else if(state == 'failed')
                color = "#FF0000";
            else if(name == 'Flat_Field_long')
                color = "#FF0000";
            else if(name == 'Central_night')
                color = "#0000BB";
            else color = "#00BB00";

            var stop; //var date = new Date(); stop = isodate(date);
            if( event.stop == undefined ) { stop = null; }
            else { stop = event.stop.value; }
            var start = event.start.value;
            if(stop.replace(/-|T|:/g,"")-start.replace(/-|T|:/g,"") < 0) {
                start=stop; }

            var evt = new Timeline.DefaultEventSource.Event(
                //parseDateTimeFunction('Wed, Jan 17 2007 0' + i.toString() + ':00:00 +0100'), //start
                //parseDateTimeFunction('Wed, Jan 17 2007 0' + (1+i).toString() + ':00:00 +0100'), // end
                parseDateTimeFunction(start),
                parseDateTimeFunction(stop),
                null, // latestStart
                null, // earliestEnd
                false, // instant
                title, // text
                description, // description
                null, // image
                null, // link
                null, // icon
                color, // color
                null // textColor
//                parseDateTimeFunction(event.end.value),
//                parseDateTimeFunction(event.latestStart.value),
//                parseDateTimeFunction(event.earliestEnd.value),
//                event.isDuration.value || false,
//                event.title.value,
//                event.description.value
//                this._resolveRelativeURL(event.image.value, base),
//                this._resolveRelativeURL(event.link.value, base),
//                this._resolveRelativeURL(event.icon.value, base),
//                event.color.value,
//                event.textColor.value
            );
            // 
//            var blub = event.start.value;
//            blub = 'Wed, Jan 17 2007 09:00:00 +0100';
//            alert(event.start.value instanceOf Date);
//            alert(blub);
//            evt = new Timeline.DefaultEventSource.Event(parseDateTimeFunction(blub));
            evt._obj = event;
            evt.getProperty = function(name) {
                return this._obj[name];
            };
//            evt.setWikiInfo(wikiURL, wikiSection);

            this._events.add(evt);
            added = true;
        }
    }
   
    if (added) {
        this._fire("onAddMany", []);
    }
};


function onLoad() {

  var theme = Timeline.ClassicTheme.create();
  var eventSource = new Timeline.DefaultEventSource(0);

  theme.event.bubble.width = 320;
  theme.event.bubble.height = 220;
  theme.ether.backgroundColors[1] = theme.ether.backgroundColors[0];
  //theme.ether.centersOn="Fri Nov 22 1963 13:00:00 GMT-0600";

  var date = document.getElementById("date").innerHTML;
  var user = ""; //document.getElementById("user").innerHTML;
  var host = "STELLA-II";
  var ressource = "telescope";
  var limit = document.getElementById("limit").innerHTML;
  
  var fixdate = Timeline.DateTime.parseIso8601DateTime(date);
  //var fixdate =Timeline.DateTime.parseIso8601DateTime('2004-10-10T10:00:00');
  //  var timezone=-0;

  var bandInfos = [
    Timeline.createBandInfo({
        date:           fixdate,
        eventSource:    eventSource,
        width:          "60%", 
                            //        timeZone:       timezone,
        intervalUnit:   Timeline.DateTime.MINUTE, 
        intervalPixels: 50,
        theme:          theme,
        trackHeight:    3
    }),
    Timeline.createBandInfo({
        date:           fixdate,
        showEventText:  false,
        eventSource:    eventSource,
                            //        timeZone:       timezone,
        trackHeight:    0.5,
        trackGap:       0.2,    
        width:          "25%", 
        intervalUnit:   Timeline.DateTime.HOUR, 
        intervalPixels: 50,
        trackHeight:    1.5
    }),
    Timeline.createBandInfo({
        date:           fixdate,
        showEventText:  false,
        eventSource:    eventSource,
                            //        timeZone:       timezone,
        trackHeight:    0.5,
        trackGap:       0.2,    
        width:          "15%", 
        intervalUnit:   Timeline.DateTime.DAY, 
        intervalPixels: 100
    })
    
  ];
  
  bandInfos[1].syncWith = 0;
  bandInfos[1].highlight = true;

  bandInfos[2].syncWith = 0;
  bandInfos[2].highlight = true;

  //  if(! starttime) { alert(starttime); }

  tl = Timeline.create(document.getElementById("timeline"), bandInfos);
  //  Timeline.setIso8601Date = "2004-10-10T10:00:00";
//  try{
  tl.loadJSON("/query/query?query=" + model.timeline(date, user, host, ressource, limit) + "&format=json", function(json, url) { eventSource.timelineJSON(json, url); });  
//  } catch(error) {
//    alert(error);
//  }
  
//  tl.loadJSON("/timeline", function(json, url) { eventSource.loadSPARQLJSON(json, url); });
//  Timeline.loadXML("example1.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);
    }
}

    //]]
