[Yanel-commits] rev 45757 - in public/yanel/trunk/src/contributions/resources/timeline/htdocs: . timeline_2.3.0 timeline_2.3.0/timeline_ajax timeline_2.3.0/timeline_ajax/content timeline_2.3.0/timeline_ajax/images timeline_2.3.0/timeline_ajax/scripts timeline_2.3.0/timeline_ajax/styles timeline_2.3.0/timeline_js timeline_2.3.0/timeline_js/images timeline_2.3.0/timeline_js/scripts timeline_2.3.0/timeline_js/scripts/l10n timeline_2.3.0/timeline_js/scripts/l10n/cs timeline_2.3.0/timeline_js/scripts/l10n/de timeline_2.3.0/timeline_js/scripts/l10n/en timeline_2.3.0/timeline_js/scripts/l10n/es timeline_2.3.0/timeline_js/scripts/l10n/fr timeline_2.3.0/timeline_js/scripts/l10n/it timeline_2.3.0/timeline_js/scripts/l10n/nl timeline_2.3.0/timeline_js/scripts/l10n/ru timeline_2.3.0/timeline_js/scripts/l10n/se timeline_2.3.0/timeline_js/scripts/l10n/tr timeline_2.3.0/timeline_js/scripts/l10n/vi timeline_2.3.0/timeline_js/scripts/l10n/zh

michi at wyona.com michi at wyona.com
Mon Nov 30 19:23:52 CET 2009


Author: michi
Date: 2009-11-30 19:23:51 +0100 (Mon, 30 Nov 2009)
New Revision: 45757

Added:
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/CHANGES.txt
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/LICENSE.txt
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/README.txt
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/content/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/content/history.html
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-down.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-up.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/close-button.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/copy.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-bottom-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-bottom-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-top-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-top-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/scripts/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/scripts/signal.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-api.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-bundle.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics-ie6.css
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics.css
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/blue-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-arrow.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-left-arrow.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-right-arrow.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-arrow.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/close-button.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/copyright-vertical.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/copyright.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-blue-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-green-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-red-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-blue-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-green-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-red-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/gray-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/green-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-bottom-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-bottom-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-top-left.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-top-right.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/progress-running.gif
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/red-circle.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/top-bubble.png
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/labellers.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/timeline.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-api.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.css
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.js
Removed:
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.css
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.js
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/images/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/scripts/
   public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline-api.js
Log:
upgraded to timeline 2.3.0

Deleted: public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.css
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.css	2009-11-30 14:52:25 UTC (rev 45756)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.css	2009-11-30 18:23:51 UTC (rev 45757)
@@ -1,175 +0,0 @@
-.timeline-ether-marker-bottom {
-    width:          5em; 
-    height:         1.5em; 
-    border-left:    1px solid #aaa; 
-    padding-left:   2px; 
-    color:          #aaa;
-}
-
-.timeline-ether-marker-bottom-emphasized {
-    width:          5em; 
-    height:         2em; 
-    border-left:    1px solid #aaa; 
-    padding-left:   2px; 
-    color:          black;
-}
-
-.timeline-ether-marker-top {
-    width:          5em; 
-    height:         1.5em; 
-    border-left:    1px solid #aaa; 
-    padding-left:   2px; 
-    color:          #aaa;
-}
-
-.timeline-ether-marker-top-emphasized {
-    width:          5em; 
-    height:         2em; 
-    border-left:    1px solid #aaa; 
-    padding-left:   2px; 
-    color:          black;
-}
-
-
-.timeline-ether-marker-right {
-    width:          5em; 
-    height:         1.5em; 
-    border-top:     1px solid #aaa; 
-    padding-top:    2px; 
-    color:          #aaa;
-}
-
-.timeline-ether-marker-right-emphasized {
-    width:          7em; 
-    height:         1.5em; 
-    border-top:     1px solid #aaa; 
-    padding-top:    2px; 
-    color:          black;
-}
-.timeline-ether-marker-left {
-    width:          5em; 
-    height:         1.5em; 
-    border-top:     1px solid #aaa; 
-    padding-top:    2px; 
-    color:          #aaa;
-}
-
-.timeline-ether-marker-left-emphasized {
-    width:          7em; 
-    height:         1.5em; 
-    border-top:     1px solid #aaa; 
-    padding-top:    2px; 
-    color:          black;
-}
-.timeline-duration-event {
-    position: absolute;
-    overflow: hidden;
-    border: 1px solid blue;
-}
-
-.timeline-instant-event2 {
-    position: absolute;
-    overflow: hidden;
-    border-left: 1px solid blue;
-    padding-left: 2px;
-}
-
-.timeline-instant-event {
-    position: absolute;
-    overflow: hidden;
-}
-
-.timeline-event-bubble-title {
-    font-weight: bold;
-    border-bottom: 1px solid #888;
-    margin-bottom: 0.5em;
-}
-
-.timeline-event-bubble-body {
-}
-
-.timeline-event-bubble-wiki {
-    margin:     0.5em;
-    text-align: right;
-    color:      #A0A040;
-}
-.timeline-event-bubble-wiki a {
-    color:      #A0A040;
-}
-
-.timeline-event-bubble-time {
-    color: #aaa;
-}
-
-.timeline-event-bubble-image {
-    float: right;
-    padding-left: 5px;
-    padding-bottom: 5px;
-}.timeline-container {
-    position: relative;
-    overflow: hidden;
-}
-
-.timeline-copyright {
-    position: absolute;
-    bottom: 0px;
-    left: 0px;
-    z-index: 1000;
-    cursor: pointer;
-}
-
-.timeline-message-container {
-    position:   absolute;
-    top:        30%;
-    left:       35%;
-    right:      35%;
-    z-index:    1000;
-    display:    none;
-}
-.timeline-message {
-    font-size:      120%;
-    font-weight:    bold;
-    text-align:     center;
-}
-.timeline-message img {
-    vertical-align: middle;
-}
-
-.timeline-band {
-    position:   absolute;
-    background: #eee;
-    z-index:    10;
-}
-
-.timeline-band-inner {
-    position: relative;
-    width: 100%;
-    height: 100%;
-}
-
-.timeline-band-input {
-    position:   absolute;
-    width:      1em;
-    height:     1em;
-    overflow:   hidden;
-    z-index:    0;
-}
-.timeline-band-input input{
-    width:      0;
-}
-
-.timeline-band-layer {
-    position:   absolute;
-    width:      100%;
-    height:     100%;
-}
-
-.timeline-band-layer-inner {
-    position:   relative;
-    width:      100%;
-    height:     100%;
-}
-
-a {
-    text-decoration: none;
-}

Deleted: public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.js	2009-11-30 14:52:25 UTC (rev 45756)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/bundle.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -1,254 +0,0 @@
-
-
-/* timeline.js */
-
-Timeline.strings={};Timeline.create=function(elmt,bandInfos,orientation,unit){return new Timeline._Impl(elmt,bandInfos,orientation,unit);};Timeline.HORIZONTAL=0;Timeline.VERTICAL=1;Timeline._defaultTheme=null;Timeline.createBandInfo=function(params){var theme=("theme"in params)?params.theme:Timeline.getDefaultTheme();var eventSource=("eventSource"in params)?params.eventSource:null;var ether=new Timeline.LinearEther({centersOn:("date"in params)?params.date:new Date(),interval:Timeline.DateTime.gregorianUnitLengths[params.intervalUnit],pixelsPerInterval:params.intervalPixels});var etherPainter=new Timeline.GregorianEtherPainter({unit:params.intervalUnit,multiple:("multiple"in params)?params.multiple:1,theme:theme,align:("align"in params)?params.align:undefined});var layout=new Timeline.StaticTrackBasedLayout({eventSource:eventSource,ether:ether,showText:("showEventText"in params)?params.showEventText:true,theme:theme});var eventPainterParams={showText:("showEventText"in param!
 s)?params.showEventText:true,layout:layout,theme:theme};if("trackHeight"in params){eventPainterParams.trackHeight=params.trackHeight;}
-if("trackGap"in params){eventPainterParams.trackGap=params.trackGap;}
-var eventPainter=new Timeline.DurationEventPainter(eventPainterParams);return{width:params.width,eventSource:eventSource,timeZone:("timeZone"in params)?params.timeZone:0,ether:ether,etherPainter:etherPainter,eventPainter:eventPainter};};Timeline.createHotZoneBandInfo=function(params){var theme=("theme"in params)?params.theme:Timeline.getDefaultTheme();var eventSource=("eventSource"in params)?params.eventSource:null;var ether=new Timeline.HotZoneEther({centersOn:("date"in params)?params.date:new Date(),interval:Timeline.DateTime.gregorianUnitLengths[params.intervalUnit],pixelsPerInterval:params.intervalPixels,zones:params.zones});var etherPainter=new Timeline.HotZoneGregorianEtherPainter({unit:params.intervalUnit,zones:params.zones,theme:theme,align:("align"in params)?params.align:undefined});var layout=new Timeline.StaticTrackBasedLayout({eventSource:eventSource,ether:ether,theme:theme});var eventPainterParams={showText:("showEventText"in params)?params.showEventText:true,l!
 ayout:layout,theme:theme};if("trackHeight"in params){eventPainterParams.trackHeight=params.trackHeight;}
-if("trackGap"in params){eventPainterParams.trackGap=params.trackGap;}
-var eventPainter=new Timeline.DurationEventPainter(eventPainterParams);return{width:params.width,eventSource:eventSource,timeZone:("timeZone"in params)?params.timeZone:0,ether:ether,etherPainter:etherPainter,eventPainter:eventPainter};};Timeline.getDefaultTheme=function(){if(Timeline._defaultTheme==null){Timeline._defaultTheme=Timeline.ClassicTheme.create(Timeline.Platform.getDefaultLocale());}
-return Timeline._defaultTheme;};Timeline.setDefaultTheme=function(theme){Timeline._defaultTheme=theme;};Timeline.loadXML=function(url,f){var fError=function(statusText,status,xmlhttp){alert("Failed to load data xml from "+url+"\n"+statusText);};var fDone=function(xmlhttp){var xml=xmlhttp.responseXML;if(!xml.documentElement&&xmlhttp.responseStream){xml.load(xmlhttp.responseStream);}
-f(xml,url);};Timeline.XmlHttp.get(url,fError,fDone);};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);};Timeline.XmlHttp.get(url,fError,fDone);};Timeline._Impl=function(elmt,bandInfos,orientation,unit){this._containerDiv=elmt;this._bandInfos=bandInfos;this._orientation=orientation==null?Timeline.HORIZONTAL:orientation;this._unit=(unit!=null)?unit:Timeline.NativeDateUnit;this._initialize();};Timeline._Impl.prototype.dispose=function(){for(var i=0;i<this._bands.length;i++){this._bands[i].dispose();}
-this._bands=null;this._bandInfos=null;this._containerDiv.innerHTML="";};Timeline._Impl.prototype.getBandCount=function(){return this._bands.length;};Timeline._Impl.prototype.getBand=function(index){return this._bands[index];};Timeline._Impl.prototype.layout=function(){this._distributeWidths();};Timeline._Impl.prototype.paint=function(){for(var i=0;i<this._bands.length;i++){this._bands[i].paint();}};Timeline._Impl.prototype.getDocument=function(){return this._containerDiv.ownerDocument;};Timeline._Impl.prototype.addDiv=function(div){this._containerDiv.appendChild(div);};Timeline._Impl.prototype.removeDiv=function(div){this._containerDiv.removeChild(div);};Timeline._Impl.prototype.isHorizontal=function(){return this._orientation==Timeline.HORIZONTAL;};Timeline._Impl.prototype.isVertical=function(){return this._orientation==Timeline.VERTICAL;};Timeline._Impl.prototype.getPixelLength=function(){return this._orientation==Timeline.HORIZONTAL?this._containerDiv.offsetWidth:this._c!
 ontainerDiv.offsetHeight;};Timeline._Impl.prototype.getPixelWidth=function(){return this._orientation==Timeline.VERTICAL?this._containerDiv.offsetWidth:this._containerDiv.offsetHeight;};Timeline._Impl.prototype.getUnit=function(){return this._unit;};Timeline._Impl.prototype.loadXML=function(url,f){var tl=this;var fError=function(statusText,status,xmlhttp){alert("Failed to load data xml from "+url+"\n"+statusText);tl.hideLoadingMessage();};var fDone=function(xmlhttp){try{var xml=xmlhttp.responseXML;if(!xml.documentElement&&xmlhttp.responseStream){xml.load(xmlhttp.responseStream);}
-f(xml,url);}finally{tl.hideLoadingMessage();}};this.showLoadingMessage();window.setTimeout(function(){Timeline.XmlHttp.get(url,fError,fDone);},0);};Timeline._Impl.prototype.loadJSON=function(url,f){var tl=this;var fError=function(statusText,status,xmlhttp){alert("Failed to load json data from "+url+"\n"+statusText);tl.hideLoadingMessage();};var fDone=function(xmlhttp){try{f(eval('('+xmlhttp.responseText+')'),url);}finally{tl.hideLoadingMessage();}};this.showLoadingMessage();window.setTimeout(function(){Timeline.XmlHttp.get(url,fError,fDone);},0);};Timeline._Impl.prototype._initialize=function(){var containerDiv=this._containerDiv;var doc=containerDiv.ownerDocument;containerDiv.className=containerDiv.className.split(" ").concat("timeline-container").join(" ");while(containerDiv.firstChild){containerDiv.removeChild(containerDiv.firstChild);}
-var elmtCopyright=Timeline.Graphics.createTranslucentImage(doc,Timeline.urlPrefix+(this.isHorizontal()?"images/copyright-vertical.png":"images/copyright.png"));elmtCopyright.className="timeline-copyright";elmtCopyright.title="Timeline (c) SIMILE - http://simile.mit.edu/timeline/";Timeline.DOM.registerEvent(elmtCopyright,"click",function(){window.location="http://simile.mit.edu/timeline/";});containerDiv.appendChild(elmtCopyright);this._bands=[];for(var i=0;i<this._bandInfos.length;i++){var band=new Timeline._Band(this,this._bandInfos[i],i);this._bands.push(band);}
-this._distributeWidths();for(var i=0;i<this._bandInfos.length;i++){var bandInfo=this._bandInfos[i];if("syncWith"in bandInfo){this._bands[i].setSyncWithBand(this._bands[bandInfo.syncWith],("highlight"in bandInfo)?bandInfo.highlight:false);}}
-var message=Timeline.Graphics.createMessageBubble(doc);message.containerDiv.className="timeline-message-container";containerDiv.appendChild(message.containerDiv);message.contentDiv.className="timeline-message";message.contentDiv.innerHTML="<img src='"+Timeline.urlPrefix+"images/progress-running.gif' /> Loading...";this.showLoadingMessage=function(){message.containerDiv.style.display="block";};this.hideLoadingMessage=function(){message.containerDiv.style.display="none";};};Timeline._Impl.prototype._distributeWidths=function(){var length=this.getPixelLength();var width=this.getPixelWidth();var cumulativeWidth=0;for(var i=0;i<this._bands.length;i++){var band=this._bands[i];var bandInfos=this._bandInfos[i];var widthString=bandInfos.width;var x=widthString.indexOf("%");if(x>0){var percent=parseInt(widthString.substr(0,x));var bandWidth=percent*width/100;}else{var bandWidth=parseInt(widthString);}
-band.setBandShiftAndWidth(cumulativeWidth,bandWidth);band.setViewLength(length);cumulativeWidth+=bandWidth;}};Timeline._Band=function(timeline,bandInfo,index){this._timeline=timeline;this._bandInfo=bandInfo;this._index=index;this._locale=("locale"in bandInfo)?bandInfo.locale:Timeline.Platform.getDefaultLocale();this._timeZone=("timeZone"in bandInfo)?bandInfo.timeZone:0;this._labeller=("labeller"in bandInfo)?bandInfo.labeller:timeline.getUnit().createLabeller(this._locale,this._timeZone);this._dragging=false;this._changing=false;this._originalScrollSpeed=5;this._scrollSpeed=this._originalScrollSpeed;this._onScrollListeners=[];var b=this;this._syncWithBand=null;this._syncWithBandHandler=function(band){b._onHighlightBandScroll();};this._selectorListener=function(band){b._onHighlightBandScroll();};var inputDiv=this._timeline.getDocument().createElement("div");inputDiv.className="timeline-band-input";this._timeline.addDiv(inputDiv);this._keyboardInput=document.createElement("inp!
 ut");this._keyboardInput.type="text";inputDiv.appendChild(this._keyboardInput);Timeline.DOM.registerEventWithObject(this._keyboardInput,"keydown",this,this._onKeyDown);Timeline.DOM.registerEventWithObject(this._keyboardInput,"keyup",this,this._onKeyUp);this._div=this._timeline.getDocument().createElement("div");this._div.className="timeline-band";this._timeline.addDiv(this._div);Timeline.DOM.registerEventWithObject(this._div,"mousedown",this,this._onMouseDown);Timeline.DOM.registerEventWithObject(this._div,"mousemove",this,this._onMouseMove);Timeline.DOM.registerEventWithObject(this._div,"mouseup",this,this._onMouseUp);Timeline.DOM.registerEventWithObject(this._div,"mouseout",this,this._onMouseOut);Timeline.DOM.registerEventWithObject(this._div,"dblclick",this,this._onDblClick);this._innerDiv=this._timeline.getDocument().createElement("div");this._innerDiv.className="timeline-band-inner";this._div.appendChild(this._innerDiv);this._ether=bandInfo.ether;bandInfo.ether.initial!
 ize(timeline);this._etherPainter=bandInfo.etherPainter;bandInf!
 o.etherP
ainter.initialize(this,timeline);this._eventSource=bandInfo.eventSource;if(this._eventSource){this._eventListener={onAddMany:function(){b._onAddMany();},onClear:function(){b._onClear();}}
-this._eventSource.addListener(this._eventListener);}
-this._eventPainter=bandInfo.eventPainter;bandInfo.eventPainter.initialize(this,timeline);this._decorators=("decorators"in bandInfo)?bandInfo.decorators:[];for(var i=0;i<this._decorators.length;i++){this._decorators[i].initialize(this,timeline);}
-this._bubble=null;};Timeline._Band.SCROLL_MULTIPLES=5;Timeline._Band.prototype.dispose=function(){this.closeBubble();if(this._eventSource){this._eventSource.removeListener(this._eventListener);this._eventListener=null;this._eventSource=null;}
-this._timeline=null;this._bandInfo=null;this._labeller=null;this._ether=null;this._etherPainter=null;this._eventPainter=null;this._decorators=null;this._onScrollListeners=null;this._syncWithBandHandler=null;this._selectorListener=null;this._div=null;this._innerDiv=null;this._keyboardInput=null;this._bubble=null;};Timeline._Band.prototype.addOnScrollListener=function(listener){this._onScrollListeners.push(listener);};Timeline._Band.prototype.removeOnScrollListener=function(listener){for(var i=0;i<this._onScrollListeners.length;i++){if(this._onScrollListeners[i]==listener){this._onScrollListeners.splice(i,1);break;}}};Timeline._Band.prototype.setSyncWithBand=function(band,highlight){if(this._syncWithBand){this._syncWithBand.removeOnScrollListener(this._syncWithBandHandler);}
-this._syncWithBand=band;this._syncWithBand.addOnScrollListener(this._syncWithBandHandler);this._highlight=highlight;this._positionHighlight();};Timeline._Band.prototype.getLocale=function(){return this._locale;};Timeline._Band.prototype.getTimeZone=function(){return this._timeZone;};Timeline._Band.prototype.getLabeller=function(){return this._labeller;};Timeline._Band.prototype.getIndex=function(){return this._index;};Timeline._Band.prototype.getEther=function(){return this._ether;};Timeline._Band.prototype.getEtherPainter=function(){return this._etherPainter;};Timeline._Band.prototype.getEventSource=function(){return this._eventSource;};Timeline._Band.prototype.getEventPainter=function(){return this._eventPainter;};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.prototyp!
 e.softPaint=function(){this._etherPainter.softPaint();this._softPaintDecorators();this._softPaintEvents();};Timeline._Band.prototype.setBandShiftAndWidth=function(shift,width){var inputDiv=this._keyboardInput.parentNode;var middle=shift+Math.floor(width/2);if(this._timeline.isHorizontal()){this._div.style.top=shift+"px";this._div.style.height=width+"px";inputDiv.style.top=middle+"px";inputDiv.style.left="-1em";}else{this._div.style.left=shift+"px";this._div.style.width=width+"px";inputDiv.style.left=middle+"px";inputDiv.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(length){this._viewLength=length;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=func!
 tion(){r
eturn 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.getMaxVisibleDate=function(){return this._ether.pixelOffsetToDate(this._viewLength);};Timeline._Band.prototype.getCenterVisibleDate=function(){return this._ether.pixelOffsetToDate(this._viewLength/2);};Timeline._Band.prototype.setMinVisibleDate=function(date){if(!this._changing){this._moveEther(Math.round(-this._ether.dateToPixelOffset(date)));}};Timeline._Band.prototype.setMaxVisibleDate=function(date){if(!this._changing){this._moveEther(Math.round(this._viewLength-this._ether.dateToPixelOffset(date)));}};Timeline._Band.prototype.setCenterVisibleDate=function(date){if(!this._cha!
 nging){this._moveEther(Math.round(this._viewLength/2-this._ether.dateToPixelOffset(date)));}};Timeline._Band.prototype.dateToPixelOffset=function(date){return this._ether.dateToPixelOffset(date)-this._viewOffset;};Timeline._Band.prototype.pixelOffsetToDate=function(pixels){return this._ether.pixelOffsetToDate(pixels+this._viewOffset);};Timeline._Band.prototype.createLayerDiv=function(zIndex){var div=this._timeline.getDocument().createElement("div");div.className="timeline-band-layer";div.style.zIndex=zIndex;this._innerDiv.appendChild(div);var innerDiv=this._timeline.getDocument().createElement("div");innerDiv.className="timeline-band-layer-inner";if(Timeline.Platform.browser.isIE){innerDiv.style.cursor="move";}else{innerDiv.style.cursor="-moz-grab";}
-div.appendChild(innerDiv);return innerDiv;};Timeline._Band.prototype.removeLayerDiv=function(div){this._innerDiv.removeChild(div.parentNode);};Timeline._Band.prototype.closeBubble=function(){if(this._bubble!=null){this._bubble.close();this._bubble=null;}};Timeline._Band.prototype.openBubbleForPoint=function(pageX,pageY,width,height){this.closeBubble();this._bubble=Timeline.Graphics.createBubbleForPoint(this._timeline.getDocument(),pageX,pageY,width,height);return this._bubble.content;};Timeline._Band.prototype.scrollToCenter=function(date){var pixelOffset=this._ether.dateToPixelOffset(date);if(pixelOffset<-this._viewLength/2){this.setCenterVisibleDate(this.pixelOffsetToDate(pixelOffset+this._viewLength));}else if(pixelOffset>3*this._viewLength/2){this.setCenterVisibleDate(this.pixelOffsetToDate(pixelOffset-this._viewLength));}
-this._autoScroll(Math.round(this._viewLength/2-this._ether.dateToPixelOffset(date)));};Timeline._Band.prototype._onMouseDown=function(innerFrame,evt,target){this.closeBubble();this._dragging=true;this._dragX=evt.clientX;this._dragY=evt.clientY;};Timeline._Band.prototype._onMouseMove=function(innerFrame,evt,target){if(this._dragging){var diffX=evt.clientX-this._dragX;var diffY=evt.clientY-this._dragY;this._dragX=evt.clientX;this._dragY=evt.clientY;this._moveEther(this._timeline.isHorizontal()?diffX:diffY);this._positionHighlight();}};Timeline._Band.prototype._onMouseUp=function(innerFrame,evt,target){this._dragging=false;this._keyboardInput.focus();};Timeline._Band.prototype._onMouseOut=function(innerFrame,evt,target){var coords=Timeline.DOM.getEventRelativeCoordinates(evt,innerFrame);coords.x+=this._viewOffset;if(coords.x<0||coords.x>innerFrame.offsetWidth||coords.y<0||coords.y>innerFrame.offsetHeight){this._dragging=false;}};Timeline._Band.prototype._onDblClick=function(in!
 nerFrame,evt,target){var coords=Timeline.DOM.getEventRelativeCoordinates(evt,innerFrame);var distance=coords.x-(this._viewLength/2-this._viewOffset);this._autoScroll(-distance);};Timeline._Band.prototype._onKeyDown=function(keyboardInput,evt,target){if(!this._dragging){switch(evt.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();Timeline.DOM.cancelEvent(evt);return false;}
-return true;};Timeline._Band.prototype._onKeyUp=function(keyboardInput,evt,target){if(!this._dragging){this._scrollSpeed=this._originalScrollSpeed;switch(evt.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();Timeline.DOM.cancelEvent(evt);return false;}
-return true;};Timeline._Band.prototype._autoScroll=function(distance){var b=this;var a=Timeline.Graphics.createAnimation(function(abs,diff){b._moveEther(diff);},0,distance,1000);a.run();};Timeline._Band.prototype._moveEther=function(shift){this.closeBubble();this._viewOffset+=shift;this._ether.shiftPixels(-shift);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 i=0;i<this._onScrollListeners.length;i++){this._onScrollListeners[i](this);}};Timeline._Band.prototype._setSyncWithBandDate=function(){if(this._syncWithBand){var centerDate=this._ether.pixelOffsetToDate(this.getViewLength()/2);this._syncWithBand.setCenterVisibleDate(centerDate);}};Timeline._Band.prototype._onHighlightBandScroll=function(){if(this._syncWithBand){var centerDate=this._syncWithBand.getCenterVisibleDate();var centerPixelOffset=this._ether.dateToPixelOffset(centerDate);this._moveEther(Math.round(this._viewLength/2-centerPixelOffset));if(this._highlight){this._etherPainter.setHighlight(this._syncWithBand.getMinVisibleDate(),this._syncWithBand.getMaxVisibleDate());}}};Timeline._Band.prototype._onAddMany=function(){this._paintEvents();};Timeline._Band.prototype._onClear=f!
 unction(){this._paintEvents();};Timeline._Band.prototype._positionHighlight=function(){if(this._syncWithBand){var startDate=this._syncWithBand.getMinVisibleDate();var endDate=this._syncWithBand.getMaxVisibleDate();if(this._highlight){this._etherPainter.setHighlight(startDate,endDate);}}};Timeline._Band.prototype._recenterDiv=function(){this._viewOffset=-this._viewLength*(Timeline._Band.SCROLL_MULTIPLES-1)/2;if(this._timeline.isHorizontal()){this._div.style.left=this._viewOffset+"px";this._div.style.width=(Timeline._Band.SCROLL_MULTIPLES*this._viewLength)+"px";}else{this._div.style.top=this._viewOffset+"px";this._div.style.height=(Timeline._Band.SCROLL_MULTIPLES*this._viewLength)+"px";}
-this.layout();};Timeline._Band.prototype._paintEvents=function(){this._eventPainter.paint();};Timeline._Band.prototype._softPaintEvents=function(){this._eventPainter.softPaint();};Timeline._Band.prototype._paintDecorators=function(){for(var i=0;i<this._decorators.length;i++){this._decorators[i].paint();}};Timeline._Band.prototype._softPaintDecorators=function(){for(var i=0;i<this._decorators.length;i++){this._decorators[i].softPaint();}};
-
-/* platform.js */
-
-Timeline.Platform.os={isMac:false,isWin:false,isWin32:false,isUnix:false};Timeline.Platform.browser={isIE:false,isNetscape:false,isMozilla:false,isFirefox:false,isOpera:false,isSafari:false,majorVersion:0,minorVersion:0};(function(){var an=navigator.appName.toLowerCase();var ua=navigator.userAgent.toLowerCase();Timeline.Platform.os.isMac=(ua.indexOf('mac')!=-1);Timeline.Platform.os.isWin=(ua.indexOf('win')!=-1);Timeline.Platform.os.isWin32=Timeline.Platform.isWin&&(ua.indexOf('95')!=-1||ua.indexOf('98')!=-1||ua.indexOf('nt')!=-1||ua.indexOf('win32')!=-1||ua.indexOf('32bit')!=-1);Timeline.Platform.os.isUnix=(ua.indexOf('x11')!=-1);Timeline.Platform.browser.isIE=(an.indexOf("microsoft")!=-1);Timeline.Platform.browser.isNetscape=(an.indexOf("netscape")!=-1);Timeline.Platform.browser.isMozilla=(ua.indexOf("mozilla")!=-1);Timeline.Platform.browser.isFirefox=(ua.indexOf("firefox")!=-1);Timeline.Platform.browser.isOpera=(an.indexOf("opera")!=-1);var parseVersionString=function(s){!
 var a=s.split(".");Timeline.Platform.browser.majorVersion=parseInt(a[0]);Timeline.Platform.browser.minorVersion=parseInt(a[1]);};var indexOf=function(s,sub,start){var i=s.indexOf(sub,start);return i>=0?i:s.length;};if(Timeline.Platform.browser.isMozilla){var offset=ua.indexOf("mozilla/");if(offset>=0){parseVersionString(ua.substring(offset+8,indexOf(ua," ",offset)));}}
-if(Timeline.Platform.browser.isIE){var offset=ua.indexOf("msie ");if(offset>=0){parseVersionString(ua.substring(offset+5,indexOf(ua,";",offset)));}}
-if(Timeline.Platform.browser.isNetscape){var offset=ua.indexOf("rv:");if(offset>=0){parseVersionString(ua.substring(offset+3,indexOf(ua,")",offset)));}}
-if(Timeline.Platform.browser.isFirefox){var offset=ua.indexOf("firefox/");if(offset>=0){parseVersionString(ua.substring(offset+8,indexOf(ua," ",offset)));}}})();Timeline.Platform.getDefaultLocale=function(){return Timeline.Platform.clientLocale;};
-
-/* data-structure.js */
-
-Timeline.SortedArray=function(compare,initialArray){this._a=(initialArray instanceof Array)?initialArray:[];this._compare=compare;};Timeline.SortedArray.prototype.add=function(elmt){var sa=this;var index=this.find(function(elmt2){return sa._compare(elmt2,elmt);});if(index<this._a.length){this._a.splice(index,0,elmt);}else{this._a.push(elmt);}};Timeline.SortedArray.prototype.remove=function(elmt){var sa=this;var index=this.find(function(elmt2){return sa._compare(elmt2,elmt);});while(index<this._a.length&&this._compare(this._a[index],elmt)==0){if(this._a[index]==elmt){this._a.splice(index,1);return true;}else{index++;}}
-return false;};Timeline.SortedArray.prototype.removeAll=function(){this._a=[];};Timeline.SortedArray.prototype.elementAt=function(index){return this._a[index];};Timeline.SortedArray.prototype.length=function(){return this._a.length;};Timeline.SortedArray.prototype.find=function(compare){var a=0;var b=this._a.length;while(a<b){var mid=Math.floor((a+b)/2);var c=compare(this._a[mid]);if(mid==a){return c<0?a+1:a;}else if(c<0){a=mid;}else{b=mid;}}
-return a;};Timeline.SortedArray.prototype.getFirst=function(){return(this._a.length>0)?this._a[0]:null;};Timeline.SortedArray.prototype.getLast=function(){return(this._a.length>0)?this._a[this._a.length-1]:null;};Timeline.EventIndex=function(unit){var eventIndex=this;this._unit=(unit!=null)?unit:Timeline.NativeDateUnit;this._events=new Timeline.SortedArray(function(event1,event2){return eventIndex._unit.compare(event1.getStart(),event2.getStart());});this._indexed=true;};Timeline.EventIndex.prototype.getUnit=function(){return this._unit;};Timeline.EventIndex.prototype.add=function(evt){this._events.add(evt);this._indexed=false;};Timeline.EventIndex.prototype.removeAll=function(){this._events.removeAll();this._indexed=false;};Timeline.EventIndex.prototype.getCount=function(){return this._events.length();};Timeline.EventIndex.prototype.getIterator=function(startDate,endDate){if(!this._indexed){this._index();}
-return new Timeline.EventIndex._Iterator(this._events,startDate,endDate,this._unit);};Timeline.EventIndex.prototype.getAllIterator=function(){return new Timeline.EventIndex._AllIterator(this._events);};Timeline.EventIndex.prototype.getEarliestDate=function(){var evt=this._events.getFirst();return(evt==null)?null:evt.getStart();};Timeline.EventIndex.prototype.getLatestDate=function(){var evt=this._events.getLast();if(evt==null){return null;}
-if(!this._indexed){this._index();}
-var index=evt._earliestOverlapIndex;var date=this._events.elementAt(index).getEnd();for(var i=index+1;i<this._events.length();i++){date=this._unit.later(date,this._events.elementAt(i).getEnd());}
-return date;};Timeline.EventIndex.prototype._index=function(){var l=this._events.length();for(var i=0;i<l;i++){var evt=this._events.elementAt(i);evt._earliestOverlapIndex=i;}
-var toIndex=1;for(var i=0;i<l;i++){var evt=this._events.elementAt(i);var end=evt.getEnd();toIndex=Math.max(toIndex,i+1);while(toIndex<l){var evt2=this._events.elementAt(toIndex);var start2=evt2.getStart();if(this._unit.compare(start2,end)<0){evt2._earliestOverlapIndex=i;toIndex++;}else{break;}}}
-this._indexed=true;};Timeline.EventIndex._Iterator=function(events,startDate,endDate,unit){this._events=events;this._startDate=startDate;this._endDate=endDate;this._unit=unit;this._currentIndex=events.find(function(evt){return unit.compare(evt.getStart(),startDate);});if(this._currentIndex-1>=0){this._currentIndex=this._events.elementAt(this._currentIndex-1)._earliestOverlapIndex;}
-this._currentIndex--;this._maxIndex=events.find(function(evt){return unit.compare(evt.getStart(),endDate);});this._hasNext=false;this._next=null;this._findNext();};Timeline.EventIndex._Iterator.prototype={hasNext:function(){return this._hasNext;},next:function(){if(this._hasNext){var next=this._next;this._findNext();return next;}else{return null;}},_findNext:function(){var unit=this._unit;while((++this._currentIndex)<this._maxIndex){var evt=this._events.elementAt(this._currentIndex);if(unit.compare(evt.getStart(),this._endDate)<0&&unit.compare(evt.getEnd(),this._startDate)>0){this._next=evt;this._hasNext=true;return;}}
-this._next=null;this._hasNext=false;}};Timeline.EventIndex._AllIterator=function(events){this._events=events;this._index=0;};Timeline.EventIndex._AllIterator.prototype={hasNext:function(){return this._index<this._events.length();},next:function(){return this._index<this._events.length()?this._events.elementAt(this._index++):null;}};
-
-/* date-time.js */
-
-Timeline.DateTime=new Object();Timeline.DateTime.MILLISECOND=0;Timeline.DateTime.SECOND=1;Timeline.DateTime.MINUTE=2;Timeline.DateTime.HOUR=3;Timeline.DateTime.DAY=4;Timeline.DateTime.WEEK=5;Timeline.DateTime.MONTH=6;Timeline.DateTime.YEAR=7;Timeline.DateTime.DECADE=8;Timeline.DateTime.CENTURY=9;Timeline.DateTime.MILLENNIUM=10;Timeline.DateTime.EPOCH=-1;Timeline.DateTime.ERA=-2;Timeline.DateTime.gregorianUnitLengths=[];(function(){var d=Timeline.DateTime;var a=d.gregorianUnitLengths;a[d.MILLISECOND]=1;a[d.SECOND]=1000;a[d.MINUTE]=a[d.SECOND]*60;a[d.HOUR]=a[d.MINUTE]*60;a[d.DAY]=a[d.HOUR]*24;a[d.WEEK]=a[d.DAY]*7;a[d.MONTH]=a[d.DAY]*31;a[d.YEAR]=a[d.DAY]*365;a[d.DECADE]=a[d.YEAR]*10;a[d.CENTURY]=a[d.YEAR]*100;a[d.MILLENNIUM]=a[d.YEAR]*1000;})();Timeline.DateTime.parseGregorianDateTime=function(o){if(o==null){return null;}else if(o instanceof Date){return o;}
-var s=o.toString();if(s.length>0&&s.length<8){var space=s.indexOf(" ");if(space>0){var year=parseInt(s.substr(0,space));var suffix=s.substr(space+1);if(suffix.toLowerCase()=="bc"){year=1-year;}}else{var year=parseInt(s);}
-var d=new Date(0);d.setUTCFullYear(year);return d;}
-try{return new Date(Date.parse(s));}catch(e){return null;}};Timeline.DateTime._iso8601DateRegExp="^(-?)([0-9]{4})("+["(-?([0-9]{2})(-?([0-9]{2}))?)","(-?([0-9]{3}))","(-?W([0-9]{2})(-?([1-7]))?)"].join("|")+")?$";Timeline.DateTime.setIso8601Date=function(dateObject,string){var regexp=Timeline.DateTime._iso8601DateRegExp;var d=string.match(new RegExp(regexp));if(!d){throw new Error("Invalid date string: "+string);}
-var sign=(d[1]=="-")?-1:1;var year=sign*d[2];var month=d[5];var date=d[7];var dayofyear=d[9];var week=d[11];var dayofweek=(d[13])?d[13]:1;dateObject.setUTCFullYear(year);if(dayofyear){dateObject.setUTCMonth(0);dateObject.setUTCDate(Number(dayofyear));}else if(week){dateObject.setUTCMonth(0);dateObject.setUTCDate(1);var gd=dateObject.getUTCDay();var day=(gd)?gd:7;var offset=Number(dayofweek)+(7*Number(week));if(day<=4){dateObject.setUTCDate(offset+1-day);}else{dateObject.setUTCDate(offset+8-day);}}else{if(month){dateObject.setUTCDate(1);dateObject.setUTCMonth(month-1);}
-if(date){dateObject.setUTCDate(date);}}
-return dateObject;};Timeline.DateTime.setIso8601Time=function(dateObject,string){var timezone="Z|(([-+])([0-9]{2})(:?([0-9]{2}))?)$";var d=string.match(new RegExp(timezone));var offset=0;if(d){if(d[0]!='Z'){offset=(Number(d[3])*60)+Number(d[5]);offset*=((d[2]=='-')?1:-1);}
-string=string.substr(0,string.length-d[0].length);}
-var regexp="^([0-9]{2})(:?([0-9]{2})(:?([0-9]{2})(\.([0-9]+))?)?)?$";var d=string.match(new RegExp(regexp));if(!d){dojo.debug("invalid time string: "+string);return false;}
-var hours=d[1];var mins=Number((d[3])?d[3]:0);var secs=(d[5])?d[5]:0;var ms=d[7]?(Number("0."+d[7])*1000):0;dateObject.setUTCHours(hours);dateObject.setUTCMinutes(mins);dateObject.setUTCSeconds(secs);dateObject.setUTCMilliseconds(ms);return dateObject;};Timeline.DateTime.setIso8601=function(dateObject,string){var comps=(string.indexOf("T")==-1)?string.split(" "):string.split("T");Timeline.DateTime.setIso8601Date(dateObject,comps[0]);if(comps.length==2){Timeline.DateTime.setIso8601Time(dateObject,comps[1]);}
-return dateObject;};Timeline.DateTime.parseIso8601DateTime=function(string){try{return Timeline.DateTime.setIso8601(new Date(0),string);}catch(e){return null;}};Timeline.DateTime.roundDownToInterval=function(date,intervalUnit,timeZone,multiple,firstDayOfWeek){var timeShift=timeZone*Timeline.DateTime.gregorianUnitLengths[Timeline.DateTime.HOUR];var date2=new Date(date.getTime()+timeShift);var clearInDay=function(d){d.setUTCMilliseconds(0);d.setUTCSeconds(0);d.setUTCMinutes(0);d.setUTCHours(0);};var clearInYear=function(d){clearInDay(d);d.setUTCDate(1);d.setUTCMonth(0);};switch(intervalUnit){case Timeline.DateTime.MILLISECOND:var x=date2.getUTCMilliseconds();date2.setUTCMilliseconds(x-(x%multiple));break;case Timeline.DateTime.SECOND:date2.setUTCMilliseconds(0);var x=date2.getUTCSeconds();date2.setUTCSeconds(x-(x%multiple));break;case Timeline.DateTime.MINUTE:date2.setUTCMilliseconds(0);date2.setUTCSeconds(0);var x=date2.getUTCMinutes();date2.setTime(date2.getTime()-
-(x%multiple)*Timeline.DateTime.gregorianUnitLengths[Timeline.DateTime.MINUTE]);break;case Timeline.DateTime.HOUR:date2.setUTCMilliseconds(0);date2.setUTCSeconds(0);date2.setUTCMinutes(0);var x=date2.getUTCHours();date2.setUTCHours(x-(x%multiple));break;case Timeline.DateTime.DAY:clearInDay(date2);break;case Timeline.DateTime.WEEK:clearInDay(date2);var d=(date2.getUTCDay()+7-firstDayOfWeek)%7;date2.setTime(date2.getTime()-
-d*Timeline.DateTime.gregorianUnitLengths[Timeline.DateTime.DAY]);break;case Timeline.DateTime.MONTH:clearInDay(date2);date2.setUTCDate(1);var x=date2.getUTCMonth();date2.setUTCMonth(x-(x%multiple));break;case Timeline.DateTime.YEAR:clearInYear(date2);var x=date2.getUTCFullYear();date2.setUTCFullYear(x-(x%multiple));break;case Timeline.DateTime.DECADE:clearInYear(date2);date2.setUTCFullYear(Math.floor(date2.getUTCFullYear()/10)*10);break;case Timeline.DateTime.CENTURY:clearInYear(date2);date2.setUTCFullYear(Math.floor(date2.getUTCFullYear()/100)*100);break;case Timeline.DateTime.MILLENNIUM:clearInYear(date2);date2.setUTCFullYear(Math.floor(date2.getUTCFullYear()/1000)*1000);break;}
-date.setTime(date2.getTime()-timeShift);};Timeline.DateTime.roundUpToInterval=function(date,intervalUnit,timeZone,multiple,firstDayOfWeek){var originalTime=date.getTime();Timeline.DateTime.roundDownToInterval(date,intervalUnit,timeZone,multiple,firstDayOfWeek);if(date.getTime()<originalTime){date.setTime(date.getTime()+
-Timeline.DateTime.gregorianUnitLengths[intervalUnit]*multiple);}};Timeline.DateTime.incrementByInterval=function(date,intervalUnit){switch(intervalUnit){case Timeline.DateTime.MILLISECOND:date.setTime(date.getTime()+1)
-break;case Timeline.DateTime.SECOND:date.setTime(date.getTime()+1000);break;case Timeline.DateTime.MINUTE:date.setTime(date.getTime()+
-Timeline.DateTime.gregorianUnitLengths[Timeline.DateTime.MINUTE]);break;case Timeline.DateTime.HOUR:date.setTime(date.getTime()+
-Timeline.DateTime.gregorianUnitLengths[Timeline.DateTime.HOUR]);break;case Timeline.DateTime.DAY:date.setUTCDate(date.getUTCDate()+1);break;case Timeline.DateTime.WEEK:date.setUTCDate(date.getUTCDate()+7);break;case Timeline.DateTime.MONTH:date.setUTCMonth(date.getUTCMonth()+1);break;case Timeline.DateTime.YEAR:date.setUTCFullYear(date.getUTCFullYear()+1);break;case Timeline.DateTime.DECADE:date.setUTCFullYear(date.getUTCFullYear()+10);break;case Timeline.DateTime.CENTURY:date.setUTCFullYear(date.getUTCFullYear()+100);break;case Timeline.DateTime.MILLENNIUM:date.setUTCFullYear(date.getUTCFullYear()+1000);break;}};Timeline.DateTime.removeTimeZoneOffset=function(date,timeZone){return new Date(date.getTime()+
-timeZone*Timeline.DateTime.gregorianUnitLengths[Timeline.DateTime.HOUR]);};
-
-/* debug.js */
-
-Timeline.Debug=new Object();Timeline.Debug.log=function(msg){};Timeline.Debug.exception=function(e){alert("Caught exception: "+(Timeline.Platform.isIE?e.message:e));};
-
-/* dom.js */
-
-Timeline.DOM=new Object();Timeline.DOM.registerEventWithObject=function(elmt,eventName,obj,handler){Timeline.DOM.registerEvent(elmt,eventName,function(elmt2,evt,target){return handler.call(obj,elmt2,evt,target);});};Timeline.DOM.registerEvent=function(elmt,eventName,handler){var handler2=function(evt){evt=(evt)?evt:((event)?event:null);if(evt){var target=(evt.target)?evt.target:((evt.srcElement)?evt.srcElement:null);if(target){target=(target.nodeType==1||target.nodeType==9)?target:target.parentNode;}
-return handler(elmt,evt,target);}
-return true;}
-if(Timeline.Platform.browser.isIE){elmt.attachEvent("on"+eventName,handler2);}else{elmt.addEventListener(eventName,handler2,false);}};Timeline.DOM.getPageCoordinates=function(elmt){var left=0;var top=0;if(elmt.nodeType!=1){elmt=elmt.parentNode;}
-while(elmt!=null){left+=elmt.offsetLeft;top+=elmt.offsetTop;elmt=elmt.offsetParent;}
-return{left:left,top:top};};Timeline.DOM.getEventRelativeCoordinates=function(evt,elmt){if(Timeline.Platform.browser.isIE){return{x:evt.offsetX,y:evt.offsetY};}else{var coords=Timeline.DOM.getPageCoordinates(elmt);return{x:evt.pageX-coords.left,y:evt.pageY-coords.top};}};Timeline.DOM.cancelEvent=function(evt){evt.returnValue=false;evt.cancelBubble=true;if("preventDefault"in evt){evt.preventDefault();}};
-
-/* graphics.js */
-
-Timeline.Graphics=new Object();Timeline.Graphics.pngIsTranslucent=(!Timeline.Platform.browser.isIE)||(Timeline.Platform.browser.majorVersion>6);Timeline.Graphics.createTranslucentImage=function(doc,url,verticalAlign){var elmt;if(Timeline.Graphics.pngIsTranslucent){elmt=doc.createElement("img");elmt.setAttribute("src",url);}else{elmt=doc.createElement("img");elmt.style.display="inline";elmt.style.width="1px";elmt.style.height="1px";elmt.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+url+"', sizingMethod='image')";}
-elmt.style.verticalAlign=(verticalAlign!=null)?verticalAlign:"middle";return elmt;};Timeline.Graphics.setOpacity=function(elmt,opacity){if(Timeline.Platform.browser.isIE){elmt.style.filter="progid:DXImageTransform.Microsoft.Alpha(Style=0,Opacity="+opacity+")";}else{var o=(opacity/100).toString();elmt.style.opacity=o;elmt.style.MozOpacity=o;}};Timeline.Graphics._bubbleMargins={top:33,bottom:42,left:33,right:40}
-Timeline.Graphics._arrowOffsets={top:0,bottom:9,left:1,right:8}
-Timeline.Graphics._bubblePadding=15;Timeline.Graphics._bubblePointOffset=6;Timeline.Graphics._halfArrowWidth=18;Timeline.Graphics.createBubbleForPoint=function(doc,pageX,pageY,contentWidth,contentHeight){var bubble={_closed:false,_doc:doc,close:function(){if(!this._closed){this._doc.body.removeChild(this._div);this._doc=null;this._div=null;this._content=null;this._closed=true;}}};var docWidth=doc.body.offsetWidth;var docHeight=doc.body.offsetHeight;var margins=Timeline.Graphics._bubbleMargins;var bubbleWidth=margins.left+contentWidth+margins.right;var bubbleHeight=margins.top+contentHeight+margins.bottom;var pngIsTranslucent=Timeline.Graphics.pngIsTranslucent;var urlPrefix=Timeline.urlPrefix;var setImg=function(elmt,url,width,height){elmt.style.position="absolute";elmt.style.width=width+"px";elmt.style.height=height+"px";if(pngIsTranslucent){elmt.style.background="url("+url+")";}else{elmt.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+url+"', sizing!
 Method='crop')";}}
-var div=doc.createElement("div");div.style.width=bubbleWidth+"px";div.style.height=bubbleHeight+"px";div.style.position="absolute";div.style.zIndex=1000;bubble._div=div;var divInner=doc.createElement("div");divInner.style.width="100%";divInner.style.height="100%";divInner.style.position="relative";div.appendChild(divInner);var createImg=function(url,left,top,width,height){var divImg=doc.createElement("div");divImg.style.left=left+"px";divImg.style.top=top+"px";setImg(divImg,url,width,height);divInner.appendChild(divImg);}
-createImg(urlPrefix+"images/bubble-top-left.png",0,0,margins.left,margins.top);createImg(urlPrefix+"images/bubble-top.png",margins.left,0,contentWidth,margins.top);createImg(urlPrefix+"images/bubble-top-right.png",margins.left+contentWidth,0,margins.right,margins.top);createImg(urlPrefix+"images/bubble-left.png",0,margins.top,margins.left,contentHeight);createImg(urlPrefix+"images/bubble-right.png",margins.left+contentWidth,margins.top,margins.right,contentHeight);createImg(urlPrefix+"images/bubble-bottom-left.png",0,margins.top+contentHeight,margins.left,margins.bottom);createImg(urlPrefix+"images/bubble-bottom.png",margins.left,margins.top+contentHeight,contentWidth,margins.bottom);createImg(urlPrefix+"images/bubble-bottom-right.png",margins.left+contentWidth,margins.top+contentHeight,margins.right,margins.bottom);var divClose=doc.createElement("div");divClose.style.left=(bubbleWidth-margins.right+Timeline.Graphics._bubblePadding-16-2)+"px";divClose.style.top=(margins.top!
 -Timeline.Graphics._bubblePadding+1)+"px";divClose.style.cursor="pointer";setImg(divClose,urlPrefix+"images/close-button.png",16,16);Timeline.DOM.registerEventWithObject(divClose,"click",bubble,bubble.close);divInner.appendChild(divClose);var divContent=doc.createElement("div");divContent.style.position="absolute";divContent.style.left=margins.left+"px";divContent.style.top=margins.top+"px";divContent.style.width=contentWidth+"px";divContent.style.height=contentHeight+"px";divContent.style.overflow="auto";divContent.style.background="white";divInner.appendChild(divContent);bubble.content=divContent;(function(){if(pageX-Timeline.Graphics._halfArrowWidth-Timeline.Graphics._bubblePadding>0&&pageX+Timeline.Graphics._halfArrowWidth+Timeline.Graphics._bubblePadding<docWidth){var left=pageX-Math.round(contentWidth/2)-margins.left;left=pageX<(docWidth/2)?Math.max(left,-(margins.left-Timeline.Graphics._bubblePadding)):Math.min(left,docWidth+(margins.right-Timeline.Graphics._bubblePa!
 dding)-bubbleWidth);if(pageY-Timeline.Graphics._bubblePointOff!
 set-bubb
leHeight>0){var divImg=doc.createElement("div");divImg.style.left=(pageX-Timeline.Graphics._halfArrowWidth-left)+"px";divImg.style.top=(margins.top+contentHeight)+"px";setImg(divImg,urlPrefix+"images/bubble-bottom-arrow.png",37,margins.bottom);divInner.appendChild(divImg);div.style.left=left+"px";div.style.top=(pageY-Timeline.Graphics._bubblePointOffset-bubbleHeight+
-Timeline.Graphics._arrowOffsets.bottom)+"px";return;}else if(pageY+Timeline.Graphics._bubblePointOffset+bubbleHeight<docHeight){var divImg=doc.createElement("div");divImg.style.left=(pageX-Timeline.Graphics._halfArrowWidth-left)+"px";divImg.style.top="0px";setImg(divImg,urlPrefix+"images/bubble-top-arrow.png",37,margins.top);divInner.appendChild(divImg);div.style.left=left+"px";div.style.top=(pageY+Timeline.Graphics._bubblePointOffset-
-Timeline.Graphics._arrowOffsets.top)+"px";return;}}
-var top=pageY-Math.round(contentHeight/2)-margins.top;top=pageY<(docHeight/2)?Math.max(top,-(margins.top-Timeline.Graphics._bubblePadding)):Math.min(top,docHeight+(margins.bottom-Timeline.Graphics._bubblePadding)-bubbleHeight);if(pageX-Timeline.Graphics._bubblePointOffset-bubbleWidth>0){var divImg=doc.createElement("div");divImg.style.left=(margins.left+contentWidth)+"px";divImg.style.top=(pageY-Timeline.Graphics._halfArrowWidth-top)+"px";setImg(divImg,urlPrefix+"images/bubble-right-arrow.png",margins.right,37);divInner.appendChild(divImg);div.style.left=(pageX-Timeline.Graphics._bubblePointOffset-bubbleWidth+
-Timeline.Graphics._arrowOffsets.right)+"px";div.style.top=top+"px";}else{var divImg=doc.createElement("div");divImg.style.left="0px";divImg.style.top=(pageY-Timeline.Graphics._halfArrowWidth-top)+"px";setImg(divImg,urlPrefix+"images/bubble-left-arrow.png",margins.left,37);divInner.appendChild(divImg);div.style.left=(pageX+Timeline.Graphics._bubblePointOffset-
-Timeline.Graphics._arrowOffsets.left)+"px";div.style.top=top+"px";}})();doc.body.appendChild(div);return bubble;};Timeline.Graphics.createMessageBubble=function(doc){var containerDiv=doc.createElement("div");if(Timeline.Graphics.pngIsTranslucent){var topDiv=doc.createElement("div");topDiv.style.height="33px";topDiv.style.background="url("+Timeline.urlPrefix+"images/message-top-left.png) top left no-repeat";topDiv.style.paddingLeft="44px";containerDiv.appendChild(topDiv);var topRightDiv=doc.createElement("div");topRightDiv.style.height="33px";topRightDiv.style.background="url("+Timeline.urlPrefix+"images/message-top-right.png) top right no-repeat";topDiv.appendChild(topRightDiv);var middleDiv=doc.createElement("div");middleDiv.style.background="url("+Timeline.urlPrefix+"images/message-left.png) top left repeat-y";middleDiv.style.paddingLeft="44px";containerDiv.appendChild(middleDiv);var middleRightDiv=doc.createElement("div");middleRightDiv.style.background="url("+Timeline.u!
 rlPrefix+"images/message-right.png) top right repeat-y";middleRightDiv.style.paddingRight="44px";middleDiv.appendChild(middleRightDiv);var contentDiv=doc.createElement("div");middleRightDiv.appendChild(contentDiv);var bottomDiv=doc.createElement("div");bottomDiv.style.height="55px";bottomDiv.style.background="url("+Timeline.urlPrefix+"images/message-bottom-left.png) bottom left no-repeat";bottomDiv.style.paddingLeft="44px";containerDiv.appendChild(bottomDiv);var bottomRightDiv=doc.createElement("div");bottomRightDiv.style.height="55px";bottomRightDiv.style.background="url("+Timeline.urlPrefix+"images/message-bottom-right.png) bottom right no-repeat";bottomDiv.appendChild(bottomRightDiv);}else{containerDiv.style.border="2px solid #7777AA";containerDiv.style.padding="20px";containerDiv.style.background="white";Timeline.Graphics.setOpacity(containerDiv,90);var contentDiv=doc.createElement("div");containerDiv.appendChild(contentDiv);}
-return{containerDiv:containerDiv,contentDiv:contentDiv};};Timeline.Graphics.createAnimation=function(f,from,to,duration){return new Timeline.Graphics._Animation(f,from,to,duration);};Timeline.Graphics._Animation=function(f,from,to,duration){this.f=f;this.from=from;this.to=to;this.current=from;this.duration=duration;this.start=new Date().getTime();this.timePassed=0;};Timeline.Graphics._Animation.prototype.run=function(){var a=this;window.setTimeout(function(){a.step();},100);};Timeline.Graphics._Animation.prototype.step=function(){this.timePassed+=100;var timePassedFraction=this.timePassed/this.duration;var parameterFraction=-Math.cos(timePassedFraction*Math.PI)/2+0.5;var current=parameterFraction*(this.to-this.from)+this.from;try{this.f(current,current-this.current);}catch(e){}
-this.current=current;if(this.timePassed<this.duration){this.run();}};
-
-/* html.js */
-
-Timeline.HTML=new Object();Timeline.HTML._e2uHash={};(function(){e2uHash=Timeline.HTML._e2uHash;e2uHash['nbsp']='\u00A0[space]';e2uHash['iexcl']='\u00A1';e2uHash['cent']='\u00A2';e2uHash['pound']='\u00A3';e2uHash['curren']='\u00A4';e2uHash['yen']='\u00A5';e2uHash['brvbar']='\u00A6';e2uHash['sect']='\u00A7';e2uHash['uml']='\u00A8';e2uHash['copy']='\u00A9';e2uHash['ordf']='\u00AA';e2uHash['laquo']='\u00AB';e2uHash['not']='\u00AC';e2uHash['shy']='\u00AD';e2uHash['reg']='\u00AE';e2uHash['macr']='\u00AF';e2uHash['deg']='\u00B0';e2uHash['plusmn']='\u00B1';e2uHash['sup2']='\u00B2';e2uHash['sup3']='\u00B3';e2uHash['acute']='\u00B4';e2uHash['micro']='\u00B5';e2uHash['para']='\u00B6';e2uHash['middot']='\u00B7';e2uHash['cedil']='\u00B8';e2uHash['sup1']='\u00B9';e2uHash['ordm']='\u00BA';e2uHash['raquo']='\u00BB';e2uHash['frac14']='\u00BC';e2uHash['frac12']='\u00BD';e2uHash['frac34']='\u00BE';e2uHash['iquest']='\u00BF';e2uHash['Agrave']='\u00C0';e2uHash['Aacute']='\u00C1';e2uHash['Acirc!
 ']='\u00C2';e2uHash['Atilde']='\u00C3';e2uHash['Auml']='\u00C4';e2uHash['Aring']='\u00C5';e2uHash['AElig']='\u00C6';e2uHash['Ccedil']='\u00C7';e2uHash['Egrave']='\u00C8';e2uHash['Eacute']='\u00C9';e2uHash['Ecirc']='\u00CA';e2uHash['Euml']='\u00CB';e2uHash['Igrave']='\u00CC';e2uHash['Iacute']='\u00CD';e2uHash['Icirc']='\u00CE';e2uHash['Iuml']='\u00CF';e2uHash['ETH']='\u00D0';e2uHash['Ntilde']='\u00D1';e2uHash['Ograve']='\u00D2';e2uHash['Oacute']='\u00D3';e2uHash['Ocirc']='\u00D4';e2uHash['Otilde']='\u00D5';e2uHash['Ouml']='\u00D6';e2uHash['times']='\u00D7';e2uHash['Oslash']='\u00D8';e2uHash['Ugrave']='\u00D9';e2uHash['Uacute']='\u00DA';e2uHash['Ucirc']='\u00DB';e2uHash['Uuml']='\u00DC';e2uHash['Yacute']='\u00DD';e2uHash['THORN']='\u00DE';e2uHash['szlig']='\u00DF';e2uHash['agrave']='\u00E0';e2uHash['aacute']='\u00E1';e2uHash['acirc']='\u00E2';e2uHash['atilde']='\u00E3';e2uHash['auml']='\u00E4';e2uHash['aring']='\u00E5';e2uHash['aelig']='\u00E6';e2uHash['ccedil']='\u00E7';e2uH!
 ash['egrave']='\u00E8';e2uHash['eacute']='\u00E9';e2uHash['eci!
 rc']='\u
00EA';e2uHash['euml']='\u00EB';e2uHash['igrave']='\u00EC';e2uHash['iacute']='\u00ED';e2uHash['icirc']='\u00EE';e2uHash['iuml']='\u00EF';e2uHash['eth']='\u00F0';e2uHash['ntilde']='\u00F1';e2uHash['ograve']='\u00F2';e2uHash['oacute']='\u00F3';e2uHash['ocirc']='\u00F4';e2uHash['otilde']='\u00F5';e2uHash['ouml']='\u00F6';e2uHash['divide']='\u00F7';e2uHash['oslash']='\u00F8';e2uHash['ugrave']='\u00F9';e2uHash['uacute']='\u00FA';e2uHash['ucirc']='\u00FB';e2uHash['uuml']='\u00FC';e2uHash['yacute']='\u00FD';e2uHash['thorn']='\u00FE';e2uHash['yuml']='\u00FF';e2uHash['quot']='\u0022';e2uHash['amp']='\u0026';e2uHash['lt']='\u003C';e2uHash['gt']='\u003E';e2uHash['OElig']='';e2uHash['oelig']='\u0153';e2uHash['Scaron']='\u0160';e2uHash['scaron']='\u0161';e2uHash['Yuml']='\u0178';e2uHash['circ']='\u02C6';e2uHash['tilde']='\u02DC';e2uHash['ensp']='\u2002';e2uHash['emsp']='\u2003';e2uHash['thinsp']='\u2009';e2uHash['zwnj']='\u200C';e2uHash['zwj']='\u200D';e2uHash['lrm']='\u200E';e2uHash['rlm!
 ']='\u200F';e2uHash['ndash']='\u2013';e2uHash['mdash']='\u2014';e2uHash['lsquo']='\u2018';e2uHash['rsquo']='\u2019';e2uHash['sbquo']='\u201A';e2uHash['ldquo']='\u201C';e2uHash['rdquo']='\u201D';e2uHash['bdquo']='\u201E';e2uHash['dagger']='\u2020';e2uHash['Dagger']='\u2021';e2uHash['permil']='\u2030';e2uHash['lsaquo']='\u2039';e2uHash['rsaquo']='\u203A';e2uHash['euro']='\u20AC';e2uHash['fnof']='\u0192';e2uHash['Alpha']='\u0391';e2uHash['Beta']='\u0392';e2uHash['Gamma']='\u0393';e2uHash['Delta']='\u0394';e2uHash['Epsilon']='\u0395';e2uHash['Zeta']='\u0396';e2uHash['Eta']='\u0397';e2uHash['Theta']='\u0398';e2uHash['Iota']='\u0399';e2uHash['Kappa']='\u039A';e2uHash['Lambda']='\u039B';e2uHash['Mu']='\u039C';e2uHash['Nu']='\u039D';e2uHash['Xi']='\u039E';e2uHash['Omicron']='\u039F';e2uHash['Pi']='\u03A0';e2uHash['Rho']='\u03A1';e2uHash['Sigma']='\u03A3';e2uHash['Tau']='\u03A4';e2uHash['Upsilon']='\u03A5';e2uHash['Phi']='\u03A6';e2uHash['Chi']='\u03A7';e2uHash['Psi']='\u03A8';e2uHa!
 sh['Omega']='\u03A9';e2uHash['alpha']='\u03B1';e2uHash['beta']!
 ='\u03B2
';e2uHash['gamma']='\u03B3';e2uHash['delta']='\u03B4';e2uHash['epsilon']='\u03B5';e2uHash['zeta']='\u03B6';e2uHash['eta']='\u03B7';e2uHash['theta']='\u03B8';e2uHash['iota']='\u03B9';e2uHash['kappa']='\u03BA';e2uHash['lambda']='\u03BB';e2uHash['mu']='\u03BC';e2uHash['nu']='\u03BD';e2uHash['xi']='\u03BE';e2uHash['omicron']='\u03BF';e2uHash['pi']='\u03C0';e2uHash['rho']='\u03C1';e2uHash['sigmaf']='\u03C2';e2uHash['sigma']='\u03C3';e2uHash['tau']='\u03C4';e2uHash['upsilon']='\u03C5';e2uHash['phi']='\u03C6';e2uHash['chi']='\u03C7';e2uHash['psi']='\u03C8';e2uHash['omega']='\u03C9';e2uHash['thetasym']='\u03D1';e2uHash['upsih']='\u03D2';e2uHash['piv']='\u03D6';e2uHash['bull']='\u2022';e2uHash['hellip']='\u2026';e2uHash['prime']='\u2032';e2uHash['Prime']='\u2033';e2uHash['oline']='\u203E';e2uHash['frasl']='\u2044';e2uHash['weierp']='\u2118';e2uHash['image']='\u2111';e2uHash['real']='\u211C';e2uHash['trade']='\u2122';e2uHash['alefsym']='\u2135';e2uHash['larr']='\u2190';e2uHash['uarr']!
 ='\u2191';e2uHash['rarr']='\u2192';e2uHash['darr']='\u2193';e2uHash['harr']='\u2194';e2uHash['crarr']='\u21B5';e2uHash['lArr']='\u21D0';e2uHash['uArr']='\u21D1';e2uHash['rArr']='\u21D2';e2uHash['dArr']='\u21D3';e2uHash['hArr']='\u21D4';e2uHash['forall']='\u2200';e2uHash['part']='\u2202';e2uHash['exist']='\u2203';e2uHash['empty']='\u2205';e2uHash['nabla']='\u2207';e2uHash['isin']='\u2208';e2uHash['notin']='\u2209';e2uHash['ni']='\u220B';e2uHash['prod']='\u220F';e2uHash['sum']='\u2211';e2uHash['minus']='\u2212';e2uHash['lowast']='\u2217';e2uHash['radic']='\u221A';e2uHash['prop']='\u221D';e2uHash['infin']='\u221E';e2uHash['ang']='\u2220';e2uHash['and']='\u2227';e2uHash['or']='\u2228';e2uHash['cap']='\u2229';e2uHash['cup']='\u222A';e2uHash['int']='\u222B';e2uHash['there4']='\u2234';e2uHash['sim']='\u223C';e2uHash['cong']='\u2245';e2uHash['asymp']='\u2248';e2uHash['ne']='\u2260';e2uHash['equiv']='\u2261';e2uHash['le']='\u2264';e2uHash['ge']='\u2265';e2uHash['sub']='\u2282';e2uHa!
 sh['sup']='\u2283';e2uHash['nsub']='\u2284';e2uHash['sube']='\!
 u2286';e
2uHash['supe']='\u2287';e2uHash['oplus']='\u2295';e2uHash['otimes']='\u2297';e2uHash['perp']='\u22A5';e2uHash['sdot']='\u22C5';e2uHash['lceil']='\u2308';e2uHash['rceil']='\u2309';e2uHash['lfloor']='\u230A';e2uHash['rfloor']='\u230B';e2uHash['lang']='\u2329';e2uHash['rang']='\u232A';e2uHash['loz']='\u25CA';e2uHash['spades']='\u2660';e2uHash['clubs']='\u2663';e2uHash['hearts']='\u2665';e2uHash['diams']='\u2666';})();Timeline.HTML.deEntify=function(s){e2uHash=Timeline.HTML._e2uHash;var re=/&(\w+?);/;while(re.test(s)){var m=s.match(re);s=s.replace(re,e2uHash[m[1]]);}
-return s;};
-
-/* xmlhttp.js */
-
-Timeline.XmlHttp=new Object();Timeline.XmlHttp._onReadyStateChange=function(xmlhttp,fError,fDone){switch(xmlhttp.readyState){case 4:try{if(xmlhttp.status==0||xmlhttp.status==200){if(fDone){fDone(xmlhttp);}}else{if(fError){fError(xmlhttp.statusText,xmlhttp.status,xmlhttp);}}}catch(e){Timeline.Debug.exception(e);}
-break;}};Timeline.XmlHttp._createRequest=function(){if(Timeline.Platform.browser.isIE){var programIDs=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];for(var i=0;i<programIDs.length;i++){try{var programID=programIDs[i];var f=function(){return new ActiveXObject(programID);};var o=f();Timeline.XmlHttp._createRequest=f;return o;}catch(e){}}
-throw new Error("Failed to create an XMLHttpRequest object");}else{try{var f=function(){return new XMLHttpRequest();};var o=f();Timeline.XmlHttp._createRequest=f;return o;}catch(e){throw new Error("Failed to create an XMLHttpRequest object");}}};Timeline.XmlHttp.get=function(url,fError,fDone){var xmlhttp=Timeline.XmlHttp._createRequest();xmlhttp.open("GET",url,true);xmlhttp.onreadystatechange=function(){Timeline.XmlHttp._onReadyStateChange(xmlhttp,fError,fDone);};xmlhttp.send(null);};Timeline.XmlHttp.post=function(url,body,fError,fDone){var xmlhttp=Timeline.XmlHttp._createRequest();xmlhttp.open("POST",url,true);xmlhttp.onreadystatechange=function(){Timeline.XmlHttp._onReadyStateChange(xmlhttp,fError,fDone);};xmlhttp.send(body);};Timeline.XmlHttp._forceXML=function(xmlhttp){try{xmlhttp.overrideMimeType("text/xml");}catch(e){xmlhttp.setrequestheader("Content-Type","text/xml");}};
-
-/* decorators.js */
-
-Timeline.SpanHighlightDecorator=function(params){this._unit=("unit"in params)?params.unit:Timeline.NativeDateUnit;this._startDate=(typeof params.startDate=="string")?this._unit.parseFromObject(params.startDate):params.startDate;this._endDate=(typeof params.endDate=="string")?this._unit.parseFromObject(params.endDate):params.endDate;this._startLabel=params.startLabel;this._endLabel=params.endLabel;this._color=params.color;this._opacity=("opacity"in params)?params.opacity:100;};Timeline.SpanHighlightDecorator.prototype.initialize=function(band,timeline){this._band=band;this._timeline=timeline;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 minDate=this._band.getMinDate();var maxDate=this._band.getMaxDate();if(this._unit.compare(this._startDate,maxDate)<0&&this._unit.compare(this._endDate,minDate)>0){minDate=this._unit.later(minDate,this._startDate);maxDate=this._unit.earlier(maxDate,this._endDate);var minPixel=this._band.dateToPixelOffset(minDate);var maxPixel=this._band.dateToPixelOffset(maxDate);var doc=this._timeline.getDocument();var createTable=function(){var table=doc.createElement("table");table.insertRow(0).insertCell(0);return table;};var div=doc.createElement("div");div.style.position="absolute";div.style.overflow="hidden";div.style.background=this._color;if(this._opacity<100){Timeline.Graphics.setOpacity(div,this._opacity);}
-this._layerDiv.appendChild(div);var tableStartLabel=createTable();tableStartLabel.style.position="absolute";tableStartLabel.style.overflow="hidden";tableStartLabel.style.fontSize="300%";tableStartLabel.style.fontWeight="bold";tableStartLabel.style.color=this._color;tableStartLabel.rows[0].cells[0].innerHTML=this._startLabel;this._layerDiv.appendChild(tableStartLabel);var tableEndLabel=createTable();tableEndLabel.style.position="absolute";tableEndLabel.style.overflow="hidden";tableEndLabel.style.fontSize="300%";tableEndLabel.style.fontWeight="bold";tableEndLabel.style.color=this._color;tableEndLabel.rows[0].cells[0].innerHTML=this._endLabel;this._layerDiv.appendChild(tableEndLabel);if(this._timeline.isHorizontal()){div.style.left=minPixel+"px";div.style.width=(maxPixel-minPixel)+"px";div.style.top="0px";div.style.height="100%";tableStartLabel.style.right=(this._band.getTotalViewLength()-minPixel)+"px";tableStartLabel.style.width=(this._startLabel.length)+"em";tableStartLabel!
 .style.top="0px";tableStartLabel.style.height="100%";tableStartLabel.style.textAlign="right";tableEndLabel.style.left=maxPixel+"px";tableEndLabel.style.width=(this._endLabel.length)+"em";tableEndLabel.style.top="0px";tableEndLabel.style.height="100%";}else{div.style.top=minPixel+"px";div.style.height=(maxPixel-minPixel)+"px";div.style.left="0px";div.style.width="100%";tableStartLabel.style.bottom=minPixel+"px";tableStartLabel.style.height="1.5px";tableStartLabel.style.left="0px";tableStartLabel.style.width="100%";tableEndLabel.style.top=maxPixel+"px";tableEndLabel.style.height="1.5px";tableEndLabel.style.left="0px";tableEndLabel.style.width="100%";}}
-this._layerDiv.style.display="block";};Timeline.SpanHighlightDecorator.prototype.softPaint=function(){};Timeline.PointHighlightDecorator=function(params){this._unit=("unit"in params)?params.unit:Timeline.NativeDateUnit;this._date=(typeof params.date=="string")?this._unit.parseFromObject(params.date):params.date;this._width=("width"in params)?params.width:10;this._color=params.color;this._opacity=("opacity"in params)?params.opacity:100;};Timeline.PointHighlightDecorator.prototype.initialize=function(band,timeline){this._band=band;this._timeline=timeline;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 minDate=this._band.getMinDate();var maxDate=this._band.getMaxDate();if(this._unit.compare(this._date,maxDate)<0&&this._unit.compare(this._date,minDate)>0){var pixel=this._band.dateToPixelOffset(this._date);var minPixel=pixel-Math.round(this._width/2);var doc=this._timeline.getDocument();var div=doc.createElement("div");div.style.position="absolute";div.style.overflow="hidden";div.style.background=this._color;if(this._opacity<100){Timeline.Graphics.setOpacity(div,this._opacity);}
-this._layerDiv.appendChild(div);if(this._timeline.isHorizontal()){div.style.left=minPixel+"px";div.style.width=this._width+"px";div.style.top="0px";div.style.height="100%";}else{div.style.top=minPixel+"px";div.style.height=this._width+"px";div.style.left="0px";div.style.width="100%";}}
-this._layerDiv.style.display="block";};Timeline.PointHighlightDecorator.prototype.softPaint=function(){};
-
-/* ether-painters.js */
-
-Timeline.GregorianEtherPainter=function(params){this._params=params;this._theme=params.theme;this._unit=params.unit;this._multiple=("multiple"in params)?params.multiple:1;};Timeline.GregorianEtherPainter.prototype.initialize=function(band,timeline){this._band=band;this._timeline=timeline;this._backgroundLayer=band.createLayerDiv(0);this._backgroundLayer.setAttribute("name","ether-background");this._backgroundLayer.style.background=this._theme.ether.backgroundColors[band.getIndex()];this._markerLayer=null;this._lineLayer=null;var align=("align"in this._params&&this._params.align!=undefined)?this._params.align:this._theme.ether.interval.marker[timeline.isHorizontal()?"hAlign":"vAlign"];var showLine=("showLine"in this._params)?this._params.showLine:this._theme.ether.interval.line.show;this._intervalMarkerLayout=new Timeline.EtherIntervalMarkerLayout(this._timeline,this._band,this._theme,align,showLine);this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this.!
 _theme,this._backgroundLayer);}
-Timeline.GregorianEtherPainter.prototype.setHighlight=function(startDate,endDate){this._highlight.position(startDate,endDate);}
-Timeline.GregorianEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);}
-this._markerLayer=this._band.createLayerDiv(100);this._markerLayer.setAttribute("name","ether-markers");this._markerLayer.style.display="none";if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);}
-this._lineLayer=this._band.createLayerDiv(1);this._lineLayer.setAttribute("name","ether-lines");this._lineLayer.style.display="none";var minDate=this._band.getMinDate();var maxDate=this._band.getMaxDate();var timeZone=this._band.getTimeZone();var labeller=this._band.getLabeller();Timeline.DateTime.roundDownToInterval(minDate,this._unit,timeZone,1,this._theme.firstDayOfWeek);var p=this;var incrementDate=function(date){for(var i=0;i<p._multiple;i++){Timeline.DateTime.incrementByInterval(date,p._unit);}};while(minDate.getTime()<maxDate.getTime()){this._intervalMarkerLayout.createIntervalMarker(minDate,labeller,this._unit,this._markerLayer,this._lineLayer);incrementDate(minDate);}
-this._markerLayer.style.display="block";this._lineLayer.style.display="block";};Timeline.GregorianEtherPainter.prototype.softPaint=function(){};Timeline.HotZoneGregorianEtherPainter=function(params){this._params=params;this._theme=params.theme;this._zones=[{startTime:Number.NEGATIVE_INFINITY,endTime:Number.POSITIVE_INFINITY,unit:params.unit,multiple:1}];for(var i=0;i<params.zones.length;i++){var zone=params.zones[i];var zoneStart=Timeline.DateTime.parseGregorianDateTime(zone.start).getTime();var zoneEnd=Timeline.DateTime.parseGregorianDateTime(zone.end).getTime();for(var j=0;j<this._zones.length&&zoneEnd>zoneStart;j++){var zone2=this._zones[j];if(zoneStart<zone2.endTime){if(zoneStart>zone2.startTime){this._zones.splice(j,0,{startTime:zone2.startTime,endTime:zoneStart,unit:zone2.unit,multiple:zone2.multiple});j++;zone2.startTime=zoneStart;}
-if(zoneEnd<zone2.endTime){this._zones.splice(j,0,{startTime:zoneStart,endTime:zoneEnd,unit:zone.unit,multiple:(zone.multiple)?zone.multiple:1});j++;zone2.startTime=zoneEnd;zoneStart=zoneEnd;}else{zone2.multiple=zone.multiple;zone2.unit=zone.unit;zoneStart=zone2.endTime;}}}}};Timeline.HotZoneGregorianEtherPainter.prototype.initialize=function(band,timeline){this._band=band;this._timeline=timeline;this._backgroundLayer=band.createLayerDiv(0);this._backgroundLayer.setAttribute("name","ether-background");this._backgroundLayer.style.background=this._theme.ether.backgroundColors[band.getIndex()];this._markerLayer=null;this._lineLayer=null;var align=("align"in this._params&&this._params.align!=undefined)?this._params.align:this._theme.ether.interval.marker[timeline.isHorizontal()?"hAlign":"vAlign"];var showLine=("showLine"in this._params)?this._params.showLine:this._theme.ether.interval.line.show;this._intervalMarkerLayout=new Timeline.EtherIntervalMarkerLayout(this._timeline,this!
 ._band,this._theme,align,showLine);this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this._theme,this._backgroundLayer);}
-Timeline.HotZoneGregorianEtherPainter.prototype.setHighlight=function(startDate,endDate){this._highlight.position(startDate,endDate);}
-Timeline.HotZoneGregorianEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);}
-this._markerLayer=this._band.createLayerDiv(100);this._markerLayer.setAttribute("name","ether-markers");this._markerLayer.style.display="none";if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);}
-this._lineLayer=this._band.createLayerDiv(1);this._lineLayer.setAttribute("name","ether-lines");this._lineLayer.style.display="none";var minDate=this._band.getMinDate();var maxDate=this._band.getMaxDate();var timeZone=this._band.getTimeZone();var labeller=this._band.getLabeller();var p=this;var incrementDate=function(date,zone){for(var i=0;i<zone.multiple;i++){Timeline.DateTime.incrementByInterval(date,zone.unit);}};var zStart=0;while(zStart<this._zones.length){if(minDate.getTime()<this._zones[zStart].endTime){break;}
-zStart++;}
-var zEnd=this._zones.length-1;while(zEnd>=0){if(maxDate.getTime()>this._zones[zEnd].startTime){break;}
-zEnd--;}
-for(var z=zStart;z<=zEnd;z++){var zone=this._zones[z];var minDate2=new Date(Math.max(minDate.getTime(),zone.startTime));var maxDate2=new Date(Math.min(maxDate.getTime(),zone.endTime));Timeline.DateTime.roundDownToInterval(minDate2,zone.unit,timeZone,zone.multiple,this._theme.firstDayOfWeek);Timeline.DateTime.roundUpToInterval(maxDate2,zone.unit,timeZone,zone.multiple,this._theme.firstDayOfWeek);while(minDate2.getTime()<maxDate2.getTime()){this._intervalMarkerLayout.createIntervalMarker(minDate2,labeller,zone.unit,this._markerLayer,this._lineLayer);incrementDate(minDate2,zone);}}
-this._markerLayer.style.display="block";this._lineLayer.style.display="block";};Timeline.HotZoneGregorianEtherPainter.prototype.softPaint=function(){};Timeline.YearCountEtherPainter=function(params){this._params=params;this._theme=params.theme;this._startDate=Timeline.DateTime.parseGregorianDateTime(params.startDate);this._multiple=("multiple"in params)?params.multiple:1;};Timeline.YearCountEtherPainter.prototype.initialize=function(band,timeline){this._band=band;this._timeline=timeline;this._backgroundLayer=band.createLayerDiv(0);this._backgroundLayer.setAttribute("name","ether-background");this._backgroundLayer.style.background=this._theme.ether.backgroundColors[band.getIndex()];this._markerLayer=null;this._lineLayer=null;var align=("align"in this._params)?this._params.align:this._theme.ether.interval.marker[timeline.isHorizontal()?"hAlign":"vAlign"];var showLine=("showLine"in this._params)?this._params.showLine:this._theme.ether.interval.line.show;this._intervalMarkerLay!
 out=new Timeline.EtherIntervalMarkerLayout(this._timeline,this._band,this._theme,align,showLine);this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this._theme,this._backgroundLayer);};Timeline.YearCountEtherPainter.prototype.setHighlight=function(startDate,endDate){this._highlight.position(startDate,endDate);};Timeline.YearCountEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);}
-this._markerLayer=this._band.createLayerDiv(100);this._markerLayer.setAttribute("name","ether-markers");this._markerLayer.style.display="none";if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);}
-this._lineLayer=this._band.createLayerDiv(1);this._lineLayer.setAttribute("name","ether-lines");this._lineLayer.style.display="none";var minDate=new Date(this._startDate.getTime());var maxDate=this._band.getMaxDate();var yearDiff=this._band.getMinDate().getUTCFullYear()-this._startDate.getUTCFullYear();minDate.setUTCFullYear(this._band.getMinDate().getUTCFullYear()-yearDiff%this._multiple);var p=this;var incrementDate=function(date){for(var i=0;i<p._multiple;i++){Timeline.DateTime.incrementByInterval(date,Timeline.DateTime.YEAR);}};var labeller={labelInterval:function(date,intervalUnit){var diff=date.getUTCFullYear()-p._startDate.getUTCFullYear();return{text:diff,emphasized:diff==0};}};while(minDate.getTime()<maxDate.getTime()){this._intervalMarkerLayout.createIntervalMarker(minDate,labeller,Timeline.DateTime.YEAR,this._markerLayer,this._lineLayer);incrementDate(minDate);}
-this._markerLayer.style.display="block";this._lineLayer.style.display="block";};Timeline.YearCountEtherPainter.prototype.softPaint=function(){};Timeline.QuarterlyEtherPainter=function(params){this._params=params;this._theme=params.theme;this._startDate=Timeline.DateTime.parseGregorianDateTime(params.startDate);};Timeline.QuarterlyEtherPainter.prototype.initialize=function(band,timeline){this._band=band;this._timeline=timeline;this._backgroundLayer=band.createLayerDiv(0);this._backgroundLayer.setAttribute("name","ether-background");this._backgroundLayer.style.background=this._theme.ether.backgroundColors[band.getIndex()];this._markerLayer=null;this._lineLayer=null;var align=("align"in this._params)?this._params.align:this._theme.ether.interval.marker[timeline.isHorizontal()?"hAlign":"vAlign"];var showLine=("showLine"in this._params)?this._params.showLine:this._theme.ether.interval.line.show;this._intervalMarkerLayout=new Timeline.EtherIntervalMarkerLayout(this._timeline,this!
 ._band,this._theme,align,showLine);this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this._theme,this._backgroundLayer);};Timeline.QuarterlyEtherPainter.prototype.setHighlight=function(startDate,endDate){this._highlight.position(startDate,endDate);};Timeline.QuarterlyEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);}
-this._markerLayer=this._band.createLayerDiv(100);this._markerLayer.setAttribute("name","ether-markers");this._markerLayer.style.display="none";if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);}
-this._lineLayer=this._band.createLayerDiv(1);this._lineLayer.setAttribute("name","ether-lines");this._lineLayer.style.display="none";var minDate=new Date(0);var maxDate=this._band.getMaxDate();minDate.setUTCFullYear(Math.max(this._startDate.getUTCFullYear(),this._band.getMinDate().getUTCFullYear()));minDate.setUTCMonth(this._startDate.getUTCMonth());var p=this;var incrementDate=function(date){date.setUTCMonth(date.getUTCMonth()+3);};var labeller={labelInterval:function(date,intervalUnit){var quarters=(4+(date.getUTCMonth()-p._startDate.getUTCMonth())/3)%4;if(quarters!=0){return{text:"Q"+(quarters+1),emphasized:false};}else{return{text:"Y"+(date.getUTCFullYear()-p._startDate.getUTCFullYear()+1),emphasized:true};}}};while(minDate.getTime()<maxDate.getTime()){this._intervalMarkerLayout.createIntervalMarker(minDate,labeller,Timeline.DateTime.YEAR,this._markerLayer,this._lineLayer);incrementDate(minDate);}
-this._markerLayer.style.display="block";this._lineLayer.style.display="block";};Timeline.QuarterlyEtherPainter.prototype.softPaint=function(){};Timeline.EtherIntervalMarkerLayout=function(timeline,band,theme,align,showLine){var horizontal=timeline.isHorizontal();if(horizontal){if(align=="Top"){this.positionDiv=function(div,offset){div.style.left=offset+"px";div.style.top="0px";};}else{this.positionDiv=function(div,offset){div.style.left=offset+"px";div.style.bottom="0px";};}}else{if(align=="Left"){this.positionDiv=function(div,offset){div.style.top=offset+"px";div.style.left="0px";};}else{this.positionDiv=function(div,offset){div.style.top=offset+"px";div.style.right="0px";};}}
-var markerTheme=theme.ether.interval.marker;var lineTheme=theme.ether.interval.line;var weekendTheme=theme.ether.interval.weekend;var stylePrefix=(horizontal?"h":"v")+align;var labelStyler=markerTheme[stylePrefix+"Styler"];var emphasizedLabelStyler=markerTheme[stylePrefix+"EmphasizedStyler"];var day=Timeline.DateTime.gregorianUnitLengths[Timeline.DateTime.DAY];this.createIntervalMarker=function(date,labeller,unit,markerDiv,lineDiv){var offset=Math.round(band.dateToPixelOffset(date));if(showLine&&unit!=Timeline.DateTime.WEEK){var divLine=timeline.getDocument().createElement("div");divLine.style.position="absolute";if(lineTheme.opacity<100){Timeline.Graphics.setOpacity(divLine,lineTheme.opacity);}
-if(horizontal){divLine.style.borderLeft="1px solid "+lineTheme.color;divLine.style.left=offset+"px";divLine.style.width="1px";divLine.style.top="0px";divLine.style.height="100%";}else{divLine.style.borderTop="1px solid "+lineTheme.color;divLine.style.top=offset+"px";divLine.style.height="1px";divLine.style.left="0px";divLine.style.width="100%";}
-lineDiv.appendChild(divLine);}
-if(unit==Timeline.DateTime.WEEK){var firstDayOfWeek=theme.firstDayOfWeek;var saturday=new Date(date.getTime()+(6-firstDayOfWeek-7)*day);var monday=new Date(saturday.getTime()+2*day);var saturdayPixel=Math.round(band.dateToPixelOffset(saturday));var mondayPixel=Math.round(band.dateToPixelOffset(monday));var length=Math.max(1,mondayPixel-saturdayPixel);var divWeekend=timeline.getDocument().createElement("div");divWeekend.style.position="absolute";divWeekend.style.background=weekendTheme.color;if(weekendTheme.opacity<100){Timeline.Graphics.setOpacity(divWeekend,weekendTheme.opacity);}
-if(horizontal){divWeekend.style.left=saturdayPixel+"px";divWeekend.style.width=length+"px";divWeekend.style.top="0px";divWeekend.style.height="100%";}else{divWeekend.style.top=saturdayPixel+"px";divWeekend.style.height=length+"px";divWeekend.style.left="0px";divWeekend.style.width="100%";}
-lineDiv.appendChild(divWeekend);}
-var label=labeller.labelInterval(date,unit);var div=timeline.getDocument().createElement("div");div.innerHTML=label.text;div.style.position="absolute";(label.emphasized?emphasizedLabelStyler:labelStyler)(div);this.positionDiv(div,offset);markerDiv.appendChild(div);return div;};};Timeline.EtherHighlight=function(timeline,band,theme,backgroundLayer){var horizontal=timeline.isHorizontal();this._highlightDiv=null;this._createHighlightDiv=function(){if(this._highlightDiv==null){this._highlightDiv=timeline.getDocument().createElement("div");this._highlightDiv.setAttribute("name","ether-highlight");this._highlightDiv.style.position="absolute";this._highlightDiv.style.background=theme.ether.highlightColor;var opacity=theme.ether.highlightOpacity;if(opacity<100){Timeline.Graphics.setOpacity(this._highlightDiv,opacity);}
-backgroundLayer.appendChild(this._highlightDiv);}}
-this.position=function(startDate,endDate){this._createHighlightDiv();var startPixel=Math.round(band.dateToPixelOffset(startDate));var endPixel=Math.round(band.dateToPixelOffset(endDate));var length=Math.max(endPixel-startPixel,3);if(horizontal){this._highlightDiv.style.left=startPixel+"px";this._highlightDiv.style.width=length+"px";this._highlightDiv.style.top="2px";this._highlightDiv.style.height=(band.getViewWidth()-4)+"px";}else{this._highlightDiv.style.top=startPixel+"px";this._highlightDiv.style.height=length+"px";this._highlightDiv.style.left="2px";this._highlightDiv.style.width=(band.getViewWidth()-4)+"px";}}};
-
-/* ethers.js */
-
-Timeline.LinearEther=function(params){this._params=params;this._interval=params.interval;this._pixelsPerInterval=params.pixelsPerInterval;};Timeline.LinearEther.prototype.initialize=function(timeline){this._timeline=timeline;this._unit=timeline.getUnit();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.LinearEther.prototype.setDate=function(date){this._start=this._unit.cloneValue(date);};Timeline.LinearEther.prototype.shiftPixels=function(pixels){var numeric=this._interval*pixels/this._pixelsPerInterval;this._start=this._unit.ch!
 ange(this._start,numeric);};Timeline.LinearEther.prototype.dateToPixelOffset=function(date){var numeric=this._unit.compare(date,this._start);return this._pixelsPerInterval*numeric/this._interval;};Timeline.LinearEther.prototype.pixelOffsetToDate=function(pixels){var numeric=pixels*this._interval/this._pixelsPerInterval;return this._unit.change(this._start,numeric);};Timeline.HotZoneEther=function(params){this._params=params;this._interval=params.interval;this._pixelsPerInterval=params.pixelsPerInterval;};Timeline.HotZoneEther.prototype.initialize=function(timeline){this._timeline=timeline;this._unit=timeline.getUnit();this._zones=[{startTime:Number.NEGATIVE_INFINITY,endTime:Number.POSITIVE_INFINITY,magnify:1}];var params=this._params;for(var i=0;i<params.zones.length;i++){var zone=params.zones[i];var zoneStart=this._unit.parseFromObject(zone.start);var zoneEnd=this._unit.parseFromObject(zone.end);for(var j=0;j<this._zones.length&&this._unit.compare(zoneEnd,zoneStart)>0;j++)!
 {var zone2=this._zones[j];if(this._unit.compare(zoneStart,zone!
 2.endTim
e)<0){if(this._unit.compare(zoneStart,zone2.startTime)>0){this._zones.splice(j,0,{startTime:zone2.startTime,endTime:zoneStart,magnify:zone2.magnify});j++;zone2.startTime=zoneStart;}
-if(this._unit.compare(zoneEnd,zone2.endTime)<0){this._zones.splice(j,0,{startTime:zoneStart,endTime:zoneEnd,magnify:zone.magnify*zone2.magnify});j++;zone2.startTime=zoneEnd;zoneStart=zoneEnd;}else{zone2.magnify*=zone.magnify;zoneStart=zone2.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(date){this._start=this._unit.cloneValue(date);};Timeline.HotZoneEther.prototype.shiftPixels=function(pixels){this._start=this.pixelOffsetToDate(pixels);};Timeline.HotZoneEther.prototype.dateToPixelOffset=function(date){return this._dateDiffToPixelOffset(this._start,date);};Timeline.HotZoneEther.prototype.pixelOffsetToDate=function(pixels){return this._pixelOffsetToDate(pixels,this._start);};Timeline.HotZoneEther.prototype._dateDiffToPixelOff!
 set=function(fromDate,toDate){var scale=this._getScale();var fromTime=fromDate;var toTime=toDate;var pixels=0;if(this._unit.compare(fromTime,toTime)<0){var z=0;while(z<this._zones.length){if(this._unit.compare(fromTime,this._zones[z].endTime)<0){break;}
-z++;}
-while(this._unit.compare(fromTime,toTime)<0){var zone=this._zones[z];var toTime2=this._unit.earlier(toTime,zone.endTime);pixels+=(this._unit.compare(toTime2,fromTime)/(scale/zone.magnify));fromTime=toTime2;z++;}}else{var z=this._zones.length-1;while(z>=0){if(this._unit.compare(fromTime,this._zones[z].startTime)>0){break;}
-z--;}
-while(this._unit.compare(fromTime,toTime)>0){var zone=this._zones[z];var toTime2=this._unit.later(toTime,zone.startTime);pixels+=(this._unit.compare(toTime2,fromTime)/(scale/zone.magnify));fromTime=toTime2;z--;}}
-return pixels;};Timeline.HotZoneEther.prototype._pixelOffsetToDate=function(pixels,fromDate){var scale=this._getScale();var time=fromDate;if(pixels>0){var z=0;while(z<this._zones.length){if(this._unit.compare(time,this._zones[z].endTime)<0){break;}
-z++;}
-while(pixels>0){var zone=this._zones[z];var scale2=scale/zone.magnify;if(zone.endTime==Number.POSITIVE_INFINITY){time=this._unit.change(time,pixels*scale2);pixels=0;}else{var pixels2=this._unit.compare(zone.endTime,time)/scale2;if(pixels2>pixels){time=this._unit.change(time,pixels*scale2);pixels=0;}else{time=zone.endTime;pixels-=pixels2;}}
-z++;}}else{var z=this._zones.length-1;while(z>=0){if(this._unit.compare(time,this._zones[z].startTime)>0){break;}
-z--;}
-pixels=-pixels;while(pixels>0){var zone=this._zones[z];var scale2=scale/zone.magnify;if(zone.startTime==Number.NEGATIVE_INFINITY){time=this._unit.change(time,-pixels*scale2);pixels=0;}else{var pixels2=this._unit.compare(time,zone.startTime)/scale2;if(pixels2>pixels){time=this._unit.change(time,-pixels*scale2);pixels=0;}else{time=zone.startTime;pixels-=pixels2;}}
-z--;}}
-return time;};Timeline.HotZoneEther.prototype._getScale=function(){return this._interval/this._pixelsPerInterval;};
-
-/* labellers.js */
-
-Timeline.GregorianDateLabeller=function(locale,timeZone){this._locale=locale;this._timeZone=timeZone;};Timeline.GregorianDateLabeller.monthNames=[];Timeline.GregorianDateLabeller.dayNames=[];Timeline.GregorianDateLabeller.labelIntervalFunctions=[];Timeline.GregorianDateLabeller.getMonthName=function(month,locale){return Timeline.GregorianDateLabeller.monthNames[locale][month];};Timeline.GregorianDateLabeller.prototype.labelInterval=function(date,intervalUnit){var f=Timeline.GregorianDateLabeller.labelIntervalFunctions[this._locale];if(f==null){f=Timeline.GregorianDateLabeller.prototype.defaultLabelInterval;}
-return f.call(this,date,intervalUnit);};Timeline.GregorianDateLabeller.prototype.labelPrecise=function(date){return Timeline.DateTime.removeTimeZoneOffset(date,this._timeZone).toUTCString();};Timeline.GregorianDateLabeller.prototype.defaultLabelInterval=function(date,intervalUnit){var text;var emphasized=false;date=Timeline.DateTime.removeTimeZoneOffset(date,this._timeZone);switch(intervalUnit){case Timeline.DateTime.MILLISECOND:text=date.getUTCMilliseconds();break;case Timeline.DateTime.SECOND:text=date.getUTCSeconds();break;case Timeline.DateTime.MINUTE:var m=date.getUTCMinutes();if(m==0){text=date.getUTCHours()+":00";emphasized=true;}else{text=m;}
-break;case Timeline.DateTime.HOUR:text=date.getUTCHours()+"hr";break;case Timeline.DateTime.DAY:text=Timeline.GregorianDateLabeller.getMonthName(date.getUTCMonth(),this._locale)+" "+date.getUTCDate();break;case Timeline.DateTime.WEEK:text=Timeline.GregorianDateLabeller.getMonthName(date.getUTCMonth(),this._locale)+" "+date.getUTCDate();break;case Timeline.DateTime.MONTH:var m=date.getUTCMonth();if(m!=0){text=Timeline.GregorianDateLabeller.getMonthName(m,this._locale);break;}
-case Timeline.DateTime.YEAR:case Timeline.DateTime.DECADE:case Timeline.DateTime.CENTURY:case Timeline.DateTime.MILLENNIUM:var y=date.getUTCFullYear();if(y>0){text=date.getUTCFullYear();}else{text=(1-y)+"BC";}
-emphasized=(intervalUnit==Timeline.DateTime.MONTH)||(intervalUnit==Timeline.DateTime.DECADE&&y%100==0)||(intervalUnit==Timeline.DateTime.CENTURY&&y%1000==0);break;default:text=date.toUTCString();}
-return{text:text,emphasized:emphasized};}
-
-/* layouts.js */
-
-Timeline.StaticTrackBasedLayout=function(params){this._eventSource=params.eventSource;this._ether=params.ether;this._theme=params.theme;this._showText=("showText"in params)?params.showText:true;this._laidout=false;var layout=this;if(this._eventSource!=null){this._eventSource.addListener({onAddMany:function(){layout._laidout=false;}});}};Timeline.StaticTrackBasedLayout.prototype.initialize=function(timeline){this._timeline=timeline;};Timeline.StaticTrackBasedLayout.prototype.getTrack=function(evt){if(!this._laidout){this._tracks=[];this._layout();this._laidout=true;}
-return this._tracks[evt.getID()];};Timeline.StaticTrackBasedLayout.prototype.getTrackCount=function(){if(!this._laidout){this._tracks=[];this._layout();this._laidout=true;}
-return this._trackCount;};Timeline.StaticTrackBasedLayout.prototype._layout=function(){if(this._eventSource==null){return;}
-var streams=[Number.NEGATIVE_INFINITY];var layout=this;var showText=this._showText;var theme=this._theme;var eventTheme=theme.event;var layoutInstant=function(evt,startPixel,endPixel,streamOffset){var finalPixel=startPixel-1;if(evt.isImprecise()){finalPixel=endPixel;}
-if(showText){finalPixel=Math.max(finalPixel,startPixel+eventTheme.label.width);}
-return finalPixel;};var layoutDuration=function(evt,startPixel,endPixel,streamOffset){if(evt.isImprecise()){var startDate=evt.getStart();var endDate=evt.getEnd();var startPixel2=Math.round(layout._ether.dateToPixelOffset(startDate));var endPixel2=Math.round(layout._ether.dateToPixelOffset(endDate));}else{var startPixel2=startPixel;var endPixel2=endPixel;}
-var finalPixel=endPixel2;var length=Math.max(endPixel2-startPixel2,1);if(showText){if(length<eventTheme.label.width){finalPixel=endPixel2+eventTheme.label.width;}}
-return finalPixel;};var layoutEvent=function(evt){var startDate=evt.getStart();var endDate=evt.getEnd();var startPixel=Math.round(layout._ether.dateToPixelOffset(startDate));var endPixel=Math.round(layout._ether.dateToPixelOffset(endDate));var streamIndex=0;for(;streamIndex<streams.length;streamIndex++){if(streams[streamIndex]<startPixel){break;}}
-if(streamIndex>=streams.length){streams.push(Number.NEGATIVE_INFINITY);}
-var streamOffset=(eventTheme.track.offset+
-streamIndex*(eventTheme.track.height+eventTheme.track.gap))+"em";layout._tracks[evt.getID()]=streamIndex;if(evt.isInstant()){streams[streamIndex]=layoutInstant(evt,startPixel,endPixel,streamOffset);}else{streams[streamIndex]=layoutDuration(evt,startPixel,endPixel,streamOffset);}};var iterator=this._eventSource.getAllEventIterator();while(iterator.hasNext()){var evt=iterator.next();layoutEvent(evt);}
-this._trackCount=streams.length;};
-
-/* painters.js */
-
-Timeline.DurationEventPainter=function(params){this._params=params;this._theme=params.theme;this._layout=params.layout;this._showText=params.showText;this._showLineForNoText=("showLineForNoText"in params)?params.showLineForNoText:params.theme.event.instant.showLineForNoText;this._filterMatcher=null;this._highlightMatcher=null;};Timeline.DurationEventPainter.prototype.initialize=function(band,timeline){this._band=band;this._timeline=timeline;this._layout.initialize(band,timeline);this._eventLayer=null;this._highlightLayer=null;};Timeline.DurationEventPainter.prototype.getLayout=function(){return this._layout;};Timeline.DurationEventPainter.prototype.setLayout=function(layout){this._layout=layout;};Timeline.DurationEventPainter.prototype.getFilterMatcher=function(){return this._filterMatcher;};Timeline.DurationEventPainter.prototype.setFilterMatcher=function(filterMatcher){this._filterMatcher=filterMatcher;};Timeline.DurationEventPainter.prototype.getHighlightMatcher=function!
 (){return this._highlightMatcher;};Timeline.DurationEventPainter.prototype.setHighlightMatcher=function(highlightMatcher){this._highlightMatcher=highlightMatcher;};Timeline.DurationEventPainter.prototype.paint=function(){var eventSource=this._band.getEventSource();if(eventSource==null){return;}
-if(this._highlightLayer!=null){this._band.removeLayerDiv(this._highlightLayer);}
-this._highlightLayer=this._band.createLayerDiv(105);this._highlightLayer.setAttribute("name","event-highlights");this._highlightLayer.style.display="none";if(this._eventLayer!=null){this._band.removeLayerDiv(this._eventLayer);}
-this._eventLayer=this._band.createLayerDiv(110);this._eventLayer.setAttribute("name","events");this._eventLayer.style.display="none";var minDate=this._band.getMinDate();var maxDate=this._band.getMaxDate();var doc=this._timeline.getDocument();var p=this;var eventLayer=this._eventLayer;var highlightLayer=this._highlightLayer;var showText=this._showText;var theme=this._params.theme;var eventTheme=theme.event;var trackOffset=eventTheme.track.offset;var trackHeight=("trackHeight"in this._params)?this._params.trackHeight:eventTheme.track.height;var trackGap=("trackGap"in this._params)?this._params.trackGap:eventTheme.track.gap;var appendIcon=function(evt,div){var icon=evt.getIcon();var img=Timeline.Graphics.createTranslucentImage(doc,icon!=null?icon:eventTheme.instant.icon);div.appendChild(img);div.style.cursor="pointer";Timeline.DOM.registerEvent(div,"mousedown",function(elmt,domEvt,target){p._onClickInstantEvent(img,domEvt,evt);});};var createHighlightDiv=function(highlightInde!
 x,startPixel,length,highlightOffset,highlightWidth){if(highlightIndex>=0){var color=eventTheme.highlightColors[Math.min(highlightIndex,eventTheme.highlightColors.length-1)];var div=doc.createElement("div");div.style.position="absolute";div.style.overflow="hidden";div.style.left=(startPixel-3)+"px";div.style.width=(length+6)+"px";div.style.top=highlightOffset+"em";div.style.height=highlightWidth+"em";div.style.background=color;highlightLayer.appendChild(div);}};var createInstantDiv=function(evt,startPixel,endPixel,streamOffset,highlightIndex,highlightOffset,highlightWidth){if(evt.isImprecise()){var length=Math.max(endPixel-startPixel,1);var divImprecise=doc.createElement("div");divImprecise.style.position="absolute";divImprecise.style.overflow="hidden";divImprecise.style.top=streamOffset;divImprecise.style.height=trackHeight+"em";divImprecise.style.left=startPixel+"px";divImprecise.style.width=length+"px";divImprecise.style.background=eventTheme.instant.impreciseColor;if(eve!
 ntTheme.instant.impreciseOpacity<100){Timeline.Graphics.setOpa!
 city(div
Imprecise,eventTheme.instant.impreciseOpacity);}
-eventLayer.appendChild(divImprecise);}
-var div=doc.createElement("div");div.style.position="absolute";div.style.overflow="hidden";eventLayer.appendChild(div);var foreground=evt.getTextColor();var background=evt.getColor();var realign=-8;var length=16;if(showText){div.style.width=eventTheme.label.width+"px";div.style.color=foreground!=null?foreground:eventTheme.label.outsideColor;appendIcon(evt,div);div.appendChild(doc.createTextNode(evt.getText()));}else{if(p._showLineForNoText){div.style.width="1px";div.style.borderLeft="1px solid "+(background!=null?background:eventTheme.instant.lineColor);realign=0;length=1;}else{appendIcon(evt,div);}}
-div.style.top=streamOffset;div.style.height=trackHeight+"em";div.style.left=(startPixel+realign)+"px";createHighlightDiv(highlightIndex,(startPixel+realign),length,highlightOffset,highlightWidth);};var createDurationDiv=function(evt,startPixel,endPixel,streamOffset,highlightIndex,highlightOffset,highlightWidth){var attachClickEvent=function(elmt){elmt.style.cursor="pointer";Timeline.DOM.registerEvent(elmt,"mousedown",function(elmt,domEvt,target){p._onClickDurationEvent(domEvt,evt,target);});};var length=Math.max(endPixel-startPixel,1);if(evt.isImprecise()){var div=doc.createElement("div");div.style.position="absolute";div.style.overflow="hidden";div.style.top=streamOffset;div.style.height=trackHeight+"em";div.style.left=startPixel+"px";div.style.width=length+"px";div.style.background=eventTheme.duration.impreciseColor;if(eventTheme.duration.impreciseOpacity<100){Timeline.Graphics.setOpacity(div,eventTheme.duration.impreciseOpacity);}
-eventLayer.appendChild(div);var startDate=evt.getLatestStart();var endDate=evt.getEarliestEnd();var startPixel2=Math.round(p._band.dateToPixelOffset(startDate));var endPixel2=Math.round(p._band.dateToPixelOffset(endDate));}else{var startPixel2=startPixel;var endPixel2=endPixel;}
-var foreground=evt.getTextColor();var outside=true;if(startPixel2<=endPixel2){length=Math.max(endPixel2-startPixel2,1);outside=!(length>eventTheme.label.width);div=doc.createElement("div");div.style.position="absolute";div.style.overflow="hidden";div.style.top=streamOffset;div.style.height=trackHeight+"em";div.style.left=startPixel2+"px";div.style.width=length+"px";var background=evt.getColor();div.style.background=background!=null?background:eventTheme.duration.color;if(eventTheme.duration.opacity<100){Timeline.Graphics.setOpacity(div,eventTheme.duration.opacity);}
-eventLayer.appendChild(div);}else{var temp=startPixel2;startPixel2=endPixel2;endPixel2=temp;}
-if(div==null){console.log(evt);}
-attachClickEvent(div);if(showText){var divLabel=doc.createElement("div");divLabel.style.position="absolute";divLabel.style.top=streamOffset;divLabel.style.height=trackHeight+"em";divLabel.style.left=((length>eventTheme.label.width)?startPixel2:endPixel2)+"px";divLabel.style.width=eventTheme.label.width+"px";divLabel.style.color=foreground!=null?foreground:(outside?eventTheme.label.outsideColor:eventTheme.label.insideColor);divLabel.style.overflow="hidden";divLabel.appendChild(doc.createTextNode(evt.getText()));eventLayer.appendChild(divLabel);attachClickEvent(divLabel);}
-createHighlightDiv(highlightIndex,startPixel,endPixel-startPixel,highlightOffset,highlightWidth);};var createEventDiv=function(evt,highlightIndex){var startDate=evt.getStart();var endDate=evt.getEnd();var startPixel=Math.round(p._band.dateToPixelOffset(startDate));var endPixel=Math.round(p._band.dateToPixelOffset(endDate));var streamOffset=(trackOffset+
-p._layout.getTrack(evt)*(trackHeight+trackGap));if(evt.isInstant()){createInstantDiv(evt,startPixel,endPixel,streamOffset+"em",highlightIndex,streamOffset-trackGap,trackHeight+2*trackGap);}else{createDurationDiv(evt,startPixel,endPixel,streamOffset+"em",highlightIndex,streamOffset-trackGap,trackHeight+2*trackGap);}};var filterMatcher=(this._filterMatcher!=null)?this._filterMatcher:function(evt){return true;};var highlightMatcher=(this._highlightMatcher!=null)?this._highlightMatcher:function(evt){return-1;};var iterator=eventSource.getEventIterator(minDate,maxDate);while(iterator.hasNext()){var evt=iterator.next();if(filterMatcher(evt)){createEventDiv(evt,highlightMatcher(evt));}}
-this._highlightLayer.style.display="block";this._eventLayer.style.display="block";};Timeline.DurationEventPainter.prototype.softPaint=function(){};Timeline.DurationEventPainter.prototype._onClickInstantEvent=function(icon,domEvt,evt){domEvt.cancelBubble=true;var c=Timeline.DOM.getPageCoordinates(icon);this._showBubble(c.left+Math.ceil(icon.offsetWidth/2),c.top+Math.ceil(icon.offsetHeight/2),evt);};Timeline.DurationEventPainter.prototype._onClickDurationEvent=function(domEvt,evt,target){domEvt.cancelBubble=true;if("pageX"in domEvt){var x=domEvt.pageX;var y=domEvt.pageY;}else{var c=Timeline.DOM.getPageCoordinates(target);var x=domEvt.offsetX+c.left;var y=domEvt.offsetY+c.top;}
-this._showBubble(x,y,evt);};Timeline.DurationEventPainter.prototype._showBubble=function(x,y,evt){var div=this._band.openBubbleForPoint(x,y,this._theme.event.bubble.width,this._theme.event.bubble.height);evt.fillInfoBubble(div,this._theme,this._band.getLabeller());};
-
-/* sources.js */
-
-Timeline.DefaultEventSource=function(eventIndex){this._events=(eventIndex instanceof Object)?eventIndex:new Timeline.EventIndex();this._listeners=[];};Timeline.DefaultEventSource.prototype.addListener=function(listener){this._listeners.push(listener);};Timeline.DefaultEventSource.prototype.removeListener=function(listener){for(var i=0;i<this._listeners.length;i++){if(this._listeners[i]==listener){this._listeners.splice(i,1);break;}}};Timeline.DefaultEventSource.prototype.loadXML=function(xml,url){var base=this._getBaseURL(url);var wikiURL=xml.documentElement.getAttribute("wiki-url");var wikiSection=xml.documentElement.getAttribute("wiki-section");var dateTimeFormat=xml.documentElement.getAttribute("date-time-format");var parseDateTimeFunction=this._events.getUnit().getParser(dateTimeFormat);var node=xml.documentElement.firstChild;var added=false;while(node!=null){if(node.nodeType==1){var description="";if(node.firstChild!=null&&node.firstChild.nodeType==3){description=node.!
 firstChild.nodeValue;}
-var evt=new Timeline.DefaultEventSource.Event(parseDateTimeFunction(node.getAttribute("start")),parseDateTimeFunction(node.getAttribute("end")),parseDateTimeFunction(node.getAttribute("latestStart")),parseDateTimeFunction(node.getAttribute("earliestEnd")),node.getAttribute("isDuration")!="true",node.getAttribute("title"),description,this._resolveRelativeURL(node.getAttribute("image"),base),this._resolveRelativeURL(node.getAttribute("link"),base),this._resolveRelativeURL(node.getAttribute("icon"),base),node.getAttribute("color"),node.getAttribute("textColor"));evt._node=node;evt.getProperty=function(name){return this._node.getAttribute(name);};evt.setWikiInfo(wikiURL,wikiSection);this._events.add(evt);added=true;}
-node=node.nextSibling;}
-if(added){this._fire("onAddMany",[]);}};Timeline.DefaultEventSource.prototype.loadJSON=function(data,url){var base=this._getBaseURL(url);var added=false;if(data&&data.events){var wikiURL=("wikiURL"in data)?data.wikiURL:null;var wikiSection=("wikiSection"in data)?data.wikiSection:null;var dateTimeFormat=("dateTimeFormat"in data)?data.dateTimeFormat:null;var parseDateTimeFunction=this._events.getUnit().getParser(dateTimeFormat);for(var i=0;i<data.events.length;i++){var event=data.events[i];var evt=new Timeline.DefaultEventSource.Event(parseDateTimeFunction(event.start),parseDateTimeFunction(event.end),parseDateTimeFunction(event.latestStart),parseDateTimeFunction(event.earliestEnd),event.isDuration||false,event.title,event.description,this._resolveRelativeURL(event.image,base),this._resolveRelativeURL(event.link,base),this._resolveRelativeURL(event.icon,base),event.color,event.textColor);evt._obj=event;evt.getProperty=function(name){return this._obj[name];};evt.setWikiInfo(wi!
 kiURL,wikiSection);this._events.add(evt);added=true;}}
-if(added){this._fire("onAddMany",[]);}};Timeline.DefaultEventSource.prototype.loadSPARQL=function(xml,url){var base=this._getBaseURL(url);var dateTimeFormat='iso8601';var parseDateTimeFunction=this._events.getUnit().getParser(dateTimeFormat);if(xml==null){return;}
-var node=xml.documentElement.firstChild;while(node!=null&&(node.nodeType!=1||node.nodeName!='results')){node=node.nextSibling;}
-var wikiURL=null;var wikiSection=null;if(node!=null){wikiURL=node.getAttribute("wiki-url");wikiSection=node.getAttribute("wiki-section");node=node.firstChild;}
-var added=false;while(node!=null){if(node.nodeType==1){var bindings={};var binding=node.firstChild;while(binding!=null){if(binding.nodeType==1&&binding.firstChild!=null&&binding.firstChild.nodeType==1&&binding.firstChild.firstChild!=null&&binding.firstChild.firstChild.nodeType==3){bindings[binding.getAttribute('name')]=binding.firstChild.firstChild.nodeValue;}
-binding=binding.nextSibling;}
-if(bindings["start"]==null&&bindings["date"]!=null){bindings["start"]=bindings["date"];}
-var evt=new Timeline.DefaultEventSource.Event(parseDateTimeFunction(bindings["start"]),parseDateTimeFunction(bindings["end"]),parseDateTimeFunction(bindings["latestStart"]),parseDateTimeFunction(bindings["earliestEnd"]),bindings["isDuration"]!="true",bindings["title"],bindings["description"],this._resolveRelativeURL(bindings["image"],base),this._resolveRelativeURL(bindings["link"],base),this._resolveRelativeURL(bindings["icon"],base),bindings["color"],bindings["textColor"]);evt._bindings=bindings;evt.getProperty=function(name){return this._bindings[name];};evt.setWikiInfo(wikiURL,wikiSection);this._events.add(evt);added=true;}
-node=node.nextSibling;}
-if(added){this._fire("onAddMany",[]);}};Timeline.DefaultEventSource.prototype.add=function(evt){this._events.add(evt);this._fire("onAddOne",[evt]);};Timeline.DefaultEventSource.prototype.addMany=function(events){for(var i=0;i<events.length;i++){this._events.add(events[i]);}
-this._fire("onAddMany",[]);};Timeline.DefaultEventSource.prototype.clear=function(){this._events.removeAll();this._fire("onClear",[]);};Timeline.DefaultEventSource.prototype.getEventIterator=function(startDate,endDate){return this._events.getIterator(startDate,endDate);};Timeline.DefaultEventSource.prototype.getAllEventIterator=function(){return this._events.getAllIterator();};Timeline.DefaultEventSource.prototype.getCount=function(){return this._events.getCount();};Timeline.DefaultEventSource.prototype.getEarliestDate=function(){return this._events.getEarliestDate();};Timeline.DefaultEventSource.prototype.getLatestDate=function(){return this._events.getLatestDate();};Timeline.DefaultEventSource.prototype._fire=function(handlerName,args){for(var i=0;i<this._listeners.length;i++){var listener=this._listeners[i];if(handlerName in listener){try{listener[handlerName].apply(listener,args);}catch(e){Timeline.Debug.exception(e);}}}};Timeline.DefaultEventSource.prototype._getBaseUR!
 L=function(url){if(url.indexOf("://")<0){var url2=this._getBaseURL(document.location.href);if(url.substr(0,1)=="/"){url=url2.substr(0,url2.indexOf("/",url2.indexOf("://")+3))+url;}else{url=url2+url;}}
-var i=url.lastIndexOf("/");if(i<0){return"";}else{return url.substr(0,i+1);}};Timeline.DefaultEventSource.prototype._resolveRelativeURL=function(url,base){if(url==null||url==""){return url;}else if(url.indexOf("://")>0){return url;}else if(url.substr(0,1)=="/"){return base.substr(0,base.indexOf("/",base.indexOf("://")+3))+url;}else{return base+url;}};Timeline.DefaultEventSource.Event=function(start,end,latestStart,earliestEnd,instant,text,description,image,link,icon,color,textColor){this._id="e"+Math.floor(Math.random()*1000000);this._instant=instant||(end==null);this._start=start;this._end=(end!=null)?end:start;this._latestStart=(latestStart!=null)?latestStart:(instant?this._end:this._start);this._earliestEnd=(earliestEnd!=null)?earliestEnd:(instant?this._start:this._end);this._text=Timeline.HTML.deEntify(text);this._description=Timeline.HTML.deEntify(description);this._image=(image!=null&&image!="")?image:null;this._link=(link!=null&&link!="")?link:null;this._icon=(icon!=!
 null&&icon!="")?icon:null;this._color=(color!=null&&color!="")?color:null;this._textColor=(textColor!=null&&textColor!="")?textColor:null;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;},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;},getProperty:function(name){return null;},getWikiURL:function(){return this._wikiURL;},getWikiSection:fun!
 ction(){return this._wikiSection;},setWikiInfo:function(wikiUR!
 L,wikiSe
ction){this._wikiURL=wikiURL;this._wikiSection=wikiSection;},fillDescription:function(elmt){elmt.innerHTML=this._description;},fillWikiInfo:function(elmt){if(this._wikiURL!=null&&this._wikiSection!=null){var wikiID=this.getProperty("wikiID");if(wikiID==null||wikiID.length==0){wikiID=this.getText();}
-wikiID=wikiID.replace(/\s/g,"_");var url=this._wikiURL+this._wikiSection.replace(/\s/g,"_")+"/"+wikiID;var a=document.createElement("a");a.href=url;a.target="new";a.innerHTML=Timeline.strings[Timeline.Platform.clientLocale].wikiLinkLabel;elmt.appendChild(document.createTextNode("["));elmt.appendChild(a);elmt.appendChild(document.createTextNode("]"));}else{elmt.style.display="none";}},fillTime:function(elmt,labeller){if(this._instant){if(this.isImprecise()){elmt.appendChild(elmt.ownerDocument.createTextNode(labeller.labelPrecise(this._start)));elmt.appendChild(elmt.ownerDocument.createElement("br"));elmt.appendChild(elmt.ownerDocument.createTextNode(labeller.labelPrecise(this._end)));}else{elmt.appendChild(elmt.ownerDocument.createTextNode(labeller.labelPrecise(this._start)));}}else{if(this.isImprecise()){elmt.appendChild(elmt.ownerDocument.createTextNode(labeller.labelPrecise(this._start)+" ~ "+labeller.labelPrecise(this._latestStart)));elmt.appendChild(elmt.ownerDocument.c!
 reateElement("br"));elmt.appendChild(elmt.ownerDocument.createTextNode(labeller.labelPrecise(this._earliestEnd)+" ~ "+labeller.labelPrecise(this._end)));}else{elmt.appendChild(elmt.ownerDocument.createTextNode(labeller.labelPrecise(this._start)));elmt.appendChild(elmt.ownerDocument.createElement("br"));elmt.appendChild(elmt.ownerDocument.createTextNode(labeller.labelPrecise(this._end)));}}},fillInfoBubble:function(elmt,theme,labeller){var doc=elmt.ownerDocument;var title=this.getText();var link=this.getLink();var image=this.getImage();if(image!=null){var img=doc.createElement("img");img.src=image;theme.event.bubble.imageStyler(img);elmt.appendChild(img);}
-var divTitle=doc.createElement("div");var textTitle=doc.createTextNode(title);if(link!=null){var a=doc.createElement("a");a.href=link;a.appendChild(textTitle);divTitle.appendChild(a);}else{divTitle.appendChild(textTitle);}
-theme.event.bubble.titleStyler(divTitle);elmt.appendChild(divTitle);var divBody=doc.createElement("div");this.fillDescription(divBody);theme.event.bubble.bodyStyler(divBody);elmt.appendChild(divBody);var divTime=doc.createElement("div");this.fillTime(divTime,labeller);theme.event.bubble.timeStyler(divTime);elmt.appendChild(divTime);var divWiki=doc.createElement("div");this.fillWikiInfo(divWiki);theme.event.bubble.wikiStyler(divWiki);elmt.appendChild(divWiki);}};
-
-/* themes.js */
-
-Timeline.ClassicTheme=new Object();Timeline.ClassicTheme.implementations=[];Timeline.ClassicTheme.create=function(locale){if(locale==null){locale=Timeline.Platform.getDefaultLocale();}
-var f=Timeline.ClassicTheme.implementations[locale];if(f==null){f=Timeline.ClassicTheme._Impl;}
-return new f();};Timeline.ClassicTheme._Impl=function(){this.firstDayOfWeek=0;this.ether={backgroundColors:["#EEE","#DDD","#CCC","#AAA"],highlightColor:"white",highlightOpacity:50,interval:{line:{show:true,color:"#aaa",opacity:25},weekend:{color:"#FFFFE0",opacity:30},marker:{hAlign:"Bottom",hBottomStyler:function(elmt){elmt.className="timeline-ether-marker-bottom";},hBottomEmphasizedStyler:function(elmt){elmt.className="timeline-ether-marker-bottom-emphasized";},hTopStyler:function(elmt){elmt.className="timeline-ether-marker-top";},hTopEmphasizedStyler:function(elmt){elmt.className="timeline-ether-marker-top-emphasized";},vAlign:"Right",vRightStyler:function(elmt){elmt.className="timeline-ether-marker-right";},vRightEmphasizedStyler:function(elmt){elmt.className="timeline-ether-marker-right-emphasized";},vLeftStyler:function(elmt){elmt.className="timeline-ether-marker-left";},vLeftEmphasizedStyler:function(elmt){elmt.className="timeline-ether-marker-left-emphasized";}}}};th!
 is.event={track:{offset:0.5,height:1.5,gap:0.5},instant:{icon:Timeline.urlPrefix+"images/dull-blue-circle.png",lineColor:"#58A0DC",impreciseColor:"#58A0DC",impreciseOpacity:20,showLineForNoText:true},duration:{color:"#58A0DC",opacity:100,impreciseColor:"#58A0DC",impreciseOpacity:20},label:{insideColor:"white",outsideColor:"black",width:200},highlightColors:["#FFFF00","#FFC000","#FF0000","#0000FF"],bubble:{width:250,height:125,titleStyler:function(elmt){elmt.className="timeline-event-bubble-title";},bodyStyler:function(elmt){elmt.className="timeline-event-bubble-body";},imageStyler:function(elmt){elmt.className="timeline-event-bubble-image";},wikiStyler:function(elmt){elmt.className="timeline-event-bubble-wiki";},timeStyler:function(elmt){elmt.className="timeline-event-bubble-time";}}};};
-
-/* units.js */
-
-Timeline.NativeDateUnit=new Object();Timeline.NativeDateUnit.createLabeller=function(locale,timeZone){return new Timeline.GregorianDateLabeller(locale,timeZone);};Timeline.NativeDateUnit.makeDefaultValue=function(){return new Date();};Timeline.NativeDateUnit.cloneValue=function(v){return new Date(v.getTime());};Timeline.NativeDateUnit.getParser=function(format){if(typeof format=="string"){format=format.toLowerCase();}
-return(format=="iso8601"||format=="iso 8601")?Timeline.DateTime.parseIso8601DateTime:Timeline.DateTime.parseGregorianDateTime;};Timeline.NativeDateUnit.parseFromObject=function(o){return Timeline.DateTime.parseGregorianDateTime(o);};Timeline.NativeDateUnit.toNumber=function(v){return v.getTime();};Timeline.NativeDateUnit.fromNumber=function(n){return new Date(n);};Timeline.NativeDateUnit.compare=function(v1,v2){var n1,n2;if(typeof v1=="object"){n1=v1.getTime();}else{n1=Number(v1);}
-if(typeof v2=="object"){n2=v2.getTime();}else{n2=Number(v2);}
-return n1-n2;};Timeline.NativeDateUnit.earlier=function(v1,v2){return Timeline.NativeDateUnit.compare(v1,v2)<0?v1:v2;};Timeline.NativeDateUnit.later=function(v1,v2){return Timeline.NativeDateUnit.compare(v1,v2)>0?v1:v2;};Timeline.NativeDateUnit.change=function(v,n){return new Date(v.getTime()+n);};
\ No newline at end of file

Deleted: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline-api.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline-api.js	2009-11-30 14:52:25 UTC (rev 45756)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline-api.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -1,244 +0,0 @@
-/*==================================================
- *  Timeline API
- *
- *  This file will load all the Javascript files
- *  necessary to make the standard timeline work.
- *  It also detects the default locale.
- *
- *  Include this file in your HTML file as follows:
- *
- *    <script src="http://simile.mit.edu/timeline/api/scripts/timeline-api.js" type="text/javascript"></script>
- *
- *==================================================
- */
- 
-var Timeline = new Object();
-Timeline.Platform = new Object();
-    /*
-        HACK: We need these 2 things here because we cannot simply append
-        a <script> element containing code that accesses Timeline.Platform
-        to initialize it because IE executes that <script> code first
-        before it loads timeline.js and util/platform.js.
-    */
-
-(function() {
-    var bundle = true;
-    var javascriptFiles = [
-        "timeline.js",
-        
-        "util/platform.js",
-        "util/debug.js",
-        "util/xmlhttp.js",
-        "util/dom.js",
-        "util/graphics.js",
-        "util/date-time.js",
-        "util/data-structure.js",
-        "util/html.js",
-        
-        "units.js",
-        "themes.js",
-        "ethers.js",
-        "ether-painters.js",
-        "labellers.js",
-        "sources.js",
-        "layouts.js",
-        "painters.js",
-        "decorators.js"
-    ];
-    var cssFiles = [
-        "timeline.css",
-        "ethers.css",
-        "events.css"
-    ];
-    
-    var localizedJavascriptFiles = [
-        "timeline.js",
-        "labellers.js"
-    ];
-    var localizedCssFiles = [
-    ];
-    
-    // ISO-639 language codes, ISO-3166 country codes (2 characters)
-    var supportedLocales = [
-        "cs",       // Czech
-        "de",       // German
-        "en",       // English
-        "es",       // Spanish
-        "fr",       // French
-        "it",       // Italian
-        "ru",       // Russian
-        "se",       // Swedish
-        "vi",       // Vietnamese
-        "zh"        // Chinese
-    ];
-    
-    try {
-        var desiredLocales = [ "en" ];
-        var defaultServerLocale = "en";
-        
-        var parseURLParameters = function(parameters) {
-            var params = parameters.split("&");
-            for (var p = 0; p < params.length; p++) {
-                var pair = params[p].split("=");
-                if (pair[0] == "locales") {
-                    desiredLocales = desiredLocales.concat(pair[1].split(","));
-                } else if (pair[0] == "defaultLocale") {
-                    defaultServerLocale = pair[1];
-                } else if (pair[0] == "bundle") {
-                    bundle = pair[1] != "false";
-                }
-            }
-        };
-        
-        (function() {
-            if (typeof Timeline_urlPrefix == "string") {
-                Timeline.urlPrefix = Timeline_urlPrefix;
-                if (typeof Timeline_parameters == "string") {
-                    parseURLParameters(Timeline_parameters);
-                }
-            } else {
-                var heads = document.documentElement.getElementsByTagName("head");
-                for (var h = 0; h < heads.length; h++) {
-                    var scripts = heads[h].getElementsByTagName("script");
-                    for (var s = 0; s < scripts.length; s++) {
-                        var url = scripts[s].src;
-                        var i = url.indexOf("timeline-api.js");
-                        if (i >= 0) {
-                            Timeline.urlPrefix = url.substr(0, i);
-                            var q = url.indexOf("?");
-                            if (q > 0) {
-                                parseURLParameters(url.substr(q + 1));
-                            }
-                            return;
-                        }
-                    }
-                }
-                throw new Error("Failed to derive URL prefix for Timeline API code files");
-            }
-        })();
-        
-        var includeJavascriptFiles;
-        var includeCssFiles;
-        if ("SimileAjax" in window) {
-            includeJavascriptFiles = function(urlPrefix, filenames) {
-                SimileAjax.includeJavascriptFiles(document, urlPrefix, filenames);
-            }
-            includeCssFiles = function(urlPrefix, filenames) {
-                SimileAjax.includeCssFiles(document, urlPrefix, filenames);
-            }
-        } else {
-            var getHead = function() {
-                return document.getElementsByTagName("head")[0];
-            };
-            var includeJavascriptFile = function(url) {
-                if (document.body == null) {
-                    try {
-                        document.write("<script src='" + url + "' type='text/javascript'></script>");
-                        return;
-                    } catch (e) {
-                        // fall through
-                    }
-                }
-                
-                var script = document.createElement("script");
-                script.type = "text/javascript";
-                script.language = "JavaScript";
-                script.src = url;
-                getHead().appendChild(script);
-            };
-            var includeCssFile = function(url) {
-                if (document.body == null) {
-                    try {
-                        document.write("<link rel='stylesheet' href='" + url + "' type='text/css'/>");
-                        return;
-                    } catch (e) {
-                        // fall through
-                    }
-                }
-                
-                var link = document.createElement("link");
-                link.setAttribute("rel", "stylesheet");
-                link.setAttribute("type", "text/css");
-                link.setAttribute("href", url);
-                getHead().appendChild(link);
-            }
-            
-            includeJavascriptFiles = function(urlPrefix, filenames) {
-                for (var i = 0; i < filenames.length; i++) {
-                    includeJavascriptFile(urlPrefix + filenames[i]);
-                }
-            };
-            includeCssFiles = function(urlPrefix, filenames) {
-                for (var i = 0; i < filenames.length; i++) {
-                    includeCssFile(urlPrefix + filenames[i]);
-                }
-            };
-        }
-        
-        /*
-         *  Include non-localized files
-         */
-        if (bundle) {
-            includeJavascriptFiles(Timeline.urlPrefix, [ "bundle.js" ]);
-            includeCssFiles(Timeline.urlPrefix, [ "bundle.css" ]);
-        } else {
-            includeJavascriptFiles(Timeline.urlPrefix + "scripts/", javascriptFiles);
-            includeCssFiles(Timeline.urlPrefix + "styles/", cssFiles);
-        }
-        
-        /*
-         *  Include localized files
-         */
-        var loadLocale = [];
-        loadLocale[defaultServerLocale] = true;
-        
-        var tryExactLocale = function(locale) {
-            for (var l = 0; l < supportedLocales.length; l++) {
-                if (locale == supportedLocales[l]) {
-                    loadLocale[locale] = true;
-                    return true;
-                }
-            }
-            return false;
-        }
-        var tryLocale = function(locale) {
-            if (tryExactLocale(locale)) {
-                return locale;
-            }
-            
-            var dash = locale.indexOf("-");
-            if (dash > 0 && tryExactLocale(locale.substr(0, dash))) {
-                return locale.substr(0, dash);
-            }
-            
-            return null;
-        }
-        
-        for (var l = 0; l < desiredLocales.length; l++) {
-            tryLocale(desiredLocales[l]);
-        }
-        
-        var defaultClientLocale = defaultServerLocale;
-        var defaultClientLocales = ("language" in navigator ? navigator.language : navigator.browserLanguage).split(";");
-        for (var l = 0; l < defaultClientLocales.length; l++) {
-            var locale = tryLocale(defaultClientLocales[l]);
-            if (locale != null) {
-                defaultClientLocale = locale;
-                break;
-            }
-        }
-        
-        for (var l = 0; l < supportedLocales.length; l++) {
-            var locale = supportedLocales[l];
-            if (loadLocale[locale]) {
-                includeJavascriptFiles(Timeline.urlPrefix + "scripts/l10n/" + locale + "/", localizedJavascriptFiles);
-                includeCssFiles(Timeline.urlPrefix + "styles/l10n/" + locale + "/", localizedCssFiles);
-            }
-        }
-        
-        Timeline.Platform.serverLocale = defaultServerLocale;
-        Timeline.Platform.clientLocale = defaultClientLocale;
-    } catch (e) {
-        alert(e);
-    }
-})();
\ No newline at end of file

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/CHANGES.txt
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/CHANGES.txt	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/CHANGES.txt	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,263 @@
+CHANGES.txt
+
+Version 2.3.0
+* Added test 5, really long labels, to test example page rev 1601, LarryK
+* Added tags/latest, a copy of the latest tagged release. Will be used for
+  referring to examples and other source files from the wiki. This way
+  the wiki references will not need to be updated for each release.
+* Added test example page for trying and testing event attributes
+  src/webapp/examples/test_example/test.html -- LarryK rev 1598
+* Fixed issues caused when events don't have title attribute.
+  Issue tracker #20 -- LarryK rev 1598
+* Event tape heights now use theme.event.tape.height. Better than using css since:
+  theme.event.track.height & theme.event.tape.height need to work with each other.
+  It is easier and clearer to set both in the same place (the theme), rather than
+  one in the theme and one in the css. This is a breaking change if you were 
+  setting the height in the css. People were having problems with this in the
+  mailing list.
+
+  Further note about this change since it is undoing someone's work: The tape height
+  on the screen was defined purely by css. But the tape height from the theme was
+  still being used (to some extent) in the sw. In particular, the Theme's tape height
+  is returned by function _paintEventTape in file original-painter. It doesn't make
+  sense for the theme's tape height to be returned by the function when the 
+  actual height of the tape was being controlled in the css file.
+  -- LarryK rev 1623
+* Un-commented-out 
+  div.style.background = color;
+  from Timeline.OriginalEventPainter.prototype._createHighlightDiv function
+  to re-enable event highlighting
+  See http://groups.google.com/group/simile-widgets/browse_thread/thread/acbffeaa662722f8
+  -- Hunt Culver and LarryK rev 1628
+* Bullet-proofing: Fix for issue 34. The Monet example had a latestStart date
+  after the event's earliestEnd. This caused the tape width to be negative. This
+  caused an exception when setting the width value, but only on IE. Fix: changed
+  sources.js to sanity check dates and append error messages to event title if
+  a problem is detected. Updated test example to have events with bad dates.
+  Thank you to Tim Dimsdale for noting that the example didn't run in Monet.
+  -- LarryK rev 1629
+* Tape color for overview painter now set. Uses following precedence: event's color attribute, 
+  theme.event.duration.color or css color for class timeline-small-event-tape
+  See issue 16 -- LarryK rev 1630
+* Update to send css class to computeSize. Fixes:
+  issue 13 - TIMELINE: Event labels wrap on FF 3 on Mac
+  issue 30 - TIMELINE : Event labels wrap when 'classname' attribute is added and text is bold
+  NOTE: fixes don't work unless latest Simile-Ajax library is used. Will be
+  automatically used after it is released.
+  -- LarryK rev 1638
+* Added and revised autoWidth. AutoWidth automatically calculates and sets the 'width' for 
+  the Timeline's bands and for the overall Timeline. The 'width,' for horizontal
+  Timelines, is actually the 'height' style of the various divs.
+  
+  The event painters do not calculate the tracks of all the events when they are loaded,
+  the event tracks are only calculated when they are viewed or are about to be viewed.
+  In the same way, the needed width is re-calculated whenever a new set of events
+  are viewed or are about to be viewed. If the new needed width is greater than the
+  current width, the increase is animated. See the example.
+  
+  To use autoWidth:
+  1) You will be modifying the classic theme's settings in your html file. 
+  2) Set the theme's autoWidth to true
+  3) Optionally update the theme's autoWidthAnimationTime setting.
+  4) Optionally update the autoWidthMargin settings in the Theme. The margin, per
+     band, is used to set how close the bottom of the lowest track is to the 
+     edge of the band's div. The units are total track width. There are two settings,
+     one for overview bands, the second for others.
+  5) After you have loaded your events, call tl.finishedEventLoading() where tl is the 
+     Timeline object returned from Timeline.create. 
+  Demo: examples/test_example2/test_example2.html
+  -- LarryK rev 1630, 1643
+* Updated License to refer to JQuery -- LarryK rev 1643 
+* Added License file to zip files -- LarryK rev 1643
+* Changed example files to refer to Google Simile directory. -- LarryK rev 1643
+* Fixed: autoWidth wasn't working on Safari/Windows. -- LarryK rev 1644
+* Fixed issue 33: added event attribute durationEvent. 
+  Values of isDuration and durationEvent must be true or false for JSON and
+  "true" or "false" for XML and SPARCL. Otherwise results are indeterminate.
+  This can be a breaking change for event sources that were using values
+  other than the above. -- LarryK rev 1654
+* Added event attribute trackNum for developers to specify a track number.
+  See issue 26. -- LarryK rev 1654
+* Improve autoWidth for overview bands: calculation should include overviewTrack.offset
+  -- LarryK rev 1655
+* Add English day names to en locale -- LarryK rev 1656
+* Rebuilt bundle files with new ver of Ajax lib. -- LarryK rev 1658
+* Split band.js out of timeline.js. Assign event IDs sequentially rather than using 
+  random number generator. Add formated ids to event tapes, labels, icons to
+  enable a single listener to retrieve state from the id. Added support functions
+  event-utils.js.  -- LarryK rev 1659
+* Highlighting testing using Religions example. Restored event highlight colors to theme
+  to fix.  -- LarryK rev 1659
+* New feature: When highlighting events on a Timeline, default is to highlight the event's
+  icon or tape. If theme.event.highlightLabelBackground is true, the label's background
+  will also be changed to the highlight color. See the Jewish timeline example.
+   -- LarryK rev 1659
+* Fixed issue 31, added event's classname attribute to div for icons too.
+   -- LarryK rev 1659
+* event's tape and highlight div's need index num in id since there can be more
+  than one tape div per event. -- And id must be unique. -- LarryK rev 1661
+* Added EventPaintListener hook to original-painter. Enables clients to hook into
+  painting life cycle. See original-painter.js. -- LarryK rev 1661
+* Changed calculation of labelTop for paintImpreciseInstantEvent to be same 
+  calculation as in paintPreciseDurationEvent in original-painter.
+  Problem was that label was too close to tape (and would sometimes overlap)
+  for Imprecise Instant Events. Test example 2, imprecise instant event at
+  year 4400 (with thick tape) looks much better with the change.
+  -- LarryK rev 1661
+* Added  track.offset setting to original-painter. Enables specific
+  control over top margin of band event painting. Very useful when a
+  Timeline has multiple event bands or a pseudo event band that is just
+  used for labeling above an event band.  -- LarryK rev 1661
+* Added instant.impreciseIconMargin to original-painter. Enables specific
+  control over top margin of icon (margin between bottom of tape and 
+  top of icon). Only used if the event has a tape and an icon.
+  -- LarryK rev 1661
+* Added band arg to eventPaintListener listeners -- LarryK rev 1662
+* Reworked autoWidth to stop recursive call to painter -- LarryK rev 1663
+* Further autoWidth work to have Timeline monitor scroll of bands rather
+  than having bands call up into Timeline. Eliminated sleep for 
+  smoother scrolling with autoWidth -- LarryK rev 1664
+* Use new maxHeight param from SimileAjax for setting maxHeight of 
+  bubbles. Added theme.bubble.maxHeight with default of 0 (no maximum).
+  Old theme param of bubble.height is not used within source of
+  Timeline, so removed it. -- LarryK rev 1667
+* Span decorator improvements: now can have null labels. New param of 
+  inFront. If true, then the span is in front of all layers but the events.
+  Now uses color attribute if present, else css. -- LarryK rev 1677
+* Span point decorator: Now uses color attribute if present, else css.
+   -- LarryK rev 1677
+* Timeline start and end feature: Optionally add theme.timeline_start,
+  theme.timeline_stop to disable movement of the Timeline beyond the 
+  start and/or stop. The setting affects the entire Timeline and must
+  be set in the theme of the first band. Depending on the relative
+  resolutions of the bands, different amounts of the various bands 
+  will be seen when at a start or stop edge, depending on which band
+  was being moved and by how much. In addition to setting the timeline_start
+  and _stop, you may want to add span decorators to cover up the 
+  unused parts of the Timeline. See example2. Note that the Timeline
+  will not be movable past a start/stop edge but it can be initially
+  loaded beyond the edges by using the date parameter of the Band Info.
+  -- LarryK rev 1677
+  
+* When you run run.bat, we now serve
+  http://localhost:9999/ajax/api - from src/webapp/ajax/api/
+  http://localhost:9999/timeline - from src/webapp/site/
+  http://localhost:9999/timeline/api - from src/webapp/timeline/api/
+  -- David H rev 1705
+
+* PointHighlightDecorator now uses the width parameter, not CSS.
+  Issue is that the Point Highlight Decorator is centered on the point in time
+  being decorated. So the JS needs to calculate based on the width--therefore
+  don't use CSS for width. Thanks to Christian Thiemann.
+* Revised all examples to use new directory layout. 
+  -- LarryK rev 1729
+* Added CompactPainter, which allows for large images and can render
+  image stacks. See the new compact-painter example.
+  -- David H rev 1759
+* Added Timeline.version string in timeline.js. Issue 60.
+  Added Timeline.writeVersion -- a helper that writes out the 
+  current version. Updated examples to use it.
+  Updated build.xml to include Ajax new styles directory.
+  Fixed overview painter to use event's classname attribute if present.
+  Add a test for this to test-example.
+  -- LarryK rev 1813
+* Fixed build.xml to not include .bak files.
+  Moved contents of /site up one level into /webapp -- per David H.
+  Fixed library references in all examples to match new dir layout.
+  -- LarryK rev 1814
+* Added src/misc/fix_svn_props.txt -- used to correctly set props on
+  example files. Enables them to be run in browser from svn repo. 
+  Changed timeline-api to use MIT Simile Ajax v 2.2.0.
+  Changed version to 2.3.0 in anticipation of the release.
+  -- LarryK rev 1821
+* Also need to set mime type to be text/xml for xml src files.
+  -- LarryK rev 1822
+* Bug fix: misspelled className as classname -- LarryK rev 1823
+* Fixed IE-only bug. Chokes on <span id='x' />. Changed to <span id='x'></span> and all is well.
+  Another IE only bug: double class name selectors don't work on 
+  IE. Eg <div class 'foo bar' /> should be selected with css selector .foo.bar (or .bar.foo) 
+  Works everywhere but ie. So added label-, icon-, tape- to className plus className by
+  itself in original_painter. Additional prefixes: highlight- for event-highlight,
+  small- for overview painter. Problem was caught by test-example.
+  -- LarryK rev 1824
+* Updated jetty config file to serve 
+  http://localhost:9999/timeline - from src/webapp/
+  Revised Release Notes for release.
+  -- LarryK rev 1825
+* Changed copyright link to be http://code.google.com/p/simile-widgets/
+  -- LarryK rev 1826
+
+  
+
+    
+Version 2.2.0 -- September 23, 2008
+* Prep for 2.2.0: updated RELEASE_NOTES -- LarryK rev 1593
+* Added comments per MPS in timeline-api.js that bundle=true
+  is needed unless you've installed full source
+  -- LarryK rev 1593
+* Added comments to original-painter.js -- LarryK rev 1593
+* Re-built to pick up new simile-ajax that includes jquery 1.2.6
+  -- eob rev 1589
+  
+Version 2.1.0 -- September 19, 2008
+* Prep for 2.1.0: updated examples, readme. created RELEASE_NOTES LarryK
+* Added timeline_libraries.zip to build file. Removed install.sh
+  -- LarryK rev 1579  
+* Event attribute classname is added to the classnames for the event's label
+  and tape divs. Eg classname of 'hot_event' will result in div classes of
+  'timeline-event-label hot_event' and 'timeline-event-tape hot_event' for
+  the event's Timeline label and tape, respectively. Change is that classname
+  is now added to the tape's div. -- LarryK rev 1576
+* Re-worked function Timeline.DefaultEventSource.Event in sources.js to use
+  named arguments (via a hash/anon object) rather than positional arguments.
+  19 positional arguments are too many! Now much easier and cleaner to add
+  additional event attributes.  
+  Note: this is a breaking change for anyone who calls Event directly. But since
+  the wiki page about dynamic events recommends calling loadXML, etc, I
+  hoping that this won't cause anyone much pain. And the new format is
+  MUCH easier to use as a developer.  -- LarryK rev 1576
+* New event attribute eventID is a 'cookie' attribute that is stored, not used
+  by the Timeline library. If you write a custom labeller or event bubble
+  filler, the attribute can be obtained using the getEventID() method on the
+  event object.  -- LarryK rev 1576
+* New event attribute caption superceedes hoverText. hoverText is deprecated.
+  For now, it will live on for backwards compatibility.  -- LarryK rev 1576
+* Event attributes barImage and barRepeat renamed to tapeImage and tapeRepeat.
+  No backwards compatibility. (Breaking change from previous checkin)
+   -- LarryK rev 1576
+* Fix: Event color attribute now properly sets the background color of the bar.
+  Note that events (where isDuration = true) have opacity applied. See 
+  http://code.google.com/p/simile-widgets/wiki/Timeline_EventSources (LarryK) rev 1569
+* New event attribute barImage sets the event's bar div background-image.
+  New event attribute barRepeat sets the background-repeat. Default is 'repeat'
+  Cubism example updated to demonstrate color, textColor, barImage, barRepeat and
+  hoverText attributes. For a handy stripe generator, see
+  http://www.stripegenerator.com (LarryK) rev 1569
+* Fix: Event attribute hoverText was not properly processed by JSON or SPARCL sources
+  (LarryK) rev 1569
+* Build process now creates timeline_source.zip which has source, examples and the
+  jetty web server. Enables easy access with for folks without svn. (LarryK) rev 1569
+* Added copy of JFK timeline in examples with Dutch locale set.
+  (LarryK) rev 1560
+* Added forceLocale parameter to timeline-api.js to force a locale for testing
+  (LarryK) rev 1560
+* Added Dutch localization (Marko) rev 1560
+* Added mouse-wheel scroll. Mouse-wheel acts as left and right arrow keys. Theme
+  controls whether the mouse-wheel scrolls, zooms or moves the page (if the page
+  has a scroll-bar). Docs: see webapp/docs/create-timelines.html
+  (LarryK) rev 1553
+* Additional support in timeline-api for using your own server for Timeline
+  libraries (LarryK) rev 1553
+* Separation of javascript and css (gm.marko) rev 1326
+* Added mouse-wheel zoom functionality. It operates on a per-band basis, keeping
+  the date under the mouse cursor static while the timeline around it scales. 
+  Zoom is specified as user-defined steps. Documentation and a working demo in 
+  the webapp/docs/create-timelines.html page (halcyon1981) rev 1418
+* Added support for 'hoverText' - title pop-ups on Exhibit-based timelines
+  (Vincent.Vazzo) rev 1411
+
+
+Version 2.0
+* Software changes
+* Moved svn repository to Google code
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/LICENSE.txt
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/LICENSE.txt	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/LICENSE.txt	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,39 @@
+/*
+ *  (c) Copyright The SIMILE Project 2006. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Note: JQuery, www.jquery.com is included in the Ajax section of this
+ *       distribution. It is covered by its own license:  
+ *
+ *       Copyright (c) 2008 John Resig (jquery.com)
+ *       Dual licensed under the MIT (MIT-LICENSE.txt)
+ *       and GPL (GPL-LICENSE.txt) licenses.
+ */
+ 
+
+
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/README.txt
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/README.txt	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/README.txt	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,88 @@
+
+                                T I M E L I N E
+
+
+  What is this?
+  -------------
+
+  Timeline is a DHTML-based AJAXy timeline.
+
+
+  Running Timeline
+  ----------------
+
+  Timeline consists of static resources, Javascript libraries,
+  image files and css files. All you really need is to
+  serve those resources off a web server. Any web server will do.
+
+  Two ways to access the library
+  
+  1. Unzip either timeline_source.zip or timeline_libraries.zip into
+     a directory served by a webserver.
+     
+     timeline_source.zip includes complete source and example files. Use your
+     browser to see the examples at
+     .../timeline_directory/src/webapp
+     
+     timeline_libraries.zip is the minimum install of the bundled js libraries,
+     css and image files
+     
+  2. No web server? The timeline project includes a small webserver called
+     Jetty (use the timeline_source.zip file)
+     a) install the Java runtime from Sun
+     b) unzip timeline_source.zip to an install directory
+     c) Open a shell or command prompt to the install directory and type:
+  
+     [win32]> run
+     [unix/macosx]> chmod +x run; ./run
+
+     and then point your browser to
+  
+     http://127.0.0.1:9999/timeline/
+  
+
+  How do I customize Timeline?
+  ----------------------------
+
+  Refer to the Timeline web site at 
+  http://code.google.com/p/simile-widgets/
+
+  
+  Mailing List and Forum
+  ----------------------
+  
+  Join the community by joining the Google Group SIMILE Widgets
+  http://groups.google.com/group/simile-widgets/
+
+
+  Licensing and legal issues
+  --------------------------
+
+  Timeline is open source software and are licensed under the BSD license
+  located in the LICENSE.txt file located in the same directory as this very file
+  you are reading.
+
+
+
+  Credits
+  -------
+
+  This software was created by the SIMILE project and originally written
+  by the SIMILE development team (in alphabetical order):
+
+   - David François Huynh <dfhuynh at csail.mit.edu>
+
+
+
+
+                                --- o ---
+
+
+  Thanks for your interest.
+
+
+
+
+                                                        The SIMILE Project
+                                                      http://simile.mit.edu/
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/content/history.html
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/content/history.html	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/content/history.html	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,7 @@
+<html>
+<head>
+    <title>Dummy Page for Keeping Track of History</title>
+</head>
+<body>
+</body>
+</html>
\ No newline at end of file

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-down.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-down.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-up.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-arrow-point-up.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-bottom.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/bubble-top.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/close-button.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/close-button.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/copy.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/copy.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-bottom-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-bottom-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-bottom-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-bottom-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-top-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-top-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-top-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/images/message-top-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/scripts/signal.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/scripts/signal.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/scripts/signal.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,43 @@
+/*==================================================
+ *  This file is used to detect that all outstanding
+ *  javascript files have been loaded. You can put
+ *  a function reference into SimileAjax_onLoad
+ *  to have it executed once all javascript files
+ *  have loaded.
+ *==================================================
+ */
+(function() {
+    var substring = SimileAjax.urlPrefix + "scripts/signal.js";
+    var heads = document.documentElement.getElementsByTagName("head");
+    for (var h = 0; h < heads.length; h++) {
+        var node = heads[h].firstChild;
+        while (node != null) {
+            if (node.nodeType == 1 && node.tagName.toLowerCase() == "script") {
+                var url = node.src;
+                var i = url.indexOf(substring);
+                if (i >= 0) {
+                    heads[h].removeChild(node); // remove it so we won't hit it again
+
+                    var count = parseInt(url.substr(url.indexOf(substring) + substring.length + 1));
+                    SimileAjax.loadingScriptsCount -= count;
+                    if (SimileAjax.loadingScriptsCount == 0) {
+                        var f = null;
+                        if (typeof SimileAjax_onLoad == "string") {
+                            f = eval(SimileAjax_onLoad);
+                            SimileAjax_onLoad = null;
+                        } else if (typeof SimileAjax_onLoad == "function") {
+                            f = SimileAjax_onLoad;
+                            SimileAjax_onLoad = null;
+                        }
+                        
+                        if (f != null) {
+                            f();
+                        }
+                    }
+                    return;
+                }
+            }
+            node = node.nextSibling;
+        }
+    }
+})();

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-api.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-api.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-api.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,212 @@
+/*==================================================
+ *  Simile Ajax API
+ *
+ *  Include this file in your HTML file as follows:
+ *
+ *    <script src="http://simile.mit.edu/ajax/api/simile-ajax-api.js" type="text/javascript"></script>
+ *
+ *==================================================
+ */
+
+if (typeof SimileAjax == "undefined") {
+    var SimileAjax = {
+        loaded:                 false,
+        loadingScriptsCount:    0,
+        error:                  null,
+        params:                 { bundle:"true" }
+    };
+    
+    SimileAjax.Platform = new Object();
+        /*
+            HACK: We need these 2 things here because we cannot simply append
+            a <script> element containing code that accesses SimileAjax.Platform
+            to initialize it because IE executes that <script> code first
+            before it loads ajax.js and platform.js.
+        */
+        
+    var getHead = function(doc) {
+        return doc.getElementsByTagName("head")[0];
+    };
+    
+    SimileAjax.findScript = function(doc, substring) {
+        var heads = doc.documentElement.getElementsByTagName("head");
+        for (var h = 0; h < heads.length; h++) {
+            var node = heads[h].firstChild;
+            while (node != null) {
+                if (node.nodeType == 1 && node.tagName.toLowerCase() == "script") {
+                    var url = node.src;
+                    var i = url.indexOf(substring);
+                    if (i >= 0) {
+                        return url;
+                    }
+                }
+                node = node.nextSibling;
+            }
+        }
+        return null;
+    };
+    SimileAjax.includeJavascriptFile = function(doc, url, onerror, charset) {
+        onerror = onerror || "";
+        if (doc.body == null) {
+            try {
+                var q = "'" + onerror.replace( /'/g, '&apos' ) + "'"; // "
+                doc.write("<script src='" + url + "' onerror="+ q +
+                          (charset ? " charset='"+ charset +"'" : "") +
+                          " type='text/javascript'>"+ onerror + "</script>");
+                return;
+            } catch (e) {
+                // fall through
+            }
+        }
+
+        var script = doc.createElement("script");
+        if (onerror) {
+            try { script.innerHTML = onerror; } catch(e) {}
+            script.setAttribute("onerror", onerror);
+        }
+        if (charset) {
+            script.setAttribute("charset", charset);
+        }
+        script.type = "text/javascript";
+        script.language = "JavaScript";
+        script.src = url;
+        return getHead(doc).appendChild(script);
+    };
+    SimileAjax.includeJavascriptFiles = function(doc, urlPrefix, filenames) {
+        for (var i = 0; i < filenames.length; i++) {
+            SimileAjax.includeJavascriptFile(doc, urlPrefix + filenames[i]);
+        }
+        SimileAjax.loadingScriptsCount += filenames.length;
+        SimileAjax.includeJavascriptFile(doc, SimileAjax.urlPrefix + "scripts/signal.js?" + filenames.length);
+    };
+    SimileAjax.includeCssFile = function(doc, url) {
+        if (doc.body == null) {
+            try {
+                doc.write("<link rel='stylesheet' href='" + url + "' type='text/css'/>");
+                return;
+            } catch (e) {
+                // fall through
+            }
+        }
+        
+        var link = doc.createElement("link");
+        link.setAttribute("rel", "stylesheet");
+        link.setAttribute("type", "text/css");
+        link.setAttribute("href", url);
+        getHead(doc).appendChild(link);
+    };
+    SimileAjax.includeCssFiles = function(doc, urlPrefix, filenames) {
+        for (var i = 0; i < filenames.length; i++) {
+            SimileAjax.includeCssFile(doc, urlPrefix + filenames[i]);
+        }
+    };
+    
+    /**
+     * Append into urls each string in suffixes after prefixing it with urlPrefix.
+     * @param {Array} urls
+     * @param {String} urlPrefix
+     * @param {Array} suffixes
+     */
+    SimileAjax.prefixURLs = function(urls, urlPrefix, suffixes) {
+        for (var i = 0; i < suffixes.length; i++) {
+            urls.push(urlPrefix + suffixes[i]);
+        }
+    };
+
+    /**
+     * Parse out the query parameters from a URL
+     * @param {String} url    the url to parse, or location.href if undefined
+     * @param {Object} to     optional object to extend with the parameters
+     * @param {Object} types  optional object mapping keys to value types
+     *        (String, Number, Boolean or Array, String by default)
+     * @return a key/value Object whose keys are the query parameter names
+     * @type Object
+     */
+    SimileAjax.parseURLParameters = function(url, to, types) {
+        to = to || {};
+        types = types || {};
+        
+        if (typeof url == "undefined") {
+            url = location.href;
+        }
+        var q = url.indexOf("?");
+        if (q < 0) {
+            return to;
+        }
+        url = (url+"#").slice(q+1, url.indexOf("#")); // toss the URL fragment
+        
+        var params = url.split("&"), param, parsed = {};
+        var decode = window.decodeURIComponent || unescape;
+        for (var i = 0; param = params[i]; i++) {
+            var eq = param.indexOf("=");
+            var name = decode(param.slice(0,eq));
+            var old = parsed[name];
+            if (typeof old == "undefined") {
+                old = [];
+            } else if (!(old instanceof Array)) {
+                old = [old];
+            }
+            parsed[name] = old.concat(decode(param.slice(eq+1)));
+        }
+        for (var i in parsed) {
+            if (!parsed.hasOwnProperty(i)) continue;
+            var type = types[i] || String;
+            var data = parsed[i];
+            if (!(data instanceof Array)) {
+                data = [data];
+            }
+            if (type === Boolean && data[0] == "false") {
+                to[i] = false; // because Boolean("false") === true
+            } else {
+                to[i] = type.apply(this, data);
+            }
+        }
+        return to;
+    };
+
+    (function() {
+        var javascriptFiles = [
+            "jquery-1.2.6.min.js",
+            "platform.js",
+            "debug.js",
+            "xmlhttp.js",
+            "json.js",
+            "dom.js",
+            "graphics.js",
+            "date-time.js",
+            "string.js",
+            "html.js",
+            "data-structure.js",
+            "units.js",
+            
+            "ajax.js",
+            "history.js",
+            "window-manager.js"
+        ];
+        var cssFiles = [
+            "graphics.css"
+        ];
+        
+        if (typeof SimileAjax_urlPrefix == "string") {
+            SimileAjax.urlPrefix = SimileAjax_urlPrefix;
+        } else {
+            var url = SimileAjax.findScript(document, "simile-ajax-api.js");
+            if (url == null) {
+                SimileAjax.error = new Error("Failed to derive URL prefix for Simile Ajax API code files");
+                return;
+            }
+
+            SimileAjax.urlPrefix = url.substr(0, url.indexOf("simile-ajax-api.js"));
+        }
+
+        SimileAjax.parseURLParameters(url, SimileAjax.params, {bundle:Boolean});
+        if (SimileAjax.params.bundle) {
+            SimileAjax.includeJavascriptFiles(document, SimileAjax.urlPrefix, [ "simile-ajax-bundle.js" ]);
+        } else {
+            SimileAjax.includeJavascriptFiles(document, SimileAjax.urlPrefix + "scripts/", javascriptFiles);
+        }
+        SimileAjax.includeCssFiles(document, SimileAjax.urlPrefix + "styles/", cssFiles);
+        
+        SimileAjax.loaded = true;
+    })();
+}

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-bundle.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-bundle.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/simile-ajax-bundle.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,2623 @@
+
+
+/* jquery-1.2.6.min.js */
+(function(){var _jQuery=window.jQuery,_$=window.$;
+var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);
+};
+var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;
+jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;
+if(selector.nodeType){this[0]=selector;
+this.length=1;
+return this;
+}if(typeof selector=="string"){var match=quickExpr.exec(selector);
+if(match&&(match[1]||!context)){if(match[1]){selector=jQuery.clean([match[1]],context);
+}else{var elem=document.getElementById(match[3]);
+if(elem){if(elem.id!=match[3]){return jQuery().find(selector);
+}return jQuery(elem);
+}selector=[];
+}}else{return jQuery(context).find(selector);
+}}else{if(jQuery.isFunction(selector)){return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);
+}}return this.setArray(jQuery.makeArray(selector));
+},jquery:"1.2.6",size:function(){return this.length;
+},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];
+},pushStack:function(elems){var ret=jQuery(elems);
+ret.prevObject=this;
+return ret;
+},setArray:function(elems){this.length=0;
+Array.prototype.push.apply(this,elems);
+return this;
+},each:function(callback,args){return jQuery.each(this,callback,args);
+},index:function(elem){var ret=-1;
+return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);
+},attr:function(name,value,type){var options=name;
+if(name.constructor==String){if(value===undefined){return this[0]&&jQuery[type||"attr"](this[0],name);
+}else{options={};
+options[name]=value;
+}}return this.each(function(i){for(name in options){jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));
+}});
+},css:function(key,value){if((key=="width"||key=="height")&&parseFloat(value)<0){value=undefined;
+}return this.attr(key,value,"curCSS");
+},text:function(text){if(typeof text!="object"&&text!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));
+}var ret="";
+jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8){ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);
+}});
+});
+return ret;
+},wrapAll:function(html){if(this[0]){jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;
+while(elem.firstChild){elem=elem.firstChild;
+}return elem;
+}).append(this);
+}return this;
+},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);
+});
+},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);
+});
+},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1){this.appendChild(elem);
+}});
+},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1){this.insertBefore(elem,this.firstChild);
+}});
+},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);
+});
+},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);
+});
+},end:function(){return this.prevObject||jQuery([]);
+},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);
+});
+return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);
+},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");
+container.appendChild(clone);
+return jQuery.clean([container.innerHTML])[0];
+}else{return this.cloneNode(true);
+}});
+var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined){this[expando]=null;
+}});
+if(events===true){this.find("*").andSelf().each(function(i){if(this.nodeType==3){return ;
+}var events=jQuery.data(this,"events");
+for(var type in events){for(var handler in events[type]){jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);
+}}});
+}return ret;
+},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);
+})||jQuery.multiFilter(selector,this));
+},not:function(selector){if(selector.constructor==String){if(isSimple.test(selector)){return this.pushStack(jQuery.multiFilter(selector,this,true));
+}else{selector=jQuery.multiFilter(selector,this);
+}}var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;
+return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;
+});
+},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=="string"?jQuery(selector):jQuery.makeArray(selector))));
+},is:function(selector){return !!selector&&jQuery.multiFilter(selector,this).length>0;
+},hasClass:function(selector){return this.is("."+selector);
+},val:function(value){if(value==undefined){if(this.length){var elem=this[0];
+if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";
+if(index<0){return null;
+}for(var i=one?index:0,max=one?index+1:options.length;
+i<max;
+i++){var option=options[i];
+if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;
+if(one){return value;
+}values.push(value);
+}}return values;
+}else{return(this[0].value||"").replace(/\r/g,"");
+}}return undefined;
+}if(value.constructor==Number){value+="";
+}return this.each(function(){if(this.nodeType!=1){return ;
+}if(value.constructor==Array&&/radio|checkbox/.test(this.type)){this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);
+}else{if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);
+jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);
+});
+if(!values.length){this.selectedIndex=-1;
+}}else{this.value=value;
+}}});
+},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);
+},replaceWith:function(value){return this.after(value).remove();
+},eq:function(i){return this.slice(i,i+1);
+},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));
+},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);
+}));
+},andSelf:function(){return this.add(this.prevObject);
+},data:function(key,value){var parts=key.split(".");
+parts[1]=parts[1]?"."+parts[1]:"";
+if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);
+if(data===undefined&&this.length){data=jQuery.data(this[0],key);
+}return data===undefined&&parts[1]?this.data(parts[0]):data;
+}else{return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);
+});
+}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);
+});
+},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;
+return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);
+if(reverse){elems.reverse();
+}}var obj=this;
+if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr")){obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));
+}var scripts=jQuery([]);
+jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;
+if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem);
+}else{if(elem.nodeType==1){scripts=scripts.add(jQuery("script",elem).remove());
+}callback.call(obj,elem);
+}});
+scripts.each(evalScript);
+});
+}};
+jQuery.fn.init.prototype=jQuery.fn;
+function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"});
+}else{jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");
+}if(elem.parentNode){elem.parentNode.removeChild(elem);
+}}function now(){return +new Date;
+}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;
+if(target.constructor==Boolean){deep=target;
+target=arguments[1]||{};
+i=2;
+}if(typeof target!="object"&&typeof target!="function"){target={};
+}if(length==i){target=this;
+--i;
+}for(;
+i<length;
+i++){if((options=arguments[i])!=null){for(var name in options){var src=target[name],copy=options[name];
+if(target===copy){continue;
+}if(deep&&copy&&typeof copy=="object"&&!copy.nodeType){target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);
+}else{if(copy!==undefined){target[name]=copy;
+}}}}}return target;
+};
+var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};
+jQuery.extend({noConflict:function(deep){window.$=_$;
+if(deep){window.jQuery=_jQuery;
+}return jQuery;
+},isFunction:function(fn){return !!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");
+},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;
+},globalEval:function(data){data=jQuery.trim(data);
+if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");
+script.type="text/javascript";
+if(jQuery.browser.msie){script.text=data;
+}else{script.appendChild(document.createTextNode(data));
+}head.insertBefore(script,head.firstChild);
+head.removeChild(script);
+}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();
+},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;
+var id=elem[expando];
+if(!id){id=elem[expando]=++uuid;
+}if(name&&!jQuery.cache[id]){jQuery.cache[id]={};
+}if(data!==undefined){jQuery.cache[id][name]=data;
+}return name?jQuery.cache[id][name]:id;
+},removeData:function(elem,name){elem=elem==window?windowData:elem;
+var id=elem[expando];
+if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];
+name="";
+for(name in jQuery.cache[id]){break;
+}if(!name){jQuery.removeData(elem);
+}}}else{try{delete elem[expando];
+}catch(e){if(elem.removeAttribute){elem.removeAttribute(expando);
+}}delete jQuery.cache[id];
+}},each:function(object,callback,args){var name,i=0,length=object.length;
+if(args){if(length==undefined){for(name in object){if(callback.apply(object[name],args)===false){break;
+}}}else{for(;
+i<length;
+){if(callback.apply(object[i++],args)===false){break;
+}}}}else{if(length==undefined){for(name in object){if(callback.call(object[name],name,object[name])===false){break;
+}}}else{for(var value=object[0];
+i<length&&callback.call(value,i,value)!==false;
+value=object[++i]){}}}return object;
+},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value)){value=value.call(elem,i);
+}return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;
+},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className)){elem.className+=(elem.className?" ":"")+className;
+}});
+},remove:function(elem,classNames){if(elem.nodeType==1){elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return !jQuery.className.has(classNames,className);
+}).join(" "):"";
+}},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;
+}},swap:function(elem,options,callback){var old={};
+for(var name in options){old[name]=elem.style[name];
+elem.style[name]=options[name];
+}callback.call(elem);
+for(var name in options){elem.style[name]=old[name];
+}},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];
+function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;
+var padding=0,border=0;
+jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;
+border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;
+});
+val-=Math.round(padding+border);
+}if(jQuery(elem).is(":visible")){getWH();
+}else{jQuery.swap(elem,props,getWH);
+}return Math.max(0,val);
+}return jQuery.curCSS(elem,name,force);
+},curCSS:function(elem,name,force){var ret,style=elem.style;
+function color(elem){if(!jQuery.browser.safari){return false;
+}var ret=defaultView.getComputedStyle(elem,null);
+return !ret||ret.getPropertyValue("color")=="";
+}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");
+return ret==""?"1":ret;
+}if(jQuery.browser.opera&&name=="display"){var save=style.outline;
+style.outline="0 solid black";
+style.outline=save;
+}if(name.match(/float/i)){name=styleFloat;
+}if(!force&&style&&style[name]){ret=style[name];
+}else{if(defaultView.getComputedStyle){if(name.match(/float/i)){name="float";
+}name=name.replace(/([A-Z])/g,"-$1").toLowerCase();
+var computedStyle=defaultView.getComputedStyle(elem,null);
+if(computedStyle&&!color(elem)){ret=computedStyle.getPropertyValue(name);
+}else{var swap=[],stack=[],a=elem,i=0;
+for(;
+a&&color(a);
+a=a.parentNode){stack.unshift(a);
+}for(;
+i<stack.length;
+i++){if(color(stack[i])){swap[i]=stack[i].style.display;
+stack[i].style.display="block";
+}}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";
+for(i=0;
+i<swap.length;
+i++){if(swap[i]!=null){stack[i].style.display=swap[i];
+}}}if(name=="opacity"&&ret==""){ret="1";
+}}else{if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();
+});
+ret=elem.currentStyle[name]||elem.currentStyle[camelCase];
+if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;
+elem.runtimeStyle.left=elem.currentStyle.left;
+style.left=ret||0;
+ret=style.pixelLeft+"px";
+style.left=left;
+elem.runtimeStyle.left=rsLeft;
+}}}}return ret;
+},clean:function(elems,context){var ret=[];
+context=context||document;
+if(typeof context.createElement=="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;
+}jQuery.each(elems,function(i,elem){if(!elem){return ;
+}if(elem.constructor==Number){elem+="";
+}if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";
+});
+var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");
+var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];
+div.innerHTML=wrap[1]+elem+wrap[2];
+while(wrap[0]--){div=div.lastChild;
+}if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];
+for(var j=tbody.length-1;
+j>=0;
+--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j]);
+}}if(/^\s/.test(elem)){div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);
+}}elem=jQuery.makeArray(div.childNodes);
+}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select"))){return ;
+}if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options){ret.push(elem);
+}else{ret=jQuery.merge(ret,elem);
+}});
+return ret;
+},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8){return undefined;
+}var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;
+name=notxml&&jQuery.props[name]||name;
+if(elem.tagName){var special=/href|src|style/.test(name);
+if(name=="selected"&&jQuery.browser.safari){elem.parentNode.selectedIndex;
+}if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode){throw"type property can't be changed";
+}elem[name]=value;
+}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name)){return elem.getAttributeNode(name).nodeValue;
+}return elem[name];
+}if(msie&&notxml&&name=="style"){return jQuery.attr(elem.style,"cssText",value);
+}if(set){elem.setAttribute(name,""+value);
+}var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);
+return attr===null?undefined:attr;
+}if(msie&&name=="opacity"){if(set){elem.zoom=1;
+elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+""=="NaN"?"":"alpha(opacity="+value*100+")");
+}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+"":"";
+}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();
+});
+if(set){elem[name]=value;
+}return elem[name];
+},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");
+},makeArray:function(array){var ret=[];
+if(array!=null){var i=array.length;
+if(i==null||array.split||array.setInterval||array.call){ret[0]=array;
+}else{while(i){ret[--i]=array[i];
+}}}return ret;
+},inArray:function(elem,array){for(var i=0,length=array.length;
+i<length;
+i++){if(array[i]===elem){return i;
+}}return -1;
+},merge:function(first,second){var i=0,elem,pos=first.length;
+if(jQuery.browser.msie){while(elem=second[i++]){if(elem.nodeType!=8){first[pos++]=elem;
+}}}else{while(elem=second[i++]){first[pos++]=elem;
+}}return first;
+},unique:function(array){var ret=[],done={};
+try{for(var i=0,length=array.length;
+i<length;
+i++){var id=jQuery.data(array[i]);
+if(!done[id]){done[id]=true;
+ret.push(array[i]);
+}}}catch(e){ret=array;
+}return ret;
+},grep:function(elems,callback,inv){var ret=[];
+for(var i=0,length=elems.length;
+i<length;
+i++){if(!inv!=!callback(elems[i],i)){ret.push(elems[i]);
+}}return ret;
+},map:function(elems,callback){var ret=[];
+for(var i=0,length=elems.length;
+i<length;
+i++){var value=callback(elems[i],i);
+if(value!=null){ret[ret.length]=value;
+}}return ret.concat.apply([],ret);
+}});
+var userAgent=navigator.userAgent.toLowerCase();
+jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};
+var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";
+jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});
+jQuery.each({parent:function(elem){return elem.parentNode;
+},parents:function(elem){return jQuery.dir(elem,"parentNode");
+},next:function(elem){return jQuery.nth(elem,2,"nextSibling");
+},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");
+},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");
+},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");
+},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);
+},children:function(elem){return jQuery.sibling(elem.firstChild);
+},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);
+}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);
+if(selector&&typeof selector=="string"){ret=jQuery.multiFilter(selector,ret);
+}return this.pushStack(jQuery.unique(ret));
+};
+});
+jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;
+return this.each(function(){for(var i=0,length=args.length;
+i<length;
+i++){jQuery(args[i])[original](this);
+}});
+};
+});
+jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");
+if(this.nodeType==1){this.removeAttribute(name);
+}},addClass:function(classNames){jQuery.className.add(this,classNames);
+},removeClass:function(classNames){jQuery.className.remove(this,classNames);
+},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);
+},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);
+jQuery.removeData(this);
+});
+if(this.parentNode){this.parentNode.removeChild(this);
+}}},empty:function(){jQuery(">*",this).remove();
+while(this.firstChild){this.removeChild(this.firstChild);
+}}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);
+};
+});
+jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();
+jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");
+};
+});
+function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;
+}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");
+jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);
+},"#":function(a,i,m){return a.getAttribute("id")==m[2];
+},":":{lt:function(a,i,m){return i<m[3]-0;
+},gt:function(a,i,m){return i>m[3]-0;
+},nth:function(a,i,m){return m[3]-0==i;
+},eq:function(a,i,m){return m[3]-0==i;
+},first:function(a,i){return i==0;
+},last:function(a,i,m,r){return i==r.length-1;
+},even:function(a,i){return i%2==0;
+},odd:function(a,i){return i%2;
+},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;
+},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;
+},"only-child":function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling");
+},parent:function(a){return a.firstChild;
+},empty:function(a){return !a.firstChild;
+},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;
+},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";
+},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";
+},enabled:function(a){return !a.disabled;
+},disabled:function(a){return a.disabled;
+},checked:function(a){return a.checked;
+},selected:function(a){return a.selected||jQuery.attr(a,"selected");
+},text:function(a){return"text"==a.type;
+},radio:function(a){return"radio"==a.type;
+},checkbox:function(a){return"checkbox"==a.type;
+},file:function(a){return"file"==a.type;
+},password:function(a){return"password"==a.type;
+},submit:function(a){return"submit"==a.type;
+},image:function(a){return"image"==a.type;
+},reset:function(a){return"reset"==a.type;
+},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");
+},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);
+},has:function(a,i,m){return jQuery.find(m[3],a).length;
+},header:function(a){return/h\d/i.test(a.nodeName);
+},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;
+}).length;
+}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];
+while(expr&&expr!=old){old=expr;
+var f=jQuery.filter(expr,elems,not);
+expr=f.t.replace(/^\s*,\s*/,"");
+cur=not?elems=f.r:jQuery.merge(cur,f.r);
+}return cur;
+},find:function(t,context){if(typeof t!="string"){return[t];
+}if(context&&context.nodeType!=1&&context.nodeType!=9){return[];
+}context=context||document;
+var ret=[context],done=[],last,nodeName;
+while(t&&last!=t){var r=[];
+last=t;
+t=jQuery.trim(t);
+var foundToken=false,re=quickChild,m=re.exec(t);
+if(m){nodeName=m[1].toUpperCase();
+for(var i=0;
+ret[i];
+i++){for(var c=ret[i].firstChild;
+c;
+c=c.nextSibling){if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName)){r.push(c);
+}}}ret=r;
+t=t.replace(re,"");
+if(t.indexOf(" ")==0){continue;
+}foundToken=true;
+}else{re=/^([>+~])\s*(\w*)/i;
+if((m=re.exec(t))!=null){r=[];
+var merge={};
+nodeName=m[2].toUpperCase();
+m=m[1];
+for(var j=0,rl=ret.length;
+j<rl;
+j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;
+for(;
+n;
+n=n.nextSibling){if(n.nodeType==1){var id=jQuery.data(n);
+if(m=="~"&&merge[id]){break;
+}if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~"){merge[id]=true;
+}r.push(n);
+}if(m=="+"){break;
+}}}}ret=r;
+t=jQuery.trim(t.replace(re,""));
+foundToken=true;
+}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0]){ret.shift();
+}done=jQuery.merge(done,ret);
+r=ret=[context];
+t=" "+t.substr(1,t.length);
+}else{var re2=quickID;
+var m=re2.exec(t);
+if(m){m=[0,m[2],m[3],m[1]];
+}else{re2=quickClass;
+m=re2.exec(t);
+}m[2]=m[2].replace(/\\/g,"");
+var elem=ret[ret.length-1];
+if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);
+if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2]){oid=jQuery('[@id="'+m[2]+'"]',elem)[0];
+}ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];
+}else{for(var i=0;
+ret[i];
+i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];
+if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object"){tag="param";
+}r=jQuery.merge(r,ret[i].getElementsByTagName(tag));
+}if(m[1]=="."){r=jQuery.classFilter(r,m[2]);
+}if(m[1]=="#"){var tmp=[];
+for(var i=0;
+r[i];
+i++){if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];
+break;
+}}r=tmp;
+}ret=r;
+}t=t.replace(re2,"");
+}}if(t){var val=jQuery.filter(t,r);
+ret=r=val.r;
+t=jQuery.trim(val.t);
+}}if(t){ret=[];
+}if(ret&&context==ret[0]){ret.shift();
+}done=jQuery.merge(done,ret);
+return done;
+},classFilter:function(r,m,not){m=" "+m+" ";
+var tmp=[];
+for(var i=0;
+r[i];
+i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;
+if(!not&&pass||not&&!pass){tmp.push(r[i]);
+}}return tmp;
+},filter:function(t,r,not){var last;
+while(t&&t!=last){last=t;
+var p=jQuery.parse,m;
+for(var i=0;
+p[i];
+i++){m=p[i].exec(t);
+if(m){t=t.substring(m[0].length);
+m[2]=m[2].replace(/\\/g,"");
+break;
+}}if(!m){break;
+}if(m[1]==":"&&m[2]=="not"){r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);
+}else{if(m[1]=="."){r=jQuery.classFilter(r,m[2],not);
+}else{if(m[1]=="["){var tmp=[],type=m[3];
+for(var i=0,rl=r.length;
+i<rl;
+i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];
+if(z==null||/href|src|selected/.test(m[2])){z=jQuery.attr(a,m[2])||"";
+}if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not){tmp.push(a);
+}}r=tmp;
+}else{if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;
+for(var i=0,rl=r.length;
+i<rl;
+i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);
+if(!merge[id]){var c=1;
+for(var n=parentNode.firstChild;
+n;
+n=n.nextSibling){if(n.nodeType==1){n.nodeIndex=c++;
+}}merge[id]=true;
+}var add=false;
+if(first==0){if(node.nodeIndex==last){add=true;
+}}else{if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0){add=true;
+}}if(add^not){tmp.push(node);
+}}r=tmp;
+}else{var fn=jQuery.expr[m[1]];
+if(typeof fn=="object"){fn=fn[m[2]];
+}if(typeof fn=="string"){fn=eval("false||function(a,i){return "+fn+";}");
+}r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);
+},not);
+}}}}}return{r:r,t:t};
+},dir:function(elem,dir){var matched=[],cur=elem[dir];
+while(cur&&cur!=document){if(cur.nodeType==1){matched.push(cur);
+}cur=cur[dir];
+}return matched;
+},nth:function(cur,result,dir,elem){result=result||1;
+var num=0;
+for(;
+cur;
+cur=cur[dir]){if(cur.nodeType==1&&++num==result){break;
+}}return cur;
+},sibling:function(n,elem){var r=[];
+for(;
+n;
+n=n.nextSibling){if(n.nodeType==1&&n!=elem){r.push(n);
+}}return r;
+}});
+jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8){return ;
+}if(jQuery.browser.msie&&elem.setInterval){elem=window;
+}if(!handler.guid){handler.guid=this.guid++;
+}if(data!=undefined){var fn=handler;
+handler=this.proxy(fn,function(){return fn.apply(this,arguments);
+});
+handler.data=data;
+}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered){return jQuery.event.handle.apply(arguments.callee.elem,arguments);
+}});
+handle.elem=elem;
+jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");
+type=parts[0];
+handler.type=parts[1];
+var handlers=events[type];
+if(!handlers){handlers=events[type]={};
+if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener){elem.addEventListener(type,handle,false);
+}else{if(elem.attachEvent){elem.attachEvent("on"+type,handle);
+}}}}handlers[handler.guid]=handler;
+jQuery.event.global[type]=true;
+});
+elem=null;
+},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8){return ;
+}var events=jQuery.data(elem,"events"),ret,index;
+if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)==".")){for(var type in events){this.remove(elem,type+(types||""));
+}}else{if(types.type){handler=types.handler;
+types=types.type;
+}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");
+type=parts[0];
+if(events[type]){if(handler){delete events[type][handler.guid];
+}else{for(handler in events[type]){if(!parts[1]||events[type][handler].type==parts[1]){delete events[type][handler];
+}}}for(ret in events[type]){break;
+}if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener){elem.removeEventListener(type,jQuery.data(elem,"handle"),false);
+}else{if(elem.detachEvent){elem.detachEvent("on"+type,jQuery.data(elem,"handle"));
+}}}ret=null;
+delete events[type];
+}}});
+}for(ret in events){break;
+}if(!ret){var handle=jQuery.data(elem,"handle");
+if(handle){handle.elem=null;
+}jQuery.removeData(elem,"events");
+jQuery.removeData(elem,"handle");
+}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);
+if(type.indexOf("!")>=0){type=type.slice(0,-1);
+var exclusive=true;
+}if(!elem){if(this.global[type]){jQuery("*").add([window,document]).trigger(type,data);
+}}else{if(elem.nodeType==3||elem.nodeType==8){return undefined;
+}var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;
+if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});
+data[0][expando]=true;
+}data[0].type=type;
+if(exclusive){data[0].exclusive=true;
+}var handle=jQuery.data(elem,"handle");
+if(handle){val=handle.apply(elem,data);
+}if((!fn||(jQuery.nodeName(elem,"a")&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false){val=false;
+}if(event){data.shift();
+}if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));
+if(ret!==undefined){val=ret;
+}}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,"a")&&type=="click")){this.triggered=true;
+try{elem[type]();
+}catch(e){}}this.triggered=false;
+}return val;
+},handle:function(event){var val,ret,namespace,all,handlers;
+event=arguments[0]=jQuery.event.fix(event||window.event);
+namespace=event.type.split(".");
+event.type=namespace[0];
+namespace=namespace[1];
+all=!namespace&&!event.exclusive;
+handlers=(jQuery.data(this,"events")||{})[event.type];
+for(var j in handlers){var handler=handlers[j];
+if(all||handler.type==namespace){event.handler=handler;
+event.data=handler.data;
+ret=handler.apply(this,arguments);
+if(val!==false){val=ret;
+}if(ret===false){event.preventDefault();
+event.stopPropagation();
+}}}return val;
+},fix:function(event){if(event[expando]==true){return event;
+}var originalEvent=event;
+event={originalEvent:originalEvent};
+var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");
+for(var i=props.length;
+i;
+i--){event[props[i]]=originalEvent[props[i]];
+}event[expando]=true;
+event.preventDefault=function(){if(originalEvent.preventDefault){originalEvent.preventDefault();
+}originalEvent.returnValue=false;
+};
+event.stopPropagation=function(){if(originalEvent.stopPropagation){originalEvent.stopPropagation();
+}originalEvent.cancelBubble=true;
+};
+event.timeStamp=event.timeStamp||now();
+if(!event.target){event.target=event.srcElement||document;
+}if(event.target.nodeType==3){event.target=event.target.parentNode;
+}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;
+}if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;
+event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);
+event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);
+}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode)){event.which=event.charCode||event.keyCode;
+}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey;
+}if(!event.which&&event.button){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));
+}return event;
+},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;
+return proxy;
+},special:{ready:{setup:function(){bindReady();
+return ;
+},teardown:function(){return ;
+}},mouseenter:{setup:function(){if(jQuery.browser.msie){return false;
+}jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);
+return true;
+},teardown:function(){if(jQuery.browser.msie){return false;
+}jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);
+return true;
+},handler:function(event){if(withinElement(event,this)){return true;
+}event.type="mouseenter";
+return jQuery.event.handle.apply(this,arguments);
+}},mouseleave:{setup:function(){if(jQuery.browser.msie){return false;
+}jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);
+return true;
+},teardown:function(){if(jQuery.browser.msie){return false;
+}jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);
+return true;
+},handler:function(event){if(withinElement(event,this)){return true;
+}event.type="mouseleave";
+return jQuery.event.handle.apply(this,arguments);
+}}}};
+jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);
+});
+},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);
+return(fn||data).apply(this,arguments);
+});
+return this.each(function(){jQuery.event.add(this,type,one,fn&&data);
+});
+},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);
+});
+},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);
+});
+},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);
+},toggle:function(fn){var args=arguments,i=1;
+while(i<args.length){jQuery.event.proxy(fn,args[i++]);
+}return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;
+event.preventDefault();
+return args[this.lastToggle++].apply(this,arguments)||false;
+}));
+},hover:function(fnOver,fnOut){return this.bind("mouseenter",fnOver).bind("mouseleave",fnOut);
+},ready:function(fn){bindReady();
+if(jQuery.isReady){fn.call(document,jQuery);
+}else{jQuery.readyList.push(function(){return fn.call(this,jQuery);
+});
+}return this;
+}});
+jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;
+if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);
+});
+jQuery.readyList=null;
+}jQuery(document).triggerHandler("ready");
+}}});
+var readyBound=false;
+function bindReady(){if(readyBound){return ;
+}readyBound=true;
+if(document.addEventListener&&!jQuery.browser.opera){document.addEventListener("DOMContentLoaded",jQuery.ready,false);
+}if(jQuery.browser.msie&&window==top){(function(){if(jQuery.isReady){return ;
+}try{document.documentElement.doScroll("left");
+}catch(error){setTimeout(arguments.callee,0);
+return ;
+}jQuery.ready();
+})();
+}if(jQuery.browser.opera){document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady){return ;
+}for(var i=0;
+i<document.styleSheets.length;
+i++){if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);
+return ;
+}}jQuery.ready();
+},false);
+}if(jQuery.browser.safari){var numStyles;
+(function(){if(jQuery.isReady){return ;
+}if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);
+return ;
+}if(numStyles===undefined){numStyles=jQuery("style, link[rel=stylesheet]").length;
+}if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);
+return ;
+}jQuery.ready();
+})();
+}jQuery.event.add(window,"load",jQuery.ready);
+}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,change,select,submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);
+};
+});
+var withinElement=function(event,elem){var parent=event.relatedTarget;
+while(parent&&parent!=elem){try{parent=parent.parentNode;
+}catch(error){parent=elem;
+}}return parent==elem;
+};
+jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();
+});
+jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!="string"){return this._load(url);
+}var off=url.indexOf(" ");
+if(off>=0){var selector=url.slice(off,url.length);
+url=url.slice(0,off);
+}callback=callback||function(){};
+var type="GET";
+if(params){if(jQuery.isFunction(params)){callback=params;
+params=null;
+}else{params=jQuery.param(params);
+type="POST";
+}}var self=this;
+jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified"){self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);
+}self.each(callback,[res.responseText,status,res]);
+}});
+return this;
+},serialize:function(){return jQuery.param(this.serializeArray());
+},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;
+}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));
+}).map(function(i,elem){var val=jQuery(this).val();
+return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};
+}):{name:elem.name,value:val};
+}).get();
+}});
+jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);
+};
+});
+var jsc=now();
+jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;
+data=null;
+}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});
+},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");
+},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");
+},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;
+data={};
+}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});
+},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);
+},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));
+var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();
+if(s.data&&s.processData&&typeof s.data!="string"){s.data=jQuery.param(s.data);
+}if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre)){s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";
+}}else{if(!s.data||!s.data.match(jsre)){s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";
+}}s.dataType="json";
+}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;
+if(s.data){s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");
+}s.url=s.url.replace(jsre,"="+jsonp+"$1");
+s.dataType="script";
+window[jsonp]=function(tmp){data=tmp;
+success();
+complete();
+window[jsonp]=undefined;
+try{delete window[jsonp];
+}catch(e){}if(head){head.removeChild(script);
+}};
+}if(s.dataType=="script"&&s.cache==null){s.cache=false;
+}if(s.cache===false&&type=="GET"){var ts=now();
+var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");
+s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");
+}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;
+s.data=null;
+}if(s.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart");
+}var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;
+if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];
+var script=document.createElement("script");
+script.src=s.url;
+if(s.scriptCharset){script.charset=s.scriptCharset;
+}if(!jsonp){var done=false;
+script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;
+success();
+complete();
+head.removeChild(script);
+}};
+}head.appendChild(script);
+return undefined;
+}var requestDone=false;
+var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
+if(s.username){xhr.open(type,s.url,s.async,s.username,s.password);
+}else{xhr.open(type,s.url,s.async);
+}try{if(s.data){xhr.setRequestHeader("Content-Type",s.contentType);
+}if(s.ifModified){xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");
+}xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
+xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);
+}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;
+xhr.abort();
+return false;
+}if(s.global){jQuery.event.trigger("ajaxSend",[xhr,s]);
+}var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;
+if(ival){clearInterval(ival);
+ival=null;
+}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";
+if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);
+}catch(e){status="parsererror";
+}}if(status=="success"){var modRes;
+try{modRes=xhr.getResponseHeader("Last-Modified");
+}catch(e){}if(s.ifModified&&modRes){jQuery.lastModified[s.url]=modRes;
+}if(!jsonp){success();
+}}else{jQuery.handleError(s,xhr,status);
+}complete();
+if(s.async){xhr=null;
+}}};
+if(s.async){var ival=setInterval(onreadystatechange,13);
+if(s.timeout>0){setTimeout(function(){if(xhr){xhr.abort();
+if(!requestDone){onreadystatechange("timeout");
+}}},s.timeout);
+}}try{xhr.send(s.data);
+}catch(e){jQuery.handleError(s,xhr,null,e);
+}if(!s.async){onreadystatechange();
+}function success(){if(s.success){s.success(data,status);
+}if(s.global){jQuery.event.trigger("ajaxSuccess",[xhr,s]);
+}}function complete(){if(s.complete){s.complete(xhr,status);
+}if(s.global){jQuery.event.trigger("ajaxComplete",[xhr,s]);
+}if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop");
+}}return xhr;
+},handleError:function(s,xhr,status,e){if(s.error){s.error(xhr,status,e);
+}if(s.global){jQuery.event.trigger("ajaxError",[xhr,s,e]);
+}},active:0,httpSuccess:function(xhr){try{return !xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;
+}catch(e){}return false;
+},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");
+return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;
+}catch(e){}return false;
+},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;
+if(xml&&data.documentElement.tagName=="parsererror"){throw"parsererror";
+}if(filter){data=filter(data,type);
+}if(type=="script"){jQuery.globalEval(data);
+}if(type=="json"){data=eval("("+data+")");
+}return data;
+},param:function(a){var s=[];
+if(a.constructor==Array||a.jquery){jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));
+});
+}else{for(var j in a){if(a[j]&&a[j].constructor==Array){jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));
+});
+}else{s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));
+}}}return s.join("&").replace(/%20/g,"+");
+}});
+jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";
+if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");
+this.style.display=elem.css("display");
+if(this.style.display=="none"){this.style.display="block";
+}elem.remove();
+}}).end();
+},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");
+this.style.display="none";
+}).end();
+},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();
+});
+},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);
+},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);
+},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);
+},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);
+},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);
+},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);
+},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);
+return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1){return false;
+}var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;
+for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden){return opt.complete.call(this);
+}if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");
+opt.overflow=this.style.overflow;
+}}if(opt.overflow!=null){this.style.overflow="hidden";
+}opt.curAnim=jQuery.extend({},prop);
+jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);
+if(/toggle|show|hide/.test(val)){e[val=="toggle"?hidden?"show":"hide":val](prop);
+}else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;
+if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";
+if(unit!="px"){self.style[name]=(end||1)+unit;
+start=((end||1)/e.cur(true))*start;
+self.style[name]=start+unit;
+}if(parts[1]){end=((parts[1]=="-="?-1:1)*end)+start;
+}e.custom(start,end,unit);
+}else{e.custom(start,val,"");
+}}});
+return true;
+});
+},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;
+type="fx";
+}if(!type||(typeof type=="string"&&!fn)){return queue(this[0],type);
+}return this.each(function(){if(fn.constructor==Array){queue(this,type,fn);
+}else{queue(this,type).push(fn);
+if(queue(this,type).length==1){fn.call(this);
+}}});
+},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;
+if(clearQueue){this.queue([]);
+}this.each(function(){for(var i=timers.length-1;
+i>=0;
+i--){if(timers[i].elem==this){if(gotoEnd){timers[i](true);
+}timers.splice(i,1);
+}}});
+if(!gotoEnd){this.dequeue();
+}return this;
+}});
+var queue=function(elem,type,array){if(elem){type=type||"fx";
+var q=jQuery.data(elem,type+"queue");
+if(!q||array){q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));
+}}return q;
+};
+jQuery.fn.dequeue=function(type){type=type||"fx";
+return this.each(function(){var q=queue(this,type);
+q.shift();
+if(q.length){q[0].call(this);
+}});
+};
+jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};
+opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;
+opt.old=opt.complete;
+opt.complete=function(){if(opt.queue!==false){jQuery(this).dequeue();
+}if(jQuery.isFunction(opt.old)){opt.old.call(this);
+}};
+return opt;
+},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;
+},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;
+}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;
+this.elem=elem;
+this.prop=prop;
+if(!options.orig){options.orig={};
+}}});
+jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this);
+}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);
+if(this.prop=="height"||this.prop=="width"){this.elem.style.display="block";
+}},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null){return this.elem[this.prop];
+}var r=parseFloat(jQuery.css(this.elem,this.prop,force));
+return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;
+},custom:function(from,to,unit){this.startTime=now();
+this.start=from;
+this.end=to;
+this.unit=unit||this.unit||"px";
+this.now=this.start;
+this.pos=this.state=0;
+this.update();
+var self=this;
+function t(gotoEnd){return self.step(gotoEnd);
+}t.elem=this.elem;
+jQuery.timers.push(t);
+if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;
+for(var i=0;
+i<timers.length;
+i++){if(!timers[i]()){timers.splice(i--,1);
+}}if(!timers.length){clearInterval(jQuery.timerId);
+jQuery.timerId=null;
+}},13);
+}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);
+this.options.show=true;
+this.custom(0,this.cur());
+if(this.prop=="width"||this.prop=="height"){this.elem.style[this.prop]="1px";
+}jQuery(this.elem).show();
+},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);
+this.options.hide=true;
+this.custom(this.cur(),0);
+},step:function(gotoEnd){var t=now();
+if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;
+this.pos=this.state=1;
+this.update();
+this.options.curAnim[this.prop]=true;
+var done=true;
+for(var i in this.options.curAnim){if(this.options.curAnim[i]!==true){done=false;
+}}if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;
+this.elem.style.display=this.options.display;
+if(jQuery.css(this.elem,"display")=="none"){this.elem.style.display="block";
+}}if(this.options.hide){this.elem.style.display="none";
+}if(this.options.hide||this.options.show){for(var p in this.options.curAnim){jQuery.attr(this.elem.style,p,this.options.orig[p]);
+}}}if(done){this.options.complete.call(this.elem);
+}return false;
+}else{var n=t-this.startTime;
+this.state=n/this.options.duration;
+this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);
+this.now=this.start+((this.end-this.start)*this.pos);
+this.update();
+}return true;
+}};
+jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;
+},scrollTop:function(fx){fx.elem.scrollTop=fx.now;
+},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);
+},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;
+}}});
+jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;
+if(elem){with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";
+if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();
+add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));
+add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);
+}else{add(elem.offsetLeft,elem.offsetTop);
+while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);
+if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2){border(offsetParent);
+}if(!fixed&&css(offsetParent,"position")=="fixed"){fixed=true;
+}offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;
+offsetParent=offsetParent.offsetParent;
+}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display"))){add(-parent.scrollLeft,-parent.scrollTop);
+}if(mozilla&&css(parent,"overflow")!="visible"){border(parent);
+}parent=parent.parentNode;
+}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute")){add(-doc.body.offsetLeft,-doc.body.offsetTop);
+}if(fixed){add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));
+}}results={top:top,left:left};
+}}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));
+}function add(l,t){left+=parseInt(l,10)||0;
+top+=parseInt(t,10)||0;
+}return results;
+};
+jQuery.fn.extend({position:function(){var left=0,top=0,results;
+if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();
+offset.top-=num(this,"marginTop");
+offset.left-=num(this,"marginLeft");
+parentOffset.top+=num(offsetParent,"borderTopWidth");
+parentOffset.left+=num(offsetParent,"borderLeftWidth");
+results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};
+}return results;
+},offsetParent:function(){var offsetParent=this[0].offsetParent;
+while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,"position")=="static")){offsetParent=offsetParent.offsetParent;
+}return jQuery(offsetParent);
+}});
+jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;
+jQuery.fn[method]=function(val){if(!this[0]){return ;
+}return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;
+}):this[0]==window||this[0]==document?self[i?"pageYOffset":"pageXOffset"]||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];
+};
+});
+jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";
+jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);
+};
+jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);
+};
+});
+})();
+
+
+/* platform.js */
+SimileAjax.version="pre 2.3.0";
+SimileAjax.jQuery=jQuery.noConflict(true);
+if(typeof window["$"]=="undefined"){window.$=SimileAjax.jQuery;
+}SimileAjax.Platform.os={isMac:false,isWin:false,isWin32:false,isUnix:false};
+SimileAjax.Platform.browser={isIE:false,isNetscape:false,isMozilla:false,isFirefox:false,isOpera:false,isSafari:false,majorVersion:0,minorVersion:0};
+(function(){var C=navigator.appName.toLowerCase();
+var A=navigator.userAgent.toLowerCase();
+SimileAjax.Platform.os.isMac=(A.indexOf("mac")!=-1);
+SimileAjax.Platform.os.isWin=(A.indexOf("win")!=-1);
+SimileAjax.Platform.os.isWin32=SimileAjax.Platform.isWin&&(A.indexOf("95")!=-1||A.indexOf("98")!=-1||A.indexOf("nt")!=-1||A.indexOf("win32")!=-1||A.indexOf("32bit")!=-1);
+SimileAjax.Platform.os.isUnix=(A.indexOf("x11")!=-1);
+SimileAjax.Platform.browser.isIE=(C.indexOf("microsoft")!=-1);
+SimileAjax.Platform.browser.isNetscape=(C.indexOf("netscape")!=-1);
+SimileAjax.Platform.browser.isMozilla=(A.indexOf("mozilla")!=-1);
+SimileAjax.Platform.browser.isFirefox=(A.indexOf("firefox")!=-1);
+SimileAjax.Platform.browser.isOpera=(C.indexOf("opera")!=-1);
+SimileAjax.Platform.browser.isSafari=(C.indexOf("safari")!=-1);
+var E=function(G){var F=G.split(".");
+SimileAjax.Platform.browser.majorVersion=parseInt(F[0]);
+SimileAjax.Platform.browser.minorVersion=parseInt(F[1]);
+};
+var B=function(H,G,I){var F=H.indexOf(G,I);
+return F>=0?F:H.length;
+};
+if(SimileAjax.Platform.browser.isMozilla){var D=A.indexOf("mozilla/");
+if(D>=0){E(A.substring(D+8,B(A," ",D)));
+}}if(SimileAjax.Platform.browser.isIE){var D=A.indexOf("msie ");
+if(D>=0){E(A.substring(D+5,B(A,";",D)));
+}}if(SimileAjax.Platform.browser.isNetscape){var D=A.indexOf("rv:");
+if(D>=0){E(A.substring(D+3,B(A,")",D)));
+}}if(SimileAjax.Platform.browser.isFirefox){var D=A.indexOf("firefox/");
+if(D>=0){E(A.substring(D+8,B(A," ",D)));
+}}if(!("localeCompare" in String.prototype)){String.prototype.localeCompare=function(F){if(this<F){return -1;
+}else{if(this>F){return 1;
+}else{return 0;
+}}};
+}})();
+SimileAjax.Platform.getDefaultLocale=function(){return SimileAjax.Platform.clientLocale;
+};
+
+
+/* ajax.js */
+SimileAjax.ListenerQueue=function(A){this._listeners=[];
+this._wildcardHandlerName=A;
+};
+SimileAjax.ListenerQueue.prototype.add=function(A){this._listeners.push(A);
+};
+SimileAjax.ListenerQueue.prototype.remove=function(C){var A=this._listeners;
+for(var B=0;
+B<A.length;
+B++){if(A[B]==C){A.splice(B,1);
+break;
+}}};
+SimileAjax.ListenerQueue.prototype.fire=function(C,B){var A=[].concat(this._listeners);
+for(var D=0;
+D<A.length;
+D++){var E=A[D];
+if(C in E){try{E[C].apply(E,B);
+}catch(F){SimileAjax.Debug.exception("Error firing event of name "+C,F);
+}}else{if(this._wildcardHandlerName!=null&&this._wildcardHandlerName in E){try{E[this._wildcardHandlerName].apply(E,[C]);
+}catch(F){SimileAjax.Debug.exception("Error firing event of name "+C+" to wildcard handler",F);
+}}}}};
+
+
+/* data-structure.js */
+SimileAjax.Set=function(A){this._hash={};
+this._count=0;
+if(A instanceof Array){for(var B=0;
+B<A.length;
+B++){this.add(A[B]);
+}}else{if(A instanceof SimileAjax.Set){this.addSet(A);
+}}};
+SimileAjax.Set.prototype.add=function(A){if(!(A in this._hash)){this._hash[A]=true;
+this._count++;
+return true;
+}return false;
+};
+SimileAjax.Set.prototype.addSet=function(B){for(var A in B._hash){this.add(A);
+}};
+SimileAjax.Set.prototype.remove=function(A){if(A in this._hash){delete this._hash[A];
+this._count--;
+return true;
+}return false;
+};
+SimileAjax.Set.prototype.removeSet=function(B){for(var A in B._hash){this.remove(A);
+}};
+SimileAjax.Set.prototype.retainSet=function(B){for(var A in this._hash){if(!B.contains(A)){delete this._hash[A];
+this._count--;
+}}};
+SimileAjax.Set.prototype.contains=function(A){return(A in this._hash);
+};
+SimileAjax.Set.prototype.size=function(){return this._count;
+};
+SimileAjax.Set.prototype.toArray=function(){var A=[];
+for(var B in this._hash){A.push(B);
+}return A;
+};
+SimileAjax.Set.prototype.visit=function(A){for(var B in this._hash){if(A(B)==true){break;
+}}};
+SimileAjax.SortedArray=function(B,A){this._a=(A instanceof Array)?A:[];
+this._compare=B;
+};
+SimileAjax.SortedArray.prototype.add=function(C){var A=this;
+var B=this.find(function(D){return A._compare(D,C);
+});
+if(B<this._a.length){this._a.splice(B,0,C);
+}else{this._a.push(C);
+}};
+SimileAjax.SortedArray.prototype.remove=function(C){var A=this;
+var B=this.find(function(D){return A._compare(D,C);
+});
+while(B<this._a.length&&this._compare(this._a[B],C)==0){if(this._a[B]==C){this._a.splice(B,1);
+return true;
+}else{B++;
+}}return false;
+};
+SimileAjax.SortedArray.prototype.removeAll=function(){this._a=[];
+};
+SimileAjax.SortedArray.prototype.elementAt=function(A){return this._a[A];
+};
+SimileAjax.SortedArray.prototype.length=function(){return this._a.length;
+};
+SimileAjax.SortedArray.prototype.find=function(D){var B=0;
+var A=this._a.length;
+while(B<A){var C=Math.floor((B+A)/2);
+var E=D(this._a[C]);
+if(C==B){return E<0?B+1:B;
+}else{if(E<0){B=C;
+}else{A=C;
+}}}return B;
+};
+SimileAjax.SortedArray.prototype.getFirst=function(){return(this._a.length>0)?this._a[0]:null;
+};
+SimileAjax.SortedArray.prototype.getLast=function(){return(this._a.length>0)?this._a[this._a.length-1]:null;
+};
+SimileAjax.EventIndex=function(B){var A=this;
+this._unit=(B!=null)?B:SimileAjax.NativeDateUnit;
+this._events=new SimileAjax.SortedArray(function(C,D){return A._unit.compare(C.getStart(),D.getStart());
+});
+this._idToEvent={};
+this._indexed=true;
+};
+SimileAjax.EventIndex.prototype.getUnit=function(){return this._unit;
+};
+SimileAjax.EventIndex.prototype.getEvent=function(A){return this._idToEvent[A];
+};
+SimileAjax.EventIndex.prototype.add=function(A){this._events.add(A);
+this._idToEvent[A.getID()]=A;
+this._indexed=false;
+};
+SimileAjax.EventIndex.prototype.removeAll=function(){this._events.removeAll();
+this._idToEvent={};
+this._indexed=false;
+};
+SimileAjax.EventIndex.prototype.getCount=function(){return this._events.length();
+};
+SimileAjax.EventIndex.prototype.getIterator=function(A,B){if(!this._indexed){this._index();
+}return new SimileAjax.EventIndex._Iterator(this._events,A,B,this._unit);
+};
+SimileAjax.EventIndex.prototype.getReverseIterator=function(A,B){if(!this._indexed){this._index();
+}return new SimileAjax.EventIndex._ReverseIterator(this._events,A,B,this._unit);
+};
+SimileAjax.EventIndex.prototype.getAllIterator=function(){return new SimileAjax.EventIndex._AllIterator(this._events);
+};
+SimileAjax.EventIndex.prototype.getEarliestDate=function(){var A=this._events.getFirst();
+return(A==null)?null:A.getStart();
+};
+SimileAjax.EventIndex.prototype.getLatestDate=function(){var A=this._events.getLast();
+if(A==null){return null;
+}if(!this._indexed){this._index();
+}var C=A._earliestOverlapIndex;
+var B=this._events.elementAt(C).getEnd();
+for(var D=C+1;
+D<this._events.length();
+D++){B=this._unit.later(B,this._events.elementAt(D).getEnd());
+}return B;
+};
+SimileAjax.EventIndex.prototype._index=function(){var E=this._events.length();
+for(var F=0;
+F<E;
+F++){var D=this._events.elementAt(F);
+D._earliestOverlapIndex=F;
+}var G=1;
+for(var F=0;
+F<E;
+F++){var D=this._events.elementAt(F);
+var C=D.getEnd();
+G=Math.max(G,F+1);
+while(G<E){var A=this._events.elementAt(G);
+var B=A.getStart();
+if(this._unit.compare(B,C)<0){A._earliestOverlapIndex=F;
+G++;
+}else{break;
+}}}this._indexed=true;
+};
+SimileAjax.EventIndex._Iterator=function(A,C,D,B){this._events=A;
+this._startDate=C;
+this._endDate=D;
+this._unit=B;
+this._currentIndex=A.find(function(E){return B.compare(E.getStart(),C);
+});
+if(this._currentIndex-1>=0){this._currentIndex=this._events.elementAt(this._currentIndex-1)._earliestOverlapIndex;
+}this._currentIndex--;
+this._maxIndex=A.find(function(E){return B.compare(E.getStart(),D);
+});
+this._hasNext=false;
+this._next=null;
+this._findNext();
+};
+SimileAjax.EventIndex._Iterator.prototype={hasNext:function(){return this._hasNext;
+},next:function(){if(this._hasNext){var A=this._next;
+this._findNext();
+return A;
+}else{return null;
+}},_findNext:function(){var B=this._unit;
+while((++this._currentIndex)<this._maxIndex){var A=this._events.elementAt(this._currentIndex);
+if(B.compare(A.getStart(),this._endDate)<0&&B.compare(A.getEnd(),this._startDate)>0){this._next=A;
+this._hasNext=true;
+return ;
+}}this._next=null;
+this._hasNext=false;
+}};
+SimileAjax.EventIndex._ReverseIterator=function(A,C,D,B){this._events=A;
+this._startDate=C;
+this._endDate=D;
+this._unit=B;
+this._minIndex=A.find(function(E){return B.compare(E.getStart(),C);
+});
+if(this._minIndex-1>=0){this._minIndex=this._events.elementAt(this._minIndex-1)._earliestOverlapIndex;
+}this._maxIndex=A.find(function(E){return B.compare(E.getStart(),D);
+});
+this._currentIndex=this._maxIndex;
+this._hasNext=false;
+this._next=null;
+this._findNext();
+};
+SimileAjax.EventIndex._ReverseIterator.prototype={hasNext:function(){return this._hasNext;
+},next:function(){if(this._hasNext){var A=this._next;
+this._findNext();
+return A;
+}else{return null;
+}},_findNext:function(){var B=this._unit;
+while((--this._currentIndex)>=this._minIndex){var A=this._events.elementAt(this._currentIndex);
+if(B.compare(A.getStart(),this._endDate)<0&&B.compare(A.getEnd(),this._startDate)>0){this._next=A;
+this._hasNext=true;
+return ;
+}}this._next=null;
+this._hasNext=false;
+}};
+SimileAjax.EventIndex._AllIterator=function(A){this._events=A;
+this._index=0;
+};
+SimileAjax.EventIndex._AllIterator.prototype={hasNext:function(){return this._index<this._events.length();
+},next:function(){return this._index<this._events.length()?this._events.elementAt(this._index++):null;
+}};
+
+
+/* date-time.js */
+SimileAjax.DateTime=new Object();
+SimileAjax.DateTime.MILLISECOND=0;
+SimileAjax.DateTime.SECOND=1;
+SimileAjax.DateTime.MINUTE=2;
+SimileAjax.DateTime.HOUR=3;
+SimileAjax.DateTime.DAY=4;
+SimileAjax.DateTime.WEEK=5;
+SimileAjax.DateTime.MONTH=6;
+SimileAjax.DateTime.YEAR=7;
+SimileAjax.DateTime.DECADE=8;
+SimileAjax.DateTime.CENTURY=9;
+SimileAjax.DateTime.MILLENNIUM=10;
+SimileAjax.DateTime.EPOCH=-1;
+SimileAjax.DateTime.ERA=-2;
+SimileAjax.DateTime.gregorianUnitLengths=[];
+(function(){var B=SimileAjax.DateTime;
+var A=B.gregorianUnitLengths;
+A[B.MILLISECOND]=1;
+A[B.SECOND]=1000;
+A[B.MINUTE]=A[B.SECOND]*60;
+A[B.HOUR]=A[B.MINUTE]*60;
+A[B.DAY]=A[B.HOUR]*24;
+A[B.WEEK]=A[B.DAY]*7;
+A[B.MONTH]=A[B.DAY]*31;
+A[B.YEAR]=A[B.DAY]*365;
+A[B.DECADE]=A[B.YEAR]*10;
+A[B.CENTURY]=A[B.YEAR]*100;
+A[B.MILLENNIUM]=A[B.YEAR]*1000;
+})();
+SimileAjax.DateTime._dateRegexp=new RegExp("^(-?)([0-9]{4})("+["(-?([0-9]{2})(-?([0-9]{2}))?)","(-?([0-9]{3}))","(-?W([0-9]{2})(-?([1-7]))?)"].join("|")+")?$");
+SimileAjax.DateTime._timezoneRegexp=new RegExp("Z|(([-+])([0-9]{2})(:?([0-9]{2}))?)$");
+SimileAjax.DateTime._timeRegexp=new RegExp("^([0-9]{2})(:?([0-9]{2})(:?([0-9]{2})(.([0-9]+))?)?)?$");
+SimileAjax.DateTime.setIso8601Date=function(G,C){var I=C.match(SimileAjax.DateTime._dateRegexp);
+if(!I){throw new Error("Invalid date string: "+C);
+}var B=(I[1]=="-")?-1:1;
+var J=B*I[2];
+var H=I[5];
+var D=I[7];
+var F=I[9];
+var A=I[11];
+var M=(I[13])?I[13]:1;
+G.setUTCFullYear(J);
+if(F){G.setUTCMonth(0);
+G.setUTCDate(Number(F));
+}else{if(A){G.setUTCMonth(0);
+G.setUTCDate(1);
+var L=G.getUTCDay();
+var K=(L)?L:7;
+var E=Number(M)+(7*Number(A));
+if(K<=4){G.setUTCDate(E+1-K);
+}else{G.setUTCDate(E+8-K);
+}}else{if(H){G.setUTCDate(1);
+G.setUTCMonth(H-1);
+}if(D){G.setUTCDate(D);
+}}}return G;
+};
+SimileAjax.DateTime.setIso8601Time=function(F,D){var G=D.match(SimileAjax.DateTime._timeRegexp);
+if(!G){SimileAjax.Debug.warn("Invalid time string: "+D);
+return false;
+}var A=G[1];
+var E=Number((G[3])?G[3]:0);
+var C=(G[5])?G[5]:0;
+var B=G[7]?(Number("0."+G[7])*1000):0;
+F.setUTCHours(A);
+F.setUTCMinutes(E);
+F.setUTCSeconds(C);
+F.setUTCMilliseconds(B);
+return F;
+};
+SimileAjax.DateTime.timezoneOffset=new Date().getTimezoneOffset();
+SimileAjax.DateTime.setIso8601=function(B,A){var D=null;
+var E=(A.indexOf("T")==-1)?A.split(" "):A.split("T");
+SimileAjax.DateTime.setIso8601Date(B,E[0]);
+if(E.length==2){var C=E[1].match(SimileAjax.DateTime._timezoneRegexp);
+if(C){if(C[0]=="Z"){D=0;
+}else{D=(Number(C[3])*60)+Number(C[5]);
+D*=((C[2]=="-")?1:-1);
+}E[1]=E[1].substr(0,E[1].length-C[0].length);
+}SimileAjax.DateTime.setIso8601Time(B,E[1]);
+}if(D==null){D=B.getTimezoneOffset();
+}B.setTime(B.getTime()+D*60000);
+return B;
+};
+SimileAjax.DateTime.parseIso8601DateTime=function(A){try{return SimileAjax.DateTime.setIso8601(new Date(0),A);
+}catch(B){return null;
+}};
+SimileAjax.DateTime.parseGregorianDateTime=function(F){if(F==null){return null;
+}else{if(F instanceof Date){return F;
+}}var B=F.toString();
+if(B.length>0&&B.length<8){var C=B.indexOf(" ");
+if(C>0){var A=parseInt(B.substr(0,C));
+var G=B.substr(C+1);
+if(G.toLowerCase()=="bc"){A=1-A;
+}}else{var A=parseInt(B);
+}var E=new Date(0);
+E.setUTCFullYear(A);
+return E;
+}try{return new Date(Date.parse(B));
+}catch(D){return null;
+}};
+SimileAjax.DateTime.roundDownToInterval=function(E,B,I,K,A){var F=I*SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR];
+var J=new Date(E.getTime()+F);
+var C=function(L){L.setUTCMilliseconds(0);
+L.setUTCSeconds(0);
+L.setUTCMinutes(0);
+L.setUTCHours(0);
+};
+var D=function(L){C(L);
+L.setUTCDate(1);
+L.setUTCMonth(0);
+};
+switch(B){case SimileAjax.DateTime.MILLISECOND:var H=J.getUTCMilliseconds();
+J.setUTCMilliseconds(H-(H%K));
+break;
+case SimileAjax.DateTime.SECOND:J.setUTCMilliseconds(0);
+var H=J.getUTCSeconds();
+J.setUTCSeconds(H-(H%K));
+break;
+case SimileAjax.DateTime.MINUTE:J.setUTCMilliseconds(0);
+J.setUTCSeconds(0);
+var H=J.getUTCMinutes();
+J.setTime(J.getTime()-(H%K)*SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]);
+break;
+case SimileAjax.DateTime.HOUR:J.setUTCMilliseconds(0);
+J.setUTCSeconds(0);
+J.setUTCMinutes(0);
+var H=J.getUTCHours();
+J.setUTCHours(H-(H%K));
+break;
+case SimileAjax.DateTime.DAY:C(J);
+break;
+case SimileAjax.DateTime.WEEK:C(J);
+var G=(J.getUTCDay()+7-A)%7;
+J.setTime(J.getTime()-G*SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.DAY]);
+break;
+case SimileAjax.DateTime.MONTH:C(J);
+J.setUTCDate(1);
+var H=J.getUTCMonth();
+J.setUTCMonth(H-(H%K));
+break;
+case SimileAjax.DateTime.YEAR:D(J);
+var H=J.getUTCFullYear();
+J.setUTCFullYear(H-(H%K));
+break;
+case SimileAjax.DateTime.DECADE:D(J);
+J.setUTCFullYear(Math.floor(J.getUTCFullYear()/10)*10);
+break;
+case SimileAjax.DateTime.CENTURY:D(J);
+J.setUTCFullYear(Math.floor(J.getUTCFullYear()/100)*100);
+break;
+case SimileAjax.DateTime.MILLENNIUM:D(J);
+J.setUTCFullYear(Math.floor(J.getUTCFullYear()/1000)*1000);
+break;
+}E.setTime(J.getTime()-F);
+};
+SimileAjax.DateTime.roundUpToInterval=function(C,F,D,A,B){var E=C.getTime();
+SimileAjax.DateTime.roundDownToInterval(C,F,D,A,B);
+if(C.getTime()<E){C.setTime(C.getTime()+SimileAjax.DateTime.gregorianUnitLengths[F]*A);
+}};
+SimileAjax.DateTime.incrementByInterval=function(A,D,B){B=(typeof B=="undefined")?0:B;
+var E=B*SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR];
+var C=new Date(A.getTime()+E);
+switch(D){case SimileAjax.DateTime.MILLISECOND:C.setTime(C.getTime()+1);
+break;
+case SimileAjax.DateTime.SECOND:C.setTime(C.getTime()+1000);
+break;
+case SimileAjax.DateTime.MINUTE:C.setTime(C.getTime()+SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]);
+break;
+case SimileAjax.DateTime.HOUR:C.setTime(C.getTime()+SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]);
+break;
+case SimileAjax.DateTime.DAY:C.setUTCDate(C.getUTCDate()+1);
+break;
+case SimileAjax.DateTime.WEEK:C.setUTCDate(C.getUTCDate()+7);
+break;
+case SimileAjax.DateTime.MONTH:C.setUTCMonth(C.getUTCMonth()+1);
+break;
+case SimileAjax.DateTime.YEAR:C.setUTCFullYear(C.getUTCFullYear()+1);
+break;
+case SimileAjax.DateTime.DECADE:C.setUTCFullYear(C.getUTCFullYear()+10);
+break;
+case SimileAjax.DateTime.CENTURY:C.setUTCFullYear(C.getUTCFullYear()+100);
+break;
+case SimileAjax.DateTime.MILLENNIUM:C.setUTCFullYear(C.getUTCFullYear()+1000);
+break;
+}A.setTime(C.getTime()-E);
+};
+SimileAjax.DateTime.removeTimeZoneOffset=function(A,B){return new Date(A.getTime()+B*SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]);
+};
+SimileAjax.DateTime.getTimezone=function(){var A=new Date().getTimezoneOffset();
+return A/-60;
+};
+
+
+/* debug.js */
+SimileAjax.Debug={silent:false};
+SimileAjax.Debug.log=function(B){var A;
+if("console" in window&&"log" in window.console){A=function(C){console.log(C);
+};
+}else{A=function(C){if(!SimileAjax.Debug.silent){alert(C);
+}};
+}SimileAjax.Debug.log=A;
+A(B);
+};
+SimileAjax.Debug.warn=function(B){var A;
+if("console" in window&&"warn" in window.console){A=function(C){console.warn(C);
+};
+}else{A=function(C){if(!SimileAjax.Debug.silent){alert(C);
+}};
+}SimileAjax.Debug.warn=A;
+A(B);
+};
+SimileAjax.Debug.exception=function(B,D){var A,C=SimileAjax.parseURLParameters();
+if(C.errors=="throw"||SimileAjax.params.errors=="throw"){A=function(F,E){throw (F);
+};
+}else{if("console" in window&&"error" in window.console){A=function(F,E){if(E!=null){console.error(E+" %o",F);
+}else{console.error(F);
+}throw (F);
+};
+}else{A=function(F,E){if(!SimileAjax.Debug.silent){alert("Caught exception: "+E+"\n\nDetails: "+("description" in F?F.description:F));
+}throw (F);
+};
+}}SimileAjax.Debug.exception=A;
+A(B,D);
+};
+SimileAjax.Debug.objectToString=function(A){return SimileAjax.Debug._objectToString(A,"");
+};
+SimileAjax.Debug._objectToString=function(D,C){var B=C+" ";
+if(typeof D=="object"){var A="{";
+for(E in D){A+=B+E+": "+SimileAjax.Debug._objectToString(D[E],B)+"\n";
+}A+=C+"}";
+return A;
+}else{if(typeof D=="array"){var A="[";
+for(var E=0;
+E<D.length;
+E++){A+=SimileAjax.Debug._objectToString(D[E],B)+"\n";
+}A+=C+"]";
+return A;
+}else{return D;
+}}};
+
+
+/* dom.js */
+SimileAjax.DOM=new Object();
+SimileAjax.DOM.registerEventWithObject=function(C,A,D,B){SimileAjax.DOM.registerEvent(C,A,function(F,E,G){return D[B].call(D,F,E,G);
+});
+};
+SimileAjax.DOM.registerEvent=function(C,B,D){var A=function(E){E=(E)?E:((event)?event:null);
+if(E){var F=(E.target)?E.target:((E.srcElement)?E.srcElement:null);
+if(F){F=(F.nodeType==1||F.nodeType==9)?F:F.parentNode;
+}return D(C,E,F);
+}return true;
+};
+if(SimileAjax.Platform.browser.isIE){C.attachEvent("on"+B,A);
+}else{C.addEventListener(B,A,false);
+}};
+SimileAjax.DOM.getPageCoordinates=function(B){var E=0;
+var D=0;
+if(B.nodeType!=1){B=B.parentNode;
+}var C=B;
+while(C!=null){E+=C.offsetLeft;
+D+=C.offsetTop;
+C=C.offsetParent;
+}var A=document.body;
+while(B!=null&&B!=A){if("scrollLeft" in B){E-=B.scrollLeft;
+D-=B.scrollTop;
+}B=B.parentNode;
+}return{left:E,top:D};
+};
+SimileAjax.DOM.getSize=function(B){var A=this.getStyle(B,"width");
+var C=this.getStyle(B,"height");
+if(A.indexOf("px")>-1){A=A.replace("px","");
+}if(C.indexOf("px")>-1){C=C.replace("px","");
+}return{w:A,h:C};
+};
+SimileAjax.DOM.getStyle=function(B,A){if(B.currentStyle){var C=B.currentStyle[A];
+}else{if(window.getComputedStyle){var C=document.defaultView.getComputedStyle(B,null).getPropertyValue(A);
+}else{var C="";
+}}return C;
+};
+SimileAjax.DOM.getEventRelativeCoordinates=function(B,C){if(SimileAjax.Platform.browser.isIE){if(B.type=="mousewheel"){var A=SimileAjax.DOM.getPageCoordinates(C);
+return{x:B.clientX-A.left,y:B.clientY-A.top};
+}else{return{x:B.offsetX,y:B.offsetY};
+}}else{var A=SimileAjax.DOM.getPageCoordinates(C);
+if((B.type=="DOMMouseScroll")&&SimileAjax.Platform.browser.isFirefox&&(SimileAjax.Platform.browser.majorVersion==2)){return{x:B.screenX-A.left,y:B.screenY-A.top};
+}else{return{x:B.pageX-A.left,y:B.pageY-A.top};
+}}};
+SimileAjax.DOM.getEventPageCoordinates=function(A){if(SimileAjax.Platform.browser.isIE){return{x:A.clientX+document.body.scrollLeft,y:A.clientY+document.body.scrollTop};
+}else{return{x:A.pageX,y:A.pageY};
+}};
+SimileAjax.DOM.hittest=function(A,C,B){return SimileAjax.DOM._hittest(document.body,A,C,B);
+};
+SimileAjax.DOM._hittest=function(C,L,K,A){var M=C.childNodes;
+outer:for(var G=0;
+G<M.length;
+G++){var H=M[G];
+for(var F=0;
+F<A.length;
+F++){if(H==A[F]){continue outer;
+}}if(H.offsetWidth==0&&H.offsetHeight==0){var B=SimileAjax.DOM._hittest(H,L,K,A);
+if(B!=H){return B;
+}}else{var J=0;
+var E=0;
+var D=H;
+while(D){J+=D.offsetTop;
+E+=D.offsetLeft;
+D=D.offsetParent;
+}if(E<=L&&J<=K&&(L-E)<H.offsetWidth&&(K-J)<H.offsetHeight){return SimileAjax.DOM._hittest(H,L,K,A);
+}else{if(H.nodeType==1&&H.tagName=="TR"){var I=SimileAjax.DOM._hittest(H,L,K,A);
+if(I!=H){return I;
+}}}}}return C;
+};
+SimileAjax.DOM.cancelEvent=function(A){A.returnValue=false;
+A.cancelBubble=true;
+if("preventDefault" in A){A.preventDefault();
+}};
+SimileAjax.DOM.appendClassName=function(D,A){var C=D.className.split(" ");
+for(var B=0;
+B<C.length;
+B++){if(C[B]==A){return ;
+}}C.push(A);
+D.className=C.join(" ");
+};
+SimileAjax.DOM.createInputElement=function(A){var B=document.createElement("div");
+B.innerHTML="<input type='"+A+"' />";
+return B.firstChild;
+};
+SimileAjax.DOM.createDOMFromTemplate=function(A){var B={};
+B.elmt=SimileAjax.DOM._createDOMFromTemplate(A,B,null);
+return B;
+};
+SimileAjax.DOM._createDOMFromTemplate=function(F,G,D){if(F==null){return null;
+}else{if(typeof F!="object"){var C=document.createTextNode(F);
+if(D!=null){D.appendChild(C);
+}return C;
+}else{var A=null;
+if("tag" in F){var J=F.tag;
+if(D!=null){if(J=="tr"){A=D.insertRow(D.rows.length);
+}else{if(J=="td"){A=D.insertCell(D.cells.length);
+}}}if(A==null){A=J=="input"?SimileAjax.DOM.createInputElement(F.type):document.createElement(J);
+if(D!=null){D.appendChild(A);
+}}}else{A=F.elmt;
+if(D!=null){D.appendChild(A);
+}}for(var B in F){var H=F[B];
+if(B=="field"){G[H]=A;
+}else{if(B=="className"){A.className=H;
+}else{if(B=="id"){A.id=H;
+}else{if(B=="title"){A.title=H;
+}else{if(B=="type"&&A.tagName=="input"){}else{if(B=="style"){for(n in H){var I=H[n];
+if(n=="float"){n=SimileAjax.Platform.browser.isIE?"styleFloat":"cssFloat";
+}A.style[n]=I;
+}}else{if(B=="children"){for(var E=0;
+E<H.length;
+E++){SimileAjax.DOM._createDOMFromTemplate(H[E],G,A);
+}}else{if(B!="tag"&&B!="elmt"){A.setAttribute(B,H);
+}}}}}}}}}return A;
+}}};
+SimileAjax.DOM._cachedParent=null;
+SimileAjax.DOM.createElementFromString=function(A){if(SimileAjax.DOM._cachedParent==null){SimileAjax.DOM._cachedParent=document.createElement("div");
+}SimileAjax.DOM._cachedParent.innerHTML=A;
+return SimileAjax.DOM._cachedParent.firstChild;
+};
+SimileAjax.DOM.createDOMFromString=function(A,C,D){var B=typeof A=="string"?document.createElement(A):A;
+B.innerHTML=C;
+var E={elmt:B};
+SimileAjax.DOM._processDOMChildrenConstructedFromString(E,B,D!=null?D:{});
+return E;
+};
+SimileAjax.DOM._processDOMConstructedFromString=function(D,A,B){var E=A.id;
+if(E!=null&&E.length>0){A.removeAttribute("id");
+if(E in B){var C=A.parentNode;
+C.insertBefore(B[E],A);
+C.removeChild(A);
+D[E]=B[E];
+return ;
+}else{D[E]=A;
+}}if(A.hasChildNodes()){SimileAjax.DOM._processDOMChildrenConstructedFromString(D,A,B);
+}};
+SimileAjax.DOM._processDOMChildrenConstructedFromString=function(E,B,D){var C=B.firstChild;
+while(C!=null){var A=C.nextSibling;
+if(C.nodeType==1){SimileAjax.DOM._processDOMConstructedFromString(E,C,D);
+}C=A;
+}};
+
+
+/* graphics.js */
+SimileAjax.Graphics=new Object();
+SimileAjax.Graphics.pngIsTranslucent=(!SimileAjax.Platform.browser.isIE)||(SimileAjax.Platform.browser.majorVersion>6);
+if(!SimileAjax.Graphics.pngIsTranslucent){SimileAjax.includeCssFile(document,SimileAjax.urlPrefix+"styles/graphics-ie6.css");
+}SimileAjax.Graphics._createTranslucentImage1=function(A,C){var B=document.createElement("img");
+B.setAttribute("src",A);
+if(C!=null){B.style.verticalAlign=C;
+}return B;
+};
+SimileAjax.Graphics._createTranslucentImage2=function(A,C){var B=document.createElement("img");
+B.style.width="1px";
+B.style.height="1px";
+B.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+A+"', sizingMethod='image')";
+B.style.verticalAlign=(C!=null)?C:"middle";
+return B;
+};
+SimileAjax.Graphics.createTranslucentImage=SimileAjax.Graphics.pngIsTranslucent?SimileAjax.Graphics._createTranslucentImage1:SimileAjax.Graphics._createTranslucentImage2;
+SimileAjax.Graphics._createTranslucentImageHTML1=function(A,B){return'<img src="'+A+'"'+(B!=null?' style="vertical-align: '+B+';"':"")+" />";
+};
+SimileAjax.Graphics._createTranslucentImageHTML2=function(A,C){var B="width: 1px; height: 1px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+A+"', sizingMethod='image');"+(C!=null?" vertical-align: "+C+";":"");
+return"<img src='"+A+"' style=\""+B+'" />';
+};
+SimileAjax.Graphics.createTranslucentImageHTML=SimileAjax.Graphics.pngIsTranslucent?SimileAjax.Graphics._createTranslucentImageHTML1:SimileAjax.Graphics._createTranslucentImageHTML2;
+SimileAjax.Graphics.setOpacity=function(B,A){if(SimileAjax.Platform.browser.isIE){B.style.filter="progid:DXImageTransform.Microsoft.Alpha(Style=0,Opacity="+A+")";
+}else{var C=(A/100).toString();
+B.style.opacity=C;
+B.style.MozOpacity=C;
+}};
+SimileAjax.Graphics.bubbleConfig={containerCSSClass:"simileAjax-bubble-container",innerContainerCSSClass:"simileAjax-bubble-innerContainer",contentContainerCSSClass:"simileAjax-bubble-contentContainer",borderGraphicSize:50,borderGraphicCSSClassPrefix:"simileAjax-bubble-border-",arrowGraphicTargetOffset:33,arrowGraphicLength:100,arrowGraphicWidth:49,arrowGraphicCSSClassPrefix:"simileAjax-bubble-arrow-",closeGraphicCSSClass:"simileAjax-bubble-close",extraPadding:20};
+SimileAjax.Graphics.createBubbleForContentAndPoint=function(F,E,C,B,D,A){if(typeof B!="number"){B=300;
+}if(typeof A!="number"){A=0;
+}F.style.position="absolute";
+F.style.left="-5000px";
+F.style.top="0px";
+F.style.width=B+"px";
+document.body.appendChild(F);
+window.setTimeout(function(){var H=F.scrollWidth+10;
+var J=F.scrollHeight+10;
+var G=0;
+if(A>0&&J>A){J=A;
+G=H-25;
+}var I=SimileAjax.Graphics.createBubbleForPoint(E,C,H,J,D);
+document.body.removeChild(F);
+F.style.position="static";
+F.style.left="";
+F.style.top="";
+if(G>0){var K=document.createElement("div");
+F.style.width="";
+K.style.width=G+"px";
+K.appendChild(F);
+I.content.appendChild(K);
+}else{F.style.width=H+"px";
+I.content.appendChild(F);
+}},200);
+};
+SimileAjax.Graphics.createBubbleForPoint=function(B,A,J,N,F){J=parseInt(J,10);
+N=parseInt(N,10);
+var E=SimileAjax.Graphics.bubbleConfig;
+var M=SimileAjax.Graphics.pngIsTranslucent?"pngTranslucent":"pngNotTranslucent";
+var L=J+2*E.borderGraphicSize;
+var O=N+2*E.borderGraphicSize;
+var K=function(S){return S+" "+S+"-"+M;
+};
+var H=document.createElement("div");
+H.className=K(E.containerCSSClass);
+H.style.width=J+"px";
+H.style.height=N+"px";
+var D=document.createElement("div");
+D.className=K(E.innerContainerCSSClass);
+H.appendChild(D);
+var I=function(){if(!Q._closed){document.body.removeChild(Q._div);
+Q._doc=null;
+Q._div=null;
+Q._content=null;
+Q._closed=true;
+}};
+var Q={_closed:false};
+var R=SimileAjax.WindowManager.pushLayer(I,true,H);
+Q._div=H;
+Q.close=function(){SimileAjax.WindowManager.popLayer(R);
+};
+var G=function(T){var S=document.createElement("div");
+S.className=K(E.borderGraphicCSSClassPrefix+T);
+D.appendChild(S);
+};
+G("top-left");
+G("top-right");
+G("bottom-left");
+G("bottom-right");
+G("left");
+G("right");
+G("top");
+G("bottom");
+var C=document.createElement("div");
+C.className=K(E.contentContainerCSSClass);
+D.appendChild(C);
+Q.content=C;
+var P=document.createElement("div");
+P.className=K(E.closeGraphicCSSClass);
+D.appendChild(P);
+SimileAjax.WindowManager.registerEventWithObject(P,"click",Q,"close");
+(function(){var Y=SimileAjax.Graphics.getWindowDimensions();
+var T=Y.w;
+var U=Y.h;
+var V=Math.ceil(E.arrowGraphicWidth/2);
+var Z=function(b){var a=document.createElement("div");
+a.className=K(E.arrowGraphicCSSClassPrefix+"point-"+b);
+D.appendChild(a);
+return a;
+};
+if(B-V-E.borderGraphicSize-E.extraPadding>0&&B+V+E.borderGraphicSize+E.extraPadding<T){var X=B-Math.round(J/2);
+X=B<(T/2)?Math.max(X,E.extraPadding+E.borderGraphicSize):Math.min(X,T-E.extraPadding-E.borderGraphicSize-J);
+if((F&&F=="top")||(!F&&(A-E.arrowGraphicTargetOffset-N-E.borderGraphicSize-E.extraPadding>0))){var S=Z("down");
+S.style.left=(B-V-X)+"px";
+H.style.left=X+"px";
+H.style.top=(A-E.arrowGraphicTargetOffset-N)+"px";
+return ;
+}else{if((F&&F=="bottom")||(!F&&(A+E.arrowGraphicTargetOffset+N+E.borderGraphicSize+E.extraPadding<U))){var S=Z("up");
+S.style.left=(B-V-X)+"px";
+H.style.left=X+"px";
+H.style.top=(A+E.arrowGraphicTargetOffset)+"px";
+return ;
+}}}var W=A-Math.round(N/2);
+W=A<(U/2)?Math.max(W,E.extraPadding+E.borderGraphicSize):Math.min(W,U-E.extraPadding-E.borderGraphicSize-N);
+if((F&&F=="left")||(!F&&(B-E.arrowGraphicTargetOffset-J-E.borderGraphicSize-E.extraPadding>0))){var S=Z("right");
+S.style.top=(A-V-W)+"px";
+H.style.top=W+"px";
+H.style.left=(B-E.arrowGraphicTargetOffset-J)+"px";
+}else{var S=Z("left");
+S.style.top=(A-V-W)+"px";
+H.style.top=W+"px";
+H.style.left=(B+E.arrowGraphicTargetOffset)+"px";
+}})();
+document.body.appendChild(H);
+return Q;
+};
+SimileAjax.Graphics.getWindowDimensions=function(){if(typeof window.innerHeight=="number"){return{w:window.innerWidth,h:window.innerHeight};
+}else{if(document.documentElement&&document.documentElement.clientHeight){return{w:document.documentElement.clientWidth,h:document.documentElement.clientHeight};
+}else{if(document.body&&document.body.clientHeight){return{w:document.body.clientWidth,h:document.body.clientHeight};
+}}}};
+SimileAjax.Graphics.createMessageBubble=function(H){var G=H.createElement("div");
+if(SimileAjax.Graphics.pngIsTranslucent){var I=H.createElement("div");
+I.style.height="33px";
+I.style.background="url("+SimileAjax.urlPrefix+"images/message-top-left.png) top left no-repeat";
+I.style.paddingLeft="44px";
+G.appendChild(I);
+var D=H.createElement("div");
+D.style.height="33px";
+D.style.background="url("+SimileAjax.urlPrefix+"images/message-top-right.png) top right no-repeat";
+I.appendChild(D);
+var F=H.createElement("div");
+F.style.background="url("+SimileAjax.urlPrefix+"images/message-left.png) top left repeat-y";
+F.style.paddingLeft="44px";
+G.appendChild(F);
+var B=H.createElement("div");
+B.style.background="url("+SimileAjax.urlPrefix+"images/message-right.png) top right repeat-y";
+B.style.paddingRight="44px";
+F.appendChild(B);
+var C=H.createElement("div");
+B.appendChild(C);
+var E=H.createElement("div");
+E.style.height="55px";
+E.style.background="url("+SimileAjax.urlPrefix+"images/message-bottom-left.png) bottom left no-repeat";
+E.style.paddingLeft="44px";
+G.appendChild(E);
+var A=H.createElement("div");
+A.style.height="55px";
+A.style.background="url("+SimileAjax.urlPrefix+"images/message-bottom-right.png) bottom right no-repeat";
+E.appendChild(A);
+}else{G.style.border="2px solid #7777AA";
+G.style.padding="20px";
+G.style.background="white";
+SimileAjax.Graphics.setOpacity(G,90);
+var C=H.createElement("div");
+G.appendChild(C);
+}return{containerDiv:G,contentDiv:C};
+};
+SimileAjax.Graphics.createAnimation=function(B,E,D,C,A){return new SimileAjax.Graphics._Animation(B,E,D,C,A);
+};
+SimileAjax.Graphics._Animation=function(B,E,D,C,A){this.f=B;
+this.cont=(typeof A=="function")?A:function(){};
+this.from=E;
+this.to=D;
+this.current=E;
+this.duration=C;
+this.start=new Date().getTime();
+this.timePassed=0;
+};
+SimileAjax.Graphics._Animation.prototype.run=function(){var A=this;
+window.setTimeout(function(){A.step();
+},50);
+};
+SimileAjax.Graphics._Animation.prototype.step=function(){this.timePassed+=50;
+var A=this.timePassed/this.duration;
+var B=-Math.cos(A*Math.PI)/2+0.5;
+var D=B*(this.to-this.from)+this.from;
+try{this.f(D,D-this.current);
+}catch(C){}this.current=D;
+if(this.timePassed<this.duration){this.run();
+}else{this.f(this.to,0);
+this["cont"]();
+}};
+SimileAjax.Graphics.createStructuredDataCopyButton=function(F,B,D,E){var G=document.createElement("div");
+G.style.position="relative";
+G.style.display="inline";
+G.style.width=B+"px";
+G.style.height=D+"px";
+G.style.overflow="hidden";
+G.style.margin="2px";
+if(SimileAjax.Graphics.pngIsTranslucent){G.style.background="url("+F+") no-repeat";
+}else{G.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+F+"', sizingMethod='image')";
+}var A;
+if(SimileAjax.Platform.browser.isIE){A="filter:alpha(opacity=0)";
+}else{A="opacity: 0";
+}G.innerHTML="<textarea rows='1' autocomplete='off' value='none' style='"+A+"' />";
+var C=G.firstChild;
+C.style.width=B+"px";
+C.style.height=D+"px";
+C.onmousedown=function(H){H=(H)?H:((event)?event:null);
+if(H.button==2){C.value=E();
+C.select();
+}};
+return G;
+};
+SimileAjax.Graphics.getWidthHeight=function(C){var A,B;
+if(C.getBoundingClientRect==null){A=C.offsetWidth;
+B=C.offsetHeight;
+}else{var D=C.getBoundingClientRect();
+A=Math.ceil(D.right-D.left);
+B=Math.ceil(D.bottom-D.top);
+}return{width:A,height:B};
+};
+SimileAjax.Graphics.getFontRenderingContext=function(A,B){return new SimileAjax.Graphics._FontRenderingContext(A,B);
+};
+SimileAjax.Graphics._FontRenderingContext=function(A,B){this._elmt=A;
+this._elmt.style.visibility="hidden";
+if(typeof B=="string"){this._elmt.style.width=B;
+}else{if(typeof B=="number"){this._elmt.style.width=B+"px";
+}}};
+SimileAjax.Graphics._FontRenderingContext.prototype.dispose=function(){this._elmt=null;
+};
+SimileAjax.Graphics._FontRenderingContext.prototype.update=function(){this._elmt.innerHTML="A";
+this._lineHeight=this._elmt.offsetHeight;
+};
+SimileAjax.Graphics._FontRenderingContext.prototype.computeSize=function(D,B){var C=this._elmt;
+C.innerHTML=D;
+C.className=B===undefined?"":B;
+var A=SimileAjax.Graphics.getWidthHeight(C);
+C.className="";
+return A;
+};
+SimileAjax.Graphics._FontRenderingContext.prototype.getLineHeight=function(){return this._lineHeight;
+};
+
+
+/* history.js */
+SimileAjax.History={maxHistoryLength:10,historyFile:"__history__.html",enabled:true,_initialized:false,_listeners:new SimileAjax.ListenerQueue(),_actions:[],_baseIndex:0,_currentIndex:0,_plainDocumentTitle:document.title};
+SimileAjax.History.formatHistoryEntryTitle=function(A){return SimileAjax.History._plainDocumentTitle+" {"+A+"}";
+};
+SimileAjax.History.initialize=function(){if(SimileAjax.History._initialized){return ;
+}if(SimileAjax.History.enabled){var A=document.createElement("iframe");
+A.id="simile-ajax-history";
+A.style.position="absolute";
+A.style.width="10px";
+A.style.height="10px";
+A.style.top="0px";
+A.style.left="0px";
+A.style.visibility="hidden";
+A.src=SimileAjax.History.historyFile+"?0";
+document.body.appendChild(A);
+SimileAjax.DOM.registerEvent(A,"load",SimileAjax.History._handleIFrameOnLoad);
+SimileAjax.History._iframe=A;
+}SimileAjax.History._initialized=true;
+};
+SimileAjax.History.addListener=function(A){SimileAjax.History.initialize();
+SimileAjax.History._listeners.add(A);
+};
+SimileAjax.History.removeListener=function(A){SimileAjax.History.initialize();
+SimileAjax.History._listeners.remove(A);
+};
+SimileAjax.History.addAction=function(A){SimileAjax.History.initialize();
+SimileAjax.History._listeners.fire("onBeforePerform",[A]);
+window.setTimeout(function(){try{A.perform();
+SimileAjax.History._listeners.fire("onAfterPerform",[A]);
+if(SimileAjax.History.enabled){SimileAjax.History._actions=SimileAjax.History._actions.slice(0,SimileAjax.History._currentIndex-SimileAjax.History._baseIndex);
+SimileAjax.History._actions.push(A);
+SimileAjax.History._currentIndex++;
+var C=SimileAjax.History._actions.length-SimileAjax.History.maxHistoryLength;
+if(C>0){SimileAjax.History._actions=SimileAjax.History._actions.slice(C);
+SimileAjax.History._baseIndex+=C;
+}try{SimileAjax.History._iframe.contentWindow.location.search="?"+SimileAjax.History._currentIndex;
+}catch(B){var D=SimileAjax.History.formatHistoryEntryTitle(A.label);
+document.title=D;
+}}}catch(B){SimileAjax.Debug.exception(B,"Error adding action {"+A.label+"} to history");
+}},0);
+};
+SimileAjax.History.addLengthyAction=function(B,A,C){SimileAjax.History.addAction({perform:B,undo:A,label:C,uiLayer:SimileAjax.WindowManager.getBaseLayer(),lengthy:true});
+};
+SimileAjax.History._handleIFrameOnLoad=function(){try{var B=SimileAjax.History._iframe.contentWindow.location.search;
+var F=(B.length==0)?0:Math.max(0,parseInt(B.substr(1)));
+var D=function(){var G=F-SimileAjax.History._currentIndex;
+SimileAjax.History._currentIndex+=G;
+SimileAjax.History._baseIndex+=G;
+SimileAjax.History._iframe.contentWindow.location.search="?"+F;
+};
+if(F<SimileAjax.History._currentIndex){SimileAjax.History._listeners.fire("onBeforeUndoSeveral",[]);
+window.setTimeout(function(){while(SimileAjax.History._currentIndex>F&&SimileAjax.History._currentIndex>SimileAjax.History._baseIndex){SimileAjax.History._currentIndex--;
+var G=SimileAjax.History._actions[SimileAjax.History._currentIndex-SimileAjax.History._baseIndex];
+try{G.undo();
+}catch(H){SimileAjax.Debug.exception(H,"History: Failed to undo action {"+G.label+"}");
+}}SimileAjax.History._listeners.fire("onAfterUndoSeveral",[]);
+D();
+},0);
+}else{if(F>SimileAjax.History._currentIndex){SimileAjax.History._listeners.fire("onBeforeRedoSeveral",[]);
+window.setTimeout(function(){while(SimileAjax.History._currentIndex<F&&SimileAjax.History._currentIndex-SimileAjax.History._baseIndex<SimileAjax.History._actions.length){var G=SimileAjax.History._actions[SimileAjax.History._currentIndex-SimileAjax.History._baseIndex];
+try{G.perform();
+}catch(H){SimileAjax.Debug.exception(H,"History: Failed to redo action {"+G.label+"}");
+}SimileAjax.History._currentIndex++;
+}SimileAjax.History._listeners.fire("onAfterRedoSeveral",[]);
+D();
+},0);
+}else{var A=SimileAjax.History._currentIndex-SimileAjax.History._baseIndex-1;
+var E=(A>=0&&A<SimileAjax.History._actions.length)?SimileAjax.History.formatHistoryEntryTitle(SimileAjax.History._actions[A].label):SimileAjax.History._plainDocumentTitle;
+SimileAjax.History._iframe.contentWindow.document.title=E;
+document.title=E;
+}}}catch(C){}};
+SimileAjax.History.getNextUndoAction=function(){try{var A=SimileAjax.History._currentIndex-SimileAjax.History._baseIndex-1;
+return SimileAjax.History._actions[A];
+}catch(B){return null;
+}};
+SimileAjax.History.getNextRedoAction=function(){try{var A=SimileAjax.History._currentIndex-SimileAjax.History._baseIndex;
+return SimileAjax.History._actions[A];
+}catch(B){return null;
+}};
+
+
+/* html.js */
+SimileAjax.HTML=new Object();
+SimileAjax.HTML._e2uHash={};
+(function(){var A=SimileAjax.HTML._e2uHash;
+A["nbsp"]="\u00A0[space]";
+A["iexcl"]="\u00A1";
+A["cent"]="\u00A2";
+A["pound"]="\u00A3";
+A["curren"]="\u00A4";
+A["yen"]="\u00A5";
+A["brvbar"]="\u00A6";
+A["sect"]="\u00A7";
+A["uml"]="\u00A8";
+A["copy"]="\u00A9";
+A["ordf"]="\u00AA";
+A["laquo"]="\u00AB";
+A["not"]="\u00AC";
+A["shy"]="\u00AD";
+A["reg"]="\u00AE";
+A["macr"]="\u00AF";
+A["deg"]="\u00B0";
+A["plusmn"]="\u00B1";
+A["sup2"]="\u00B2";
+A["sup3"]="\u00B3";
+A["acute"]="\u00B4";
+A["micro"]="\u00B5";
+A["para"]="\u00B6";
+A["middot"]="\u00B7";
+A["cedil"]="\u00B8";
+A["sup1"]="\u00B9";
+A["ordm"]="\u00BA";
+A["raquo"]="\u00BB";
+A["frac14"]="\u00BC";
+A["frac12"]="\u00BD";
+A["frac34"]="\u00BE";
+A["iquest"]="\u00BF";
+A["Agrave"]="\u00C0";
+A["Aacute"]="\u00C1";
+A["Acirc"]="\u00C2";
+A["Atilde"]="\u00C3";
+A["Auml"]="\u00C4";
+A["Aring"]="\u00C5";
+A["AElig"]="\u00C6";
+A["Ccedil"]="\u00C7";
+A["Egrave"]="\u00C8";
+A["Eacute"]="\u00C9";
+A["Ecirc"]="\u00CA";
+A["Euml"]="\u00CB";
+A["Igrave"]="\u00CC";
+A["Iacute"]="\u00CD";
+A["Icirc"]="\u00CE";
+A["Iuml"]="\u00CF";
+A["ETH"]="\u00D0";
+A["Ntilde"]="\u00D1";
+A["Ograve"]="\u00D2";
+A["Oacute"]="\u00D3";
+A["Ocirc"]="\u00D4";
+A["Otilde"]="\u00D5";
+A["Ouml"]="\u00D6";
+A["times"]="\u00D7";
+A["Oslash"]="\u00D8";
+A["Ugrave"]="\u00D9";
+A["Uacute"]="\u00DA";
+A["Ucirc"]="\u00DB";
+A["Uuml"]="\u00DC";
+A["Yacute"]="\u00DD";
+A["THORN"]="\u00DE";
+A["szlig"]="\u00DF";
+A["agrave"]="\u00E0";
+A["aacute"]="\u00E1";
+A["acirc"]="\u00E2";
+A["atilde"]="\u00E3";
+A["auml"]="\u00E4";
+A["aring"]="\u00E5";
+A["aelig"]="\u00E6";
+A["ccedil"]="\u00E7";
+A["egrave"]="\u00E8";
+A["eacute"]="\u00E9";
+A["ecirc"]="\u00EA";
+A["euml"]="\u00EB";
+A["igrave"]="\u00EC";
+A["iacute"]="\u00ED";
+A["icirc"]="\u00EE";
+A["iuml"]="\u00EF";
+A["eth"]="\u00F0";
+A["ntilde"]="\u00F1";
+A["ograve"]="\u00F2";
+A["oacute"]="\u00F3";
+A["ocirc"]="\u00F4";
+A["otilde"]="\u00F5";
+A["ouml"]="\u00F6";
+A["divide"]="\u00F7";
+A["oslash"]="\u00F8";
+A["ugrave"]="\u00F9";
+A["uacute"]="\u00FA";
+A["ucirc"]="\u00FB";
+A["uuml"]="\u00FC";
+A["yacute"]="\u00FD";
+A["thorn"]="\u00FE";
+A["yuml"]="\u00FF";
+A["quot"]="\u0022";
+A["amp"]="\u0026";
+A["lt"]="\u003C";
+A["gt"]="\u003E";
+A["OElig"]="";
+A["oelig"]="\u0153";
+A["Scaron"]="\u0160";
+A["scaron"]="\u0161";
+A["Yuml"]="\u0178";
+A["circ"]="\u02C6";
+A["tilde"]="\u02DC";
+A["ensp"]="\u2002";
+A["emsp"]="\u2003";
+A["thinsp"]="\u2009";
+A["zwnj"]="\u200C";
+A["zwj"]="\u200D";
+A["lrm"]="\u200E";
+A["rlm"]="\u200F";
+A["ndash"]="\u2013";
+A["mdash"]="\u2014";
+A["lsquo"]="\u2018";
+A["rsquo"]="\u2019";
+A["sbquo"]="\u201A";
+A["ldquo"]="\u201C";
+A["rdquo"]="\u201D";
+A["bdquo"]="\u201E";
+A["dagger"]="\u2020";
+A["Dagger"]="\u2021";
+A["permil"]="\u2030";
+A["lsaquo"]="\u2039";
+A["rsaquo"]="\u203A";
+A["euro"]="\u20AC";
+A["fnof"]="\u0192";
+A["Alpha"]="\u0391";
+A["Beta"]="\u0392";
+A["Gamma"]="\u0393";
+A["Delta"]="\u0394";
+A["Epsilon"]="\u0395";
+A["Zeta"]="\u0396";
+A["Eta"]="\u0397";
+A["Theta"]="\u0398";
+A["Iota"]="\u0399";
+A["Kappa"]="\u039A";
+A["Lambda"]="\u039B";
+A["Mu"]="\u039C";
+A["Nu"]="\u039D";
+A["Xi"]="\u039E";
+A["Omicron"]="\u039F";
+A["Pi"]="\u03A0";
+A["Rho"]="\u03A1";
+A["Sigma"]="\u03A3";
+A["Tau"]="\u03A4";
+A["Upsilon"]="\u03A5";
+A["Phi"]="\u03A6";
+A["Chi"]="\u03A7";
+A["Psi"]="\u03A8";
+A["Omega"]="\u03A9";
+A["alpha"]="\u03B1";
+A["beta"]="\u03B2";
+A["gamma"]="\u03B3";
+A["delta"]="\u03B4";
+A["epsilon"]="\u03B5";
+A["zeta"]="\u03B6";
+A["eta"]="\u03B7";
+A["theta"]="\u03B8";
+A["iota"]="\u03B9";
+A["kappa"]="\u03BA";
+A["lambda"]="\u03BB";
+A["mu"]="\u03BC";
+A["nu"]="\u03BD";
+A["xi"]="\u03BE";
+A["omicron"]="\u03BF";
+A["pi"]="\u03C0";
+A["rho"]="\u03C1";
+A["sigmaf"]="\u03C2";
+A["sigma"]="\u03C3";
+A["tau"]="\u03C4";
+A["upsilon"]="\u03C5";
+A["phi"]="\u03C6";
+A["chi"]="\u03C7";
+A["psi"]="\u03C8";
+A["omega"]="\u03C9";
+A["thetasym"]="\u03D1";
+A["upsih"]="\u03D2";
+A["piv"]="\u03D6";
+A["bull"]="\u2022";
+A["hellip"]="\u2026";
+A["prime"]="\u2032";
+A["Prime"]="\u2033";
+A["oline"]="\u203E";
+A["frasl"]="\u2044";
+A["weierp"]="\u2118";
+A["image"]="\u2111";
+A["real"]="\u211C";
+A["trade"]="\u2122";
+A["alefsym"]="\u2135";
+A["larr"]="\u2190";
+A["uarr"]="\u2191";
+A["rarr"]="\u2192";
+A["darr"]="\u2193";
+A["harr"]="\u2194";
+A["crarr"]="\u21B5";
+A["lArr"]="\u21D0";
+A["uArr"]="\u21D1";
+A["rArr"]="\u21D2";
+A["dArr"]="\u21D3";
+A["hArr"]="\u21D4";
+A["forall"]="\u2200";
+A["part"]="\u2202";
+A["exist"]="\u2203";
+A["empty"]="\u2205";
+A["nabla"]="\u2207";
+A["isin"]="\u2208";
+A["notin"]="\u2209";
+A["ni"]="\u220B";
+A["prod"]="\u220F";
+A["sum"]="\u2211";
+A["minus"]="\u2212";
+A["lowast"]="\u2217";
+A["radic"]="\u221A";
+A["prop"]="\u221D";
+A["infin"]="\u221E";
+A["ang"]="\u2220";
+A["and"]="\u2227";
+A["or"]="\u2228";
+A["cap"]="\u2229";
+A["cup"]="\u222A";
+A["int"]="\u222B";
+A["there4"]="\u2234";
+A["sim"]="\u223C";
+A["cong"]="\u2245";
+A["asymp"]="\u2248";
+A["ne"]="\u2260";
+A["equiv"]="\u2261";
+A["le"]="\u2264";
+A["ge"]="\u2265";
+A["sub"]="\u2282";
+A["sup"]="\u2283";
+A["nsub"]="\u2284";
+A["sube"]="\u2286";
+A["supe"]="\u2287";
+A["oplus"]="\u2295";
+A["otimes"]="\u2297";
+A["perp"]="\u22A5";
+A["sdot"]="\u22C5";
+A["lceil"]="\u2308";
+A["rceil"]="\u2309";
+A["lfloor"]="\u230A";
+A["rfloor"]="\u230B";
+A["lang"]="\u2329";
+A["rang"]="\u232A";
+A["loz"]="\u25CA";
+A["spades"]="\u2660";
+A["clubs"]="\u2663";
+A["hearts"]="\u2665";
+A["diams"]="\u2666";
+})();
+SimileAjax.HTML.deEntify=function(C){var D=SimileAjax.HTML._e2uHash;
+var B=/&(\w+?);/;
+while(B.test(C)){var A=C.match(B);
+C=C.replace(B,D[A[1]]);
+}return C;
+};
+
+
+/* json.js */
+SimileAjax.JSON=new Object();
+(function(){var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};
+var s={array:function(x){var a=["["],b,f,i,l=x.length,v;
+for(i=0;
+i<l;
+i+=1){v=x[i];
+f=s[typeof v];
+if(f){v=f(v);
+if(typeof v=="string"){if(b){a[a.length]=",";
+}a[a.length]=v;
+b=true;
+}}}a[a.length]="]";
+return a.join("");
+},"boolean":function(x){return String(x);
+},"null":function(x){return"null";
+},number:function(x){return isFinite(x)?String(x):"null";
+},object:function(x){if(x){if(x instanceof Array){return s.array(x);
+}var a=["{"],b,f,i,v;
+for(i in x){v=x[i];
+f=s[typeof v];
+if(f){v=f(v);
+if(typeof v=="string"){if(b){a[a.length]=",";
+}a.push(s.string(i),":",v);
+b=true;
+}}}a[a.length]="}";
+return a.join("");
+}return"null";
+},string:function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];
+if(c){return c;
+}c=b.charCodeAt();
+return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16);
+});
+}return'"'+x+'"';
+}};
+SimileAjax.JSON.toJSONString=function(o){if(o instanceof Object){return s.object(o);
+}else{if(o instanceof Array){return s.array(o);
+}else{return o.toString();
+}}};
+SimileAjax.JSON.parseJSON=function(){try{return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(this.replace(/"(\\.|[^"\\])*"/g,"")))&&eval("("+this+")");
+}catch(e){return false;
+}};
+})();
+
+
+/* string.js */
+String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"");
+};
+String.prototype.startsWith=function(A){return this.length>=A.length&&this.substr(0,A.length)==A;
+};
+String.prototype.endsWith=function(A){return this.length>=A.length&&this.substr(this.length-A.length)==A;
+};
+String.substitute=function(C,A){var D="";
+var F=0;
+while(F<C.length-1){var B=C.indexOf("%",F);
+if(B<0||B==C.length-1){break;
+}else{if(B>F&&C.charAt(B-1)=="\\"){D+=C.substring(F,B-1)+"%";
+F=B+1;
+}else{var E=parseInt(C.charAt(B+1));
+if(isNaN(E)||E>=A.length){D+=C.substring(F,B+2);
+}else{D+=C.substring(F,B)+A[E].toString();
+}F=B+2;
+}}}if(F<C.length){D+=C.substring(F);
+}return D;
+};
+
+
+/* units.js */
+SimileAjax.NativeDateUnit=new Object();
+SimileAjax.NativeDateUnit.makeDefaultValue=function(){return new Date();
+};
+SimileAjax.NativeDateUnit.cloneValue=function(A){return new Date(A.getTime());
+};
+SimileAjax.NativeDateUnit.getParser=function(A){if(typeof A=="string"){A=A.toLowerCase();
+}return(A=="iso8601"||A=="iso 8601")?SimileAjax.DateTime.parseIso8601DateTime:SimileAjax.DateTime.parseGregorianDateTime;
+};
+SimileAjax.NativeDateUnit.parseFromObject=function(A){return SimileAjax.DateTime.parseGregorianDateTime(A);
+};
+SimileAjax.NativeDateUnit.toNumber=function(A){return A.getTime();
+};
+SimileAjax.NativeDateUnit.fromNumber=function(A){return new Date(A);
+};
+SimileAjax.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;
+};
+SimileAjax.NativeDateUnit.earlier=function(B,A){return SimileAjax.NativeDateUnit.compare(B,A)<0?B:A;
+};
+SimileAjax.NativeDateUnit.later=function(B,A){return SimileAjax.NativeDateUnit.compare(B,A)>0?B:A;
+};
+SimileAjax.NativeDateUnit.change=function(A,B){return new Date(A.getTime()+B);
+};
+
+
+/* window-manager.js */
+SimileAjax.WindowManager={_initialized:false,_listeners:[],_draggedElement:null,_draggedElementCallback:null,_dropTargetHighlightElement:null,_lastCoords:null,_ghostCoords:null,_draggingMode:"",_dragging:false,_layers:[]};
+SimileAjax.WindowManager.initialize=function(){if(SimileAjax.WindowManager._initialized){return ;
+}SimileAjax.DOM.registerEvent(document.body,"mousedown",SimileAjax.WindowManager._onBodyMouseDown);
+SimileAjax.DOM.registerEvent(document.body,"mousemove",SimileAjax.WindowManager._onBodyMouseMove);
+SimileAjax.DOM.registerEvent(document.body,"mouseup",SimileAjax.WindowManager._onBodyMouseUp);
+SimileAjax.DOM.registerEvent(document,"keydown",SimileAjax.WindowManager._onBodyKeyDown);
+SimileAjax.DOM.registerEvent(document,"keyup",SimileAjax.WindowManager._onBodyKeyUp);
+SimileAjax.WindowManager._layers.push({index:0});
+SimileAjax.WindowManager._historyListener={onBeforeUndoSeveral:function(){},onAfterUndoSeveral:function(){},onBeforeUndo:function(){},onAfterUndo:function(){},onBeforeRedoSeveral:function(){},onAfterRedoSeveral:function(){},onBeforeRedo:function(){},onAfterRedo:function(){}};
+SimileAjax.History.addListener(SimileAjax.WindowManager._historyListener);
+SimileAjax.WindowManager._initialized=true;
+};
+SimileAjax.WindowManager.getBaseLayer=function(){SimileAjax.WindowManager.initialize();
+return SimileAjax.WindowManager._layers[0];
+};
+SimileAjax.WindowManager.getHighestLayer=function(){SimileAjax.WindowManager.initialize();
+return SimileAjax.WindowManager._layers[SimileAjax.WindowManager._layers.length-1];
+};
+SimileAjax.WindowManager.registerEventWithObject=function(D,A,E,B,C){SimileAjax.WindowManager.registerEvent(D,A,function(G,F,H){return E[B].call(E,G,F,H);
+},C);
+};
+SimileAjax.WindowManager.registerEvent=function(D,B,E,C){if(C==null){C=SimileAjax.WindowManager.getHighestLayer();
+}var A=function(G,F,I){if(SimileAjax.WindowManager._canProcessEventAtLayer(C)){SimileAjax.WindowManager._popToLayer(C.index);
+try{E(G,F,I);
+}catch(H){SimileAjax.Debug.exception(H);
+}}SimileAjax.DOM.cancelEvent(F);
+return false;
+};
+SimileAjax.DOM.registerEvent(D,B,A);
+};
+SimileAjax.WindowManager.pushLayer=function(C,D,B){var A={onPop:C,index:SimileAjax.WindowManager._layers.length,ephemeral:(D),elmt:B};
+SimileAjax.WindowManager._layers.push(A);
+return A;
+};
+SimileAjax.WindowManager.popLayer=function(B){for(var A=1;
+A<SimileAjax.WindowManager._layers.length;
+A++){if(SimileAjax.WindowManager._layers[A]==B){SimileAjax.WindowManager._popToLayer(A-1);
+break;
+}}};
+SimileAjax.WindowManager.popAllLayers=function(){SimileAjax.WindowManager._popToLayer(0);
+};
+SimileAjax.WindowManager.registerForDragging=function(B,C,A){SimileAjax.WindowManager.registerEvent(B,"mousedown",function(E,D,F){SimileAjax.WindowManager._handleMouseDown(E,D,C);
+},A);
+};
+SimileAjax.WindowManager._popToLayer=function(C){while(C+1<SimileAjax.WindowManager._layers.length){try{var A=SimileAjax.WindowManager._layers.pop();
+if(A.onPop!=null){A.onPop();
+}}catch(B){}}};
+SimileAjax.WindowManager._canProcessEventAtLayer=function(B){if(B.index==(SimileAjax.WindowManager._layers.length-1)){return true;
+}for(var A=B.index+1;
+A<SimileAjax.WindowManager._layers.length;
+A++){if(!SimileAjax.WindowManager._layers[A].ephemeral){return false;
+}}return true;
+};
+SimileAjax.WindowManager.cancelPopups=function(A){var F=(A)?SimileAjax.DOM.getEventPageCoordinates(A):{x:-1,y:-1};
+var E=SimileAjax.WindowManager._layers.length-1;
+while(E>0&&SimileAjax.WindowManager._layers[E].ephemeral){var D=SimileAjax.WindowManager._layers[E];
+if(D.elmt!=null){var C=D.elmt;
+var B=SimileAjax.DOM.getPageCoordinates(C);
+if(F.x>=B.left&&F.x<(B.left+C.offsetWidth)&&F.y>=B.top&&F.y<(B.top+C.offsetHeight)){break;
+}}E--;
+}SimileAjax.WindowManager._popToLayer(E);
+};
+SimileAjax.WindowManager._onBodyMouseDown=function(B,A,C){if(!("eventPhase" in A)||A.eventPhase==A.BUBBLING_PHASE){SimileAjax.WindowManager.cancelPopups(A);
+}};
+SimileAjax.WindowManager._handleMouseDown=function(B,A,C){SimileAjax.WindowManager._draggedElement=B;
+SimileAjax.WindowManager._draggedElementCallback=C;
+SimileAjax.WindowManager._lastCoords={x:A.clientX,y:A.clientY};
+SimileAjax.DOM.cancelEvent(A);
+return false;
+};
+SimileAjax.WindowManager._onBodyKeyDown=function(C,A,D){if(SimileAjax.WindowManager._dragging){if(A.keyCode==27){SimileAjax.WindowManager._cancelDragging();
+}else{if((A.keyCode==17||A.keyCode==16)&&SimileAjax.WindowManager._draggingMode!="copy"){SimileAjax.WindowManager._draggingMode="copy";
+var B=SimileAjax.Graphics.createTranslucentImage(SimileAjax.urlPrefix+"images/copy.png");
+B.style.position="absolute";
+B.style.left=(SimileAjax.WindowManager._ghostCoords.left-16)+"px";
+B.style.top=(SimileAjax.WindowManager._ghostCoords.top)+"px";
+document.body.appendChild(B);
+SimileAjax.WindowManager._draggingModeIndicatorElmt=B;
+}}}};
+SimileAjax.WindowManager._onBodyKeyUp=function(B,A,C){if(SimileAjax.WindowManager._dragging){if(A.keyCode==17||A.keyCode==16){SimileAjax.WindowManager._draggingMode="";
+if(SimileAjax.WindowManager._draggingModeIndicatorElmt!=null){document.body.removeChild(SimileAjax.WindowManager._draggingModeIndicatorElmt);
+SimileAjax.WindowManager._draggingModeIndicatorElmt=null;
+}}}};
+SimileAjax.WindowManager._onBodyMouseMove=function(C,M,B){if(SimileAjax.WindowManager._draggedElement!=null){var L=SimileAjax.WindowManager._draggedElementCallback;
+var G=SimileAjax.WindowManager._lastCoords;
+var J=M.clientX-G.x;
+var I=M.clientY-G.y;
+if(!SimileAjax.WindowManager._dragging){if(Math.abs(J)>5||Math.abs(I)>5){try{if("onDragStart" in L){L.onDragStart();
+}if("ghost" in L&&L.ghost){var P=SimileAjax.WindowManager._draggedElement;
+SimileAjax.WindowManager._ghostCoords=SimileAjax.DOM.getPageCoordinates(P);
+SimileAjax.WindowManager._ghostCoords.left+=J;
+SimileAjax.WindowManager._ghostCoords.top+=I;
+var K=P.cloneNode(true);
+K.style.position="absolute";
+K.style.left=SimileAjax.WindowManager._ghostCoords.left+"px";
+K.style.top=SimileAjax.WindowManager._ghostCoords.top+"px";
+K.style.zIndex=1000;
+SimileAjax.Graphics.setOpacity(K,50);
+document.body.appendChild(K);
+L._ghostElmt=K;
+}SimileAjax.WindowManager._dragging=true;
+SimileAjax.WindowManager._lastCoords={x:M.clientX,y:M.clientY};
+document.body.focus();
+}catch(H){SimileAjax.Debug.exception("WindowManager: Error handling mouse down",H);
+SimileAjax.WindowManager._cancelDragging();
+}}}else{try{SimileAjax.WindowManager._lastCoords={x:M.clientX,y:M.clientY};
+if("onDragBy" in L){L.onDragBy(J,I);
+}if("_ghostElmt" in L){var K=L._ghostElmt;
+SimileAjax.WindowManager._ghostCoords.left+=J;
+SimileAjax.WindowManager._ghostCoords.top+=I;
+K.style.left=SimileAjax.WindowManager._ghostCoords.left+"px";
+K.style.top=SimileAjax.WindowManager._ghostCoords.top+"px";
+if(SimileAjax.WindowManager._draggingModeIndicatorElmt!=null){var O=SimileAjax.WindowManager._draggingModeIndicatorElmt;
+O.style.left=(SimileAjax.WindowManager._ghostCoords.left-16)+"px";
+O.style.top=SimileAjax.WindowManager._ghostCoords.top+"px";
+}if("droppable" in L&&L.droppable){var N=SimileAjax.DOM.getEventPageCoordinates(M);
+var B=SimileAjax.DOM.hittest(N.x,N.y,[SimileAjax.WindowManager._ghostElmt,SimileAjax.WindowManager._dropTargetHighlightElement]);
+B=SimileAjax.WindowManager._findDropTarget(B);
+if(B!=SimileAjax.WindowManager._potentialDropTarget){if(SimileAjax.WindowManager._dropTargetHighlightElement!=null){document.body.removeChild(SimileAjax.WindowManager._dropTargetHighlightElement);
+SimileAjax.WindowManager._dropTargetHighlightElement=null;
+SimileAjax.WindowManager._potentialDropTarget=null;
+}var A=false;
+if(B!=null){if((!("canDropOn" in L)||L.canDropOn(B))&&(!("canDrop" in B)||B.canDrop(SimileAjax.WindowManager._draggedElement))){A=true;
+}}if(A){var E=4;
+var D=SimileAjax.DOM.getPageCoordinates(B);
+var F=document.createElement("div");
+F.style.border=E+"px solid yellow";
+F.style.backgroundColor="yellow";
+F.style.position="absolute";
+F.style.left=D.left+"px";
+F.style.top=D.top+"px";
+F.style.width=(B.offsetWidth-E*2)+"px";
+F.style.height=(B.offsetHeight-E*2)+"px";
+SimileAjax.Graphics.setOpacity(F,30);
+document.body.appendChild(F);
+SimileAjax.WindowManager._potentialDropTarget=B;
+SimileAjax.WindowManager._dropTargetHighlightElement=F;
+}}}}}catch(H){SimileAjax.Debug.exception("WindowManager: Error handling mouse move",H);
+SimileAjax.WindowManager._cancelDragging();
+}}SimileAjax.DOM.cancelEvent(M);
+return false;
+}};
+SimileAjax.WindowManager._onBodyMouseUp=function(B,A,E){if(SimileAjax.WindowManager._draggedElement!=null){try{if(SimileAjax.WindowManager._dragging){var C=SimileAjax.WindowManager._draggedElementCallback;
+if("onDragEnd" in C){C.onDragEnd();
+}if("droppable" in C&&C.droppable){var D=false;
+var E=SimileAjax.WindowManager._potentialDropTarget;
+if(E!=null){if((!("canDropOn" in C)||C.canDropOn(E))&&(!("canDrop" in E)||E.canDrop(SimileAjax.WindowManager._draggedElement))){if("onDropOn" in C){C.onDropOn(E);
+}E.ondrop(SimileAjax.WindowManager._draggedElement,SimileAjax.WindowManager._draggingMode);
+D=true;
+}}if(!D){}}}}finally{SimileAjax.WindowManager._cancelDragging();
+}SimileAjax.DOM.cancelEvent(A);
+return false;
+}};
+SimileAjax.WindowManager._cancelDragging=function(){var A=SimileAjax.WindowManager._draggedElementCallback;
+if("_ghostElmt" in A){var B=A._ghostElmt;
+document.body.removeChild(B);
+delete A._ghostElmt;
+}if(SimileAjax.WindowManager._dropTargetHighlightElement!=null){document.body.removeChild(SimileAjax.WindowManager._dropTargetHighlightElement);
+SimileAjax.WindowManager._dropTargetHighlightElement=null;
+}if(SimileAjax.WindowManager._draggingModeIndicatorElmt!=null){document.body.removeChild(SimileAjax.WindowManager._draggingModeIndicatorElmt);
+SimileAjax.WindowManager._draggingModeIndicatorElmt=null;
+}SimileAjax.WindowManager._draggedElement=null;
+SimileAjax.WindowManager._draggedElementCallback=null;
+SimileAjax.WindowManager._potentialDropTarget=null;
+SimileAjax.WindowManager._dropTargetHighlightElement=null;
+SimileAjax.WindowManager._lastCoords=null;
+SimileAjax.WindowManager._ghostCoords=null;
+SimileAjax.WindowManager._draggingMode="";
+SimileAjax.WindowManager._dragging=false;
+};
+SimileAjax.WindowManager._findDropTarget=function(A){while(A!=null){if("ondrop" in A&&(typeof A.ondrop)=="function"){break;
+}A=A.parentNode;
+}return A;
+};
+
+
+/* xmlhttp.js */
+SimileAjax.XmlHttp=new Object();
+SimileAjax.XmlHttp._onReadyStateChange=function(A,D,B){switch(A.readyState){case 4:try{if(A.status==0||A.status==200){if(B){B(A);
+}}else{if(D){D(A.statusText,A.status,A);
+}}}catch(C){SimileAjax.Debug.exception("XmlHttp: Error handling onReadyStateChange",C);
+}break;
+}};
+SimileAjax.XmlHttp._createRequest=function(){if(SimileAjax.Platform.browser.isIE){var B=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];
+for(var C=0;
+C<B.length;
+C++){try{var A=B[C];
+var D=function(){return new ActiveXObject(A);
+};
+var F=D();
+SimileAjax.XmlHttp._createRequest=D;
+return F;
+}catch(E){}}}try{var D=function(){return new XMLHttpRequest();
+};
+var F=D();
+SimileAjax.XmlHttp._createRequest=D;
+return F;
+}catch(E){throw new Error("Failed to create an XMLHttpRequest object");
+}};
+SimileAjax.XmlHttp.get=function(B,D,C){var A=SimileAjax.XmlHttp._createRequest();
+A.open("GET",B,true);
+A.onreadystatechange=function(){SimileAjax.XmlHttp._onReadyStateChange(A,D,C);
+};
+A.send(null);
+};
+SimileAjax.XmlHttp.post=function(C,A,E,D){var B=SimileAjax.XmlHttp._createRequest();
+B.open("POST",C,true);
+B.onreadystatechange=function(){SimileAjax.XmlHttp._onReadyStateChange(B,E,D);
+};
+B.send(A);
+};
+SimileAjax.XmlHttp._forceXML=function(A){try{A.overrideMimeType("text/xml");
+}catch(B){A.setrequestheader("Content-Type","text/xml");
+}};

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics-ie6.css
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics-ie6.css	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics-ie6.css	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,77 @@
+.simileAjax-bubble-border-left-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-left.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-border-right-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-right.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-border-top-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-top.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-border-bottom-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-bottom.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-border-top-left-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-top-left.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-border-top-right-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-top-right.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-border-bottom-left-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-bottom-left.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-border-bottom-right-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-bottom-right.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-arrow-point-left-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-left.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-arrow-point-right-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-right.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-arrow-point-up-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-up.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-arrow-point-down-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-down.png', sizingMethod='crop')"
+    );
+}
+
+.simileAjax-bubble-close-pngNotTranslucent {
+    filter: expression(
+        "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/close-button.png', sizingMethod='crop')"
+    );
+}

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics.css
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics.css	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_ajax/styles/graphics.css	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,171 @@
+div.simileAjax-bubble-container {
+    margin:     0px;
+    padding:    0px;
+    border:     none;
+    position:   absolute;
+    z-index:    1000;
+}
+
+div.simileAjax-bubble-innerContainer {
+    margin:     0px;
+    padding:    0px;
+    border:     none;
+    position:   relative;
+    width:      100%;
+    height:     100%;
+    overflow:   visible;
+}
+
+div.simileAjax-bubble-contentContainer {
+    margin:     0px;
+    padding:    0px;
+    border:     none;
+    position:   absolute;
+    left:       0px;
+    top:        0px;
+    width:      100%;
+    height:     100%;
+    overflow:   auto;
+    background: white;
+}
+
+div.simileAjax-bubble-border-left {
+    position:   absolute;
+    left:       -50px;
+    top:        0px;
+    width:      50px;
+    height:     100%;
+}
+div.simileAjax-bubble-border-left-pngTranslucent {
+    background: url(../images/bubble-left.png) top right repeat-y;
+}
+
+div.simileAjax-bubble-border-right {
+    position:   absolute;
+    right:      -50px;
+    top:        0px;
+    width:      50px;
+    height:     100%;
+}
+.simileAjax-bubble-border-right-pngTranslucent {
+    background: url(../images/bubble-right.png) top left repeat-y;
+}
+
+div.simileAjax-bubble-border-top {
+    position:   absolute;
+    top:        -50px;
+    left:       0px;
+    width:      100%;
+    height:     50px;
+}
+.simileAjax-bubble-border-top-pngTranslucent {
+    background: url(../images/bubble-top.png) bottom left repeat-x;
+}
+
+div.simileAjax-bubble-border-bottom {
+    position:   absolute;
+    bottom:     -50px;
+    left:       0px;
+    width:      100%;
+    height:     50px;
+}
+.simileAjax-bubble-border-bottom-pngTranslucent {
+    background: url(../images/bubble-bottom.png) top left repeat-x;
+}
+
+div.simileAjax-bubble-border-top-left {
+    position:   absolute;
+    top:        -50px;
+    left:       -50px;
+    width:      50px;
+    height:     50px;
+}
+.simileAjax-bubble-border-top-left-pngTranslucent {
+    background: url(../images/bubble-top-left.png) bottom right no-repeat;
+}
+
+div.simileAjax-bubble-border-top-right {
+    position:   absolute;
+    top:        -50px;
+    right:      -50px;
+    width:      50px;
+    height:     50px;
+}
+.simileAjax-bubble-border-top-right-pngTranslucent {
+    background: url(../images/bubble-top-right.png) bottom left no-repeat;
+}
+
+div.simileAjax-bubble-border-bottom-left {
+    position:   absolute;
+    bottom:     -50px;
+    left:       -50px;
+    width:      50px;
+    height:     50px;
+}
+.simileAjax-bubble-border-bottom-left-pngTranslucent {
+    background: url(../images/bubble-bottom-left.png) top right no-repeat;
+}
+
+div.simileAjax-bubble-border-bottom-right {
+    position:   absolute;
+    bottom:     -50px;
+    right:      -50px;
+    width:      50px;
+    height:     50px;
+}
+.simileAjax-bubble-border-bottom-right-pngTranslucent {
+    background: url(../images/bubble-bottom-right.png) top left no-repeat;
+}
+
+div.simileAjax-bubble-arrow-point-left {
+    position:   absolute;
+    left:       -100px;
+    width:      100px;
+    height:     49px;
+}
+.simileAjax-bubble-arrow-point-left-pngTranslucent {
+    background: url(../images/bubble-arrow-point-left.png) center right no-repeat;
+}
+
+div.simileAjax-bubble-arrow-point-right {
+    position:   absolute;
+    right:      -100px;
+    width:      100px;
+    height:     49px;
+}
+.simileAjax-bubble-arrow-point-right-pngTranslucent {
+    background: url(../images/bubble-arrow-point-right.png) center left no-repeat;
+}
+
+div.simileAjax-bubble-arrow-point-up {
+    position:   absolute;
+    top:        -100px;
+    width:      49px;
+    height:     100px;
+}
+.simileAjax-bubble-arrow-point-up-pngTranslucent {
+    background: url(../images/bubble-arrow-point-up.png) bottom center no-repeat;
+}
+
+div.simileAjax-bubble-arrow-point-down {
+    position:   absolute;
+    bottom:     -100px;
+    width:      49px;
+    height:     100px;
+}
+.simileAjax-bubble-arrow-point-down-pngTranslucent {
+    background: url(../images/bubble-arrow-point-down.png) bottom center no-repeat;
+}
+
+
+div.simileAjax-bubble-close {
+    position:   absolute;
+    right:      -10px;
+    top:        -12px;
+    width:      16px;
+    height:     16px;
+    cursor:     pointer;
+}
+.simileAjax-bubble-close-pngTranslucent {
+    background: url(../images/close-button.png) no-repeat;
+}

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/blue-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/blue-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-arrow.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-arrow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-bottom.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-left-arrow.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-left-arrow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-right-arrow.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-right-arrow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-arrow.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-arrow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/bubble-top.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/close-button.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/close-button.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/copyright-vertical.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/copyright-vertical.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/copyright.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/copyright.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-blue-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-blue-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-green-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-green-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-red-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dark-red-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-blue-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-blue-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-green-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-green-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-red-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/dull-red-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/gray-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/gray-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/green-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/green-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-bottom-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-bottom-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-bottom-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-bottom-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-top-left.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-top-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-top-right.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/message-top-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/progress-running.gif
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/progress-running.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/red-circle.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/red-circle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/top-bubble.png
===================================================================
(Binary files differ)


Property changes on: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/images/top-bubble.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,30 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["cs"] = [
+    "Leden", "Únor", "Bøezen", "Duben", "Kvìten", "Èerven", "Èervenec", "Srpen", "Záøí", "Øíjen", "Listopad", "Prosinec"
+];
+
+Timeline.GregorianDateLabeller.dayNames["cs"] = [
+    "Ne", "Po", "Út", "St", "Èt", "Pá", "So"
+];
+
+Timeline.GregorianDateLabeller.labelIntervalFunctions["cs"] = function(date, intervalUnit) {
+    var text;
+    var emphasized = false;
+
+    var date2 = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone);
+    
+    switch(intervalUnit) {
+    case Timeline.DateTime.DAY:
+    case Timeline.DateTime.WEEK:
+        text = date2.getUTCDate() + ". " + (date2.getUTCMonth() + 1) + ".";
+        break;
+    default:
+        return this.defaultLabelInterval(date, intervalUnit);
+    }
+    
+    return { text: text, emphasized: emphasized };
+};

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/cs/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["cs"] = {
+    wikiLinkLabel:  "Diskuze"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,27 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["de"] = [
+    "Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"
+];
+
+Timeline.GregorianDateLabeller.labelIntervalFunctions["de"] = function(date, intervalUnit) {
+    var text;
+    var emphasized = false;
+    
+    var date2 = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone);
+    
+    switch(intervalUnit) {
+    case Timeline.DateTime.DAY:
+    case Timeline.DateTime.WEEK:
+        text = date2.getUTCDate() + ". " +
+            Timeline.GregorianDateLabeller.getMonthName(date2.getUTCMonth(), this._locale);
+        break;
+    default:
+        return this.defaultLabelInterval(date, intervalUnit);
+    }
+    
+    return { text: text, emphasized: emphasized };
+};
\ No newline at end of file

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/de/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,8 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["de"] = {
+    wikiLinkLabel:  "Diskutieren"
+};

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,12 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["en"] = [
+    "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+];
+
+Timeline.GregorianDateLabeller.dayNames["en"] = [
+    "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/en/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["en"] = {
+    wikiLinkLabel:  "Discuss"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,8 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["es"] = [
+    "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/es/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["es"] = {
+    wikiLinkLabel:  "Discute"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,8 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["fr"] = [
+    "jan", "fev", "mar", "avr", "mai", "jui", "jui", "aou", "sep", "oct", "nov", "dec"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/fr/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["fr"] = {
+    wikiLinkLabel:  "Discute"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,8 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["it"] = [
+    "Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/it/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["it"] = {
+    wikiLinkLabel:  "Discuti"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,11 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+/* The Dutch do not capitalize months
+*/
+
+Timeline.GregorianDateLabeller.monthNames["nl"] = [
+ "jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/nl/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["nl"] = {
+    wikiLinkLabel:  "Discussieer"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,10 @@
+/*==================================================
+ *  Localization of labellers.js
+ * 
+ *  UTF-8 encoded
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["ru"] = [
+    "Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/ru/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["ru"] = {
+    wikiLinkLabel:  "обсудите"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,12 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["se"] = [
+    "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"
+];
+
+Timeline.GregorianDateLabeller.dayNames["se"] = [
+    "Sön", "Mån", "Tis", "Ons", "Tors", "Fre", "Lör"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/se/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["se"] = {
+    wikiLinkLabel:  "Discuss"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,8 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["tr"] = [
+    "Ock", "Åžbt", "Mrt", "Nsn", "Mys", "Hzr", "Tem", "AÄŸs", "Eyl", "Ekm", "Ksm", "Arl"
+];

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/tr/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["tr"] = {
+    wikiLinkLabel:  "Tartış"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,26 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["vi"] = [
+    "Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"
+];
+
+Timeline.GregorianDateLabeller.labelIntervalFunctions["vi"] = function(date, intervalUnit) {
+    var text;
+    var emphasized = false;
+    
+    var date2 = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone);
+    
+    switch(intervalUnit) {
+    case Timeline.DateTime.DAY:
+    case Timeline.DateTime.WEEK:
+        text = date2.getUTCDate() + "/" + (date2.getUTCMonth() + 1);
+        break;
+    default:
+        return this.defaultLabelInterval(date, intervalUnit);
+    }
+    
+    return { text: text, emphasized: emphasized };
+};

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/vi/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["vi"] = {
+    wikiLinkLabel:  "Bàn luận"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/labellers.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/labellers.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/labellers.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,27 @@
+/*==================================================
+ *  Localization of labellers.js
+ *==================================================
+ */
+
+Timeline.GregorianDateLabeller.monthNames["zh"] = [
+    "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
+];
+
+Timeline.GregorianDateLabeller.labelIntervalFunctions["zh"] = function(date, intervalUnit) {
+    var text;
+    var emphasized = false;
+    
+    var date2 = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone);
+    
+    switch(intervalUnit) {
+    case Timeline.DateTime.DAY:
+    case Timeline.DateTime.WEEK:
+        text = Timeline.GregorianDateLabeller.getMonthName(date2.getUTCMonth(), this._locale) + 
+            date2.getUTCDate() + "æ—¥";
+        break;
+    default:
+        return this.defaultLabelInterval(date, intervalUnit);
+    }
+    
+    return { text: text, emphasized: emphasized };
+};
\ No newline at end of file

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/timeline.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/timeline.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/scripts/l10n/zh/timeline.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,9 @@
+/*==================================================
+ *  Common localization strings
+ *==================================================
+ */
+
+Timeline.strings["zh"] = {
+    wikiLinkLabel:  "讨论"
+};
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-api.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-api.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-api.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,280 @@
+/*==================================================
+ *  Timeline API
+ *
+ *  This file will load all the Javascript files
+ *  necessary to make the standard timeline work.
+ *  It also detects the default locale.
+ *
+ *  To run from the MIT copy of Timeline:
+ *  Include this file in your HTML file as follows:
+ *
+ *    <script src="http://static.simile.mit.edu/timeline/api-2.3.0/timeline-api.js" 
+ *     type="text/javascript"></script>
+ *
+ *
+ * To host the Timeline files on your own server:
+ *   1) Install the Timeline and Simile-Ajax files onto your webserver using
+ *      timeline_libraries.zip or timeline_source.zip
+ * 
+ *   2) Set global js variables used to send parameters to this script:
+ *        Timeline_ajax_url -- url for simile-ajax-api.js
+ *        Timeline_urlPrefix -- url for the *directory* that contains timeline-api.js
+ *          Include trailing slash
+ *        Timeline_parameters='bundle=true'; // you must set bundle to true if you are using
+ *                                           // timeline_libraries.zip since only the
+ *                                           // bundled libraries are included
+ *      
+ * eg your html page would include
+ *
+ *   <script>
+ *     Timeline_ajax_url="http://YOUR_SERVER/javascripts/timeline/timeline_ajax/simile-ajax-api.js";
+ *     Timeline_urlPrefix='http://YOUR_SERVER/javascripts/timeline/timeline_js/';       
+ *     Timeline_parameters='bundle=true';
+ *   </script>
+ *   <script src="http://YOUR_SERVER/javascripts/timeline/timeline_js/timeline-api.js"    
+ *     type="text/javascript">
+ *   </script>
+ *
+ * SCRIPT PARAMETERS
+ * This script auto-magically figures out locale and has defaults for other parameters 
+ * To set parameters explicity, set js global variable Timeline_parameters or include as
+ * parameters on the url using GET style. Eg the two next lines pass the same parameters:
+ *     Timeline_parameters='bundle=true';                    // pass parameter via js variable
+ *     <script src="http://....timeline-api.js?bundle=true"  // pass parameter via url
+ * 
+ * Parameters 
+ *   timeline-use-local-resources -- 
+ *   bundle -- true: use the single js bundle file; false: load individual files (for debugging)
+ *   locales -- 
+ *   defaultLocale --
+ *   forceLocale -- force locale to be a particular value--used for debugging. Normally locale is determined
+ *                  by browser's and server's locale settings.
+ *================================================== 
+ */
+
+(function() {
+    var useLocalResources = false;
+    if (document.location.search.length > 0) {
+        var params = document.location.search.substr(1).split("&");
+        for (var i = 0; i < params.length; i++) {
+            if (params[i] == "timeline-use-local-resources") {
+                useLocalResources = true;
+            }
+        }
+    };
+    
+    var loadMe = function() {
+        if ("Timeline" in window) {
+            return;
+        }
+        
+        window.Timeline = new Object();
+        window.Timeline.DateTime = window.SimileAjax.DateTime; // for backward compatibility
+    
+        var bundle = false;
+        var javascriptFiles = [
+            "timeline.js",
+            "band.js",
+            "themes.js",
+            "ethers.js",
+            "ether-painters.js",
+            "event-utils.js",
+            "labellers.js",
+            "sources.js",
+            "original-painter.js",
+            "detailed-painter.js",
+            "overview-painter.js",
+            "compact-painter.js",
+            "decorators.js",
+            "units.js"
+        ];
+        var cssFiles = [
+            "timeline.css",
+            "ethers.css",
+            "events.css"
+        ];
+        
+        var localizedJavascriptFiles = [
+            "timeline.js",
+            "labellers.js"
+        ];
+        var localizedCssFiles = [
+        ];
+        
+        // ISO-639 language codes, ISO-3166 country codes (2 characters)
+        var supportedLocales = [
+            "cs",       // Czech
+            "de",       // German
+            "en",       // English
+            "es",       // Spanish
+            "fr",       // French
+            "it",       // Italian
+            "nl",       // Dutch (The Netherlands)
+            "ru",       // Russian
+            "se",       // Swedish
+            "tr",       // Turkish
+            "vi",       // Vietnamese
+            "zh"        // Chinese
+        ];
+        
+        try {
+            var desiredLocales = [ "en" ],
+                defaultServerLocale = "en",
+                forceLocale = null;
+            
+            var parseURLParameters = function(parameters) {
+                var params = parameters.split("&");
+                for (var p = 0; p < params.length; p++) {
+                    var pair = params[p].split("=");
+                    if (pair[0] == "locales") {
+                        desiredLocales = desiredLocales.concat(pair[1].split(","));
+                    } else if (pair[0] == "defaultLocale") {
+                        defaultServerLocale = pair[1];
+                    } else if (pair[0] == "forceLocale") {
+                        forceLocale = pair[1];
+                        desiredLocales = desiredLocales.concat(pair[1].split(","));                        
+                    } else if (pair[0] == "bundle") {
+                        bundle = pair[1] != "false";
+                    }
+                }
+            };
+            
+            (function() {
+                if (typeof Timeline_urlPrefix == "string") {
+                    Timeline.urlPrefix = Timeline_urlPrefix;
+                    if (typeof Timeline_parameters == "string") {
+                        parseURLParameters(Timeline_parameters);
+                    }
+                } else {
+                    var heads = document.documentElement.getElementsByTagName("head");
+                    for (var h = 0; h < heads.length; h++) {
+                        var scripts = heads[h].getElementsByTagName("script");
+                        for (var s = 0; s < scripts.length; s++) {
+                            var url = scripts[s].src;
+                            var i = url.indexOf("timeline-api.js");
+                            if (i >= 0) {
+                                Timeline.urlPrefix = url.substr(0, i);
+                                var q = url.indexOf("?");
+                                if (q > 0) {
+                                    parseURLParameters(url.substr(q + 1));
+                                }
+                                return;
+                            }
+                        }
+                    }
+                    throw new Error("Failed to derive URL prefix for Timeline API code files");
+                }
+            })();
+            
+            var includeJavascriptFiles = function(urlPrefix, filenames) {
+                SimileAjax.includeJavascriptFiles(document, urlPrefix, filenames);
+            }
+            var includeCssFiles = function(urlPrefix, filenames) {
+                SimileAjax.includeCssFiles(document, urlPrefix, filenames);
+            }
+            
+            /*
+             *  Include non-localized files
+             */
+            if (bundle) {
+                includeJavascriptFiles(Timeline.urlPrefix, [ "timeline-bundle.js" ]);
+                includeCssFiles(Timeline.urlPrefix, [ "timeline-bundle.css" ]);
+            } else {
+                includeJavascriptFiles(Timeline.urlPrefix + "scripts/", javascriptFiles);
+                includeCssFiles(Timeline.urlPrefix + "styles/", cssFiles);
+            }
+            
+            /*
+             *  Include localized files
+             */
+            var loadLocale = [];
+            loadLocale[defaultServerLocale] = true;
+            
+            var tryExactLocale = function(locale) {
+                for (var l = 0; l < supportedLocales.length; l++) {
+                    if (locale == supportedLocales[l]) {
+                        loadLocale[locale] = true;
+                        return true;
+                    }
+                }
+                return false;
+            }
+            var tryLocale = function(locale) {
+                if (tryExactLocale(locale)) {
+                    return locale;
+                }
+                
+                var dash = locale.indexOf("-");
+                if (dash > 0 && tryExactLocale(locale.substr(0, dash))) {
+                    return locale.substr(0, dash);
+                }
+                
+                return null;
+            }
+            
+            for (var l = 0; l < desiredLocales.length; l++) {
+                tryLocale(desiredLocales[l]);
+            }
+            
+            var defaultClientLocale = defaultServerLocale;
+            var defaultClientLocales = ("language" in navigator ? navigator.language : navigator.browserLanguage).split(";");
+            for (var l = 0; l < defaultClientLocales.length; l++) {
+                var locale = tryLocale(defaultClientLocales[l]);
+                if (locale != null) {
+                    defaultClientLocale = locale;
+                    break;
+                }
+            }
+            
+            for (var l = 0; l < supportedLocales.length; l++) {
+                var locale = supportedLocales[l];
+                if (loadLocale[locale]) {
+                    includeJavascriptFiles(Timeline.urlPrefix + "scripts/l10n/" + locale + "/", localizedJavascriptFiles);
+                    includeCssFiles(Timeline.urlPrefix + "styles/l10n/" + locale + "/", localizedCssFiles);
+                }
+            }
+            
+            if (forceLocale == null) {
+              Timeline.serverLocale = defaultServerLocale;
+              Timeline.clientLocale = defaultClientLocale;
+            } else {
+              Timeline.serverLocale = forceLocale;
+              Timeline.clientLocale = forceLocale;
+            }            	
+        } catch (e) {
+            alert(e);
+        }
+    };
+    
+    /*
+     *  Load SimileAjax if it's not already loaded
+     */
+    if (typeof SimileAjax == "undefined") {
+        window.SimileAjax_onLoad = loadMe;
+        
+        var url = useLocalResources ?
+            "http://127.0.0.1:9999/ajax/api/simile-ajax-api.js?bundle=false" :
+            "http://static.simile.mit.edu/ajax/api-2.2.0/simile-ajax-api.js";
+        if (typeof Timeline_ajax_url == "string") {
+           url = Timeline_ajax_url;
+        }
+        var createScriptElement = function() {
+            var script = document.createElement("script");
+            script.type = "text/javascript";
+            script.language = "JavaScript";
+            script.src = url;
+            document.getElementsByTagName("head")[0].appendChild(script);
+        }
+        if (document.body == null) {
+            try {
+                document.write("<script src='" + url + "' type='text/javascript'></script>");
+            } catch (e) {
+                createScriptElement();
+            }
+        } else {
+            createScriptElement();
+        }
+    } else {
+        loadMe();
+    }
+})();

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.css
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.css	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.css	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,229 @@
+
+
+/*------------------- Horizontal / Vertical lines ----------------*/
+
+/* style for ethers */
+.timeline-ether-lines{border-color:#666; border-style:dotted; position:absolute;}
+.timeline-horizontal .timeline-ether-lines{border-width:0 0 0 1px; height:100%; top: 0; width: 1px;}
+.timeline-vertical .timeline-ether-lines{border-width:1px 0 0; height:1px; left: 0; width: 100%;}
+
+
+
+/*---------------- Weekends ---------------------------*/
+.timeline-ether-weekends{
+	position:absolute;
+	background-color:#FFFFE0;
+}
+
+.timeline-vertical .timeline-ether-weekends{left:0;width:100%;}
+.timeline-horizontal .timeline-ether-weekends{top:0; height:100%;}
+
+
+/*-------------------------- HIGHLIGHT DECORATORS -------------------*/
+/* Used for decorators, not used for Timeline Highlight              */
+.timeline-highlight-decorator,
+.timeline-highlight-point-decorator{
+	position:absolute;
+	overflow:hidden;
+}
+
+/* Width of horizontal decorators and Height of vertical decorators is
+   set in the decorator function params */
+.timeline-horizontal .timeline-highlight-point-decorator,
+.timeline-horizontal .timeline-highlight-decorator{
+	top:0;
+  height:100%;
+}
+
+.timeline-vertical .timeline-highlight-point-decorator,
+.timeline-vertical .timeline-highlight-decorator{
+	width:100%;
+	left:0;
+}
+
+.timeline-highlight-decorator{background-color:#FFC080;}
+.timeline-highlight-point-decorator{background-color:#ff5;}
+
+
+/*---------------------------- LABELS -------------------------*/
+.timeline-highlight-label {
+  position:absolute; overflow:hidden; font-size:200%;
+  font-weight:bold; color:#999; }
+
+
+/*---------------- VERTICAL LABEL -------------------*/
+.timeline-horizontal .timeline-highlight-label {top:0; height:100%;}
+.timeline-horizontal .timeline-highlight-label td {vertical-align:middle;}
+.timeline-horizontal .timeline-highlight-label-start {text-align:right;}
+.timeline-horizontal .timeline-highlight-label-end {text-align:left;}
+
+
+/*---------------- HORIZONTAL LABEL -------------------*/
+.timeline-vertical .timeline-highlight-label {left:0;width:100%;}
+.timeline-vertical .timeline-highlight-label td {vertical-align:top;}
+.timeline-vertical .timeline-highlight-label-start {text-align:center;}
+.timeline-vertical .timeline-highlight-label-end {text-align:center;}
+
+
+/*-------------------------------- DATE LABELS --------------------------------*/
+.timeline-date-label {
+  position: absolute;
+  border: solid #aaa;
+  color: #aaa;
+  width: 5em;
+  height: 1.5em;}
+.timeline-date-label-em {color: #000;}
+
+/* horizontal */
+.timeline-horizontal .timeline-date-label{padding-left:2px;}
+.timeline-horizontal .timeline-date-label{border-width:0 0 0 1px;}
+.timeline-horizontal .timeline-date-label-em{height:2em}
+
+/* vertical */
+.timeline-vertical .timeline-date-label{padding-top:2px;}
+.timeline-vertical .timeline-date-label{border-width:1px 0 0;}
+.timeline-vertical .timeline-date-label-em{width:7em}
+
+
+/*------------------------------- Ether.highlight -------------------------*/
+.timeline-ether-highlight{position:absolute; background-color:#fff;}
+.timeline-horizontal .timeline-ether-highlight{top:2px;}
+.timeline-vertical .timeline-ether-highlight{left:2px;}
+
+
+/*------------------------------ EVENTS ------------------------------------*/
+.timeline-event-icon, .timeline-event-label,.timeline-event-tape{
+	position:absolute;
+	cursor:pointer;
+}
+
+.timeline-event-tape,
+.timeline-small-event-tape,
+.timeline-small-event-icon{
+	background-color:#58A0DC;
+	overflow:hidden;
+}
+
+.timeline-small-event-tape,
+.timeline-small-event-icon{
+	position:absolute;
+}
+
+.timeline-small-event-icon{width:1px; height:6px;}
+
+  
+/*--------------------------------- TIMELINE-------------------------*/
+.timeline-ether-bg{width:100%; height:100%;}
+.timeline-band-0 .timeline-ether-bg{background-color:#eee}
+.timeline-band-1 .timeline-ether-bg{background-color:#ddd}
+.timeline-band-2 .timeline-ether-bg{background-color:#ccc}
+.timeline-band-3 .timeline-ether-bg{background-color:#aaa}
+.timeline-duration-event {
+    position: absolute;
+    overflow: hidden;
+    border: 1px solid blue;
+}
+
+.timeline-instant-event2 {
+    position: absolute;
+    overflow: hidden;
+    border-left: 1px solid blue;
+    padding-left: 2px;
+}
+
+.timeline-instant-event {
+    position: absolute;
+    overflow: hidden;
+}
+
+.timeline-event-bubble-title {
+    font-weight: bold;
+    border-bottom: 1px solid #888;
+    margin-bottom: 0.5em;
+}
+
+.timeline-event-bubble-body {
+}
+
+.timeline-event-bubble-wiki {
+    margin:     0.5em;
+    text-align: right;
+    color:      #A0A040;
+}
+.timeline-event-bubble-wiki a {
+    color:      #A0A040;
+}
+
+.timeline-event-bubble-time {
+    color: #aaa;
+}
+
+.timeline-event-bubble-image {
+    float: right;
+    padding-left: 5px;
+    padding-bottom: 5px;
+}.timeline-container {
+    position: relative;
+    overflow: hidden;
+}
+
+.timeline-copyright {
+    position: absolute;
+    bottom: 0px;
+    left: 0px;
+    z-index: 1000;
+    cursor: pointer;
+}
+
+.timeline-message-container {
+    position:   absolute;
+    top:        30%;
+    left:       35%;
+    right:      35%;
+    z-index:    1000;
+    display:    none;
+}
+.timeline-message {
+    font-size:      120%;
+    font-weight:    bold;
+    text-align:     center;
+}
+.timeline-message img {
+    vertical-align: middle;
+}
+
+.timeline-band {
+    position:   absolute;
+    background: #eee;
+    z-index:    10;
+}
+
+.timeline-band-inner {
+    position: relative;
+    width: 100%;
+    height: 100%;
+}
+
+.timeline-band-input {
+    position:   absolute;
+    width:      1em;
+    height:     1em;
+    overflow:   hidden;
+    z-index:    0;
+}
+.timeline-band-input input{
+    width:      0;
+}
+
+.timeline-band-layer {
+    position:   absolute;
+    width:      100%;
+    height:     100%;
+}
+
+.timeline-band-layer-inner {
+    position:   relative;
+    width:      100%;
+    height:     100%;
+}
+

Added: public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.js
===================================================================
--- public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.js	                        (rev 0)
+++ public/yanel/trunk/src/contributions/resources/timeline/htdocs/timeline_2.3.0/timeline_js/timeline-bundle.js	2009-11-30 18:23:51 UTC (rev 45757)
@@ -0,0 +1,2835 @@
+
+
+/* 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");
+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;
+D<this._decorators.length;
+D++){this._decorators[D].initialize(this,B);
+}};
+Timeline._Band.SCROLL_MULTIPLES=5;
+Timeline._Band.prototype.dispose=function(){this.closeBubble();
+if(this._eventSource){this._eventSource.removeListener(this._eventListener);
+this._eventListener=null;
+this._eventSource=null;
+}this._timeline=null;
+this._bandInfo=null;
+this._labeller=null;
+this._ether=null;
+this._etherPainter=null;
+this._eventPainter=null;
+this._decorators=null;
+this._onScrollListeners=null;
+this._syncWithBandHandler=null;
+this._selectorListener=null;
+this._div=null;
+this._innerDiv=null;
+this._keyboardInput=null;
+};
+Timeline._Band.prototype.addOnScrollListener=function(A){this._onScrollListeners.push(A);
+};
+Timeline._Band.prototype.removeOnScrollListener=function(B){for(var A=0;
+A<this._onScrollListeners.length;
+A++){if(this._onScrollListeners[A]==B){this._onScrollListeners.splice(A,1);
+break;
+}}};
+Timeline._Band.prototype.setSyncWithBand=function(B,A){if(this._syncWithBand){this._syncWithBand.removeOnScrollListener(this._syncWithBandHandler);
+}this._syncWithBand=B;
+this._syncWithBand.addOnScrollListener(this._syncWithBandHandler);
+this._highlight=A;
+this._positionHighlight();
+};
+Timeline._Band.prototype.getLocale=function(){return this._locale;
+};
+Timeline._Band.prototype.getTimeZone=function(){return this._timeZone;
+};
+Timeline._Band.prototype.getLabeller=function(){return this._labeller;
+};
+Timeline._Band.prototype.getIndex=function(){return this._index;
+};
+Timeline._Band.prototype.getEther=function(){return this._ether;
+};
+Timeline._Band.prototype.getEtherPainter=function(){return this._etherPainter;
+};
+Timeline._Band.prototype.getEventSource=function(){return this._eventSource;
+};
+Timeline._Band.prototype.getEventPainter=function(){return this._eventPainter;
+};
+Timeline._Band.prototype.getTimeline=function(){return this._timeline;
+};
+Timeline._Band.prototype.updateEventTrackInfo=function(A,B){this._eventTrackIncrement=B;
+if(A>this._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;
+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;
+A<this._onScrollListeners.length;
+A++){this._onScrollListeners[A](this);
+}};
+Timeline._Band.prototype._setSyncWithBandDate=function(){if(this._syncWithBand){var A=this._ether.pixelOffsetToDate(this.getViewLength()/2);
+this._syncWithBand.setCenterVisibleDate(A);
+}};
+Timeline._Band.prototype._onHighlightBandScroll=function(){if(this._syncWithBand){var A=this._syncWithBand.getCenterVisibleDate();
+var B=this._ether.dateToPixelOffset(A);
+this._moveEther(Math.round(this._viewLength/2-B));
+if(this._highlight){this._etherPainter.setHighlight(this._syncWithBand.getMinVisibleDate(),this._syncWithBand.getMaxVisibleDate());
+}}};
+Timeline._Band.prototype._onAddMany=function(){this._paintEvents();
+};
+Timeline._Band.prototype._onClear=function(){this._paintEvents();
+};
+Timeline._Band.prototype._positionHighlight=function(){if(this._syncWithBand){var A=this._syncWithBand.getMinVisibleDate();
+var B=this._syncWithBand.getMaxVisibleDate();
+if(this._highlight){this._etherPainter.setHighlight(A,B);
+}}};
+Timeline._Band.prototype._recenterDiv=function(){this._viewOffset=-this._viewLength*(Timeline._Band.SCROLL_MULTIPLES-1)/2;
+if(this._timeline.isHorizontal()){this._div.style.left=this._viewOffset+"px";
+this._div.style.width=(Timeline._Band.SCROLL_MULTIPLES*this._viewLength)+"px";
+}else{this._div.style.top=this._viewOffset+"px";
+this._div.style.height=(Timeline._Band.SCROLL_MULTIPLES*this._viewLength)+"px";
+}this.layout();
+};
+Timeline._Band.prototype._paintEvents=function(){this._eventPainter.paint();
+};
+Timeline._Band.prototype._softPaintEvents=function(){this._eventPainter.softPaint();
+};
+Timeline._Band.prototype._paintDecorators=function(){for(var A=0;
+A<this._decorators.length;
+A++){this._decorators[A].paint();
+}};
+Timeline._Band.prototype._softPaintDecorators=function(){for(var A=0;
+A<this._decorators.length;
+A++){this._decorators[A].softPaint();
+}};
+Timeline._Band.prototype.closeBubble=function(){SimileAjax.WindowManager.cancelPopups();
+};
+
+
+/* compact-painter.js */
+Timeline.CompactEventPainter=function(A){this._params=A;
+this._onSelectListeners=[];
+this._filterMatcher=null;
+this._highlightMatcher=null;
+this._frc=null;
+this._eventIdToElmt={};
+};
+Timeline.CompactEventPainter.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.CompactEventPainter.prototype.addOnSelectListener=function(A){this._onSelectListeners.push(A);
+};
+Timeline.CompactEventPainter.prototype.removeOnSelectListener=function(B){for(var A=0;
+A<this._onSelectListeners.length;
+A++){if(this._onSelectListeners[A]==B){this._onSelectListeners.splice(A,1);
+break;
+}}};
+Timeline.CompactEventPainter.prototype.getFilterMatcher=function(){return this._filterMatcher;
+};
+Timeline.CompactEventPainter.prototype.setFilterMatcher=function(A){this._filterMatcher=A;
+};
+Timeline.CompactEventPainter.prototype.getHighlightMatcher=function(){return this._highlightMatcher;
+};
+Timeline.CompactEventPainter.prototype.setHighlightMatcher=function(A){this._highlightMatcher=A;
+};
+Timeline.CompactEventPainter.prototype.paint=function(){var N=this._band.getEventSource();
+if(N==null){return ;
+}this._eventIdToElmt={};
+this._prepareForPainting();
+var O=this._params.theme;
+var L=O.event;
+var G={trackOffset:"trackOffset" in this._params?this._params.trackOffset:10,trackHeight:"trackHeight" in this._params?this._params.trackHeight:10,tapeHeight:O.event.tape.height,tapeBottomMargin:"tapeBottomMargin" in this._params?this._params.tapeBottomMargin:2,labelBottomMargin:"labelBottomMargin" in this._params?this._params.labelBottomMargin:5,labelRightMargin:"labelRightMargin" in this._params?this._params.labelRightMargin:5,defaultIcon:L.instant.icon,defaultIconWidth:L.instant.iconWidth,defaultIconHeight:L.instant.iconHeight,customIconWidth:"iconWidth" in this._params?this._params.iconWidth:L.instant.iconWidth,customIconHeight:"iconHeight" in this._params?this._params.iconHeight:L.instant.iconHeight,iconLabelGap:"iconLabelGap" in this._params?this._params.iconLabelGap:2,iconBottomMargin:"iconBottomMargin" in this._params?this._params.iconBottomMargin:2};
+if("compositeIcon" in this._params){G.compositeIcon=this._params.compositeIcon;
+G.compositeIconWidth=this._params.compositeIconWidth||G.customIconWidth;
+G.compositeIconHeight=this._params.compositeIconHeight||G.customIconHeight;
+}else{G.compositeIcon=G.defaultIcon;
+G.compositeIconWidth=G.defaultIconWidth;
+G.compositeIconHeight=G.defaultIconHeight;
+}G.defaultStackIcon="icon" in this._params.stackConcurrentPreciseInstantEvents?this._params.stackConcurrentPreciseInstantEvents.icon:G.defaultIcon;
+G.defaultStackIconWidth="iconWidth" in this._params.stackConcurrentPreciseInstantEvents?this._params.stackConcurrentPreciseInstantEvents.iconWidth:G.defaultIconWidth;
+G.defaultStackIconHeight="iconHeight" in this._params.stackConcurrentPreciseInstantEvents?this._params.stackConcurrentPreciseInstantEvents.iconHeight:G.defaultIconHeight;
+var B=this._band.getMinDate();
+var D=this._band.getMaxDate();
+var R=(this._filterMatcher!=null)?this._filterMatcher:function(S){return true;
+};
+var Q=(this._highlightMatcher!=null)?this._highlightMatcher:function(S){return -1;
+};
+var F=N.getEventIterator(B,D);
+var H="stackConcurrentPreciseInstantEvents" in this._params&&typeof this._params.stackConcurrentPreciseInstantEvents=="object";
+var P="collapseConcurrentPreciseInstantEvents" in this._params&&this._params.collapseConcurrentPreciseInstantEvents;
+if(P||H){var M=[];
+var A=null;
+while(F.hasNext()){var E=F.next();
+if(R(E)){if(!E.isInstant()||E.isImprecise()){this.paintEvent(E,G,this._params.theme,Q(E));
+}else{if(A!=null&&A.getStart().getTime()==E.getStart().getTime()){M[M.length-1].push(E);
+}else{M.push([E]);
+A=E;
+}}}}for(var J=0;
+J<M.length;
+J++){var K=M[J];
+if(K.length==1){this.paintEvent(K[0],G,this._params.theme,Q(E));
+}else{var C=-1;
+for(var I=0;
+C<0&&I<K.length;
+I++){C=Q(K[I]);
+}if(H){this.paintStackedPreciseInstantEvents(K,G,this._params.theme,C);
+}else{this.paintCompositePreciseInstantEvents(K,G,this._params.theme,C);
+}}}}else{while(F.hasNext()){var E=F.next();
+if(R(E)){this.paintEvent(E,G,this._params.theme,Q(E));
+}}}this._highlightLayer.style.display="block";
+this._lineLayer.style.display="block";
+this._eventLayer.style.display="block";
+};
+Timeline.CompactEventPainter.prototype.softPaint=function(){};
+Timeline.CompactEventPainter.prototype._prepareForPainting=function(){var B=this._band;
+if(this._backLayer==null){this._backLayer=this._band.createLayerDiv(0,"timeline-band-events");
+this._backLayer.style.visibility="hidden";
+var A=document.createElement("span");
+A.className="timeline-event-label";
+this._backLayer.appendChild(A);
+this._frc=SimileAjax.Graphics.getFontRenderingContext(A);
+}this._frc.update();
+this._tracks=[];
+if(this._highlightLayer!=null){B.removeLayerDiv(this._highlightLayer);
+}this._highlightLayer=B.createLayerDiv(105,"timeline-band-highlights");
+this._highlightLayer.style.display="none";
+if(this._lineLayer!=null){B.removeLayerDiv(this._lineLayer);
+}this._lineLayer=B.createLayerDiv(110,"timeline-band-lines");
+this._lineLayer.style.display="none";
+if(this._eventLayer!=null){B.removeLayerDiv(this._eventLayer);
+}this._eventLayer=B.createLayerDiv(115,"timeline-band-events");
+this._eventLayer.style.display="none";
+};
+Timeline.CompactEventPainter.prototype.paintEvent=function(B,C,D,A){if(B.isInstant()){this.paintInstantEvent(B,C,D,A);
+}else{this.paintDurationEvent(B,C,D,A);
+}};
+Timeline.CompactEventPainter.prototype.paintInstantEvent=function(B,C,D,A){if(B.isImprecise()){this.paintImpreciseInstantEvent(B,C,D,A);
+}else{this.paintPreciseInstantEvent(B,C,D,A);
+}};
+Timeline.CompactEventPainter.prototype.paintDurationEvent=function(B,C,D,A){if(B.isImprecise()){this.paintImpreciseDurationEvent(B,C,D,A);
+}else{this.paintPreciseDurationEvent(B,C,D,A);
+}};
+Timeline.CompactEventPainter.prototype.paintPreciseInstantEvent=function(H,F,B,A){var C={tooltip:H.getProperty("tooltip")||H.getText()};
+var E={url:H.getIcon()};
+if(E.url==null){E.url=F.defaultIcon;
+E.width=F.defaultIconWidth;
+E.height=F.defaultIconHeight;
+E.className="timeline-event-icon-default";
+}else{E.width=H.getProperty("iconWidth")||F.customIconWidth;
+E.height=H.getProperty("iconHeight")||F.customIconHeight;
+}var J={text:H.getText(),color:H.getTextColor()||H.getColor(),className:H.getClassName()};
+var G=this.paintTapeIconLabel(H.getStart(),C,null,E,J,F,B,A);
+var I=this;
+var D=function(L,K,M){return I._onClickInstantEvent(G.iconElmtData.elmt,K,H);
+};
+SimileAjax.DOM.registerEvent(G.iconElmtData.elmt,"mousedown",D);
+SimileAjax.DOM.registerEvent(G.labelElmtData.elmt,"mousedown",D);
+this._eventIdToElmt[H.getID()]=G.iconElmtData.elmt;
+};
+Timeline.CompactEventPainter.prototype.paintCompositePreciseInstantEvents=function(J,H,D,B){var K=J[0];
+var A=[];
+for(var C=0;
+C<J.length;
+C++){A.push(J[C].getProperty("tooltip")||J[C].getText());
+}var E={tooltip:A.join("; ")};
+var G={url:H.compositeIcon,width:H.compositeIconWidth,height:H.compositeIconHeight,className:"timeline-event-icon-composite"};
+var M={text:String.substitute(this._params.compositeEventLabelTemplate,[J.length])};
+var I=this.paintTapeIconLabel(K.getStart(),E,null,G,M,H,D,B);
+var L=this;
+var F=function(O,N,P){return L._onClickMultiplePreciseInstantEvent(I.iconElmtData.elmt,N,J);
+};
+SimileAjax.DOM.registerEvent(I.iconElmtData.elmt,"mousedown",F);
+SimileAjax.DOM.registerEvent(I.labelElmtData.elmt,"mousedown",F);
+for(var C=0;
+C<J.length;
+C++){this._eventIdToElmt[J[C].getID()]=I.iconElmtData.elmt;
+}};
+Timeline.CompactEventPainter.prototype.paintStackedPreciseInstantEvents=function(T,j,c,E){var S="limit" in this._params.stackConcurrentPreciseInstantEvents?this._params.stackConcurrentPreciseInstantEvents.limit:10;
+var G="moreMessageTemplate" in this._params.stackConcurrentPreciseInstantEvents?this._params.stackConcurrentPreciseInstantEvents.moreMessageTemplate:"%0 More Events";
+var Q=S<=T.length-2;
+var B=this._band;
+var L=function(i){return Math.round(B.dateToPixelOffset(i));
+};
+var O=function(i){var r={url:i.getIcon()};
+if(r.url==null){r.url=j.defaultStackIcon;
+r.width=j.defaultStackIconWidth;
+r.height=j.defaultStackIconHeight;
+r.className="timeline-event-icon-stack timeline-event-icon-default";
+}else{r.width=i.getProperty("iconWidth")||j.customIconWidth;
+r.height=i.getProperty("iconHeight")||j.customIconHeight;
+r.className="timeline-event-icon-stack";
+}return r;
+};
+var C=O(T[0]);
+var V=5;
+var D=0;
+var g=0;
+var p=0;
+var U=0;
+var l=[];
+for(var n=0;
+n<T.length&&(!Q||n<S);
+n++){var b=T[n];
+var a=b.getText();
+var X=O(b);
+var W=this._frc.computeSize(a);
+var K={text:a,iconData:X,labelSize:W,iconLeft:C.width+n*V-X.width};
+K.labelLeft=C.width+n*V+j.iconLabelGap;
+K.top=p;
+l.push(K);
+D=Math.min(D,K.iconLeft);
+p+=W.height;
+g=Math.max(g,K.labelLeft+W.width);
+U=Math.max(U,K.top+X.height);
+}if(Q){var e=String.substitute(G,[T.length-S]);
+var H=this._frc.computeSize(e);
+var J=C.width+(S-1)*V+j.iconLabelGap;
+var m=p;
+p+=H.height;
+g=Math.max(g,J+H.width);
+}g+=j.labelRightMargin;
+p+=j.labelBottomMargin;
+U+=j.iconBottomMargin;
+var F=L(T[0].getStart());
+var Y=[];
+var N=Math.ceil(Math.max(U,p)/j.trackHeight);
+var M=C.width+(T.length-1)*V;
+for(var n=0;
+n<N;
+n++){Y.push({start:D,end:M});
+}var f=Math.ceil(p/j.trackHeight);
+for(var n=0;
+n<f;
+n++){var P=Y[n];
+P.end=Math.max(P.end,g);
+}var k=this._fitTracks(F,Y);
+var Z=k*j.trackHeight+j.trackOffset;
+var q=this._timeline.getDocument().createElement("div");
+q.className="timeline-event-icon-stack";
+q.style.position="absolute";
+q.style.overflow="visible";
+q.style.left=F+"px";
+q.style.top=Z+"px";
+q.style.width=M+"px";
+q.style.height=U+"px";
+q.innerHTML="<div style='position: relative'></div>";
+this._eventLayer.appendChild(q);
+var I=this;
+var R=function(r){try{var w=parseInt(this.getAttribute("index"));
+var u=q.firstChild.childNodes;
+for(var s=0;
+s<u.length;
+s++){var v=u[s];
+if(s==w){v.style.zIndex=u.length;
+}else{v.style.zIndex=u.length-s;
+}}}catch(t){}};
+var d=function(u){var w=l[u];
+var r=T[u];
+var i=r.getProperty("tooltip")||r.getText();
+var v=I._paintEventLabel({tooltip:i},{text:w.text},F+w.labelLeft,Z+w.top,w.labelSize.width,w.labelSize.height,c);
+v.elmt.setAttribute("index",u);
+v.elmt.onmouseover=R;
+var t=SimileAjax.Graphics.createTranslucentImage(w.iconData.url);
+var s=I._timeline.getDocument().createElement("div");
+s.className="timeline-event-icon"+("className" in w.iconData?(" "+w.iconData.className):"");
+s.style.left=w.iconLeft+"px";
+s.style.top=w.top+"px";
+s.style.zIndex=(l.length-u);
+s.appendChild(t);
+s.setAttribute("index",u);
+s.onmouseover=R;
+q.firstChild.appendChild(s);
+var x=function(z,y,AA){return I._onClickInstantEvent(v.elmt,y,r);
+};
+SimileAjax.DOM.registerEvent(s,"mousedown",x);
+SimileAjax.DOM.registerEvent(v.elmt,"mousedown",x);
+I._eventIdToElmt[r.getID()]=s;
+};
+for(var n=0;
+n<l.length;
+n++){d(n);
+}if(Q){var o=T.slice(S);
+var A=this._paintEventLabel({tooltip:e},{text:e},F+J,Z+m,H.width,H.height,c);
+var h=function(r,i,s){return I._onClickMultiplePreciseInstantEvent(A.elmt,i,o);
+};
+SimileAjax.DOM.registerEvent(A.elmt,"mousedown",h);
+for(var n=0;
+n<o.length;
+n++){this._eventIdToElmt[o[n].getID()]=A.elmt;
+}}};
+Timeline.CompactEventPainter.prototype.paintImpreciseInstantEvent=function(I,G,B,A){var C={tooltip:I.getProperty("tooltip")||I.getText()};
+var E={start:I.getStart(),end:I.getEnd(),latestStart:I.getLatestStart(),earliestEnd:I.getEarliestEnd(),isInstant:true};
+var F={url:I.getIcon()};
+if(F.url==null){F=null;
+}else{F.width=I.getProperty("iconWidth")||G.customIconWidth;
+F.height=I.getProperty("iconHeight")||G.customIconHeight;
+}var K={text:I.getText(),color:I.getTextColor()||I.getColor(),className:I.getClassName()};
+var H=this.paintTapeIconLabel(I.getStart(),C,E,F,K,G,B,A);
+var J=this;
+var D=F!=null?function(M,L,N){return J._onClickInstantEvent(H.iconElmtData.elmt,L,I);
+}:function(M,L,N){return J._onClickInstantEvent(H.labelElmtData.elmt,L,I);
+};
+SimileAjax.DOM.registerEvent(H.labelElmtData.elmt,"mousedown",D);
+SimileAjax.DOM.registerEvent(H.impreciseTapeElmtData.elmt,"mousedown",D);
+if(F!=null){SimileAjax.DOM.registerEvent(H.iconElmtData.elmt,"mousedown",D);
+this._eventIdToElmt[I.getID()]=H.iconElmtData.elmt;
+}else{this._eventIdToElmt[I.getID()]=H.labelElmtData.elmt;
+}};
+Timeline.CompactEventPainter.prototype.paintPreciseDurationEvent=function(I,G,B,A){var C={tooltip:I.getProperty("tooltip")||I.getText()};
+var E={start:I.getStart(),end:I.getEnd(),isInstant:false};
+var F={url:I.getIcon()};
+if(F.url==null){F=null;
+}else{F.width=I.getProperty("iconWidth")||G.customIconWidth;
+F.height=I.getProperty("iconHeight")||G.customIconHeight;
+}var K={text:I.getText(),color:I.getTextColor()||I.getColor(),className:I.getClassName()};
+var H=this.paintTapeIconLabel(I.getLatestStart(),C,E,F,K,G,B,A);
+var J=this;
+var D=F!=null?function(M,L,N){return J._onClickInstantEvent(H.iconElmtData.elmt,L,I);
+}:function(M,L,N){return J._onClickInstantEvent(H.labelElmtData.elmt,L,I);
+};
+SimileAjax.DOM.registerEvent(H.labelElmtData.elmt,"mousedown",D);
+SimileAjax.DOM.registerEvent(H.tapeElmtData.elmt,"mousedown",D);
+if(F!=null){SimileAjax.DOM.registerEvent(H.iconElmtData.elmt,"mousedown",D);
+this._eventIdToElmt[I.getID()]=H.iconElmtData.elmt;
+}else{this._eventIdToElmt[I.getID()]=H.labelElmtData.elmt;
+}};
+Timeline.CompactEventPainter.prototype.paintImpreciseDurationEvent=function(I,G,B,A){var C={tooltip:I.getProperty("tooltip")||I.getText()};
+var E={start:I.getStart(),end:I.getEnd(),latestStart:I.getLatestStart(),earliestEnd:I.getEarliestEnd(),isInstant:false};
+var F={url:I.getIcon()};
+if(F.url==null){F=null;
+}else{F.width=I.getProperty("iconWidth")||G.customIconWidth;
+F.height=I.getProperty("iconHeight")||G.customIconHeight;
+}var K={text:I.getText(),color:I.getTextColor()||I.getColor(),className:I.getClassName()};
+var H=this.paintTapeIconLabel(I.getLatestStart(),C,E,F,K,G,B,A);
+var J=this;
+var D=F!=null?function(M,L,N){return J._onClickInstantEvent(H.iconElmtData.elmt,L,I);
+}:function(M,L,N){return J._onClickInstantEvent(H.labelElmtData.elmt,L,I);
+};
+SimileAjax.DOM.registerEvent(H.labelElmtData.elmt,"mousedown",D);
+SimileAjax.DOM.registerEvent(H.tapeElmtData.elmt,"mousedown",D);
+if(F!=null){SimileAjax.DOM.registerEvent(H.iconElmtData.elmt,"mousedown",D);
+this._eventIdToElmt[I.getID()]=H.iconElmtData.elmt;
+}else{this._eventIdToElmt[I.getID()]=H.labelElmtData.elmt;
+}};
+Timeline.CompactEventPainter.prototype.paintTapeIconLabel=function(V,O,S,I,a,X,c,Z){var R=this._band;
+var F=function(e){return Math.round(R.dateToPixelOffset(e));
+};
+var d=F(V);
+var W=[];
+var b=0;
+var B=0;
+var C=0;
+if(S!=null){b=X.tapeHeight+X.tapeBottomMargin;
+B=Math.ceil(X.tapeHeight/X.trackHeight);
+var A=F(S.end)-d;
+var L=F(S.start)-d;
+for(var Q=0;
+Q<B;
+Q++){W.push({start:L,end:A});
+}C=X.trackHeight-(b%X.tapeHeight);
+}var N=0;
+var U=0;
+if(I!=null){if("iconAlign" in I&&I.iconAlign=="center"){N=-Math.floor(I.width/2);
+}U=N+I.width+X.iconLabelGap;
+if(B>0){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<W.length){var T=W[B+Y];
+T.end=J;
+}else{W.push({start:0,end:J});
+}M-=X.trackHeight;
+}var G=this._fitTracks(d,W);
+var K=G*X.trackHeight+X.trackOffset;
+var D={};
+D.labelElmtData=this._paintEventLabel(O,a,d+U,K+b,H.width,H.height,c);
+if(S!=null){if("latestStart" in S||"earliestEnd" in S){D.impreciseTapeElmtData=this._paintEventTape(O,S,X.tapeHeight,K,F(S.start),F(S.end),c.event.duration.impreciseColor,c.event.duration.impreciseOpacity,X,c);
+}if(!S.isInstant&&"start" in S&&"end" in S){D.tapeElmtData=this._paintEventTape(O,S,X.tapeHeight,K,d,F("earliestEnd" in S?S.earliestEnd:S.end),S.color,100,X,c);
+}}if(I!=null){D.iconElmtData=this._paintEventIcon(O,I,K+b,d+N,X,c);
+}return D;
+};
+Timeline.CompactEventPainter.prototype._fitTracks=function(F,C){var H;
+for(H=0;
+H<this._tracks.length;
+H++){var E=true;
+for(var B=0;
+B<C.length&&(H+B)<this._tracks.length;
+B++){var G=this._tracks[H+B];
+var A=C[B];
+if(F+A.start<G){E=false;
+break;
+}}if(E){break;
+}}for(var D=0;
+D<C.length;
+D++){this._tracks[H+D]=F+C[D].end;
+}return H;
+};
+Timeline.CompactEventPainter.prototype._paintEventIcon=function(C,D,H,G,E,F){var B=SimileAjax.Graphics.createTranslucentImage(D.url);
+var A=this._timeline.getDocument().createElement("div");
+A.className="timeline-event-icon"+("className" in D?(" "+D.className):"");
+A.style.left=G+"px";
+A.style.top=H+"px";
+A.appendChild(B);
+if("tooltip" in C&&typeof C.tooltip=="string"){A.title=C.tooltip;
+}this._eventLayer.appendChild(A);
+return{left:G,top:H,width:E.iconWidth,height:E.iconHeight,elmt:A};
+};
+Timeline.CompactEventPainter.prototype._paintEventLabel=function(E,I,C,F,A,G,D){var H=this._timeline.getDocument();
+var B=H.createElement("div");
+B.className="timeline-event-label";
+B.style.left=C+"px";
+B.style.width=(A+1)+"px";
+B.style.top=F+"px";
+B.innerHTML=I.text;
+if("tooltip" in E&&typeof E.tooltip=="string"){B.title=E.tooltip;
+}if("color" in I&&typeof I.color=="string"){B.style.color=I.color;
+}if("className" in I&&typeof I.className=="string"){B.className+=" "+I.className;
+}this._eventLayer.appendChild(B);
+return{left:C,top:F,width:A,height:G,elmt:B};
+};
+Timeline.CompactEventPainter.prototype._paintEventTape=function(G,H,K,J,D,A,E,C,I,F){var B=A-D;
+var L=this._timeline.getDocument().createElement("div");
+L.className="timeline-event-tape";
+L.style.left=D+"px";
+L.style.top=J+"px";
+L.style.width=B+"px";
+L.style.height=K+"px";
+if("tooltip" in G&&typeof G.tooltip=="string"){L.title=G.tooltip;
+}if(E!=null&&typeof H.color=="string"){L.style.backgroundColor=E;
+}if("backgroundImage" in H&&typeof H.backgroundImage=="string"){L.style.backgroundImage="url("+backgroundImage+")";
+L.style.backgroundRepeat=("backgroundRepeat" in H&&typeof H.backgroundRepeat=="string")?H.backgroundRepeat:"repeat";
+}SimileAjax.Graphics.setOpacity(L,C);
+if("className" in H&&typeof H.className=="string"){L.className+=" "+H.className;
+}this._eventLayer.appendChild(L);
+return{left:D,top:J,width:B,height:K,elmt:L};
+};
+Timeline.CompactEventPainter.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.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;
+C<B.length;
+C++){D.push(B[C].getID());
+}this._fireOnSelect(D);
+A.cancelBubble=true;
+SimileAjax.DOM.cancelEvent(A);
+return false;
+};
+Timeline.CompactEventPainter.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.CompactEventPainter.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.CompactEventPainter.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.CompactEventPainter.prototype._showBubble=function(A,F,B){var E=document.createElement("div");
+B=("fillInfoBubble" in B)?[B]:B;
+for(var D=0;
+D<B.length;
+D++){var C=document.createElement("div");
+E.appendChild(C);
+B[D].fillInfoBubble(C,this._params.theme,this._band.getLabeller());
+}SimileAjax.WindowManager.cancelPopups();
+SimileAjax.Graphics.createBubbleForContentAndPoint(E,A,F,this._params.theme.event.bubble.width);
+};
+Timeline.CompactEventPainter.prototype._fireOnSelect=function(B){for(var A=0;
+A<this._onSelectListeners.length;
+A++){this._onSelectListeners[A](B);
+}};
+
+
+/* decorators.js */
+Timeline.SpanHighlightDecorator=function(A){this._unit=A.unit!=null?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!=null?A.startLabel:"";
+this._endLabel=A.endLabel!=null?A.endLabel:"";
+this._color=A.color;
+this._cssClass=A.cssClass!=null?A.cssClass:null;
+this._opacity=A.opacity!=null?A.opacity:100;
+this._zIndex=(A.inFront!=null&&A.inFront)?113:10;
+};
+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(this._zIndex);
+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._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<this._onSelectListeners.length;
+A++){if(this._onSelectListeners[A]==B){this._onSelectListeners.splice(A,1);
+break;
+}}};
+Timeline.DetailedEventPainter.prototype.getFilterMatcher=function(){return this._filterMatcher;
+};
+Timeline.DetailedEventPainter.prototype.setFilterMatcher=function(A){this._filterMatcher=A;
+};
+Timeline.DetailedEventPainter.prototype.getHighlightMatcher=function(){return this._highlightMatcher;
+};
+Timeline.DetailedEventPainter.prototype.setHighlightMatcher=function(A){this._highlightMatcher=A;
+};
+Timeline.DetailedEventPainter.prototype.paint=function(){var C=this._band.getEventSource();
+if(C==null){return ;
+}this._eventIdToElmt={};
+this._prepareForPainting();
+var I=this._params.theme.event;
+var G=Math.max(I.track.height,this._frc.getLineHeight());
+var F={trackOffset:Math.round(this._band.getViewWidth()/2-G/2),trackHeight:G,trackGap:I.track.gap,trackIncrement:G+I.track.gap,icon:I.instant.icon,iconWidth:I.instant.iconWidth,iconHeight:I.instant.iconHeight,labelWidth:I.label.width};
+var D=this._band.getMinDate();
+var B=this._band.getMaxDate();
+var J=(this._filterMatcher!=null)?this._filterMatcher:function(K){return true;
+};
+var A=(this._highlightMatcher!=null)?this._highlightMatcher:function(K){return -1;
+};
+var E=C.getEventReverseIterator(D,B);
+while(E.hasNext()){var H=E.next();
+if(J(H)){this.paintEvent(H,F,this._params.theme,A(H));
+}}this._highlightLayer.style.display="block";
+this._lineLayer.style.display="block";
+this._eventLayer.style.display="block";
+this._band.updateEventTrackInfo(this._lowerTracks.length+this._upperTracks.length,F.trackIncrement);
+};
+Timeline.DetailedEventPainter.prototype.softPaint=function(){};
+Timeline.DetailedEventPainter.prototype._prepareForPainting=function(){var B=this._band;
+if(this._backLayer==null){this._backLayer=this._band.createLayerDiv(0,"timeline-band-events");
+this._backLayer.style.visibility="hidden";
+var A=document.createElement("span");
+A.className="timeline-event-label";
+this._backLayer.appendChild(A);
+this._frc=SimileAjax.Graphics.getFontRenderingContext(A);
+}this._frc.update();
+this._lowerTracks=[];
+this._upperTracks=[];
+if(this._highlightLayer!=null){B.removeLayerDiv(this._highlightLayer);
+}this._highlightLayer=B.createLayerDiv(105,"timeline-band-highlights");
+this._highlightLayer.style.display="none";
+if(this._lineLayer!=null){B.removeLayerDiv(this._lineLayer);
+}this._lineLayer=B.createLayerDiv(110,"timeline-band-lines");
+this._lineLayer.style.display="none";
+if(this._eventLayer!=null){B.removeLayerDiv(this._eventLayer);
+}this._eventLayer=B.createLayerDiv(110,"timeline-band-events");
+this._eventLayer.style.display="none";
+};
+Timeline.DetailedEventPainter.prototype.paintEvent=function(B,C,D,A){if(B.isInstant()){this.paintInstantEvent(B,C,D,A);
+}else{this.paintDurationEvent(B,C,D,A);
+}};
+Timeline.DetailedEventPainter.prototype.paintInstantEvent=function(B,C,D,A){if(B.isImprecise()){this.paintImpreciseInstantEvent(B,C,D,A);
+}else{this.paintPreciseInstantEvent(B,C,D,A);
+}};
+Timeline.DetailedEventPainter.prototype.paintDurationEvent=function(B,C,D,A){if(B.isImprecise()){this.paintImpreciseDurationEvent(B,C,D,A);
+}else{this.paintPreciseDurationEvent(B,C,D,A);
+}};
+Timeline.DetailedEventPainter.prototype.paintPreciseInstantEvent=function(L,P,S,Q){var T=this._timeline.getDocument();
+var J=L.getText();
+var G=L.getStart();
+var H=Math.round(this._band.dateToPixelOffset(G));
+var A=Math.round(H+P.iconWidth/2);
+var C=Math.round(H-P.iconWidth/2);
+var E=this._frc.computeSize(J);
+var F=this._findFreeTrackForSolid(A,H);
+var B=this._paintEventIcon(L,F,C,P,S);
+var K=A+S.event.label.offsetFromLine;
+var O=F;
+var D=this._getTrackData(F);
+if(Math.min(D.solid,D.text)>=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(J<B){R=H;
+}else{N=K+W.event.label.offsetFromLine;
+J=N+G.width;
+R=this._findFreeTrackForText(H,J,function(Y){Y.line=K-2;
+});
+this._getTrackData(R).text=D;
+this._paintEventLine(O,K,H,R,S,W);
+}var Q=Math.round(S.trackOffset+R*S.trackIncrement+S.trackHeight/2-G.height/2);
+var V=this._paintEventLabel(O,M,N,Q,G.width,G.height,W);
+var P=this;
+var L=function(Z,Y,a){return P._onClickInstantEvent(C.elmt,Y,O);
+};
+SimileAjax.DOM.registerEvent(C.elmt,"mousedown",L);
+SimileAjax.DOM.registerEvent(E.elmt,"mousedown",L);
+SimileAjax.DOM.registerEvent(V.elmt,"mousedown",L);
+this._createHighlightDiv(T,C,W);
+this._eventIdToElmt[O.getID()]=C.elmt;
+};
+Timeline.DetailedEventPainter.prototype.paintPreciseDurationEvent=function(K,O,T,Q){var U=this._timeline.getDocument();
+var I=K.getText();
+var E=K.getStart();
+var R=K.getEnd();
+var F=Math.round(this._band.dateToPixelOffset(E));
+var A=Math.round(this._band.dateToPixelOffset(R));
+var C=this._frc.computeSize(I);
+var D=this._findFreeTrackForSolid(A);
+var P=K.getColor();
+P=P!=null?P:T.event.duration.color;
+var B=this._paintEventTape(K,D,F,A,P,100,O,T);
+var H=this._getTrackData(D);
+H.solid=F;
+var J=F+T.event.label.offsetFromLine;
+var N=this._findFreeTrackForText(D,J+C.width,function(V){V.line=F-2;
+});
+this._getTrackData(N).text=F-2;
+this._paintEventLine(K,F,D,N,O,T);
+var M=Math.round(O.trackOffset+N*O.trackIncrement+O.trackHeight/2-C.height/2);
+var S=this._paintEventLabel(K,I,J,M,C.width,C.height,T);
+var L=this;
+var G=function(W,V,X){return L._onClickDurationEvent(B.elmt,V,K);
+};
+SimileAjax.DOM.registerEvent(B.elmt,"mousedown",G);
+SimileAjax.DOM.registerEvent(S.elmt,"mousedown",G);
+this._createHighlightDiv(Q,B,T);
+this._eventIdToElmt[K.getID()]=B.elmt;
+};
+Timeline.DetailedEventPainter.prototype.paintImpreciseDurationEvent=function(M,T,Y,V){var Z=this._timeline.getDocument();
+var K=M.getText();
+var G=M.getStart();
+var S=M.getLatestStart();
+var W=M.getEnd();
+var O=M.getEarliestEnd();
+var H=Math.round(this._band.dateToPixelOffset(G));
+var E=Math.round(this._band.dateToPixelOffset(S));
+var A=Math.round(this._band.dateToPixelOffset(W));
+var F=Math.round(this._band.dateToPixelOffset(O));
+var C=this._frc.computeSize(K);
+var D=this._findFreeTrackForSolid(A);
+var U=M.getColor();
+U=U!=null?U:Y.event.duration.color;
+var R=this._paintEventTape(M,D,H,A,Y.event.duration.impreciseColor,Y.event.duration.impreciseOpacity,T,Y);
+var B=this._paintEventTape(M,D,E,F,U,100,T,Y);
+var J=this._getTrackData(D);
+J.solid=H;
+var L=E+Y.event.label.offsetFromLine;
+var Q=this._findFreeTrackForText(D,L+C.width,function(a){a.line=E-2;
+});
+this._getTrackData(Q).text=E-2;
+this._paintEventLine(M,E,D,Q,T,Y);
+var P=Math.round(T.trackOffset+Q*T.trackIncrement+T.trackHeight/2-C.height/2);
+var X=this._paintEventLabel(M,K,L,P,C.width,C.height,Y);
+var N=this;
+var I=function(b,a,c){return N._onClickDurationEvent(B.elmt,a,M);
+};
+SimileAjax.DOM.registerEvent(B.elmt,"mousedown",I);
+SimileAjax.DOM.registerEvent(X.elmt,"mousedown",I);
+this._createHighlightDiv(V,B,Y);
+this._eventIdToElmt[M.getID()]=B.elmt;
+};
+Timeline.DetailedEventPainter.prototype._findFreeTrackForSolid=function(D,A){for(var C=0;
+true;
+C++){if(C<this._lowerTracks.length){var B=this._lowerTracks[C];
+if(Math.min(B.solid,B.text)>D&&(!(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(C<this._upperTracks.length){var B=this._upperTracks[C];
+if(Math.min(B.solid,B.text)>D&&(!(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<E;
+D++){I(this._upperTracks[D]);
+}}else{if(E==this._lowerTracks.length){this._lowerTracks.push({solid:Number.POSITIVE_INFINITY,text:Number.POSITIVE_INFINITY,line:Number.POSITIVE_INFINITY});
+}for(var D=F;
+D<E;
+D++){I(this._lowerTracks[D]);
+}}return H;
+};
+Timeline.DetailedEventPainter.prototype._findFreeLowerTrackForText=function(A,C){for(;
+A<this._lowerTracks.length;
+A++){var B=this._lowerTracks[A];
+if(Math.min(B.solid,B.text)>=C){break;
+}}return A;
+};
+Timeline.DetailedEventPainter.prototype._findFreeUpperTrackForText=function(A,C){for(;
+A<this._upperTracks.length;
+A++){var B=this._upperTracks[A];
+if(Math.min(B.solid,B.text)>=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;
+B<this._onSelectListeners.length;
+B++){this._onSelectListeners[B](A);
+}};
+
+
+/* ether-painters.js */
+Timeline.GregorianEtherPainter=function(A){this._params=A;
+this._theme=A.theme;
+this._unit=A.unit;
+this._multiple=("multiple" in A)?A.multiple:1;
+};
+Timeline.GregorianEtherPainter.prototype.initialize=function(C,B){this._band=C;
+this._timeline=B;
+this._backgroundLayer=C.createLayerDiv(0);
+this._backgroundLayer.setAttribute("name","ether-background");
+this._backgroundLayer.className="timeline-ether-bg";
+this._markerLayer=null;
+this._lineLayer=null;
+var D=("align" in this._params&&this._params.align!=undefined)?this._params.align:this._theme.ether.interval.marker[B.isHorizontal()?"hAlign":"vAlign"];
+var A=("showLine" in this._params)?this._params.showLine:this._theme.ether.interval.line.show;
+this._intervalMarkerLayout=new Timeline.EtherIntervalMarkerLayout(this._timeline,this._band,this._theme,D,A);
+this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this._theme,this._backgroundLayer);
+};
+Timeline.GregorianEtherPainter.prototype.setHighlight=function(A,B){this._highlight.position(A,B);
+};
+Timeline.GregorianEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);
+}this._markerLayer=this._band.createLayerDiv(100);
+this._markerLayer.setAttribute("name","ether-markers");
+this._markerLayer.style.display="none";
+if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);
+}this._lineLayer=this._band.createLayerDiv(1);
+this._lineLayer.setAttribute("name","ether-lines");
+this._lineLayer.style.display="none";
+var C=this._band.getMinDate();
+var F=this._band.getMaxDate();
+var A=this._band.getTimeZone();
+var E=this._band.getLabeller();
+SimileAjax.DateTime.roundDownToInterval(C,this._unit,A,this._multiple,this._theme.firstDayOfWeek);
+var D=this;
+var B=function(G){for(var H=0;
+H<D._multiple;
+H++){SimileAjax.DateTime.incrementByInterval(G,D._unit);
+}};
+while(C.getTime()<F.getTime()){this._intervalMarkerLayout.createIntervalMarker(C,E,this._unit,this._markerLayer,this._lineLayer);
+B(C);
+}this._markerLayer.style.display="block";
+this._lineLayer.style.display="block";
+};
+Timeline.GregorianEtherPainter.prototype.softPaint=function(){};
+Timeline.GregorianEtherPainter.prototype.zoom=function(A){if(A!=0){this._unit+=A;
+}};
+Timeline.HotZoneGregorianEtherPainter=function(G){this._params=G;
+this._theme=G.theme;
+this._zones=[{startTime:Number.NEGATIVE_INFINITY,endTime:Number.POSITIVE_INFINITY,unit:G.unit,multiple:1}];
+for(var F=0;
+F<G.zones.length;
+F++){var C=G.zones[F];
+var E=SimileAjax.DateTime.parseGregorianDateTime(C.start).getTime();
+var B=SimileAjax.DateTime.parseGregorianDateTime(C.end).getTime();
+for(var D=0;
+D<this._zones.length&&B>E;
+D++){var A=this._zones[D];
+if(E<A.endTime){if(E>A.startTime){this._zones.splice(D,0,{startTime:A.startTime,endTime:E,unit:A.unit,multiple:A.multiple});
+D++;
+A.startTime=E;
+}if(B<A.endTime){this._zones.splice(D,0,{startTime:E,endTime:B,unit:C.unit,multiple:(C.multiple)?C.multiple:1});
+D++;
+A.startTime=B;
+E=B;
+}else{A.multiple=C.multiple;
+A.unit=C.unit;
+E=A.endTime;
+}}}}};
+Timeline.HotZoneGregorianEtherPainter.prototype.initialize=function(C,B){this._band=C;
+this._timeline=B;
+this._backgroundLayer=C.createLayerDiv(0);
+this._backgroundLayer.setAttribute("name","ether-background");
+this._backgroundLayer.className="timeline-ether-bg";
+this._markerLayer=null;
+this._lineLayer=null;
+var D=("align" in this._params&&this._params.align!=undefined)?this._params.align:this._theme.ether.interval.marker[B.isHorizontal()?"hAlign":"vAlign"];
+var A=("showLine" in this._params)?this._params.showLine:this._theme.ether.interval.line.show;
+this._intervalMarkerLayout=new Timeline.EtherIntervalMarkerLayout(this._timeline,this._band,this._theme,D,A);
+this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this._theme,this._backgroundLayer);
+};
+Timeline.HotZoneGregorianEtherPainter.prototype.setHighlight=function(A,B){this._highlight.position(A,B);
+};
+Timeline.HotZoneGregorianEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);
+}this._markerLayer=this._band.createLayerDiv(100);
+this._markerLayer.setAttribute("name","ether-markers");
+this._markerLayer.style.display="none";
+if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);
+}this._lineLayer=this._band.createLayerDiv(1);
+this._lineLayer.setAttribute("name","ether-lines");
+this._lineLayer.style.display="none";
+var C=this._band.getMinDate();
+var A=this._band.getMaxDate();
+var I=this._band.getTimeZone();
+var L=this._band.getLabeller();
+var B=this;
+var J=function(N,M){for(var O=0;
+O<M.multiple;
+O++){SimileAjax.DateTime.incrementByInterval(N,M.unit);
+}};
+var D=0;
+while(D<this._zones.length){if(C.getTime()<this._zones[D].endTime){break;
+}D++;
+}var E=this._zones.length-1;
+while(E>=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()<F.getTime()){this._intervalMarkerLayout.createIntervalMarker(K,L,G.unit,this._markerLayer,this._lineLayer);
+J(K,G);
+}}this._markerLayer.style.display="block";
+this._lineLayer.style.display="block";
+};
+Timeline.HotZoneGregorianEtherPainter.prototype.softPaint=function(){};
+Timeline.HotZoneGregorianEtherPainter.prototype.zoom=function(A){if(A!=0){for(var B=0;
+B<this._zones.length;
+++B){if(this._zones[B]){this._zones[B].unit+=A;
+}}}};
+Timeline.YearCountEtherPainter=function(A){this._params=A;
+this._theme=A.theme;
+this._startDate=SimileAjax.DateTime.parseGregorianDateTime(A.startDate);
+this._multiple=("multiple" in A)?A.multiple:1;
+};
+Timeline.YearCountEtherPainter.prototype.initialize=function(C,B){this._band=C;
+this._timeline=B;
+this._backgroundLayer=C.createLayerDiv(0);
+this._backgroundLayer.setAttribute("name","ether-background");
+this._backgroundLayer.className="timeline-ether-bg";
+this._markerLayer=null;
+this._lineLayer=null;
+var D=("align" in this._params)?this._params.align:this._theme.ether.interval.marker[B.isHorizontal()?"hAlign":"vAlign"];
+var A=("showLine" in this._params)?this._params.showLine:this._theme.ether.interval.line.show;
+this._intervalMarkerLayout=new Timeline.EtherIntervalMarkerLayout(this._timeline,this._band,this._theme,D,A);
+this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this._theme,this._backgroundLayer);
+};
+Timeline.YearCountEtherPainter.prototype.setHighlight=function(A,B){this._highlight.position(A,B);
+};
+Timeline.YearCountEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);
+}this._markerLayer=this._band.createLayerDiv(100);
+this._markerLayer.setAttribute("name","ether-markers");
+this._markerLayer.style.display="none";
+if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);
+}this._lineLayer=this._band.createLayerDiv(1);
+this._lineLayer.setAttribute("name","ether-lines");
+this._lineLayer.style.display="none";
+var B=new Date(this._startDate.getTime());
+var F=this._band.getMaxDate();
+var E=this._band.getMinDate().getUTCFullYear()-this._startDate.getUTCFullYear();
+B.setUTCFullYear(this._band.getMinDate().getUTCFullYear()-E%this._multiple);
+var C=this;
+var A=function(G){for(var H=0;
+H<C._multiple;
+H++){SimileAjax.DateTime.incrementByInterval(G,SimileAjax.DateTime.YEAR);
+}};
+var D={labelInterval:function(G,I){var H=G.getUTCFullYear()-C._startDate.getUTCFullYear();
+return{text:H,emphasized:H==0};
+}};
+while(B.getTime()<F.getTime()){this._intervalMarkerLayout.createIntervalMarker(B,D,SimileAjax.DateTime.YEAR,this._markerLayer,this._lineLayer);
+A(B);
+}this._markerLayer.style.display="block";
+this._lineLayer.style.display="block";
+};
+Timeline.YearCountEtherPainter.prototype.softPaint=function(){};
+Timeline.QuarterlyEtherPainter=function(A){this._params=A;
+this._theme=A.theme;
+this._startDate=SimileAjax.DateTime.parseGregorianDateTime(A.startDate);
+};
+Timeline.QuarterlyEtherPainter.prototype.initialize=function(C,B){this._band=C;
+this._timeline=B;
+this._backgroundLayer=C.createLayerDiv(0);
+this._backgroundLayer.setAttribute("name","ether-background");
+this._backgroundLayer.className="timeline-ether-bg";
+this._markerLayer=null;
+this._lineLayer=null;
+var D=("align" in this._params)?this._params.align:this._theme.ether.interval.marker[B.isHorizontal()?"hAlign":"vAlign"];
+var A=("showLine" in this._params)?this._params.showLine:this._theme.ether.interval.line.show;
+this._intervalMarkerLayout=new Timeline.EtherIntervalMarkerLayout(this._timeline,this._band,this._theme,D,A);
+this._highlight=new Timeline.EtherHighlight(this._timeline,this._band,this._theme,this._backgroundLayer);
+};
+Timeline.QuarterlyEtherPainter.prototype.setHighlight=function(A,B){this._highlight.position(A,B);
+};
+Timeline.QuarterlyEtherPainter.prototype.paint=function(){if(this._markerLayer){this._band.removeLayerDiv(this._markerLayer);
+}this._markerLayer=this._band.createLayerDiv(100);
+this._markerLayer.setAttribute("name","ether-markers");
+this._markerLayer.style.display="none";
+if(this._lineLayer){this._band.removeLayerDiv(this._lineLayer);
+}this._lineLayer=this._band.createLayerDiv(1);
+this._lineLayer.setAttribute("name","ether-lines");
+this._lineLayer.style.display="none";
+var B=new Date(0);
+var E=this._band.getMaxDate();
+B.setUTCFullYear(Math.max(this._startDate.getUTCFullYear(),this._band.getMinDate().getUTCFullYear()));
+B.setUTCMonth(this._startDate.getUTCMonth());
+var C=this;
+var A=function(F){F.setUTCMonth(F.getUTCMonth()+3);
+};
+var D={labelInterval:function(G,H){var F=(4+(G.getUTCMonth()-C._startDate.getUTCMonth())/3)%4;
+if(F!=0){return{text:"Q"+(F+1),emphasized:false};
+}else{return{text:"Y"+(G.getUTCFullYear()-C._startDate.getUTCFullYear()+1),emphasized:true};
+}}};
+while(B.getTime()<E.getTime()){this._intervalMarkerLayout.createIntervalMarker(B,D,SimileAjax.DateTime.YEAR,this._markerLayer,this._lineLayer);
+A(B);
+}this._markerLayer.style.display="block";
+this._lineLayer.style.display="block";
+};
+Timeline.QuarterlyEtherPainter.prototype.softPaint=function(){};
+Timeline.EtherIntervalMarkerLayout=function(I,L,C,E,M){var A=I.isHorizontal();
+if(A){if(E=="Top"){this.positionDiv=function(O,N){O.style.left=N+"px";
+O.style.top="0px";
+};
+}else{this.positionDiv=function(O,N){O.style.left=N+"px";
+O.style.bottom="0px";
+};
+}}else{if(E=="Left"){this.positionDiv=function(O,N){O.style.top=N+"px";
+O.style.left="0px";
+};
+}else{this.positionDiv=function(O,N){O.style.top=N+"px";
+O.style.right="0px";
+};
+}}var D=C.ether.interval.marker;
+var K=C.ether.interval.line;
+var B=C.ether.interval.weekend;
+var H=(A?"h":"v")+E;
+var G=D[H+"Styler"];
+var J=D[H+"EmphasizedStyler"];
+var F=SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.DAY];
+this.createIntervalMarker=function(T,c,a,Y,P){var U=Math.round(L.dateToPixelOffset(T));
+if(M&&a!=SimileAjax.DateTime.WEEK){var V=I.getDocument().createElement("div");
+V.className="timeline-ether-lines";
+if(K.opacity<100){SimileAjax.Graphics.setOpacity(V,K.opacity);
+}if(A){V.style.left=U+"px";
+}else{V.style.top=U+"px";
+}P.appendChild(V);
+}if(a==SimileAjax.DateTime.WEEK){var N=C.firstDayOfWeek;
+var R=new Date(T.getTime()+(6-N-7)*F);
+var b=new Date(R.getTime()+2*F);
+var Q=Math.round(L.dateToPixelOffset(R));
+var S=Math.round(L.dateToPixelOffset(b));
+var W=Math.max(1,S-Q);
+var X=I.getDocument().createElement("div");
+X.className="timeline-ether-weekends";
+if(B.opacity<100){SimileAjax.Graphics.setOpacity(X,B.opacity);
+}if(A){X.style.left=Q+"px";
+X.style.width=W+"px";
+}else{X.style.top=Q+"px";
+X.style.height=W+"px";
+}P.appendChild(X);
+}var Z=c.labelInterval(T,a);
+var O=I.getDocument().createElement("div");
+O.innerHTML=Z.text;
+O.className="timeline-date-label";
+if(Z.emphasized){O.className+=" timeline-date-label-em";
+}this.positionDiv(O,U);
+Y.appendChild(O);
+return O;
+};
+};
+Timeline.EtherHighlight=function(B,E,D,C){var A=B.isHorizontal();
+this._highlightDiv=null;
+this._createHighlightDiv=function(){if(this._highlightDiv==null){this._highlightDiv=B.getDocument().createElement("div");
+this._highlightDiv.setAttribute("name","ether-highlight");
+this._highlightDiv.className="timeline-ether-highlight";
+var F=D.ether.highlightOpacity;
+if(F<100){SimileAjax.Graphics.setOpacity(this._highlightDiv,F);
+}C.appendChild(this._highlightDiv);
+}};
+this.position=function(H,J){this._createHighlightDiv();
+var I=Math.round(E.dateToPixelOffset(H));
+var G=Math.round(E.dateToPixelOffset(J));
+var F=Math.max(G-I,3);
+if(A){this._highlightDiv.style.left=I+"px";
+this._highlightDiv.style.width=F+"px";
+this._highlightDiv.style.height=(E.getViewWidth()-4)+"px";
+}else{this._highlightDiv.style.top=I+"px";
+this._highlightDiv.style.height=F+"px";
+this._highlightDiv.style.width=(E.getViewWidth()-4)+"px";
+}};
+};
+
+
+/* ethers.js */
+Timeline.LinearEther=function(A){this._params=A;
+this._interval=A.interval;
+this._pixelsPerInterval=A.pixelsPerInterval;
+};
+Timeline.LinearEther.prototype.initialize=function(B,A){this._band=B;
+this._timeline=A;
+this._unit=A.getUnit();
+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.LinearEther.prototype.setDate=function(A){this._start=this._unit.cloneValue(A);
+};
+Timeline.LinearEther.prototype.shiftPixels=function(B){var A=this._interval*B/this._pixelsPerInterval;
+this._start=this._unit.change(this._start,A);
+};
+Timeline.LinearEther.prototype.dateToPixelOffset=function(B){var A=this._unit.compare(B,this._start);
+return this._pixelsPerInterval*A/this._interval;
+};
+Timeline.LinearEther.prototype.pixelOffsetToDate=function(B){var A=B*this._interval/this._pixelsPerInterval;
+return this._unit.change(this._start,A);
+};
+Timeline.LinearEther.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=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;
+E<D.zones.length;
+E++){var G=D.zones[E];
+var F=this._unit.parseFromObject(G.start);
+var B=this._unit.parseFromObject(G.end);
+for(var C=0;
+C<this._zones.length&&this._unit.compare(B,F)>0;
+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<this._zones.length){if(this._unit.compare(I,this._zones[G].endTime)<0){break;
+}G++;
+}while(this._unit.compare(I,B)<0){var F=this._zones[G];
+var A=this._unit.earlier(B,F.endTime);
+E+=(this._unit.compare(A,I)/(D/F.magnify));
+I=A;
+G++;
+}}else{var G=this._zones.length-1;
+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(F<this._zones.length){if(this._unit.compare(D,this._zones[F].endTime)<0){break;
+}F++;
+}while(E>0){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;
+A<this._onSelectListeners.length;
+A++){if(this._onSelectListeners[A]==B){this._onSelectListeners.splice(A,1);
+break;
+}}};
+Timeline.OriginalEventPainter.prototype.addEventPaintListener=function(A){this._eventPaintListeners.push(A);
+};
+Timeline.OriginalEventPainter.prototype.removeEventPaintListener=function(B){for(var A=0;
+A<this._eventPaintListeners.length;
+A++){if(this._eventPaintListeners[A]==B){this._eventPaintListeners.splice(A,1);
+break;
+}}};
+Timeline.OriginalEventPainter.prototype.getFilterMatcher=function(){return this._filterMatcher;
+};
+Timeline.OriginalEventPainter.prototype.setFilterMatcher=function(A){this._filterMatcher=A;
+};
+Timeline.OriginalEventPainter.prototype.getHighlightMatcher=function(){return this._highlightMatcher;
+};
+Timeline.OriginalEventPainter.prototype.setHighlightMatcher=function(A){this._highlightMatcher=A;
+};
+Timeline.OriginalEventPainter.prototype.paint=function(){var C=this._band.getEventSource();
+if(C==null){return ;
+}this._eventIdToElmt={};
+this._fireEventPaintListeners("paintStarting",null,null);
+this._prepareForPainting();
+var I=this._params.theme.event;
+var G=Math.max(I.track.height,I.tape.height+this._frc.getLineHeight());
+var F={trackOffset:I.track.offset,trackHeight:G,trackGap:I.track.gap,trackIncrement:G+I.track.gap,icon:I.instant.icon,iconWidth:I.instant.iconWidth,iconHeight:I.instant.iconHeight,labelWidth:I.label.width,maxLabelChar:I.label.maxLabelChar,impreciseIconMargin:I.instant.impreciseIconMargin};
+var D=this._band.getMinDate();
+var B=this._band.getMaxDate();
+var J=(this._filterMatcher!=null)?this._filterMatcher:function(K){return true;
+};
+var A=(this._highlightMatcher!=null)?this._highlightMatcher:function(K){return -1;
+};
+var E=C.getEventReverseIterator(D,B);
+while(E.hasNext()){var H=E.next();
+if(J(H)){this.paintEvent(H,F,this._params.theme,A(H));
+}}this._highlightLayer.style.display="block";
+this._lineLayer.style.display="block";
+this._eventLayer.style.display="block";
+this._band.updateEventTrackInfo(this._tracks.length,F.trackIncrement);
+this._fireEventPaintListeners("paintEnded",null,null);
+};
+Timeline.OriginalEventPainter.prototype.softPaint=function(){};
+Timeline.OriginalEventPainter.prototype._prepareForPainting=function(){var B=this._band;
+if(this._backLayer==null){this._backLayer=this._band.createLayerDiv(0,"timeline-band-events");
+this._backLayer.style.visibility="hidden";
+var A=document.createElement("span");
+A.className="timeline-event-label";
+this._backLayer.appendChild(A);
+this._frc=SimileAjax.Graphics.getFontRenderingContext(A);
+}this._frc.update();
+this._tracks=[];
+if(this._highlightLayer!=null){B.removeLayerDiv(this._highlightLayer);
+}this._highlightLayer=B.createLayerDiv(105,"timeline-band-highlights");
+this._highlightLayer.style.display="none";
+if(this._lineLayer!=null){B.removeLayerDiv(this._lineLayer);
+}this._lineLayer=B.createLayerDiv(110,"timeline-band-lines");
+this._lineLayer.style.display="none";
+if(this._eventLayer!=null){B.removeLayerDiv(this._eventLayer);
+}this._eventLayer=B.createLayerDiv(115,"timeline-band-events");
+this._eventLayer.style.display="none";
+};
+Timeline.OriginalEventPainter.prototype.paintEvent=function(B,C,D,A){if(B.isInstant()){this.paintInstantEvent(B,C,D,A);
+}else{this.paintDurationEvent(B,C,D,A);
+}};
+Timeline.OriginalEventPainter.prototype.paintInstantEvent=function(B,C,D,A){if(B.isImprecise()){this.paintImpreciseInstantEvent(B,C,D,A);
+}else{this.paintPreciseInstantEvent(B,C,D,A);
+}};
+Timeline.OriginalEventPainter.prototype.paintDurationEvent=function(B,C,D,A){if(B.isImprecise()){this.paintImpreciseDurationEvent(B,C,D,A);
+}else{this.paintPreciseDurationEvent(B,C,D,A);
+}};
+Timeline.OriginalEventPainter.prototype.paintPreciseInstantEvent=function(N,S,V,T){var W=this._timeline.getDocument();
+var L=N.getText();
+var H=N.getStart();
+var I=Math.round(this._band.dateToPixelOffset(H));
+var A=Math.round(I+S.iconWidth/2);
+var C=Math.round(I-S.iconWidth/2);
+var F=this._getLabelDivClassName(N);
+var D=this._frc.computeSize(L,F);
+var M=A+V.event.label.offsetFromLine;
+var J=M+D.width;
+var Q=J;
+var P=this._findFreeTrack(N,Q);
+var R=Math.round(S.trackOffset+P*S.trackIncrement+S.trackHeight/2-D.height/2);
+var B=this._paintEventIcon(N,P,C,S,V,0);
+var U=this._paintEventLabel(N,L,M,R,D.width,D.height,V,F,T);
+var E=[B.elmt,U.elmt];
+var O=this;
+var K=function(Y,X,Z){return O._onClickInstantEvent(B.elmt,X,N);
+};
+SimileAjax.DOM.registerEvent(B.elmt,"mousedown",K);
+SimileAjax.DOM.registerEvent(U.elmt,"mousedown",K);
+var G=this._createHighlightDiv(T,B,V,N);
+if(G!=null){E.push(G);
+}this._fireEventPaintListeners("paintedEvent",N,E);
+this._eventIdToElmt[N.getID()]=B.elmt;
+this._tracks[P]=C;
+};
+Timeline.OriginalEventPainter.prototype.paintImpreciseInstantEvent=function(P,U,Z,W){var b=this._timeline.getDocument();
+var N=P.getText();
+var J=P.getStart();
+var X=P.getEnd();
+var K=Math.round(this._band.dateToPixelOffset(J));
+var B=Math.round(this._band.dateToPixelOffset(X));
+var A=Math.round(K+U.iconWidth/2);
+var D=Math.round(K-U.iconWidth/2);
+var H=this._getLabelDivClassName(P);
+var F=this._frc.computeSize(N,H);
+var O=A+Z.event.label.offsetFromLine;
+var L=O+F.width;
+var S=Math.max(L,B);
+var R=this._findFreeTrack(P,S);
+var a=Z.event.tape.height;
+var T=Math.round(U.trackOffset+R*U.trackIncrement+a);
+var C=this._paintEventIcon(P,R,D,U,Z,a);
+var Y=this._paintEventLabel(P,N,O,T,F.width,F.height,Z,H,W);
+var V=P.getColor();
+V=V!=null?V:Z.event.instant.impreciseColor;
+var E=this._paintEventTape(P,R,K,B,V,Z.event.instant.impreciseOpacity,U,Z,0);
+var G=[C.elmt,Y.elmt,E.elmt];
+var Q=this;
+var M=function(d,c,e){return Q._onClickInstantEvent(C.elmt,c,P);
+};
+SimileAjax.DOM.registerEvent(C.elmt,"mousedown",M);
+SimileAjax.DOM.registerEvent(E.elmt,"mousedown",M);
+SimileAjax.DOM.registerEvent(Y.elmt,"mousedown",M);
+var I=this._createHighlightDiv(W,C,Z,P);
+if(I!=null){G.push(I);
+}this._fireEventPaintListeners("paintedEvent",P,G);
+this._eventIdToElmt[P.getID()]=C.elmt;
+this._tracks[R]=D;
+};
+Timeline.OriginalEventPainter.prototype.paintPreciseDurationEvent=function(M,R,W,T){var X=this._timeline.getDocument();
+var K=M.getText();
+var G=M.getStart();
+var U=M.getEnd();
+var H=Math.round(this._band.dateToPixelOffset(G));
+var A=Math.round(this._band.dateToPixelOffset(U));
+var E=this._getLabelDivClassName(M);
+var C=this._frc.computeSize(K,E);
+var L=H;
+var I=L+C.width;
+var P=Math.max(I,A);
+var O=this._findFreeTrack(M,P);
+var Q=Math.round(R.trackOffset+O*R.trackIncrement+W.event.tape.height);
+var S=M.getColor();
+S=S!=null?S:W.event.duration.color;
+var B=this._paintEventTape(M,O,H,A,S,100,R,W,0);
+var V=this._paintEventLabel(M,K,L,Q,C.width,C.height,W,E,T);
+var D=[B.elmt,V.elmt];
+var N=this;
+var J=function(Z,Y,a){return N._onClickDurationEvent(B.elmt,Y,M);
+};
+SimileAjax.DOM.registerEvent(B.elmt,"mousedown",J);
+SimileAjax.DOM.registerEvent(V.elmt,"mousedown",J);
+var F=this._createHighlightDiv(T,B,W,M);
+if(F!=null){D.push(F);
+}this._fireEventPaintListeners("paintedEvent",M,D);
+this._eventIdToElmt[M.getID()]=B.elmt;
+this._tracks[O]=H;
+};
+Timeline.OriginalEventPainter.prototype.paintImpreciseDurationEvent=function(O,W,b,Y){var c=this._timeline.getDocument();
+var M=O.getText();
+var I=O.getStart();
+var V=O.getLatestStart();
+var Z=O.getEnd();
+var Q=O.getEarliestEnd();
+var K=Math.round(this._band.dateToPixelOffset(I));
+var F=Math.round(this._band.dateToPixelOffset(V));
+var A=Math.round(this._band.dateToPixelOffset(Z));
+var G=Math.round(this._band.dateToPixelOffset(Q));
+var E=this._getLabelDivClassName(O);
+var C=this._frc.computeSize(M,E);
+var N=F;
+var J=N+C.width;
+var S=Math.max(J,A);
+var R=this._findFreeTrack(O,S);
+var T=Math.round(W.trackOffset+R*W.trackIncrement+b.event.tape.height);
+var X=O.getColor();
+X=X!=null?X:b.event.duration.color;
+var U=this._paintEventTape(O,R,K,A,b.event.duration.impreciseColor,b.event.duration.impreciseOpacity,W,b,0);
+var B=this._paintEventTape(O,R,F,G,X,100,W,b,1);
+var a=this._paintEventLabel(O,M,N,T,C.width,C.height,b,E,Y);
+var D=[U.elmt,B.elmt,a.elmt];
+var P=this;
+var L=function(e,d,f){return P._onClickDurationEvent(B.elmt,d,O);
+};
+SimileAjax.DOM.registerEvent(B.elmt,"mousedown",L);
+SimileAjax.DOM.registerEvent(a.elmt,"mousedown",L);
+var H=this._createHighlightDiv(Y,B,b,O);
+if(H!=null){D.push(H);
+}this._fireEventPaintListeners("paintedEvent",O,D);
+this._eventIdToElmt[O.getID()]=B.elmt;
+this._tracks[R]=K;
+};
+Timeline.OriginalEventPainter.prototype._encodeEventElID=function(B,A){return Timeline.EventUtils.encodeEventElID(this._timeline,this._band,B,A);
+};
+Timeline.OriginalEventPainter.prototype._findFreeTrack=function(E,D){var A=E.getTrackNum();
+if(A!=null){return A;
+}for(var C=0;
+C<this._tracks.length;
+C++){var B=this._tracks[C];
+if(B>D){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<this._onSelectListeners.length;
+B++){this._onSelectListeners[B](A);
+}};
+Timeline.OriginalEventPainter.prototype._fireEventPaintListeners=function(D,A,C){for(var B=0;
+B<this._eventPaintListeners.length;
+B++){this._eventPaintListeners[B](this._band,D,A,C);
+}};
+
+
+/* overview-painter.js */
+Timeline.OverviewEventPainter=function(A){this._params=A;
+this._onSelectListeners=[];
+this._filterMatcher=null;
+this._highlightMatcher=null;
+};
+Timeline.OverviewEventPainter.prototype.initialize=function(B,A){this._band=B;
+this._timeline=A;
+this._eventLayer=null;
+this._highlightLayer=null;
+};
+Timeline.OverviewEventPainter.prototype.getType=function(){return"overview";
+};
+Timeline.OverviewEventPainter.prototype.addOnSelectListener=function(A){this._onSelectListeners.push(A);
+};
+Timeline.OverviewEventPainter.prototype.removeOnSelectListener=function(B){for(var A=0;
+A<this._onSelectListeners.length;
+A++){if(this._onSelectListeners[A]==B){this._onSelectListeners.splice(A,1);
+break;
+}}};
+Timeline.OverviewEventPainter.prototype.getFilterMatcher=function(){return this._filterMatcher;
+};
+Timeline.OverviewEventPainter.prototype.setFilterMatcher=function(A){this._filterMatcher=A;
+};
+Timeline.OverviewEventPainter.prototype.getHighlightMatcher=function(){return this._highlightMatcher;
+};
+Timeline.OverviewEventPainter.prototype.setHighlightMatcher=function(A){this._highlightMatcher=A;
+};
+Timeline.OverviewEventPainter.prototype.paint=function(){var C=this._band.getEventSource();
+if(C==null){return ;
+}this._prepareForPainting();
+var H=this._params.theme.event;
+var F={trackOffset:H.overviewTrack.offset,trackHeight:H.overviewTrack.height,trackGap:H.overviewTrack.gap,trackIncrement:H.overviewTrack.height+H.overviewTrack.gap};
+var D=this._band.getMinDate();
+var B=this._band.getMaxDate();
+var I=(this._filterMatcher!=null)?this._filterMatcher:function(J){return true;
+};
+var A=(this._highlightMatcher!=null)?this._highlightMatcher:function(J){return -1;
+};
+var E=C.getEventReverseIterator(D,B);
+while(E.hasNext()){var G=E.next();
+if(I(G)){this.paintEvent(G,F,this._params.theme,A(G));
+}}this._highlightLayer.style.display="block";
+this._eventLayer.style.display="block";
+this._band.updateEventTrackInfo(this._tracks.length,F.trackIncrement);
+};
+Timeline.OverviewEventPainter.prototype.softPaint=function(){};
+Timeline.OverviewEventPainter.prototype._prepareForPainting=function(){var A=this._band;
+this._tracks=[];
+if(this._highlightLayer!=null){A.removeLayerDiv(this._highlightLayer);
+}this._highlightLayer=A.createLayerDiv(105,"timeline-band-highlights");
+this._highlightLayer.style.display="none";
+if(this._eventLayer!=null){A.removeLayerDiv(this._eventLayer);
+}this._eventLayer=A.createLayerDiv(110,"timeline-band-events");
+this._eventLayer.style.display="none";
+};
+Timeline.OverviewEventPainter.prototype.paintEvent=function(B,C,D,A){if(B.isInstant()){this.paintInstantEvent(B,C,D,A);
+}else{this.paintDurationEvent(B,C,D,A);
+}};
+Timeline.OverviewEventPainter.prototype.paintInstantEvent=function(I,H,E,A){var F=I.getStart();
+var B=Math.round(this._band.dateToPixelOffset(F));
+var C=I.getColor(),D=I.getClassName();
+if(D){C=null;
+}else{C=C!=null?C:E.event.duration.color;
+}var G=this._paintEventTick(I,B,C,100,H,E);
+this._createHighlightDiv(A,G,E);
+};
+Timeline.OverviewEventPainter.prototype.paintDurationEvent=function(L,K,H,B){var A=L.getLatestStart();
+var I=L.getEarliestEnd();
+var J=Math.round(this._band.dateToPixelOffset(A));
+var C=Math.round(this._band.dateToPixelOffset(I));
+var F=0;
+for(;
+F<this._tracks.length;
+F++){if(C<this._tracks[F]){break;
+}}this._tracks[F]=C;
+var E=L.getColor(),G=L.getClassName();
+if(G){E=null;
+}else{E=E!=null?E:H.event.duration.color;
+}var D=this._paintEventTape(L,F,J,C,E,100,K,H,G);
+this._createHighlightDiv(B,D,H);
+};
+Timeline.OverviewEventPainter.prototype._paintEventTape=function(K,B,D,L,E,C,H,G,F){var I=H.trackOffset+B*H.trackIncrement;
+var A=L-D;
+var J=H.trackHeight;
+var M=this._timeline.getDocument().createElement("div");
+M.className="timeline-small-event-tape";
+if(F){M.className+=" small-"+F;
+}M.style.left=D+"px";
+M.style.width=A+"px";
+M.style.top=I+"px";
+M.style.height=J+"px";
+if(E){M.style.backgroundColor=E;
+}if(C<100){SimileAjax.Graphics.setOpacity(M,C);
+}this._eventLayer.appendChild(M);
+return{left:D,top:I,width:A,height:J,elmt:M};
+};
+Timeline.OverviewEventPainter.prototype._paintEventTick=function(J,C,D,B,G,F){var I=F.event.overviewTrack.tickHeight;
+var H=G.trackOffset-I;
+var A=1;
+var K=this._timeline.getDocument().createElement("div");
+K.className="timeline-small-event-icon";
+K.style.left=C+"px";
+K.style.top=H+"px";
+var E=J.getClassName();
+if(E){K.className+=" small-"+E;
+}if(B<100){SimileAjax.Graphics.setOpacity(K,B);
+}this._eventLayer.appendChild(K);
+return{left:C,top:H,width:A,height:I,elmt:K};
+};
+Timeline.OverviewEventPainter.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-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;
+A<this._listeners.length;
+A++){if(this._listeners[A]==B){this._listeners.splice(A,1);
+break;
+}}};
+Timeline.DefaultEventSource.prototype.loadXML=function(G,A){var C=this._getBaseURL(A);
+var H=G.documentElement.getAttribute("wiki-url");
+var J=G.documentElement.getAttribute("wiki-section");
+var F=G.documentElement.getAttribute("date-time-format");
+var E=this._events.getUnit().getParser(F);
+var D=G.documentElement.firstChild;
+var I=false;
+while(D!=null){if(D.nodeType==1){var L="";
+if(D.firstChild!=null&&D.firstChild.nodeType==3){L=D.firstChild.nodeValue;
+}var B=(D.getAttribute("isDuration")===null&&D.getAttribute("durationEvent")===null)||D.getAttribute("isDuration")=="false"||D.getAttribute("durationEvent")=="false";
+var K=new Timeline.DefaultEventSource.Event({id:D.getAttribute("id"),start:E(D.getAttribute("start")),end:E(D.getAttribute("end")),latestStart:E(D.getAttribute("latestStart")),earliestEnd:E(D.getAttribute("earliestEnd")),instant:B,text:D.getAttribute("title"),description:L,image:this._resolveRelativeURL(D.getAttribute("image"),C),link:this._resolveRelativeURL(D.getAttribute("link"),C),icon:this._resolveRelativeURL(D.getAttribute("icon"),C),color:D.getAttribute("color"),textColor:D.getAttribute("textColor"),hoverText:D.getAttribute("hoverText"),classname:D.getAttribute("classname"),tapeImage:D.getAttribute("tapeImage"),tapeRepeat:D.getAttribute("tapeRepeat"),caption:D.getAttribute("caption"),eventID:D.getAttribute("eventID"),trackNum:D.getAttribute("trackNum")});
+K._node=D;
+K.getProperty=function(M){return this._node.getAttribute(M);
+};
+K.setWikiInfo(H,J);
+this._events.add(K);
+I=true;
+}D=D.nextSibling;
+}if(I){this._fire("onAddMany",[]);
+}};
+Timeline.DefaultEventSource.prototype.loadJSON=function(H,B){var D=this._getBaseURL(B);
+var J=false;
+if(H&&H.events){var I=("wikiURL" in H)?H.wikiURL:null;
+var K=("wikiSection" in H)?H.wikiSection:null;
+var F=("dateTimeFormat" in H)?H.dateTimeFormat:null;
+var E=this._events.getUnit().getParser(F);
+for(var G=0;
+G<H.events.length;
+G++){var A=H.events[G];
+var C=A.isDuration||(A.durationEvent!=null&&!A.durationEvent);
+var L=new Timeline.DefaultEventSource.Event({id:("id" in A)?A.id:undefined,start:E(A.start),end:E(A.end),latestStart:E(A.latestStart),earliestEnd:E(A.earliestEnd),instant:C,text:A.title,description:A.description,image:this._resolveRelativeURL(A.image,D),link:this._resolveRelativeURL(A.link,D),icon:this._resolveRelativeURL(A.icon,D),color:A.color,textColor:A.textColor,hoverText:A.hoverText,classname:A.classname,tapeImage:A.tapeImage,tapeRepeat:A.tapeRepeat,caption:A.caption,eventID:A.eventID,trackNum:A.trackNum});
+L._obj=A;
+L.getProperty=function(M){return this._obj[M];
+};
+L.setWikiInfo(I,K);
+this._events.add(L);
+J=true;
+}}if(J){this._fire("onAddMany",[]);
+}};
+Timeline.DefaultEventSource.prototype.loadSPARQL=function(I,B){var E=this._getBaseURL(B);
+var H="iso8601";
+var G=this._events.getUnit().getParser(H);
+if(I==null){return ;
+}var F=I.documentElement.firstChild;
+while(F!=null&&(F.nodeType!=1||F.nodeName!="results")){F=F.nextSibling;
+}var J=null;
+var L=null;
+if(F!=null){J=F.getAttribute("wiki-url");
+L=F.getAttribute("wiki-section");
+F=F.firstChild;
+}var K=false;
+while(F!=null){if(F.nodeType==1){var D={};
+var A=F.firstChild;
+while(A!=null){if(A.nodeType==1&&A.firstChild!=null&&A.firstChild.nodeType==1&&A.firstChild.firstChild!=null&&A.firstChild.firstChild.nodeType==3){D[A.getAttribute("name")]=A.firstChild.firstChild.nodeValue;
+}A=A.nextSibling;
+}if(D["start"]==null&&D["date"]!=null){D["start"]=D["date"];
+}var C=(D["isDuration"]===null&&D["durationEvent"]===null)||D["isDuration"]=="false"||D["durationEvent"]=="false";
+var M=new Timeline.DefaultEventSource.Event({id:D["id"],start:G(D["start"]),end:G(D["end"]),latestStart:G(D["latestStart"]),earliestEnd:G(D["earliestEnd"]),instant:C,text:D["title"],description:D["description"],image:this._resolveRelativeURL(D["image"],E),link:this._resolveRelativeURL(D["link"],E),icon:this._resolveRelativeURL(D["icon"],E),color:D["color"],textColor:D["textColor"],hoverText:D["hoverText"],caption:D["caption"],classname:D["classname"],tapeImage:D["tapeImage"],tapeRepeat:D["tapeRepeat"],eventID:D["eventID"],trackNum:D["trackNum"]});
+M._bindings=D;
+M.getProperty=function(N){return this._bindings[N];
+};
+M.setWikiInfo(J,L);
+this._events.add(M);
+K=true;
+}F=F.nextSibling;
+}if(K){this._fire("onAddMany",[]);
+}};
+Timeline.DefaultEventSource.prototype.add=function(A){this._events.add(A);
+this._fire("onAddOne",[A]);
+};
+Timeline.DefaultEventSource.prototype.addMany=function(A){for(var B=0;
+B<A.length;
+B++){this._events.add(A[B]);
+}this._fire("onAddMany",[]);
+};
+Timeline.DefaultEventSource.prototype.clear=function(){this._events.removeAll();
+this._fire("onClear",[]);
+};
+Timeline.DefaultEventSource.prototype.getEvent=function(A){return this._events.getEvent(A);
+};
+Timeline.DefaultEventSource.prototype.getEventIterator=function(A,B){return this._events.getIterator(A,B);
+};
+Timeline.DefaultEventSource.prototype.getEventReverseIterator=function(A,B){return this._events.getReverseIterator(A,B);
+};
+Timeline.DefaultEventSource.prototype.getAllEventIterator=function(){return this._events.getAllIterator();
+};
+Timeline.DefaultEventSource.prototype.getCount=function(){return this._events.getCount();
+};
+Timeline.DefaultEventSource.prototype.getEarliestDate=function(){return this._events.getEarliestDate();
+};
+Timeline.DefaultEventSource.prototype.getLatestDate=function(){return this._events.getLatestDate();
+};
+Timeline.DefaultEventSource.prototype._fire=function(B,A){for(var C=0;
+C<this._listeners.length;
+C++){var D=this._listeners[C];
+if(B in D){try{D[B].apply(D,A);
+}catch(E){SimileAjax.Debug.exception(E);
+}}}};
+Timeline.DefaultEventSource.prototype._getBaseURL=function(A){if(A.indexOf("://")<0){var C=this._getBaseURL(document.location.href);
+if(A.substr(0,1)=="/"){A=C.substr(0,C.indexOf("/",C.indexOf("://")+3))+A;
+}else{A=C+A;
+}}var B=A.lastIndexOf("/");
+if(B<0){return"";
+}else{return A.substr(0,B+1);
+}};
+Timeline.DefaultEventSource.prototype._resolveRelativeURL=function(A,B){if(A==null||A==""){return A;
+}else{if(A.indexOf("://")>0){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;
+A<this._bands.length;
+A++){this._bands[A].dispose();
+}this._bands=null;
+this._bandInfos=null;
+this._containerDiv.innerHTML="";
+Timeline.timelines[this.timelineID]=null;
+};
+Timeline._Impl.prototype.getBandCount=function(){return this._bands.length;
+};
+Timeline._Impl.prototype.getBand=function(A){return this._bands[A];
+};
+Timeline._Impl.prototype.finishedEventLoading=function(){this._autoWidthCheck(true);
+this._starting=false;
+};
+Timeline._Impl.prototype.layout=function(){this._autoWidthCheck(true);
+this._distributeWidths();
+};
+Timeline._Impl.prototype.paint=function(){for(var A=0;
+A<this._bands.length;
+A++){this._bands[A].paint();
+}};
+Timeline._Impl.prototype.getDocument=function(){return this._containerDiv.ownerDocument;
+};
+Timeline._Impl.prototype.addDiv=function(A){this._containerDiv.appendChild(A);
+};
+Timeline._Impl.prototype.removeDiv=function(A){this._containerDiv.removeChild(A);
+};
+Timeline._Impl.prototype.isHorizontal=function(){return this._orientation==Timeline.HORIZONTAL;
+};
+Timeline._Impl.prototype.isVertical=function(){return this._orientation==Timeline.VERTICAL;
+};
+Timeline._Impl.prototype.getPixelLength=function(){return this._orientation==Timeline.HORIZONTAL?this._containerDiv.offsetWidth:this._containerDiv.offsetHeight;
+};
+Timeline._Impl.prototype.getPixelWidth=function(){return this._orientation==Timeline.VERTICAL?this._containerDiv.offsetWidth:this._containerDiv.offsetHeight;
+};
+Timeline._Impl.prototype.getUnit=function(){return this._unit;
+};
+Timeline._Impl.prototype.getWidthStyle=function(){return this._orientation==Timeline.HORIZONTAL?"height":"width";
+};
+Timeline._Impl.prototype.loadXML=function(B,D){var A=this;
+var E=function(H,G,F){alert("Failed to load data xml from "+B+"\n"+H);
+A.hideLoadingMessage();
+};
+var C=function(G){try{var F=G.responseXML;
+if(!F.documentElement&&G.responseStream){F.load(G.responseStream);
+}D(F,B);
+}finally{A.hideLoadingMessage();
+}};
+this.showLoadingMessage();
+window.setTimeout(function(){SimileAjax.XmlHttp.get(B,E,C);
+},0);
+};
+Timeline._Impl.prototype.loadJSON=function(url,f){var tl=this;
+var fError=function(statusText,status,xmlhttp){alert("Failed to load json data from "+url+"\n"+statusText);
+tl.hideLoadingMessage();
+};
+var fDone=function(xmlhttp){try{f(eval("("+xmlhttp.responseText+")"),url);
+}finally{tl.hideLoadingMessage();
+}};
+this.showLoadingMessage();
+window.setTimeout(function(){SimileAjax.XmlHttp.get(url,fError,fDone);
+},0);
+};
+Timeline._Impl.prototype._autoWidthScrollListener=function(A){A.getTimeline()._autoWidthCheck(false);
+};
+Timeline._Impl.prototype._autoWidthCheck=function(C){var A=this;
+var B=A._starting;
+var D=0;
+function E(){var G=A.getWidthStyle();
+if(B){A._containerDiv.style[G]=D+"px";
+}else{A._autoResizing=true;
+var H={};
+H[G]=D+"px";
+SimileAjax.jQuery(A._containerDiv).animate(H,A.autoWidthAnimationTime,"linear",function(){A._autoResizing=false;
+});
+}}function F(){var H=0;
+var G=A.getPixelWidth();
+if(A._autoResizing){return ;
+}for(var I=0;
+I<A._bands.length;
+I++){A._bands[I].checkAutoWidth();
+H+=A._bandInfos[I].width;
+}if(H>G||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<this._bandInfos.length;
+B++){var G=new Timeline._Band(this,this._bandInfos[B],B);
+this._bands.push(G);
+}this._distributeWidths();
+for(var B=0;
+B<this._bandInfos.length;
+B++){var F=this._bandInfos[B];
+if("syncWith" in F){this._bands[B].setSyncWithBand(this._bands[F.syncWith],("highlight" in F)?F.highlight:false);
+}}if(this.autoWidth){for(var B=0;
+B<this._bands.length;
+B++){this._bands[B].addOnScrollListener(this._autoWidthScrollListener);
+}}var D=SimileAjax.Graphics.createMessageBubble(E);
+D.containerDiv.className="timeline-message-container";
+H.appendChild(D.containerDiv);
+D.contentDiv.className="timeline-message";
+D.contentDiv.innerHTML="<img src='"+Timeline.urlPrefix+"images/progress-running.gif' /> 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;
+F<this._bands.length;
+F++){var J=this._bands[F];
+var I=this._bandInfos[F];
+var E=I.width;
+var D;
+if(typeof E=="string"){var H=E.indexOf("%");
+if(H>0){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._bands.length&&!H;
+E++){H=this._bands[E].busy();
+}if(H){return(true);
+}if((F&&this.timeline_at_start)||(A&&this.timeline_at_stop)){return(false);
+}var D=false;
+for(var E=0;
+E<this._bands.length&&!D;
+E++){var G=this._bands[E];
+if(F){D=(E==C?G.getMinVisibleDateAfterDelta(B):G.getMinVisibleDate())>=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);
+};



More information about the Yanel-commits mailing list