var sectionsize = 750;
var left = 0;
var left_min = -1 * sectionsize * (sections-1);
var left_max = 0;
var ismoving = false;

var xMousePos = 0;
var yMousePos = 0;
var xMousePosMax = 0;
var yMousePosMax = 0;

var isdragged = false;
var dragstart = 0;
var dragmove = 0;

function moveTimeline(pixels) {
	left = left + pixels;
	if(left<left_min) {
		left = left_min;
		ismoving = false;
	}
	if(left>left_max) {
		left = left_max;
		ismoving = false;
	}

	document.getElementById('timeline').style.left = left+'px';
}

function showSegment(segment) {
	var target = -1*segment*sectionsize;	
	moveTimeline(target-left);
	return false;
}

function moveEarlier() {
	logMessage('moveEarlier called');
	if(ismoving) {
		moveTimeline(10);
		setTimeout('moveEarlier()', 50);
	}
}

function startEarlier() {
	logMessage('startEarlier called');
	ismoving = true;
	moveEarlier();
}
function moveLater() {
	logMessage('moveLater called');
	if(ismoving) {
		moveTimeline(-10);
		setTimeout('moveLater()', 50);
	}
}


function nextSection() {
	tomove = -1 * (sectionsize + (left % sectionsize));
	logMessage("nextSection: "+tomove);
	moveTimeline(tomove);
	return false;
}

function previousSection() {
	tomove = -1 * (left % sectionsize);
	if(tomove==0) {
		tomove = sectionsize;
	}
	logMessage("previousSection: "+tomove);
	moveTimeline(tomove);
	return false;
}

function startLater() {
	logMessage('startLater called');
	ismoving = true;
	moveLater();
}

function stopMoving() {
	logMessage('stopMoving called');
	ismoving = false;
}

function captureMousePosition(e) {
	if (document.layers) { //Netscape
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMousePosMax = window.innerWidth+window.pageXOffset;
		yMousePosMax = window.innerHeight+window.pageYOffset;
	} 
	else if (document.all) { //IE
		xMousePos = window.event.x+document.body.scrollLeft;
		yMousePos = window.event.y+document.body.scrollTop;
		xMousePosMax = document.body.clientWidth+document.body.scrollLeft ;
		yMousePosMax = document.body.clientHeight+document.body.scrollTop ;
	} 
	else if (document.getElementById) {	
		// Netscape 6 behaves the same as Netscape 4 in this regard
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMousePosMax = window.innerWidth+window.pageXOffset;
		yMousePosMax = window.innerHeight+window.pageYOffset;
	}
	//logMessage("Mouse: "+xMousePos+","+yMousePos);
}

function init() {
	// start tracking mouse 
	if (document.layers) { // Netscape
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = captureMousePosition;
	} 
	else if (document.all) { // Internet Explorer
		document.onmousemove = captureMousePosition;
	} 
	else if (document.getElementById) { // Netcsape 6
		document.onmousemove = captureMousePosition;
	}
}

function dragStart() {
	logMessage('dragStart called');
	isdragged = true;
	dragstart = xMousePos;
	dragmoved = 0;
	setTimeout('doDrag()', 50);
	document.getElementById('timeline').style.cursor = 'move';
}

function dragStop() {
	logMessage('dragStop called');
	isdragged = false;
	document.getElementById('timeline').style.cursor = 'auto';
}

function doDrag() {
	//logMessage('doDrag called');
	if(isdragged) {
		thismove = (xMousePos-dragstart-dragmoved);
		moveTimeline(thismove);
		dragmoved += thismove; 
		setTimeout('doDrag()', 100);
		logMessage("Move: "+thismove+","+dragmoved);
	}

}

function s(id) {
	closeAll();
	document.getElementById(id).style.display = 'block';
	return false;
}

function h(id) {
	document.getElementById(id).style.display = 'none';
	return false;
}

function closeAll() {
	for(i=0;i<eventids.length;i++) {
		if(document.getElementById('text'+eventids[i])) document.getElementById('text'+eventids[i]).style.display = 'none';
	}
	for(i=0;i<segmentids.length;i++) {
		if(document.getElementById('fellowsegment'+segmentids[i])) document.getElementById('fellowsegment'+segmentids[i]).style.display = 'none';
	}
	for(i=0;i<fellowsids.length;i++) {
		if(document.getElementById('fellowtext'+fellowsids[i])) document.getElementById('fellowtext'+fellowsids[i]).style.display = 'none';
	}
	return false;
}

function logMessage(msg) {
	//document.getElementById('logging').innerHTML = 	document.getElementById('logging').innerHTML + msg + "<br />";
}