function QuickScroll( div, scrollType ) {
	var divBlock = document.getElementById( div );
	var listBlock = document.getElementById( div + "-list" );
	var arrowUp = document.getElementById( div + "-up" );
	var arrowDown = document.getElementById( div + "-down" );
	var numGroups = 0;
	var page = 0;
	var type = scrollType;
	
	
	this.init = function() {
		start();
	}
	
	function start() {
		// add event for scroll
		addEventListener("scroll", updatePosition, true )
		updatePosition();
		
		// add events for groups
		var groups = listBlock.getElementsByTagName( "a" );
		for( var i = 0; i < groups.length; i++ ) {
			groups[i].addEventListener( "click", groupEvent, true );
		}
		
		// add events for up/down buttons
		if( arrowUp ) {
			arrowUp.addEventListener( "click", up, true );
		}
		
		if( arrowDown ) {
			arrowDown.addEventListener( "click", down, true );
		}
		
		display();
		
	}
	
	function display() {
		// display proper number of groups
		if( listBlock ) {
			var groups = listBlock.getElementsByTagName( "a" );
			numGroups = groups.length;
			
			var groupPerPage = 17;
			if( type == "guide" ) {
				groupPerPage = 15;
			}
			
			if( numGroups > groupPerPage ) {				
				var start = page * groupPerPage;
				for( var i = 0; i < numGroups; i++ ) {
					var display = "none";
					if( i >= start && i < ( start + groupPerPage ) ) {
						display = "block";
					}
					
					groups[i].style.display = display;
				}
			}
			
			// reset arrow display
			var upDisplay = "block";
			if( page == 0 ) {
				upDisplay = "none";
			}
			
			var downDisplay = "block";
			if( ( page + 1 ) * groupPerPage > numGroups ) {
				downDisplay = "none";
			}
			
			arrowUp.style.display = upDisplay;
			arrowDown.style.display = downDisplay;
		}
	}
	
	function groupEvent( e ) {
		var goto = document.getElementById( this.rel );
		if( goto ) {
			window.scrollTo( 0, goto.offsetTop + 45);
			updatePosition();
		}
		if( e ) { e.preventDefault(); }
	}
	
	function updatePosition() {
		if( divBlock ) {
			var windowOffset = window.pageYOffset;
			var offset = (type == "guide") ? 70 : 40;
			
			if( windowOffset > (offset + 40) ) {
				offset = (type == "guide") ? windowOffset - 40 : windowOffset - 0;
			}
			
			divBlock.style.top = offset + "px";
	
		}
		
		var header = document.getElementById( "timeSelectorContainer" );
		if( header ) {
			var windowOffset = window.pageYOffset;
			var offset = 0;
			
			if( windowOffset > 45 ) {
				offset = windowOffset - 45;
			}
			
			header.style.top = offset + "px";
		}
	}
	
	function up( e ) {
		page--;
		display();
		
		if( e ) { e.preventDefault(); }
	}
	
	function down( e ) {
		page++;
		display();
		
		if( e ) { e.preventDefault(); }
	}
}