/* * * * */
// <LINK name="author" HREF="http://www.holderness.eu">
// <LINK name="license" TYPE="free to nonprofit organisations; others make an offer - see:" HREF="http://www.poptel.org.uk/nuj/mike/java.htm">
// <META name="warning" content="I am actively looking for test cases to prosecute!">
// Gutted of game components, leaving shell functions for safety *
/* * * * */
		// assume all pages have same {navbar}, for the moment
		// different script version required for each directory level w.r.t. /gif
		// version required for left & right navbar - see menuX in GetWindowSize()

var debugging= false; //NOTA BENE debugging alert()s seem to crash Opera
var imgOn, imgOff, homeOn;
var version="veryplain";
var subversion="ok";
var ready=false;
var MenuInt=null;
var mX =		 90;	// size of #navbar - er, empirically set
var mY =		484;	
var MsgWidth =		200;	// see in .css
var ContentWidth=	600;	// empirical browser compromise!
var menuX=	 540;	// pixels right
var mMargin=	  10;	// pixels down
var thisgame=0;
var formOK=true;
var OperaPos=-1;
var OperaVer="0";
var highlightColor="yellow";
var visitedColor="#CCCC99";
var tagged="";

function init(game) {
	thisgame=game;
	GetVersion();
	
/****	if (version=="ECMA") {
		document.getElementById("JSwarn").style.visibility="hidden";
	}
	else if (version=="Nav4") {
		document.JSwarn.visibility="hide";
	}
	else if (version=="IE5") {
		document.all.JSwarn.style.visibility="hidden";
	}
****/
	if (typeof(homeOn)=="undefined" 
	&& version!="veryplain" 
	&& version!="nostyle") {

		homeOff= new Image(mX,mY);	homeOff.src= "gif/homeoff.gif";
		homeOn=  new Image(mX,mY); 	homeOn.src=  "gif/homeon.gif";
		submitOff= new Image(mX,mY);	submitOff.src= "gif/searchof.gif";
		submitOn=  new Image(mX,mY); 	submitOn.src=  "gif/searchon.gif";
		srchlpOff= new Image(mX,mY);	srchlpOff.src= "gif/srchlpof.gif";
		srchlpOn=  new Image(mX,mY); 	srchlpOn.src=  "gif/srchlpon.gif";
		RefrT=	40;	// milliseconds 

		if (MenuInt==null) {
			MenuInt = setInterval("MenuRefresh()",RefrT);
			window.onUnload=stopscript;
		}
		ready=true;
	}// !loaded home && !veryplain
	if (debugging) {window.alert("Init: ready="+ready+" window: "+Wwidth+" * "+Wheight);}
}//init(game)

function GetVersion() {
var OperaVer="0";
	vernum=navigator.appVersion.charAt(0);
	isMac=navigator.appVersion.indexOf("Mac") > 1;
	OperaPos=navigator.userAgent.indexOf("Opera");
	if (OperaPos>=0) {OperaVer = navigator.userAgent.substr(OperaPos+6,4)}
	if (vernum >= "4") {
		if (navigator.appName == "Microsoft Internet Explorer") {
			if ((navigator.appVersion.indexOf("MSIE 4.5") > 1 && isMac)
			 || navigator.appVersion.indexOf("MSIE 5") > 1 
			 || navigator.appVersion.indexOf("MSIE 6") > 1) {
				version="IE5";
				if (navigator.appVersion.indexOf("MSIE 6")>1 && navigator.appVersion.indexOf("Windows")>1) {
					subversion="IE6grr"
				}
			}
			else {
				version="veryplain";
			}
		}
		else if (navigator.appName=="Netscape" && vernum=="4") {
			version="Nav4";
		} 
		else {
			version="ECMA";
		}
	}
	if (version=="ECMA") {
		if (OperaVer>"0" && OperaVer<"5.11") {
			version="veryplain";
		}
		else if (typeof(document.getElementById("navbar").style)=="undefined") {
			version="veryplain";
		}
		else {
			window.onresize=resizer;
			if (OperaVer>"0" && OperaVer<"7") {
				subversion="oldOpera";
			}
		}
	}
	else if (version=="Nav4") {
		if (typeof(document.navbar)=="undefined" || isMac || OperaVer!="0") {
			version="veryplain";
		}
		else {
			window.onresize=resizer;
		}
	}
	else if (version=="IE5") {
		if (typeof(document.all.navbar.style)=="undefined" || OperaVer!="0") {
			version="veryplain"; 
		}
		else {
			self.window.onresize=resizer;
		}
	}
	GetWindowSize();  	/*also sets menuX! */
	doPopUp=(subversion=="oldOpera");
}; /* GetVersion()  */

function resizer() {
	GetWindowSize();
	MenuRefresh();
}

function stopscript() {
	clearInterval(MenuInt);
}

function GetWindowSize() {
	if (version=="IE5") {
		if (subversion=="IE6grr") {
			Wwidth=document.documentElement.clientWidth;
			Wheight=document.documentElement.clientHeight;
		}
		else {
			Wwidth=document.body.scrollWidth;
			Wheight=document.body.scrollHeight;
		}
	}
	else if (version=="Nav4" || version=="ECMA") {
		Wwidth=window.innerWidth;
		Wheight=window.innerHeight;
	}
	menuX=ContentWidth+(Wwidth-ContentWidth)/2-mX;
	if (debugging) {window.alert("GetWindowSize\r"+Wwidth+" * "+Wheight+" X: "+menuX);}
}

function MenuRefresh() {
	if (version=="ECMA") {
		with (document.getElementById("navbar").style) {
			left 	= menuX + pageXOffset;
			top 	= mMargin + pageYOffset;
		}
	}
	else if (version=="Nav4") {
		with (document.navbar) {
			left	= menuX + pageXOffset;
			top	= mMargin + pageYOffset;
		}
	}
	else if (version=="IE5") {
		with (document.all.navbar.style) {
			if (subversion=="IE6grr") {
				left = menuX + document.documentElement.scrollLeft;
				top = mMargin + document.documentElement.scrollTop;
				width	= MsgWidth;
			}
			else if (!isMac) {
				left = menuX + document.body.scrollLeft; // IE5 Mac: "L 251: invalid procedure or argument"
				top = mMargin + document.body.scrollTop;
				width	= MsgWidth;
			}
		} 
	}
};

function setCellBG(tag,what) {
	if (version=="ECMA") {
		document.getElementById(tag).style.background=what;
	}
	else if (version=="Nav4") { // TO TEST!
		document.tag.document.bgColor=what;
	}
	else { if (version=="IE5") {
		document.all[tag].style.backgroundColor = what;
		}
	}
}

function FlagTag(tag) {
	if (tagged > "") {
		setCellBG(tagged,visitedColor);
	}
	tag="z"+tag; // broken IE5 restrictions - NB in HTML <TD id="zthing"><A NAME="thing">...!
	setCellBG(tag,highlightColor);
	tagged=tag;
}

function FlagTarget() {
	tag=window.location.hash.slice(1);
	if (tag>"") {
		FlagTag(tag);
	}
}

function a(thing) {
	advance(thing);
}


function r(thing) {
	retreat(thing);
}

function play() {
}

function advance(thingy) {
	if (ready) {
		imgOn = eval(thingy+"On.src"); 
		if (version == "ECMA") { 
			document.getElementById(thingy).src=imgOn;
		}
		else if (version == "Nav4") {
			document.navbar.document.images[thingy].src=imgOn;
		}
		else if (version == "IE5") {
			if (document.images[thingy]) {
				document.images[thingy].src=imgOn;
			}
		}
	}
}

function retreat(thingy) {
	if (ready) {
		imgOff = eval(thingy+"Off.src"); 
		if (version == "ECMA") { 
			document.getElementById(thingy).src=imgOff;
		}
		else if (version == "Nav4") {
			document.navbar.document.images[thingy].src=imgOff;
		}
		else if (version == "IE5") {
			if (document.images[thingy]) {
				document.images[thingy].src=imgOff;
			}
		}
	}
}

//ENDS