| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -73,22 +73,43 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * Zoom the timeline a given percentage in or out | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @param {Number} percentage   For example 0.1 (zoom out) or -0.1 (zoom in) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    function zoom (percentage) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        var range = timeline.getWindow(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        var interval = range.end - range.start; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   function zoomIn(percentage) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var range = timeline.getWindow(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var start = range.start.valueOf(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var end = range.end.valueOf(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var interval = end - start; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var newInterval = interval / (1 + percentage); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var distance = (interval - newInterval) / 2; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var newStart = start + distance; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var newEnd = end - distance; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        timeline.setWindow({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            start: range.start.valueOf() - interval * percentage, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            end:   range.end.valueOf()   + interval * percentage | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      timeline.setWindow({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        start   : newStart, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        end     : newEnd | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    function zoomOut(percentage) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var range = timeline.getWindow(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var start = range.start.valueOf(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var end = range.end.valueOf(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var interval = end - start; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var newStart = start - interval * percentage / 2; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      var newEnd = end + interval * percentage / 2; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      timeline.setWindow({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        start   : newStart, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        end     : newEnd | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // attach events to the navigation buttons | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    document.getElementById('zoomIn').onclick    = function () { zoom(-0.2); }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    document.getElementById('zoomOut').onclick   = function () { zoom( 0.2); }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    document.getElementById('zoomIn').onclick    = function () { zoomIn( 0.2); }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    document.getElementById('zoomOut').onclick   = function () { zoomOut( 0.2); }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    document.getElementById('moveLeft').onclick  = function () { move( 0.2); }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    document.getElementById('moveRight').onclick = function () { move(-0.2); }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					</script> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					</body> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					</html> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					</html> |