//requires mouseX, mouseY -> inlcuded in template...

var lastPopUp = "Temp";
var blinkCount = 0;
var changed = 0;
var original = "";
var tData = new Array();
var ID = 0; 
var cellHeight = cellWidth = 64;
var barHeight = 5;
var tableHeight = 500;(cellHeight*4) + (barHeight*2)
tMedia = new Array();
var ID2 = 0;
var display;
var top;
var caller = "";
var fstRow = 170;
var secRow = 420;
var moreInfo = null;
var movStep = 40;
var tableMax;
var miniWidth;
var TLPanWd;
var unitLength;
var desX = 0;
var scrollerID;
var scrolling = false;

//----------- ie / ns ------------------
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;

var browser = (IE4)? "<div" : "<layer";
var browserEnd = (IE4)? "/div>" : "/layer>";
var span = (IE4)? "<span" : "<layer";
var spanEnd = (IE4)? "/span>" : "/layer>";
var tag = (IE4)? "all" : "layers";



var oldDocMouseMove;
var oldDocMouseUp;

var dragging = 0;
var scrollDir = 0;
var clickTimer;
var scrollMoving = 0;
		
function clickToolScroll(){
//scrolls the mini-win @ mini timeline called by clickTool()
	if(NS4){
		document.miniTimeLineBorder.document.miniTimeLine.document.miniScreen.left = desX;
		desX = desX*(tableMax - timeDivWidth)/timeDivWidth;
		document.imgHolder.document.movTime.left = desX;	
	}else{
		document.all.miniScreen.style.pixelLeft = desX;
		desX = desX*(tableMax - timeDivWidth)/timeDivWidth;
		document.all.movTime.style.pixelLeft = desX;
	}
}

function jumpTo(e){
	if (dragging) return;
	clickX = (NS4)? e.layerX : event.offsetX;
	TBX = clickX - (miniWidth)/2;
	if (TBX < 0) TBX = 0;
	else if (TBX > get("mTL",OFFSETWIDTH) - miniWidth) TBX = get("mTL",OFFSETWIDTH) - miniWidth;
	set("thumbBx",LEFT,TBX);
	desX = -TBX*unitLength;
	set("TLFrame",LEFT, desX);
}

function clickTool(e){
//scrolls the mini-win @ mini timeline by calling clickToolScroll()
	var miniScreenLeft = (NS4)? document.miniTimeLineBorder.document.miniTimeLine.document.miniScreen.left : document.all.miniScreen.style.pixelLeft;
	if(!scrollDir){
		//go left
		desX = miniScreenLeft - ((miniWidth*4)/5)
		if (desX < 0) { desX = 0; } 
		if(desX < initClickX){clickToolScroll(); miniTimeLineUp(); return true;}
	} else {
		//go right	
		desX = miniScreenLeft + ((miniWidth*4)/5)
		if (desX > timeDivWidth - miniWidth){ desX=timeDivWidth - miniWidth;} 
		if(desX > initClickX - miniWidth){clickToolScroll(); miniTimeLineUp(); return true;}
	}
	clickToolScroll();
	clickTimer = setTimeout("clickTool()",10);
	scrollMoving = 1;	
}

var initClickX;
function miniTimeLineDown(e){
	dragging = true;
	initX = (NS4) ? e.layerX : event.offsetX;
	if (NS4) {
		captureEvents(Event.MOUSEMOVE|Event.MOUSEUP); 
		onmousemove = dragTool;
		onmouseup = releaseTool;
	} else {
		oldDocMouseMove = document.onmousemove;
		oldDocMouseUp = document.onmouseup;
		document.onmousemove = dragTool;
		document.onmouseup = releaseTool;
	}	
}

function miniTimeLineUp(){
//mouseup for minitimeline	
	if(scrollMoving){
		clearTimeout(clickTimer);
	}	
	scrollMoving = 0;
	if(NS4){
		//req for briefInfo()
		releaseEvents(Event.MOUSEUP);
		window.captureEvents(Event.MOUSEMOVE);
		window.onmousemove = recordMousePos;
	}
}

var initX;
function dragTool(e){
//dragging the mini-win @ mini-timeline
//	closeInfo();	
	eventX = (NS4)? e.pageX : event.clientX;
	TBX = eventX - get("TLPan",LEFT) - initX;
	if (TBX > (TLPanWd - miniWidth)) TBX= TLPanWd - miniWidth;
	else if (TBX < 0) TBX = 0;
	window.status = miniWidth;
	set("thumbBx",LEFT,TBX);
	desX = -TBX*unitLength;
	set("TLFrame",LEFT, desX);
}

function releaseTool(){
//mouseup for dragging mini-win @ mini-timeline
	dragging = false;
	if (NS4) releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);
	document.onmousemove = oldDocMouseMove;
	document.onmouseup = oldDocMouseUp;
	return false;
}	
	
function briefInfo(id,fromLeft){
//pops up briefInfo for yrs
/*	if(NS4){
		caller = id;	
		eval("document.layers.if" + lastPopUp + ".visibility = 'hide'");
		eval("document.layers.if" + caller + ".visibility = 'show'");
		
		if((fromLeft + 1)%2 != 0)	eval("document." + tag + ".if" + caller + ".top =" + fstRow);//1st row
		else eval("document." + tag + ".if" + caller + ".top = " + secRow);//2nd row
		
	 	eval("document." + tag + ".if" + caller + ".left = \(parseInt\(mouseX\) - 128\)");
		lastPopUp = caller;
	
	}else{
		caller = event.srcElement;
		yr = caller.id.substring(2, caller.id.length) 
		eval("document.all.if" + lastPopUp + ".style.visibility = 'hidden'");
		eval("document.all.if" + yr + ".style.visibility = 'visible'");
		if((parseInt(caller.tID) + 1)%2 != 0) eval("document." + tag + ".if" + yr + ".style.top =" + fstRow);
		else eval("document." + tag + ".if" + yr + ".style.top =" + secRow);
		
		eval("document." + tag + ".if" + yr + ".style.left = event.x + document.all.movTime.style.pixelLeft - 55");
		lastPopUp = yr;
	}*/
}

function moreInfoFunc(id,winter){
// window.open --> links to internal or external pages
	targetURL = (winter)? tData[id][8]: tData[id][2];
	yr = (tData[id][4])? tData[id][4]:tData[id][0];
		
	if(moreInfo == null || moreInfo.closed) {
		//change the frame size here
		moreInfo = window.open("","","scrollbars,resizable");
		moreInfo.document.writeln("<html><head><title>e-Olympics: iTimeline: " + yr + ": More Information </title></head><frameset rows='20,414' cols='*' border='0' framespacing='0' frameborder='NO'><frame src='blank.html' name='navBar' id='navBar' scrolling='NO' marginheight='0' marginwidth='0' noresize frameborder='NO'><frame src='blank.html' marginwidth='0' marginheight='0' frameborder='NO' id='targetSite' name='targetSite'></frameset></html>");
		moreInfo.document.close();
	}	else{
		moreInfo.frames.navBar.document.clear();
		moreInfo.frames.targetSite.document.clear();
	}
	//change the page style here
	moreInfo.frames.navBar.document.write("<html><head><title>MoreInfo: NavBar</title></head><body bgcolor='#330099' text='#FFFF33' link='#FFFF99'><font face='arial'><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td align='left' valign='middle'>e-Olympics: iTimeline: " + yr + ": More Information </td><td align='right' valign='middle'><a border=0 href='javascript:top.window.close();'><IMG border=0 alt=X height=16 src='close.gif' width=16></a></td></tr></table></font></body></html>");	
	moreInfo.frames.navBar.document.close();
	if(targetURL != null) {moreInfo.frames.targetSite.document.location = targetURL;}
}

function closeInfo(){
//closes popup win created by briefInfo() 
	if(NS4)	eval("document.layers.if" + lastPopUp + ".visibility = 'hide'");
	else eval("document.all.if" + lastPopUp + ".style.visibility = 'hidden'");
}
		
/*function insertMedia(){
//alternates media files
	document.writeln("<tr>");
	for(c=0; c<ID+4; c++){
		number = parseInt(c%(parseInt(tMedia.length)));	
		document.writeln("<td align='center' valign='middle' width=" + cellWidth + " height=" + cellHeight + "><img src='" + tMedia[number][0] + "' width=64 height=64 alt='" + tMedia[number][1] + "' border='0'  hspace='0' vspace='0'></td>");
	}
	document.writeln("</tr>");
}*/

function setEvents(){	
	if(NS4) {
		get("thumbBx", "captureEvents(Event.MOUSEDOWN)");
		get("mTL", "captureEvents(Event.MOUSEUP)");
	}
	set("thumbBx","onmousedown", "miniTimeLineDown");
	set("mTL","onmouseup", "jumpTo");
}

function resize1(){
	winWd = (IE4)? document.body.clientWidth : window.innerWidth;
	set("TLPan",WIDTH, winWd - 300);
	set("TLPan",HEIGHT, 300);
	TLPanWd = get("TLPan",OFFSETWIDTH);
	set("mTLPan",WIDTH,TLPanWd);
	set("mTL",WIDTH,TLPanWd-4);	
	set("TLFrame", WIDTH, ID*80 + 200);
	tableMax = - (get("TLFrame",OFFSETWIDTH) - TLPanWd);
	miniWidth = TLPanWd*(TLPanWd/get("TLFrame",OFFSETWIDTH));
	unitLength = (get("TLFrame",OFFSETWIDTH))/TLPanWd;
	setMouseover();
}

function fScrollRight(){
//scrolls right
	desX -= 5;
	//if (desX < tableMax) desX=tableMax; 
	miniLeft = (((desX)*(get("TLPan",OFFSETWIDTH)-miniWidth)/(tableMax)));
	set("TLFrame", LEFT, desX);
	set("miniScreen", LEFT, miniLeft);
	scrollerID = setTimeout("fScrollRight()",10);
	scrolling = true;
}

function fScrollLeft(){
//scrolls left
	desX += 20;
	if (desX > 0) desX=0;
	miniLeft = (((desX)*(get("TLPan",OFFSETWIDTH)-miniWidth)/(tableMax)));
	set("TLFrame", LEFT, desX);
	set("miniScreen", LEFT, miniLeft);
	scrollerID = setTimeout("fScrollLeft()",10);
	scrolling = true;
}

function scrollMouseDownLeft(){
//mousedown on left --> calls fScrollLeft()
//	closeInfo();
	scrollMouseUp();
	fScrollLeft();
	//scrollerID = setTimeout("fScrollLeft()",10);
	//scrollMap();
}

function scrollMouseDownRight(){
//mousedown on right --> calls fScrollRight()
//	closeInfo();
	scrollMouseUp();
	fScrollRight();
	//scrollerID = setTimeout("fScrollRight()",10);
	//scrollMap();
}		

function scrollMouseUp(){
//Mouseup on arrow
	if(scrolling)	clearTimeout(scrollerID);
	scrolling = false;
}

