var CapWidth = 370;
var CapHeight = 280;
var CapShift = 25;
var CloseDelay = 30;
var RedrawDelay = 0.1;

var KillID = 0;
var FirstCap = 0;
var CheckTime = 0;
var TempX, TempY;

var IsNetscape = (navigator.appName.indexOf("Netscape") !=-1);

if (IsNetscape)
{
	document.captureEvents(Event.MOUSEMOVE);
	document.onMouseMove = HandleMouseMove;
}

function BuildPage(n)
{
	PageTop = new Array(7);
	PageBottom = new Array(16);

	PageTop[1] = "<HTML>\n\n<HEAD>\n<TITLE>TechOpinion.org</TITLE>\n</HEAD>\n\n";
	PageTop[2] = "<BODY BGCOLOR=\"000099\">\n\n";
	PageTop[3] = "<CENTER>\n\n";
	PageTop[4] = "<TABLE CELLPADDING=5 CELLSPACING=0 BORDER=0 BGCOLOR=WHITE WIDTH=100%>\n\n";
	PageTop[5] = "<TR><TD ALIGN=LEFT>\n";
	PageTop[6] = "<FONT SIZE=-1 FACE=\"Arial, Verdana, Helvetica\">\n";
	PageBottom[1] = "</FONT></TD></TR>\n\n";
	PageBottom[2] = "<TR><TD ALIGN=CENTER>\n";
	PageBottom[3] = "<FONT SIZE=-2 FACE=\"Arial, Verdana, Helvetica\">\n";
	PageBottom[4] = "<I>Copyright &copy; 1993-2002</I>\n";
	PageBottom[5] = "<B><FONT COLOR=RED>Tech</FONT><FONT COLOR=BLUE>Opinion</FONT>.";
	PageBottom[6] = "<FONT COLOR=GREEN>org</FONT></B>\n";
	PageBottom[7] = "</FONT></TD></TR>\n\n";
	PageBottom[8] = "</TABLE><BR>\n\n";
	PageBottom[9] = "<FONT SIZE=-2 FACE=\"Arial, Verdana, Helvetica\" COLOR=RED>\n";
	PageBottom[10] = "You can <I>disable</I> captions at the top of each page</FONT><BR>\n\n";
	PageBottom[11] = "<A HREF=\"\" onClick=\"self.close()\">\n";
	PageBottom[12] = "<FONT SIZE=-1 FACE=\"Arial, Verdana, Helvetica\" COLOR=WHITE>\n";
	PageBottom[13] = "Close</FONT></A>\n\n";
	PageBottom[14] = "</CENTER>\n\n";
	PageBottom[15] = "</BODY>\n\n</HTML>";

	var FullPage = "";

	for (i=1; i<7; i++)
		FullPage += PageTop[i];

	FullPage += Captions[n] + "\n";

	for (i=1; i<16; i++)
		FullPage += PageBottom[i];

	return FullPage;
}

function GetCaption(n)
{
	NoCaps = document.CapsOff.TurnOff.checked;

	if (NoCaps)
		return;

	FirstCap = 1;
	clearTimeout(KillID);

	if (IsNetscape)
	{
		var PositionX = TempX;
		var PositionY = TempY;
	}
	else
	{
		var PositionX = window.event.screenX;
		var PositionY = window.event.screenY;
	}

	var ScreenX = screen.width;
	var ScreenY = screen.height;

	var OffCenterX = PositionX - ScreenX / 2;
	var OffCenterY = PositionY - ScreenY / 2;

	if (OffCenterX > 0)
		var CapLeft = Math.max(0, PositionX - CapWidth - CapShift - 15)
	else
		var CapLeft = PositionX + CapShift;

	if (OffCenterY > 0)
		var CapTop = Math.max(0, PositionY - CapHeight - CapShift - 25)
	else
		var CapTop = PositionY + CapShift;

	var CapProps = "toolbar=no,menubar=no,location=no,";
	CapProps += "status=no,scrollbars=no,resizable=yes,";
	CapProps += "width=" + CapWidth + ",height=" + CapHeight + ",";
	CapProps += "left=" + CapLeft + ",top=" + CapTop;

	CapWindow = window.open("", "CaptureWindow", CapProps);
	CapWindow.focus();

	CapText = BuildPage(n);
	CapWindow.document.write(CapText);
	CapWindow.document.close();

	KillID = window.setTimeout("KillCaption()", CloseDelay * 1000);
	CheckTime = GetTheTime();
}

function KillCaption()
{
	if (!FirstCap)
		return;

	if (CapWindow.closed)
		return;

	var NewTime = GetTheTime();
	var TimeElapsed = NewTime - CheckTime;

	if (TimeElapsed < RedrawDelay * 1000)
		CapWindow.focus()
	else
		CapWindow.close();
}

function CapSwitch()
{
	CheckTime=0;
	KillCaption();

	SetCookie();
}

function SetCookie()
{
	var Name  = "CapCookie";
	var Value = document.CapsOff.TurnOff.checked;

	var Today = new Date();
	var Expires = new Date(Today.getTime() + 30*86400000);

	document.cookie = Name + "=" + escape(Value) +
		"; expires=" + Expires.toGMTString();
}

function GetCookie()
{
	var Name  = "CapCookie";
	var Search = Name + "=";

	if (document.cookie.length > 0)
	{
		Offset = document.cookie.indexOf(Search);
		if (Offset != -1)
		{
			Offset += Search.length;
			End = document.cookie.indexOf(";", Offset);
			if (End == -1)
				End = document.cookie.length;

			Value = unescape(document.cookie.substring(Offset, End));
			if (Value == "true")
				document.CapsOff.TurnOff.checked = true
			else
				document.CapsOff.TurnOff.checked = false;
		}
	}
}

function GetTheTime()
{
	var RightNow = new Date();
	return RightNow.getTime();
}

function HandleMouseMove(evnt)
{
	TempX = evnt.screenX;
	TempY = evnt.screenY;
}
