/* band.js */ Timeline._Band=function(B,G,C){if(B.autoWidth&&typeof G.width=="string"){G.width=G.width.indexOf("%")>-1?0:parseInt(G.width); }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"); //added by Kartik starts SimileAjax.DOM.registerEventWithObject(this._div,"touchstart",this,"_onTouchStart"); SimileAjax.DOM.registerEventWithObject(this._div,"touchmove",this,"_onTouchMove"); Timeline._Band.prototype._onTouchStart=function(D,A,E) { if(A.touches.length == 1) { var touch = A.changedTouches[0]; this._dragX=touch.clientX; this._dragY=touch.clientY; } } Timeline._Band.prototype._onTouchMove=function(D,A,E) { if(A.touches.length == 1) { A.preventDefault(); var touch = A.changedTouches[0]; var C=touch.clientX-this._dragX; var B=touch.clientY-this._dragY; this._dragX=touch.clientX; this._dragY=touch.clientY; this._moveEther(this._timeline.isHorizontal()?C:B); this._positionHighlight(); this._fireOnScroll(); this._setSyncWithBandDate(); } }; //added by Kartik ends 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; this._eventTracksNeeded=0; this._eventTrackIncrement=0; G.eventPainter.initialize(this,B); this._decorators=("decorators" in G)?G.decorators:[]; for(var D=0; Dthis._eventTracksNeeded){this._eventTracksNeeded=A; }}; Timeline._Band.prototype.checkAutoWidth=function(){if(!this._timeline.autoWidth){return ; }var C=this._eventPainter.getType()=="overview"; var A=C?this._theme.event.overviewTrack.autoWidthMargin:this._theme.event.track.autoWidthMargin; var B=Math.ceil((this._eventTracksNeeded+A)*this._eventTrackIncrement); B+=C?this._theme.event.overviewTrack.offset:this._theme.event.track.offset; var D=this._bandInfo; if(B!=D.width){D.width=B; }}; Timeline._Band.prototype.layout=function(){this.paint(); }; Timeline._Band.prototype.paint=function(){this._etherPainter.paint(); this._paintDecorators(); this._paintEvents(); }; Timeline._Band.prototype.softLayout=function(){this.softPaint(); }; Timeline._Band.prototype.softPaint=function(){this._etherPainter.softPaint(); this._softPaintDecorators(); this._softPaintEvents(); }; Timeline._Band.prototype.setBandShiftAndWidth=function(A,D){var C=this._keyboardInput.parentNode; var B=A+Math.floor(D/2); if(this._timeline.isHorizontal()){this._div.style.top=A+"px"; this._div.style.height=D+"px"; C.style.top=B+"px"; C.style.left="-1em"; }else{this._div.style.left=A+"px"; this._div.style.width=D+"px"; C.style.left=B+"px"; C.style.top="-1em"; }}; Timeline._Band.prototype.getViewWidth=function(){if(this._timeline.isHorizontal()){return this._div.offsetHeight; }else{return this._div.offsetWidth; }}; Timeline._Band.prototype.setViewLength=function(A){this._viewLength=A; this._recenterDiv(); this._onChanging(); }; Timeline._Band.prototype.getViewLength=function(){return this._viewLength; }; Timeline._Band.prototype.getTotalViewLength=function(){return Timeline._Band.SCROLL_MULTIPLES*this._viewLength; }; Timeline._Band.prototype.getViewOffset=function(){return this._viewOffset; }; Timeline._Band.prototype.getMinDate=function(){return this._ether.pixelOffsetToDate(this._viewOffset); }; Timeline._Band.prototype.getMaxDate=function(){return this._ether.pixelOffsetToDate(this._viewOffset+Timeline._Band.SCROLL_MULTIPLES*this._viewLength); }; Timeline._Band.prototype.getMinVisibleDate=function(){return this._ether.pixelOffsetToDate(0); }; Timeline._Band.prototype.getMinVisibleDateAfterDelta=function(A){return this._ether.pixelOffsetToDate(A); }; Timeline._Band.prototype.getMaxVisibleDate=function(){return this._ether.pixelOffsetToDate(this._viewLength); }; Timeline._Band.prototype.getMaxVisibleDateAfterDelta=function(A){return this._ether.pixelOffsetToDate(this._viewLength+A); }; Timeline._Band.prototype.getCenterVisibleDate=function(){return this._ether.pixelOffsetToDate(this._viewLength/2); }; Timeline._Band.prototype.setMinVisibleDate=function(A){if(!this._changing){this._moveEther(Math.round(-this._ether.dateToPixelOffset(A))); }}; Timeline._Band.prototype.setMaxVisibleDate=function(A){if(!this._changing){this._moveEther(Math.round(this._viewLength-this._ether.dateToPixelOffset(A))); }}; Timeline._Band.prototype.setCenterVisibleDate=function(A){if(!this._changing){this._moveEther(Math.round(this._viewLength/2-this._ether.dateToPixelOffset(A))); }}; Timeline._Band.prototype.dateToPixelOffset=function(A){return this._ether.dateToPixelOffset(A)-this._viewOffset; }; Timeline._Band.prototype.pixelOffsetToDate=function(A){return this._ether.pixelOffsetToDate(A+this._viewOffset); }; Timeline._Band.prototype.createLayerDiv=function(C,A){var D=this._timeline.getDocument().createElement("div"); D.className="timeline-band-layer"+(typeof A=="string"?(" "+A):""); D.style.zIndex=C; this._innerDiv.appendChild(D); var B=this._timeline.getDocument().createElement("div"); B.className="timeline-band-layer-inner"; if(SimileAjax.Platform.browser.isIE){B.style.cursor="move"; }else{B.style.cursor="-moz-grab"; }D.appendChild(B); return B; }; Timeline._Band.prototype.removeLayerDiv=function(A){this._innerDiv.removeChild(A.parentNode); }; Timeline._Band.prototype.scrollToCenter=function(A,C){var B=this._ether.dateToPixelOffset(A); if(B<-this._viewLength/2){this.setCenterVisibleDate(this.pixelOffsetToDate(B+this._viewLength)); }else{if(B>3*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; //console.log("mouse up"); //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(); if(!this._timeline.shiftOK(this._index,A)){return ; }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.busy=function(){return(this._changing); }; Timeline._Band.prototype._fireOnScroll=function(){for(var A=0; A0){W[B-1].end=Math.max(W[B-1].end,U); }var E=I.height+X.iconBottomMargin+C; while(E>0){W.push({start:N,end:U}); E-=X.trackHeight; }}var P=a.text; var H=this._frc.computeSize(P); var M=H.height+X.labelBottomMargin+C; var J=U+H.width+X.labelRightMargin; if(B>0){W[B-1].end=Math.max(W[B-1].end,J); }for(var Y=0; M>0; Y++){if(B+Y=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.CompactEventPainter.prototype._onClickMultiplePreciseInstantEvent=function(E,A,B){var F=SimileAjax.DOM.getPageCoordinates(E); this._showBubble(F.left+Math.ceil(E.offsetWidth/2),F.top+Math.ceil(E.offsetHeight/2),B); var D=[]; for(var C=0; C0){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._color!=null){B.style.backgroundColor=this._color; }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=A.unit!=null?A.unit:SimileAjax.NativeDateUnit; this._date=(typeof A.date=="string")?this._unit.parseFromObject(A.date):A.date; this._width=A.width!=null?A.width:10; this._color=A.color; this._cssClass=A.cssClass!=null?A.cssClass:""; this._opacity=A.opacity!=null?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._color!=null){F.style.backgroundColor=this._color; }if(this._opacity<100){SimileAjax.Graphics.setOpacity(F,this._opacity); }this._layerDiv.appendChild(F); if(this._timeline.isHorizontal()){F.style.left=B+"px"; F.style.width=this._width; }else{F.style.top=B+"px"; F.style.height=this._width; }}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.getType=function(){return"detailed"; }; 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(B,E,C){var D=document.createElement("div"); var A=this._params.theme.event.bubble; C.fillInfoBubble(D,this._params.theme,this._band.getLabeller()); SimileAjax.WindowManager.cancelPopups(); SimileAjax.Graphics.createBubbleForContentAndPoint(D,B,E,A.width,null,A.maxHeight); }; 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; }; /* event-utils.js */ Timeline.EventUtils={}; Timeline.EventUtils.getNewEventID=function(){if(this._lastEventID==null){this._lastEventID=0; }this._lastEventID+=1; return"e"+this._lastEventID; }; Timeline.EventUtils.decodeEventElID=function(C){var D=C.split("-"); if(D[1]!="tl"){alert("Internal Timeline problem 101, please consult support"); return{band:null,evt:null}; }var B=Timeline.getTimelineFromID(D[2]); var E=B.getBand(D[3]); var A=E.getEventSource.getEvent(D[4]); return{band:E,evt:A}; }; Timeline.EventUtils.encodeEventElID=function(B,D,C,A){return C+"-tl-"+B.timelineID+"-"+D.getIndex()+"-"+A.getID(); }; /* 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._eventPaintListeners=[]; 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.getType=function(){return"original"; }; Timeline.OriginalEventPainter.prototype.addOnSelectListener=function(A){this._onSelectListeners.push(A); }; Timeline.OriginalEventPainter.prototype.removeOnSelectListener=function(B){for(var A=0; AD){break; }}return C; }; Timeline.OriginalEventPainter.prototype._paintEventIcon=function(K,B,C,G,F,D){var I=K.getIcon(); I=I!=null?I:G.icon; var J; if(D>0){J=G.trackOffset+B*G.trackIncrement+D+G.impreciseIconMargin; }else{var H=G.trackOffset+B*G.trackIncrement+G.trackHeight/2; J=Math.round(H-G.iconHeight/2); }var E=SimileAjax.Graphics.createTranslucentImage(I); var A=this._timeline.getDocument().createElement("div"); A.className=this._getElClassName("timeline-event-icon",K,"icon"); A.id=this._encodeEventElID("icon",K); A.style.left=C+"px"; A.style.top=J+"px"; A.appendChild(E); if(K._title!=null){A.title=K._title; }this._eventLayer.appendChild(A); return{left:C,top:J,width:G.iconWidth,height:G.iconHeight,elmt:A}; }; Timeline.OriginalEventPainter.prototype._paintEventLabel=function(K,L,D,H,A,J,G,E,C){var I=this._timeline.getDocument(); var B=I.createElement("div"); B.className=E; B.id=this._encodeEventElID("label",K); B.style.left=D+"px"; B.style.width=A+"px"; B.style.top=H+"px"; B.innerHTML=L; if(K._title!=null){B.title=K._title; }var F=K.getTextColor(); if(F==null){F=K.getColor(); }if(F!=null){B.style.color=F; }if(G.event.highlightLabelBackground&&C>=0){B.style.background=this._getHighlightColor(C,G); }this._eventLayer.appendChild(B); return{left:D,top:H,width:A,height:J,elmt:B}; }; Timeline.OriginalEventPainter.prototype._paintEventTape=function(N,B,D,A,G,C,J,I,M){var F=A-D; var E=I.event.tape.height; var K=J.trackOffset+B*J.trackIncrement; var O=this._timeline.getDocument().createElement("div"); O.className=this._getElClassName("timeline-event-tape",N,"tape"); O.id=this._encodeEventElID("tape"+M,N); O.style.left=D+"px"; O.style.width=F+"px"; O.style.height=E+"px"; O.style.top=K+"px"; if(N._title!=null){O.title=N._title; }if(G!=null){O.style.backgroundColor=G; }var L=N.getTapeImage(); var H=N.getTapeRepeat(); H=H!=null?H:"repeat"; if(L!=null){O.style.backgroundImage="url("+L+")"; O.style.backgroundRepeat=H; }SimileAjax.Graphics.setOpacity(O,C); this._eventLayer.appendChild(O); return{left:D,top:K,width:F,height:E,elmt:O}; }; Timeline.OriginalEventPainter.prototype._getLabelDivClassName=function(A){return this._getElClassName("timeline-event-label",A,"label"); }; Timeline.OriginalEventPainter.prototype._getElClassName=function(D,C,A){var E=C.getClassName(),B=[]; if(E){if(A){B.push(A+"-"+E+" "); }B.push(E+" "); }B.push(D); return(B.join("")); }; Timeline.OriginalEventPainter.prototype._getHighlightColor=function(A,B){var C=B.event.highlightColors; return C[Math.min(A,C.length-1)]; }; Timeline.OriginalEventPainter.prototype._createHighlightDiv=function(A,D,F,B){var G=null; if(A>=0){var E=this._timeline.getDocument(); var C=this._getHighlightColor(A,F); G=E.createElement("div"); G.className=this._getElClassName("timeline-event-highlight",B,"highlight"); G.id=this._encodeEventElID("highlight0",B); G.style.position="absolute"; G.style.overflow="hidden"; G.style.left=(D.left-2)+"px"; G.style.width=(D.width+4)+"px"; G.style.top=(D.top-2)+"px"; G.style.height=(D.height+4)+"px"; G.style.background=C; this._highlightLayer.appendChild(G); }return G; }; 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(B,E,C){var D=document.createElement("div"); var A=this._params.theme.event.bubble; C.fillInfoBubble(D,this._params.theme,this._band.getLabeller()); SimileAjax.WindowManager.cancelPopups(); SimileAjax.Graphics.createBubbleForContentAndPoint(D,B,E,A.width,null,A.maxHeight); }; 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 D(E){return(A[E]!=null&&A[E]!="")?A[E]:null; }var C=A.id?A.id.trim():""; this._id=C.length>0?C:Timeline.EventUtils.getNewEventID(); 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:this._end; var B=[]; if(this._start>this._latestStart){this._latestStart=this._start; B.push("start is > latestStart"); }if(this._start>this._earliestEnd){this._earliestEnd=this._latestStart; B.push("start is > earliestEnd"); }if(this._start>this._end){this._end=this._earliestEnd; B.push("start is > end"); }if(this._latestStart>this._earliestEnd){this._earliestEnd=this._latestStart; B.push("latestStart is > earliestEnd"); }if(this._latestStart>this._end){this._end=this._earliestEnd; B.push("latestStart is > end"); }if(this._earliestEnd>this._end){this._end=this._earliestEnd; B.push("earliestEnd is > end"); }this._eventID=D("eventID"); this._text=(A.text!=null)?SimileAjax.HTML.deEntify(A.text):""; if(B.length>0){this._text+=" PROBLEM: "+B.join(", "); }this._description=SimileAjax.HTML.deEntify(A.description); this._image=D("image"); this._link=D("link"); this._title=D("hoverText"); this._title=D("caption"); this._icon=D("icon"); this._color=D("color"); this._textColor=D("textColor"); this._classname=D("classname"); this._tapeImage=D("tapeImage"); this._tapeRepeat=D("tapeRepeat"); this._trackNum=D("trackNum"); if(this._trackNum!=null){this._trackNum=parseInt(this._trackNum); }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; },getTrackNum:function(){return this._trackNum; },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){D.style.display="none"; if(this._wikiURL==null||this._wikiSection==null){return ; }var C=this.getProperty("wikiID"); if(C==null||C.length==0){C=this.getText(); }if(C==null||C.length==0){return ; }D.style.display="inline"; 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("]")); },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.autoWidth=false; this.autoWidthAnimationTime=500; this.timeline_start=null; this.timeline_stop=null; 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,offset:2,autoWidthMargin:1.5},overviewTrack:{offset:20,tickHeight:6,height:2,gap:1,autoWidthMargin:5},tape:{height:4},instant:{icon:Timeline.urlPrefix+"images/dull-blue-circle.png",iconWidth:10,iconHeight:10,impreciseOpacity:20,impreciseIconMargin:3},duration:{impreciseOpacity:20},label:{backgroundOpacity:50,offsetFromLine:3},highlightColors:["#FFFF00","#FFC000","#FF0000","#0000FF"],highlightLabelBackground:false,bubble:{width:250,maxHeight:0,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.version="2.3.0"; Timeline.ajax_lib_version=SimileAjax.version; Timeline.display_version=Timeline.version+" (with Ajax lib "+Timeline.ajax_lib_version+")"; Timeline.strings={}; Timeline.HORIZONTAL=0; Timeline.VERTICAL=1; Timeline._defaultTheme=null; Timeline.getDefaultLocale=function(){return Timeline.clientLocale; }; Timeline.create=function(D,C,E,F){if(Timeline.timelines==null){Timeline.timelines=[]; }var B=Timeline.timelines.length; Timeline.timelines[B]=null; var A=new Timeline._Impl(D,C,E,F,B); Timeline.timelines[B]=A; return A; }; 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.getTimelineFromID=function(A){return Timeline.timelines[A]; }; Timeline.writeVersion=function(A){document.getElementById(A).innerHTML=this.display_version; }; Timeline._Impl=function(C,B,D,E,A){SimileAjax.WindowManager.initialize(); this._containerDiv=C; this._bandInfos=B; this._orientation=D==null?Timeline.HORIZONTAL:D; this._unit=(E!=null)?E:SimileAjax.NativeDateUnit; this._starting=true; this._autoResizing=false; this.autoWidth=B&&B[0]&&B[0].theme&&B[0].theme.autoWidth; this.autoWidthAnimationTime=B&&B[0]&&B[0].theme&&B[0].theme.autoWidthAnimationTime; this.timelineID=A; this.timeline_start=B&&B[0]&&B[0].theme&&B[0].theme.timeline_start; this.timeline_stop=B&&B[0]&&B[0].theme&&B[0].theme.timeline_stop; this.timeline_at_start=false; this.timeline_at_stop=false; this._initialize(); }; Timeline._Impl.prototype.dispose=function(){for(var A=0; AG||C){D=H; E(); A._distributeWidths(); }}if(!A.autoWidth){return ; }F(); }; Timeline._Impl.prototype._initialize=function(){var H=this._containerDiv; var E=H.ownerDocument; H.className=H.className.split(" ").concat("timeline-container").join(" "); var C=(this.isHorizontal())?"horizontal":"vertical"; H.className+=" timeline-"+C; while(H.firstChild){H.removeChild(H.firstChild); }var A=SimileAjax.Graphics.createTranslucentImage(Timeline.urlPrefix+(this.isHorizontal()?"images/copyright-vertical.png":"images/copyright.png")); A.className="timeline-copyright"; A.title="Timeline copyright SIMILE - www.code.google.com/p/simile-widgets/"; SimileAjax.DOM.registerEvent(A,"click",function(){window.location="http://code.google.com/p/simile-widgets/"; }); H.appendChild(A); this._bands=[]; for(var B=0; B 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)); D=Math.round(A*B/100); }else{D=parseInt(E); }}else{D=E; }J.setBandShiftAndWidth(C,D); J.setViewLength(G); C+=D; }}; Timeline._Impl.prototype.shiftOK=function(C,B){var F=B>0,A=B<0; if((F&&this.timeline_start==null)||(A&&this.timeline_stop==null)||(B==0)){return(true); }var H=false; for(var E=0; E=this.timeline_start; }else{D=(E==C?G.getMaxVisibleDateAfterDelta(B):G.getMaxVisibleDate())<=this.timeline_stop; }}if(F){this.timeline_at_start=!D; this.timeline_at_stop=false; }else{this.timeline_at_stop=!D; this.timeline_at_start=false; }return(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(); }; /* units.js */ Timeline.NativeDateUnit=new Object(); Timeline.NativeDateUnit.createLabeller=function(B,A){return new Timeline.GregorianDateLabeller(B,A); }; Timeline.NativeDateUnit.makeDefaultValue=function(){return new Date(); }; Timeline.NativeDateUnit.cloneValue=function(A){return new Date(A.getTime()); }; Timeline.NativeDateUnit.getParser=function(A){if(typeof A=="string"){A=A.toLowerCase(); }return(A=="iso8601"||A=="iso 8601")?Timeline.DateTime.parseIso8601DateTime:Timeline.DateTime.parseGregorianDateTime; }; Timeline.NativeDateUnit.parseFromObject=function(A){return Timeline.DateTime.parseGregorianDateTime(A); }; Timeline.NativeDateUnit.toNumber=function(A){return A.getTime(); }; Timeline.NativeDateUnit.fromNumber=function(A){return new Date(A); }; Timeline.NativeDateUnit.compare=function(D,C){var B,A; if(typeof D=="object"){B=D.getTime(); }else{B=Number(D); }if(typeof C=="object"){A=C.getTime(); }else{A=Number(C); }return B-A; }; Timeline.NativeDateUnit.earlier=function(B,A){return Timeline.NativeDateUnit.compare(B,A)<0?B:A; }; Timeline.NativeDateUnit.later=function(B,A){return Timeline.NativeDateUnit.compare(B,A)>0?B:A; }; Timeline.NativeDateUnit.change=function(A,B){return new Date(A.getTime()+B); };