// bug.js
// 7/98 Holger Klawitter
// Based on the GeoCities-Brand
//----------------------------------------------------------------------

var W = 0;
var H = 0;
var flag = 0;

var bug = null;
var end = null;
var img;

function MakeImage(name) {
	img[name] = new Image(); img[name].src = "pics/roach"+name+".xbm";
}

function BugInit() {
	if ( bug != null ) return;
	img = new Array();
	MakeImage("n0");
	MakeImage("s0");
	MakeImage("w0");
	MakeImage("e0");
	MakeImage("n1");
	MakeImage("s1");
	MakeImage("w1");
	MakeImage("e1");
	for( i=0; i<document.layers.length; i++ ) {
		bug = document.layers[i];
		if( bug.id == "Bug" ) {
			bug.top = Math.random() * 
				(window.innerHeight+window.pageYOffset);
			bug.left = Math.random() * 
				(window.innerWidth+window.pageXOffset);
			setInterval("Bugging()",100);
			break;
		}
  	}
}

var dx = 5;
var dy = 5;
var lastDir = -1;

function BugPosition() {
	if ( bug == null ) return;

	H = (window.innerHeight+window.pageYOffset);
	W = (window.innerWidth+window.pageXOffset);

	IMGT = bug.top;
	IMGL = bug.left;
	IMGW = bug.document.images[0].width;
	IMGH = bug.document.images[0].height;

	var dir = 0;
	if( Math.random()<0.1 || lastDir < 0 ) {
		lastDir = Math.floor(Math.random()*4);
	}
	var nx = IMGL;
	var ny = IMGT;
	var name = "n";
	switch( lastDir ) {
	case 0: nx -= dx; name="w"; break;
	case 1: nx += dx; name="e"; break;
	case 2: ny -= dy; name="n"; break;
	case 3: ny += dy; name="s"; break;
	}
	flag = 1-flag;
	name = name+flag;

	if( nx<0 ) {
		nx=0;
		lastDir = -1;
	}
	if(  ny<0 ) {
		ny=0;
		lastDir = -1;
	}
	if( nx>W-IMGW  ) {
		nx=W-IMGW;
		lastDir = -1;
	}
	if(  ny>H-IMGH ) {
		ny=H-IMGH;
		lastDir = -1;
	}
	//alert( "x="+nx+", y="+ny+", name="+name );
	bug.left = nx;
	bug.top = ny;
	bug.document.images[0].src = img[name].src;
}

function BugShow( toggle ) {
	if( bug == null ) return;
	bug.visibility= toggle;
}

function Bugging() {
	if( bug == null ) return;
	BugShow("hide");
	BugPosition();
	BugShow("show");
}

setTimeout("BugInit()",1); // equivalent to <body onLoad="BugInit()">
