
Timeline.DefaultEventSource.Event.prototype.fillDescription = function (elmt) {
  var url="../api.php?lang="+this.lang+"&getabstract=:"+this.title;
  var fError = function(statusText, status, xmlhttp) {
    alert("Failed to load data from " + url + "\n" + statusText);
  };
  elmt.innerHTML = "<div style=\"height:100px;color:#BBB;\">Please wait...<br/><br/><br/><br/><br/>.</div>";
  var title = this.title;
  var lang = this.lang;
  var fDone = function(xmlhttp) {
    var reg = /<abstract>(.+)<\/abstract>(<image>(.+)<\/image>)?/;
    var rreg = reg.exec( xmlhttp.responseText );
    if ( rreg && rreg[3].length ) {
      elmt.innerHTML = "<img src=\"http://img.wikiwix.com/img.php?imgtitle="+rreg[3]+"&width=56x56&lang="+lang+"\" style=\"float:left;padding:3px 10px;\"/><span style=\"font-size:80%;\">"+rreg[1]+"</span>";
    }
  };
  SimileAjax.XmlHttp.get(url, fError, fDone); 
};

Timeline.DefaultEventSource.Event.prototype.fillTime = function(elmt, labeller) {
  if (this._instant) {
    if (this.isImprecise()) {
      var reg = / -?[0-9]{3,4}/;
      var yearStart = reg.exec( this._start );
      var yearEnd = reg.exec( this._end );
      if ( yearStart && yearEnd ) {
        if ( yearEnd[0] < 2040 )
        elmt.appendChild(elmt.ownerDocument.createTextNode(yearStart[0]+' - '+yearEnd[0]));
        else 
          elmt.appendChild(elmt.ownerDocument.createTextNode(yearStart[0]+' - ...'));
        elmt.appendChild(elmt.ownerDocument.createElement("br"));
        var contemp = elmt.ownerDocument.createElement("a");
        contemp.appendChild(elmt.ownerDocument.createTextNode("Frise de ses contemporains"));
        contemp.style.fontSize="12px";
        contemp.href="timeline.php?lang="+this.lang+"&born="+yearStart[0].replace(/^\s+/,"")+"&dead="+yearEnd[0].replace(/^\s+/,"")+"&title="+this.getText();
        elmt.appendChild(contemp);
      }
    } else {
      var reg = / -?[0-9]{3,4}/;
      var year = reg.exec( this._start );
      if ( year ) 
      elmt.appendChild(elmt.ownerDocument.createTextNode(year[0]));
    }
  } else {
    if (this.isImprecise()) {
      elmt.appendChild(elmt.ownerDocument.createTextNode(
      labeller.labelPrecise(this._start) + " ~ " + labeller.labelPrecise(this._latestStart)));
      elmt.appendChild(elmt.ownerDocument.createElement("br"));
      elmt.appendChild(elmt.ownerDocument.createTextNode(
      labeller.labelPrecise(this._earliestEnd) + " ~ " + labeller.labelPrecise(this._end)));
    } else {
      var reg = / -?[0-9]{3,4}/;
      var yearStart = reg.exec( this._start );
      var yearEnd = reg.exec( this._end );
      if ( yearStart && yearEnd ) {
        elmt.appendChild(elmt.ownerDocument.createTextNode(yearStart[0]));
        elmt.appendChild(elmt.ownerDocument.createElement("br"));
        elmt.appendChild(elmt.ownerDocument.createTextNode(yearEnd[0]));
      }
    }
  }
};

var original_fillInfoBubble = Timeline.DefaultEventSource.Event.prototype.fillInfoBubble;

Timeline.DefaultEventSource.Event.prototype.fillInfoBubble = function(elmt, theme, labeller) {
  var langreg = /^http:\/\/([-a-z]+)\.wikipedia\.org\/wiki\/(.+)$/;
  var lang = langreg.exec(this._link);
  this.lang = lang ? lang[1] : 'en';
  this.title = lang ? lang[2] : '';
  original_fillInfoBubble.call(this, elmt, theme, labeller);
};

Timeline.DefaultEventSource.Event.prototype.fillWikiInfo = function(elmt) { }
