org.wicketstuff.simile.timeline.timeline_js.timeline-bundle.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of simile-timeline Show documentation
Show all versions of simile-timeline Show documentation
Simile Timeline widget for Wicket
/* decorators.js */
Timeline.SpanHighlightDecorator=function(A){this._unit=("unit" in A)?A.unit:SimileAjax.NativeDateUnit;
this._startDate=(typeof A.startDate=="string")?this._unit.parseFromObject(A.startDate):A.startDate;
this._endDate=(typeof A.endDate=="string")?this._unit.parseFromObject(A.endDate):A.endDate;
this._startLabel=A.startLabel;
this._endLabel=A.endLabel;
this._color=A.color;
this._cssClass=("cssClass" in A)?A.cssClass:null;
this._opacity=("opacity" in A)?A.opacity:100;
};
Timeline.SpanHighlightDecorator.prototype.initialize=function(B,A){this._band=B;
this._timeline=A;
this._layerDiv=null;
};
Timeline.SpanHighlightDecorator.prototype.paint=function(){if(this._layerDiv!=null){this._band.removeLayerDiv(this._layerDiv);
}this._layerDiv=this._band.createLayerDiv(10);
this._layerDiv.setAttribute("name","span-highlight-decorator");
this._layerDiv.style.display="none";
var E=this._band.getMinDate();
var A=this._band.getMaxDate();
if(this._unit.compare(this._startDate,A)<0&&this._unit.compare(this._endDate,E)>0){E=this._unit.later(E,this._startDate);
A=this._unit.earlier(A,this._endDate);
var F=this._band.dateToPixelOffset(E);
var I=this._band.dateToPixelOffset(A);
var H=this._timeline.getDocument();
var K=function(){var L=H.createElement("table");
L.insertRow(0).insertCell(0);
return L;
};
var B=H.createElement("div");
B.className="timeline-highlight-decorator";
if(this._cssClass){B.className+=" "+this._cssClass;
}if(this._opacity<100){SimileAjax.Graphics.setOpacity(B,this._opacity);
}this._layerDiv.appendChild(B);
var J=K();
J.className="timeline-highlight-label timeline-highlight-label-start";
var C=J.rows[0].cells[0];
C.innerHTML=this._startLabel;
if(this._cssClass){C.className="label_"+this._cssClass;
}this._layerDiv.appendChild(J);
var G=K();
G.className="timeline-highlight-label timeline-highlight-label-end";
var D=G.rows[0].cells[0];
D.innerHTML=this._endLabel;
if(this._cssClass){D.className="label_"+this._cssClass;
}this._layerDiv.appendChild(G);
if(this._timeline.isHorizontal()){B.style.left=F+"px";
B.style.width=(I-F)+"px";
J.style.right=(this._band.getTotalViewLength()-F)+"px";
J.style.width=(this._startLabel.length)+"em";
G.style.left=I+"px";
G.style.width=(this._endLabel.length)+"em";
}else{B.style.top=F+"px";
B.style.height=(I-F)+"px";
J.style.bottom=F+"px";
J.style.height="1.5px";
G.style.top=I+"px";
G.style.height="1.5px";
}}this._layerDiv.style.display="block";
};
Timeline.SpanHighlightDecorator.prototype.softPaint=function(){};
Timeline.PointHighlightDecorator=function(A){this._unit=("unit" in A)?A.unit:SimileAjax.NativeDateUnit;
this._date=(typeof A.date=="string")?this._unit.parseFromObject(A.date):A.date;
this._width=("width" in A)?A.width:10;
this._color=A.color;
this._cssClass=("cssClass" in A)?A.cssClass:"";
this._opacity=("opacity" in A)?A.opacity:100;
};
Timeline.PointHighlightDecorator.prototype.initialize=function(B,A){this._band=B;
this._timeline=A;
this._layerDiv=null;
};
Timeline.PointHighlightDecorator.prototype.paint=function(){if(this._layerDiv!=null){this._band.removeLayerDiv(this._layerDiv);
}this._layerDiv=this._band.createLayerDiv(10);
this._layerDiv.setAttribute("name","span-highlight-decorator");
this._layerDiv.style.display="none";
var C=this._band.getMinDate();
var E=this._band.getMaxDate();
if(this._unit.compare(this._date,E)<0&&this._unit.compare(this._date,C)>0){var A=this._band.dateToPixelOffset(this._date);
var B=A-Math.round(this._width/2);
var D=this._timeline.getDocument();
var F=D.createElement("div");
F.className="timeline-highlight-point-decorator";
F.className+=" "+this._cssClass;
if(this._opacity<100){SimileAjax.Graphics.setOpacity(F,this._opacity);
}this._layerDiv.appendChild(F);
if(this._timeline.isHorizontal()){F.style.left=B+"px";
}else{F.style.top=B+"px";
}}this._layerDiv.style.display="block";
};
Timeline.PointHighlightDecorator.prototype.softPaint=function(){};
/* detailed-painter.js */
Timeline.DetailedEventPainter=function(A){this._params=A;
this._onSelectListeners=[];
this._filterMatcher=null;
this._highlightMatcher=null;
this._frc=null;
this._eventIdToElmt={};
};
Timeline.DetailedEventPainter.prototype.initialize=function(B,A){this._band=B;
this._timeline=A;
this._backLayer=null;
this._eventLayer=null;
this._lineLayer=null;
this._highlightLayer=null;
this._eventIdToElmt=null;
};
Timeline.DetailedEventPainter.prototype.addOnSelectListener=function(A){this._onSelectListeners.push(A);
};
Timeline.DetailedEventPainter.prototype.removeOnSelectListener=function(B){for(var A=0;
A=K+E.width){D.solid=C;
D.text=K;
}else{D.solid=C;
K=H+S.event.label.offsetFromLine;
O=this._findFreeTrackForText(F,K+E.width,function(U){U.line=H-2;
});
this._getTrackData(O).text=C;
this._paintEventLine(L,H,F,O,P,S);
}var N=Math.round(P.trackOffset+O*P.trackIncrement+P.trackHeight/2-E.height/2);
var R=this._paintEventLabel(L,J,K,N,E.width,E.height,S);
var M=this;
var I=function(V,U,W){return M._onClickInstantEvent(B.elmt,U,L);
};
SimileAjax.DOM.registerEvent(B.elmt,"mousedown",I);
SimileAjax.DOM.registerEvent(R.elmt,"mousedown",I);
this._createHighlightDiv(Q,B,S);
this._eventIdToElmt[L.getID()]=B.elmt;
};
Timeline.DetailedEventPainter.prototype.paintImpreciseInstantEvent=function(O,S,W,T){var X=this._timeline.getDocument();
var M=O.getText();
var I=O.getStart();
var U=O.getEnd();
var K=Math.round(this._band.dateToPixelOffset(I));
var B=Math.round(this._band.dateToPixelOffset(U));
var A=Math.round(K+S.iconWidth/2);
var D=Math.round(K-S.iconWidth/2);
var G=this._frc.computeSize(M);
var H=this._findFreeTrackForSolid(B,K);
var E=this._paintEventTape(O,H,K,B,W.event.instant.impreciseColor,W.event.instant.impreciseOpacity,S,W);
var C=this._paintEventIcon(O,H,D,S,W);
var F=this._getTrackData(H);
F.solid=D;
var N=A+W.event.label.offsetFromLine;
var J=N+G.width;
var R;
if(JD&&(!(A)||B.line>A)){return C;
}}else{this._lowerTracks.push({solid:Number.POSITIVE_INFINITY,text:Number.POSITIVE_INFINITY,line:Number.POSITIVE_INFINITY});
return C;
}if(CD&&(!(A)||B.line>A)){return -1-C;
}}else{this._upperTracks.push({solid:Number.POSITIVE_INFINITY,text:Number.POSITIVE_INFINITY,line:Number.POSITIVE_INFINITY});
return -1-C;
}}};
Timeline.DetailedEventPainter.prototype._findFreeTrackForText=function(C,A,I){var B;
var E;
var F;
var H;
if(C<0){B=true;
F=-C;
E=this._findFreeUpperTrackForText(F,A);
H=-1-E;
}else{if(C>0){B=false;
F=C+1;
E=this._findFreeLowerTrackForText(F,A);
H=E;
}else{var G=this._findFreeUpperTrackForText(0,A);
var J=this._findFreeLowerTrackForText(1,A);
if(J-1<=G){B=false;
F=1;
E=J;
H=E;
}else{B=true;
F=0;
E=G;
H=-1-E;
}}}if(B){if(E==this._upperTracks.length){this._upperTracks.push({solid:Number.POSITIVE_INFINITY,text:Number.POSITIVE_INFINITY,line:Number.POSITIVE_INFINITY});
}for(var D=F;
D=C){break;
}}return A;
};
Timeline.DetailedEventPainter.prototype._findFreeUpperTrackForText=function(A,C){for(;
A=C){break;
}}return A;
};
Timeline.DetailedEventPainter.prototype._getTrackData=function(A){return(A<0)?this._upperTracks[-A-1]:this._lowerTracks[A];
};
Timeline.DetailedEventPainter.prototype._paintEventLine=function(J,E,D,A,G,F){var H=Math.round(G.trackOffset+D*G.trackIncrement+G.trackHeight/2);
var I=Math.round(Math.abs(A-D)*G.trackIncrement);
var C="1px solid "+F.event.label.lineColor;
var B=this._timeline.getDocument().createElement("div");
B.style.position="absolute";
B.style.left=E+"px";
B.style.width=F.event.label.offsetFromLine+"px";
B.style.height=I+"px";
if(D>A){B.style.top=(H-I)+"px";
B.style.borderTop=C;
}else{B.style.top=H+"px";
B.style.borderBottom=C;
}B.style.borderLeft=C;
this._lineLayer.appendChild(B);
};
Timeline.DetailedEventPainter.prototype._paintEventIcon=function(J,B,C,F,E){var H=J.getIcon();
H=H!=null?H:F.icon;
var G=F.trackOffset+B*F.trackIncrement+F.trackHeight/2;
var I=Math.round(G-F.iconHeight/2);
var D=SimileAjax.Graphics.createTranslucentImage(H);
var A=this._timeline.getDocument().createElement("div");
A.style.position="absolute";
A.style.left=C+"px";
A.style.top=I+"px";
A.appendChild(D);
A.style.cursor="pointer";
if(J._title!=null){A.title=J._title;
}this._eventLayer.appendChild(A);
return{left:C,top:I,width:F.iconWidth,height:F.iconHeight,elmt:A};
};
Timeline.DetailedEventPainter.prototype._paintEventLabel=function(I,J,C,F,A,G,E){var H=this._timeline.getDocument();
var K=H.createElement("div");
K.style.position="absolute";
K.style.left=C+"px";
K.style.width=A+"px";
K.style.top=F+"px";
K.style.height=G+"px";
K.style.backgroundColor=E.event.label.backgroundColor;
SimileAjax.Graphics.setOpacity(K,E.event.label.backgroundOpacity);
this._eventLayer.appendChild(K);
var B=H.createElement("div");
B.style.position="absolute";
B.style.left=C+"px";
B.style.width=A+"px";
B.style.top=F+"px";
B.innerHTML=J;
B.style.cursor="pointer";
if(I._title!=null){B.title=I._title;
}var D=I.getTextColor();
if(D==null){D=I.getColor();
}if(D!=null){B.style.color=D;
}this._eventLayer.appendChild(B);
return{left:C,top:F,width:A,height:G,elmt:B};
};
Timeline.DetailedEventPainter.prototype._paintEventTape=function(L,B,D,A,G,C,I,H){var F=A-D;
var E=H.event.tape.height;
var K=I.trackOffset+B*I.trackIncrement+I.trackHeight/2;
var J=Math.round(K-E/2);
var M=this._timeline.getDocument().createElement("div");
M.style.position="absolute";
M.style.left=D+"px";
M.style.width=F+"px";
M.style.top=J+"px";
M.style.height=E+"px";
M.style.backgroundColor=G;
M.style.overflow="hidden";
M.style.cursor="pointer";
if(L._title!=null){M.title=L._title;
}SimileAjax.Graphics.setOpacity(M,C);
this._eventLayer.appendChild(M);
return{left:D,top:J,width:F,height:E,elmt:M};
};
Timeline.DetailedEventPainter.prototype._createHighlightDiv=function(A,C,E){if(A>=0){var D=this._timeline.getDocument();
var G=E.event;
var B=G.highlightColors[Math.min(A,G.highlightColors.length-1)];
var F=D.createElement("div");
F.style.position="absolute";
F.style.overflow="hidden";
F.style.left=(C.left-2)+"px";
F.style.width=(C.width+4)+"px";
F.style.top=(C.top-2)+"px";
F.style.height=(C.height+4)+"px";
F.style.background=B;
this._highlightLayer.appendChild(F);
}};
Timeline.DetailedEventPainter.prototype._onClickInstantEvent=function(C,A,B){var D=SimileAjax.DOM.getPageCoordinates(C);
this._showBubble(D.left+Math.ceil(C.offsetWidth/2),D.top+Math.ceil(C.offsetHeight/2),B);
this._fireOnSelect(B.getID());
A.cancelBubble=true;
SimileAjax.DOM.cancelEvent(A);
return false;
};
Timeline.DetailedEventPainter.prototype._onClickDurationEvent=function(F,B,C){if("pageX" in B){var A=B.pageX;
var E=B.pageY;
}else{var D=SimileAjax.DOM.getPageCoordinates(F);
var A=B.offsetX+D.left;
var E=B.offsetY+D.top;
}this._showBubble(A,E,C);
this._fireOnSelect(C.getID());
B.cancelBubble=true;
SimileAjax.DOM.cancelEvent(B);
return false;
};
Timeline.DetailedEventPainter.prototype.showBubble=function(A){var B=this._eventIdToElmt[A.getID()];
if(B){var C=SimileAjax.DOM.getPageCoordinates(B);
this._showBubble(C.left+B.offsetWidth/2,C.top+B.offsetHeight/2,A);
}};
Timeline.DetailedEventPainter.prototype._showBubble=function(A,D,B){var C=document.createElement("div");
B.fillInfoBubble(C,this._params.theme,this._band.getLabeller());
SimileAjax.WindowManager.cancelPopups();
SimileAjax.Graphics.createBubbleForContentAndPoint(C,A,D,this._params.theme.event.bubble.width);
};
Timeline.DetailedEventPainter.prototype._fireOnSelect=function(A){for(var B=0;
BE;
D++){var A=this._zones[D];
if(EA.startTime){this._zones.splice(D,0,{startTime:A.startTime,endTime:E,unit:A.unit,multiple:A.multiple});
D++;
A.startTime=E;
}if(B=0){if(A.getTime()>this._zones[E].startTime){break;
}E--;
}for(var H=D;
H<=E;
H++){var G=this._zones[H];
var K=new Date(Math.max(C.getTime(),G.startTime));
var F=new Date(Math.min(A.getTime(),G.endTime));
SimileAjax.DateTime.roundDownToInterval(K,G.unit,I,G.multiple,this._theme.firstDayOfWeek);
SimileAjax.DateTime.roundUpToInterval(F,G.unit,I,G.multiple,this._theme.firstDayOfWeek);
while(K.getTime()0)){C=B-1;
}if(!D&&(B<(this._band._zoomSteps.length-1))){C=B+1;
}this._band._zoomIndex=C;
this._interval=SimileAjax.DateTime.gregorianUnitLengths[this._band._zoomSteps[C].unit];
this._pixelsPerInterval=this._band._zoomSteps[C].pixelsPerInterval;
A=this._band._zoomSteps[C].unit-this._band._zoomSteps[B].unit;
return A;
};
Timeline.HotZoneEther=function(A){this._params=A;
this._interval=A.interval;
this._pixelsPerInterval=A.pixelsPerInterval;
this._theme=A.theme;
};
Timeline.HotZoneEther.prototype.initialize=function(I,H){this._band=I;
this._timeline=H;
this._unit=H.getUnit();
this._zones=[{startTime:Number.NEGATIVE_INFINITY,endTime:Number.POSITIVE_INFINITY,magnify:1}];
var D=this._params;
for(var E=0;
E0;
C++){var A=this._zones[C];
if(this._unit.compare(F,A.endTime)<0){if(this._unit.compare(F,A.startTime)>0){this._zones.splice(C,0,{startTime:A.startTime,endTime:F,magnify:A.magnify});
C++;
A.startTime=F;
}if(this._unit.compare(B,A.endTime)<0){this._zones.splice(C,0,{startTime:F,endTime:B,magnify:G.magnify*A.magnify});
C++;
A.startTime=B;
F=B;
}else{A.magnify*=G.magnify;
F=A.endTime;
}}}}if("startsOn" in this._params){this._start=this._unit.parseFromObject(this._params.startsOn);
}else{if("endsOn" in this._params){this._start=this._unit.parseFromObject(this._params.endsOn);
this.shiftPixels(-this._timeline.getPixelLength());
}else{if("centersOn" in this._params){this._start=this._unit.parseFromObject(this._params.centersOn);
this.shiftPixels(-this._timeline.getPixelLength()/2);
}else{this._start=this._unit.makeDefaultValue();
this.shiftPixels(-this._timeline.getPixelLength()/2);
}}}};
Timeline.HotZoneEther.prototype.setDate=function(A){this._start=this._unit.cloneValue(A);
};
Timeline.HotZoneEther.prototype.shiftPixels=function(A){this._start=this.pixelOffsetToDate(A);
};
Timeline.HotZoneEther.prototype.dateToPixelOffset=function(A){return this._dateDiffToPixelOffset(this._start,A);
};
Timeline.HotZoneEther.prototype.pixelOffsetToDate=function(A){return this._pixelOffsetToDate(A,this._start);
};
Timeline.HotZoneEther.prototype.zoom=function(D){var A=0;
var B=this._band._zoomIndex;
var C=B;
if(D&&(B>0)){C=B-1;
}if(!D&&(B<(this._band._zoomSteps.length-1))){C=B+1;
}this._band._zoomIndex=C;
this._interval=SimileAjax.DateTime.gregorianUnitLengths[this._band._zoomSteps[C].unit];
this._pixelsPerInterval=this._band._zoomSteps[C].pixelsPerInterval;
A=this._band._zoomSteps[C].unit-this._band._zoomSteps[B].unit;
return A;
};
Timeline.HotZoneEther.prototype._dateDiffToPixelOffset=function(H,C){var D=this._getScale();
var I=H;
var B=C;
var E=0;
if(this._unit.compare(I,B)<0){var G=0;
while(G=0){if(this._unit.compare(I,this._zones[G].startTime)>0){break;
}G--;
}while(this._unit.compare(I,B)>0){var F=this._zones[G];
var A=this._unit.later(B,F.startTime);
E+=(this._unit.compare(A,I)/(D/F.magnify));
I=A;
G--;
}}return E;
};
Timeline.HotZoneEther.prototype._pixelOffsetToDate=function(E,B){var G=this._getScale();
var D=B;
if(E>0){var F=0;
while(F0){var A=this._zones[F];
var H=G/A.magnify;
if(A.endTime==Number.POSITIVE_INFINITY){D=this._unit.change(D,E*H);
E=0;
}else{var C=this._unit.compare(A.endTime,D)/H;
if(C>E){D=this._unit.change(D,E*H);
E=0;
}else{D=A.endTime;
E-=C;
}}F++;
}}else{var F=this._zones.length-1;
while(F>=0){if(this._unit.compare(D,this._zones[F].startTime)>0){break;
}F--;
}E=-E;
while(E>0){var A=this._zones[F];
var H=G/A.magnify;
if(A.startTime==Number.NEGATIVE_INFINITY){D=this._unit.change(D,-E*H);
E=0;
}else{var C=this._unit.compare(D,A.startTime)/H;
if(C>E){D=this._unit.change(D,-E*H);
E=0;
}else{D=A.startTime;
E-=C;
}}F--;
}}return D;
};
Timeline.HotZoneEther.prototype._getScale=function(){return this._interval/this._pixelsPerInterval;
};
/* labellers.js */
Timeline.GregorianDateLabeller=function(B,A){this._locale=B;
this._timeZone=A;
};
Timeline.GregorianDateLabeller.monthNames=[];
Timeline.GregorianDateLabeller.dayNames=[];
Timeline.GregorianDateLabeller.labelIntervalFunctions=[];
Timeline.GregorianDateLabeller.getMonthName=function(B,A){return Timeline.GregorianDateLabeller.monthNames[A][B];
};
Timeline.GregorianDateLabeller.prototype.labelInterval=function(A,C){var B=Timeline.GregorianDateLabeller.labelIntervalFunctions[this._locale];
if(B==null){B=Timeline.GregorianDateLabeller.prototype.defaultLabelInterval;
}return B.call(this,A,C);
};
Timeline.GregorianDateLabeller.prototype.labelPrecise=function(A){return SimileAjax.DateTime.removeTimeZoneOffset(A,this._timeZone).toUTCString();
};
Timeline.GregorianDateLabeller.prototype.defaultLabelInterval=function(B,C){var D;
var F=false;
B=SimileAjax.DateTime.removeTimeZoneOffset(B,this._timeZone);
switch(C){case SimileAjax.DateTime.MILLISECOND:D=B.getUTCMilliseconds();
break;
case SimileAjax.DateTime.SECOND:D=B.getUTCSeconds();
break;
case SimileAjax.DateTime.MINUTE:var A=B.getUTCMinutes();
if(A==0){D=B.getUTCHours()+":00";
F=true;
}else{D=A;
}break;
case SimileAjax.DateTime.HOUR:D=B.getUTCHours()+"hr";
break;
case SimileAjax.DateTime.DAY:D=Timeline.GregorianDateLabeller.getMonthName(B.getUTCMonth(),this._locale)+" "+B.getUTCDate();
break;
case SimileAjax.DateTime.WEEK:D=Timeline.GregorianDateLabeller.getMonthName(B.getUTCMonth(),this._locale)+" "+B.getUTCDate();
break;
case SimileAjax.DateTime.MONTH:var A=B.getUTCMonth();
if(A!=0){D=Timeline.GregorianDateLabeller.getMonthName(A,this._locale);
break;
}case SimileAjax.DateTime.YEAR:case SimileAjax.DateTime.DECADE:case SimileAjax.DateTime.CENTURY:case SimileAjax.DateTime.MILLENNIUM:var E=B.getUTCFullYear();
if(E>0){D=B.getUTCFullYear();
}else{D=(1-E)+"BC";
}F=(C==SimileAjax.DateTime.MONTH)||(C==SimileAjax.DateTime.DECADE&&E%100==0)||(C==SimileAjax.DateTime.CENTURY&&E%1000==0);
break;
default:D=B.toUTCString();
}return{text:D,emphasized:F};
};
/* original-painter.js */
Timeline.OriginalEventPainter=function(A){this._params=A;
this._onSelectListeners=[];
this._filterMatcher=null;
this._highlightMatcher=null;
this._frc=null;
this._eventIdToElmt={};
};
Timeline.OriginalEventPainter.prototype.initialize=function(B,A){this._band=B;
this._timeline=A;
this._backLayer=null;
this._eventLayer=null;
this._lineLayer=null;
this._highlightLayer=null;
this._eventIdToElmt=null;
};
Timeline.OriginalEventPainter.prototype.addOnSelectListener=function(A){this._onSelectListeners.push(A);
};
Timeline.OriginalEventPainter.prototype.removeOnSelectListener=function(B){for(var A=0;
AC){break;
}}return B;
};
Timeline.OriginalEventPainter.prototype._paintEventIcon=function(J,B,C,F,E){var H=J.getIcon();
H=H!=null?H:F.icon;
var G=F.trackOffset+B*F.trackIncrement+F.trackHeight/2;
var I=Math.round(G-F.iconHeight/2);
var D=SimileAjax.Graphics.createTranslucentImage(H);
var A=this._timeline.getDocument().createElement("div");
A.className="timeline-event-icon";
A.style.left=C+"px";
A.style.top=I+"px";
A.appendChild(D);
if(J._title!=null){A.title=J._title;
}this._eventLayer.appendChild(A);
return{left:C,top:I,width:F.iconWidth,height:F.iconHeight,elmt:A};
};
Timeline.OriginalEventPainter.prototype._paintEventLabel=function(J,K,C,G,A,H,F){var I=this._timeline.getDocument();
var B=I.createElement("div");
B.className="timeline-event-label";
B.style.left=C+"px";
B.style.width=A+"px";
B.style.top=G+"px";
B.innerHTML=K;
if(J._title!=null){B.title=J._title;
}var D=J.getTextColor();
if(D==null){D=J.getColor();
}if(D!=null){B.style.color=D;
}var E=J.getClassName();
if(E!=null){B.className+=" "+E;
}this._eventLayer.appendChild(B);
return{left:C,top:G,width:A,height:H,elmt:B};
};
Timeline.OriginalEventPainter.prototype._paintEventTape=function(N,B,D,A,G,C,K,J){var F=A-D;
var E=J.event.tape.height;
var L=K.trackOffset+B*K.trackIncrement;
var O=this._timeline.getDocument().createElement("div");
O.className="timeline-event-tape";
O.style.left=D+"px";
O.style.width=F+"px";
O.style.top=L+"px";
if(N._title!=null){O.title=N._title;
}if(G!=null){O.style.backgroundColor=G;
}var M=N.getTapeImage();
var H=N.getTapeRepeat();
H=H!=null?H:"repeat";
if(M!=null){O.style.backgroundImage="url("+M+")";
O.style.backgroundRepeat=H;
}SimileAjax.Graphics.setOpacity(O,C);
var I=N.getClassName();
if(I!=null){O.className+=" "+I;
}this._eventLayer.appendChild(O);
return{left:D,top:L,width:F,height:E,elmt:O};
};
Timeline.OriginalEventPainter.prototype._createHighlightDiv=function(A,C,E){if(A>=0){var D=this._timeline.getDocument();
var G=E.event;
var B=G.highlightColors[Math.min(A,G.highlightColors.length-1)];
var F=D.createElement("div");
F.style.position="absolute";
F.style.overflow="hidden";
F.style.left=(C.left-2)+"px";
F.style.width=(C.width+4)+"px";
F.style.top=(C.top-2)+"px";
F.style.height=(C.height+4)+"px";
this._highlightLayer.appendChild(F);
}};
Timeline.OriginalEventPainter.prototype._onClickInstantEvent=function(C,A,B){var D=SimileAjax.DOM.getPageCoordinates(C);
this._showBubble(D.left+Math.ceil(C.offsetWidth/2),D.top+Math.ceil(C.offsetHeight/2),B);
this._fireOnSelect(B.getID());
A.cancelBubble=true;
SimileAjax.DOM.cancelEvent(A);
return false;
};
Timeline.OriginalEventPainter.prototype._onClickDurationEvent=function(F,B,C){if("pageX" in B){var A=B.pageX;
var E=B.pageY;
}else{var D=SimileAjax.DOM.getPageCoordinates(F);
var A=B.offsetX+D.left;
var E=B.offsetY+D.top;
}this._showBubble(A,E,C);
this._fireOnSelect(C.getID());
B.cancelBubble=true;
SimileAjax.DOM.cancelEvent(B);
return false;
};
Timeline.OriginalEventPainter.prototype.showBubble=function(A){var B=this._eventIdToElmt[A.getID()];
if(B){var C=SimileAjax.DOM.getPageCoordinates(B);
this._showBubble(C.left+B.offsetWidth/2,C.top+B.offsetHeight/2,A);
}};
Timeline.OriginalEventPainter.prototype._showBubble=function(A,D,B){var C=document.createElement("div");
B.fillInfoBubble(C,this._params.theme,this._band.getLabeller());
SimileAjax.WindowManager.cancelPopups();
SimileAjax.Graphics.createBubbleForContentAndPoint(C,A,D,this._params.theme.event.bubble.width);
};
Timeline.OriginalEventPainter.prototype._fireOnSelect=function(A){for(var B=0;
B=0){var D=this._timeline.getDocument();
var G=E.event;
var B=G.highlightColors[Math.min(A,G.highlightColors.length-1)];
var F=D.createElement("div");
F.style.position="absolute";
F.style.overflow="hidden";
F.style.left=(C.left-1)+"px";
F.style.width=(C.width+2)+"px";
F.style.top=(C.top-1)+"px";
F.style.height=(C.height+2)+"px";
F.style.background=B;
this._highlightLayer.appendChild(F);
}};
Timeline.OverviewEventPainter.prototype.showBubble=function(A){};
/* sources.js */
Timeline.DefaultEventSource=function(A){this._events=(A instanceof Object)?A:new SimileAjax.EventIndex();
this._listeners=[];
};
Timeline.DefaultEventSource.prototype.addListener=function(A){this._listeners.push(A);
};
Timeline.DefaultEventSource.prototype.removeListener=function(B){for(var A=0;
A0){return A;
}else{if(A.substr(0,1)=="/"){return B.substr(0,B.indexOf("/",B.indexOf("://")+3))+A;
}else{return B+A;
}}}};
Timeline.DefaultEventSource.Event=function(A){function C(D){return(A[D]!=null&&A[D]!="")?A[D]:null;
}var B=(A.id)?A.id.trim():"";
this._id=B.length>0?B:("e"+Math.floor(Math.random()*1000000));
this._instant=A.instant||(A.end==null);
this._start=A.start;
this._end=(A.end!=null)?A.end:A.start;
this._latestStart=(A.latestStart!=null)?A.latestStart:(A.instant?this._end:this._start);
this._earliestEnd=(A.earliestEnd!=null)?A.earliestEnd:(A.instant?this._start:this._end);
this._eventID=C("eventID");
this._text=SimileAjax.HTML.deEntify(A.text);
this._description=SimileAjax.HTML.deEntify(A.description);
this._image=C("image");
this._link=C("link");
this._title=C("hoverText");
this._title=C("caption");
this._icon=C("icon");
this._color=C("color");
this._textColor=C("textColor");
this._classname=C("classname");
this._tapeImage=C("tapeImage");
this._tapeRepeat=C("tapeRepeat");
this._wikiURL=null;
this._wikiSection=null;
};
Timeline.DefaultEventSource.Event.prototype={getID:function(){return this._id;
},isInstant:function(){return this._instant;
},isImprecise:function(){return this._start!=this._latestStart||this._end!=this._earliestEnd;
},getStart:function(){return this._start;
},getEnd:function(){return this._end;
},getLatestStart:function(){return this._latestStart;
},getEarliestEnd:function(){return this._earliestEnd;
},getEventID:function(){return this._eventID;
},getText:function(){return this._text;
},getDescription:function(){return this._description;
},getImage:function(){return this._image;
},getLink:function(){return this._link;
},getIcon:function(){return this._icon;
},getColor:function(){return this._color;
},getTextColor:function(){return this._textColor;
},getClassName:function(){return this._classname;
},getTapeImage:function(){return this._tapeImage;
},getTapeRepeat:function(){return this._tapeRepeat;
},getProperty:function(A){return null;
},getWikiURL:function(){return this._wikiURL;
},getWikiSection:function(){return this._wikiSection;
},setWikiInfo:function(B,A){this._wikiURL=B;
this._wikiSection=A;
},fillDescription:function(A){A.innerHTML=this._description;
},fillWikiInfo:function(D){if(this._wikiURL!=null&&this._wikiSection!=null){var C=this.getProperty("wikiID");
if(C==null||C.length==0){C=this.getText();
}C=C.replace(/\s/g,"_");
var B=this._wikiURL+this._wikiSection.replace(/\s/g,"_")+"/"+C;
var A=document.createElement("a");
A.href=B;
A.target="new";
A.innerHTML=Timeline.strings[Timeline.clientLocale].wikiLinkLabel;
D.appendChild(document.createTextNode("["));
D.appendChild(A);
D.appendChild(document.createTextNode("]"));
}else{D.style.display="none";
}},fillTime:function(A,B){if(this._instant){if(this.isImprecise()){A.appendChild(A.ownerDocument.createTextNode(B.labelPrecise(this._start)));
A.appendChild(A.ownerDocument.createElement("br"));
A.appendChild(A.ownerDocument.createTextNode(B.labelPrecise(this._end)));
}else{A.appendChild(A.ownerDocument.createTextNode(B.labelPrecise(this._start)));
}}else{if(this.isImprecise()){A.appendChild(A.ownerDocument.createTextNode(B.labelPrecise(this._start)+" ~ "+B.labelPrecise(this._latestStart)));
A.appendChild(A.ownerDocument.createElement("br"));
A.appendChild(A.ownerDocument.createTextNode(B.labelPrecise(this._earliestEnd)+" ~ "+B.labelPrecise(this._end)));
}else{A.appendChild(A.ownerDocument.createTextNode(B.labelPrecise(this._start)));
A.appendChild(A.ownerDocument.createElement("br"));
A.appendChild(A.ownerDocument.createTextNode(B.labelPrecise(this._end)));
}}},fillInfoBubble:function(A,E,M){var K=A.ownerDocument;
var J=this.getText();
var H=this.getLink();
var B=this.getImage();
if(B!=null){var D=K.createElement("img");
D.src=B;
E.event.bubble.imageStyler(D);
A.appendChild(D);
}var L=K.createElement("div");
var C=K.createTextNode(J);
if(H!=null){var I=K.createElement("a");
I.href=H;
I.appendChild(C);
L.appendChild(I);
}else{L.appendChild(C);
}E.event.bubble.titleStyler(L);
A.appendChild(L);
var N=K.createElement("div");
this.fillDescription(N);
E.event.bubble.bodyStyler(N);
A.appendChild(N);
var G=K.createElement("div");
this.fillTime(G,M);
E.event.bubble.timeStyler(G);
A.appendChild(G);
var F=K.createElement("div");
this.fillWikiInfo(F);
E.event.bubble.wikiStyler(F);
A.appendChild(F);
}};
/* themes.js */
Timeline.ClassicTheme=new Object();
Timeline.ClassicTheme.implementations=[];
Timeline.ClassicTheme.create=function(B){if(B==null){B=Timeline.getDefaultLocale();
}var A=Timeline.ClassicTheme.implementations[B];
if(A==null){A=Timeline.ClassicTheme._Impl;
}return new A();
};
Timeline.ClassicTheme._Impl=function(){this.firstDayOfWeek=0;
this.ether={backgroundColors:[],highlightOpacity:50,interval:{line:{show:true,opacity:25},weekend:{opacity:30},marker:{hAlign:"Bottom",vAlign:"Right"}}};
this.event={track:{height:10,gap:2},overviewTrack:{offset:20,tickHeight:6,height:2,gap:1},tape:{height:4},instant:{icon:Timeline.urlPrefix+"images/dull-blue-circle.png",iconWidth:10,iconHeight:10,impreciseOpacity:20},duration:{impreciseOpacity:20},label:{backgroundOpacity:50,offsetFromLine:3},highlightColors:[],bubble:{width:250,height:125,titleStyler:function(A){A.className="timeline-event-bubble-title";
},bodyStyler:function(A){A.className="timeline-event-bubble-body";
},imageStyler:function(A){A.className="timeline-event-bubble-image";
},wikiStyler:function(A){A.className="timeline-event-bubble-wiki";
},timeStyler:function(A){A.className="timeline-event-bubble-time";
}}};
this.mouseWheel="scroll";
};
/* timeline.js */
Timeline.strings={};
Timeline.getDefaultLocale=function(){return Timeline.clientLocale;
};
Timeline.create=function(B,A,C,D){return new Timeline._Impl(B,A,C,D);
};
Timeline.HORIZONTAL=0;
Timeline.VERTICAL=1;
Timeline._defaultTheme=null;
Timeline.createBandInfo=function(F){var G=("theme" in F)?F.theme:Timeline.getDefaultTheme();
var D=("eventSource" in F)?F.eventSource:null;
var H=new Timeline.LinearEther({centersOn:("date" in F)?F.date:new Date(),interval:SimileAjax.DateTime.gregorianUnitLengths[F.intervalUnit],pixelsPerInterval:F.intervalPixels,theme:G});
var C=new Timeline.GregorianEtherPainter({unit:F.intervalUnit,multiple:("multiple" in F)?F.multiple:1,theme:G,align:("align" in F)?F.align:undefined});
var I={showText:("showEventText" in F)?F.showEventText:true,theme:G};
if("eventPainterParams" in F){for(var A in F.eventPainterParams){I[A]=F.eventPainterParams[A];
}}if("trackHeight" in F){I.trackHeight=F.trackHeight;
}if("trackGap" in F){I.trackGap=F.trackGap;
}var B=("overview" in F&&F.overview)?"overview":("layout" in F?F.layout:"original");
var E;
if("eventPainter" in F){E=new F.eventPainter(I);
}else{switch(B){case"overview":E=new Timeline.OverviewEventPainter(I);
break;
case"detailed":E=new Timeline.DetailedEventPainter(I);
break;
default:E=new Timeline.OriginalEventPainter(I);
}}return{width:F.width,eventSource:D,timeZone:("timeZone" in F)?F.timeZone:0,ether:H,etherPainter:C,eventPainter:E,theme:G,zoomIndex:("zoomIndex" in F)?F.zoomIndex:0,zoomSteps:("zoomSteps" in F)?F.zoomSteps:null};
};
Timeline.createHotZoneBandInfo=function(F){var G=("theme" in F)?F.theme:Timeline.getDefaultTheme();
var D=("eventSource" in F)?F.eventSource:null;
var H=new Timeline.HotZoneEther({centersOn:("date" in F)?F.date:new Date(),interval:SimileAjax.DateTime.gregorianUnitLengths[F.intervalUnit],pixelsPerInterval:F.intervalPixels,zones:F.zones,theme:G});
var C=new Timeline.HotZoneGregorianEtherPainter({unit:F.intervalUnit,zones:F.zones,theme:G,align:("align" in F)?F.align:undefined});
var I={showText:("showEventText" in F)?F.showEventText:true,theme:G};
if("eventPainterParams" in F){for(var A in F.eventPainterParams){I[A]=F.eventPainterParams[A];
}}if("trackHeight" in F){I.trackHeight=F.trackHeight;
}if("trackGap" in F){I.trackGap=F.trackGap;
}var B=("overview" in F&&F.overview)?"overview":("layout" in F?F.layout:"original");
var E;
if("eventPainter" in F){E=new F.eventPainter(I);
}else{switch(B){case"overview":E=new Timeline.OverviewEventPainter(I);
break;
case"detailed":E=new Timeline.DetailedEventPainter(I);
break;
default:E=new Timeline.OriginalEventPainter(I);
}}return{width:F.width,eventSource:D,timeZone:("timeZone" in F)?F.timeZone:0,ether:H,etherPainter:C,eventPainter:E,theme:G,zoomIndex:("zoomIndex" in F)?F.zoomIndex:0,zoomSteps:("zoomSteps" in F)?F.zoomSteps:null};
};
Timeline.getDefaultTheme=function(){if(Timeline._defaultTheme==null){Timeline._defaultTheme=Timeline.ClassicTheme.create(Timeline.getDefaultLocale());
}return Timeline._defaultTheme;
};
Timeline.setDefaultTheme=function(A){Timeline._defaultTheme=A;
};
Timeline.loadXML=function(A,C)
{
var D=function(G,F,E){
alert("Failed to load data xml from "+A+"\n"+G);
};
var B=function(F){var E=F.responseXML;
if(!E.documentElement&&F.responseStream){E.load(F.responseStream);
}
C(E,A);
};
SimileAjax.XmlHttp.get(A,D,B);
};
Timeline.loadJSON=function(url,f){var fError=function(statusText,status,xmlhttp){alert("Failed to load json data from "+url+"\n"+statusText);
};
var fDone=function(xmlhttp){f(eval("("+xmlhttp.responseText+")"),url);
};
SimileAjax.XmlHttp.get(url,fError,fDone);
};
Timeline._Impl=function(B,A,C,D){SimileAjax.WindowManager.initialize();
this._containerDiv=B;
this._bandInfos=A;
this._orientation=C==null?Timeline.HORIZONTAL:C;
this._unit=(D!=null)?D:SimileAjax.NativeDateUnit;
this._initialize();
};
Timeline._Impl.prototype.dispose=function(){for(var A=0;
A Loading...";
this.showLoadingMessage=function(){D.containerDiv.style.display="block";
};
this.hideLoadingMessage=function(){D.containerDiv.style.display="none";
};
};
Timeline._Impl.prototype._distributeWidths=function(){var G=this.getPixelLength();
var B=this.getPixelWidth();
var C=0;
for(var F=0;
F0){var A=parseInt(E.substr(0,H));
var D=A*B/100;
}else{var D=parseInt(E);
}J.setBandShiftAndWidth(C,D);
J.setViewLength(G);
C+=D;
}};
Timeline._Impl.prototype.zoom=function(D,A,G,F){var C=new RegExp("^timeline-band-([0-9]+)$");
var E=null;
var B=C.exec(F.id);
if(B){E=parseInt(B[1]);
}if(E!=null){this._bands[E].zoom(D,A,G,F);
}this.paint();
};
Timeline._Band=function(B,G,C){this._timeline=B;
this._bandInfo=G;
this._index=C;
this._locale=("locale" in G)?G.locale:Timeline.getDefaultLocale();
this._timeZone=("timeZone" in G)?G.timeZone:0;
this._labeller=("labeller" in G)?G.labeller:(("createLabeller" in B.getUnit())?B.getUnit().createLabeller(this._locale,this._timeZone):new Timeline.GregorianDateLabeller(this._locale,this._timeZone));
this._theme=G.theme;
this._zoomIndex=("zoomIndex" in G)?G.zoomIndex:0;
this._zoomSteps=("zoomSteps" in G)?G.zoomSteps:null;
this._dragging=false;
this._changing=false;
this._originalScrollSpeed=5;
this._scrollSpeed=this._originalScrollSpeed;
this._onScrollListeners=[];
var A=this;
this._syncWithBand=null;
this._syncWithBandHandler=function(H){A._onHighlightBandScroll();
};
this._selectorListener=function(H){A._onHighlightBandScroll();
};
var E=this._timeline.getDocument().createElement("div");
E.className="timeline-band-input";
this._timeline.addDiv(E);
this._keyboardInput=document.createElement("input");
this._keyboardInput.type="text";
E.appendChild(this._keyboardInput);
SimileAjax.DOM.registerEventWithObject(this._keyboardInput,"keydown",this,"_onKeyDown");
SimileAjax.DOM.registerEventWithObject(this._keyboardInput,"keyup",this,"_onKeyUp");
this._div=this._timeline.getDocument().createElement("div");
this._div.id="timeline-band-"+C;
this._div.className="timeline-band timeline-band-"+C;
this._timeline.addDiv(this._div);
SimileAjax.DOM.registerEventWithObject(this._div,"mousedown",this,"_onMouseDown");
SimileAjax.DOM.registerEventWithObject(this._div,"mousemove",this,"_onMouseMove");
SimileAjax.DOM.registerEventWithObject(this._div,"mouseup",this,"_onMouseUp");
SimileAjax.DOM.registerEventWithObject(this._div,"mouseout",this,"_onMouseOut");
SimileAjax.DOM.registerEventWithObject(this._div,"dblclick",this,"_onDblClick");
var F=this._theme!=null?this._theme.mouseWheel:"scroll";
if(F==="zoom"||F==="scroll"||this._zoomSteps){if(SimileAjax.Platform.browser.isFirefox){SimileAjax.DOM.registerEventWithObject(this._div,"DOMMouseScroll",this,"_onMouseScroll");
}else{SimileAjax.DOM.registerEventWithObject(this._div,"mousewheel",this,"_onMouseScroll");
}}this._innerDiv=this._timeline.getDocument().createElement("div");
this._innerDiv.className="timeline-band-inner";
this._div.appendChild(this._innerDiv);
this._ether=G.ether;
G.ether.initialize(this,B);
this._etherPainter=G.etherPainter;
G.etherPainter.initialize(this,B);
this._eventSource=G.eventSource;
if(this._eventSource){this._eventListener={onAddMany:function(){A._onAddMany();
},onClear:function(){A._onClear();
}};
this._eventSource.addListener(this._eventListener);
}this._eventPainter=G.eventPainter;
G.eventPainter.initialize(this,B);
this._decorators=("decorators" in G)?G.decorators:[];
for(var D=0;
D3*this._viewLength/2){this.setCenterVisibleDate(this.pixelOffsetToDate(B-this._viewLength));
}}this._autoScroll(Math.round(this._viewLength/2-this._ether.dateToPixelOffset(A)),C);
};
Timeline._Band.prototype.showBubbleForEvent=function(C){var A=this.getEventSource().getEvent(C);
if(A){var B=this;
this.scrollToCenter(A.getStart(),function(){B._eventPainter.showBubble(A);
});
}};
Timeline._Band.prototype.zoom=function(C,A,F,E){if(!this._zoomSteps){return ;
}A+=this._viewOffset;
var D=this._ether.pixelOffsetToDate(A);
var B=this._ether.zoom(C);
this._etherPainter.zoom(B);
this._moveEther(Math.round(-this._ether.dateToPixelOffset(D)));
this._moveEther(A);
};
Timeline._Band.prototype._onMouseDown=function(B,A,C){this.closeBubble();
this._dragging=true;
this._dragX=A.clientX;
this._dragY=A.clientY;
};
Timeline._Band.prototype._onMouseMove=function(D,A,E){if(this._dragging){var C=A.clientX-this._dragX;
var B=A.clientY-this._dragY;
this._dragX=A.clientX;
this._dragY=A.clientY;
this._moveEther(this._timeline.isHorizontal()?C:B);
this._positionHighlight();
}};
Timeline._Band.prototype._onMouseUp=function(B,A,C){this._dragging=false;
this._keyboardInput.focus();
};
Timeline._Band.prototype._onMouseOut=function(C,B,D){var A=SimileAjax.DOM.getEventRelativeCoordinates(B,C);
A.x+=this._viewOffset;
if(A.x<0||A.x>C.offsetWidth||A.y<0||A.y>C.offsetHeight){this._dragging=false;
}};
Timeline._Band.prototype._onMouseScroll=function(G,H,B){var A=new Date();
A=A.getTime();
if(!this._lastScrollTime||((A-this._lastScrollTime)>50)){this._lastScrollTime=A;
var I=0;
if(H.wheelDelta){I=H.wheelDelta/120;
}else{if(H.detail){I=-H.detail/3;
}}var F=this._theme.mouseWheel;
if(this._zoomSteps||F==="zoom"){var E=SimileAjax.DOM.getEventRelativeCoordinates(H,G);
if(I!=0){var D;
if(I>0){D=true;
}if(I<0){D=false;
}this._timeline.zoom(D,E.x,E.y,G);
}}else{if(F==="scroll"){var C=50*(I<0?-1:1);
this._moveEther(C);
}}}if(H.stopPropagation){H.stopPropagation();
}H.cancelBubble=true;
if(H.preventDefault){H.preventDefault();
}H.returnValue=false;
};
Timeline._Band.prototype._onDblClick=function(C,B,E){var A=SimileAjax.DOM.getEventRelativeCoordinates(B,C);
var D=A.x-(this._viewLength/2-this._viewOffset);
this._autoScroll(-D);
};
Timeline._Band.prototype._onKeyDown=function(B,A,C){if(!this._dragging){switch(A.keyCode){case 27:break;
case 37:case 38:this._scrollSpeed=Math.min(50,Math.abs(this._scrollSpeed*1.05));
this._moveEther(this._scrollSpeed);
break;
case 39:case 40:this._scrollSpeed=-Math.min(50,Math.abs(this._scrollSpeed*1.05));
this._moveEther(this._scrollSpeed);
break;
default:return true;
}this.closeBubble();
SimileAjax.DOM.cancelEvent(A);
return false;
}return true;
};
Timeline._Band.prototype._onKeyUp=function(B,A,C){if(!this._dragging){this._scrollSpeed=this._originalScrollSpeed;
switch(A.keyCode){case 35:this.setCenterVisibleDate(this._eventSource.getLatestDate());
break;
case 36:this.setCenterVisibleDate(this._eventSource.getEarliestDate());
break;
case 33:this._autoScroll(this._timeline.getPixelLength());
break;
case 34:this._autoScroll(-this._timeline.getPixelLength());
break;
default:return true;
}this.closeBubble();
SimileAjax.DOM.cancelEvent(A);
return false;
}return true;
};
Timeline._Band.prototype._autoScroll=function(D,C){var A=this;
var B=SimileAjax.Graphics.createAnimation(function(E,F){A._moveEther(F);
},0,D,1000,C);
B.run();
};
Timeline._Band.prototype._moveEther=function(A){this.closeBubble();
this._viewOffset+=A;
this._ether.shiftPixels(-A);
if(this._timeline.isHorizontal()){this._div.style.left=this._viewOffset+"px";
}else{this._div.style.top=this._viewOffset+"px";
}if(this._viewOffset>-this._viewLength*0.5||this._viewOffset<-this._viewLength*(Timeline._Band.SCROLL_MULTIPLES-1.5)){this._recenterDiv();
}else{this.softLayout();
}this._onChanging();
};
Timeline._Band.prototype._onChanging=function(){this._changing=true;
this._fireOnScroll();
this._setSyncWithBandDate();
this._changing=false;
};
Timeline._Band.prototype._fireOnScroll=function(){for(var A=0;
A0?B:A;
};
Timeline.NativeDateUnit.change=function(A,B){return new Date(A.getTime()+B);
};