//glimmer_move.js//Author: Joshua Birk//current modDate: Aug,13,1999//glimmer.js mod to move layer objects around the window//init function for this mod.  goes before initAll() is called.function initGmove() {	addMod("north",layer_north);	addMod("south",layer_south);	addMod("west",layer_west);	addMod("east",layer_east);	addMod("northeast",layer_north);	addMod("southeast",layer_south);	addMod("southwest",layer_west);	addMod("northwest",layer_east);	addMod("move",layer_move);	addMod("bounce",layer_bounce);	addMod("moveRandom",layer_moveRandom);	addMod("followPath",layer_followPath);	addMod("draggable",false);	addMod("path","new Array");	}//base movement functions, move the entire layer in the appropriate directionfunction layer_north(distance, speed, codette) {	//alert(codette);	if (distance < speed){speed = distance;}	xD = parseInt(this.top);	xD = xD - speed;	this.layer.top = xD;	this.refresh();	distance = distance - speed;	if (distance > 0) {		//alert(codette);		setcodette = this.obj_name+'.north('+distance+','+speed+',"'+codette+'")';		setTimeout(setcodette,speed);		}	else {		if (codette){runMe(codette);}		}		}function layer_south(distance, speed, codette) {	if (distance < speed){speed = distance;}	xD = parseInt(this.top);	xD = xD + speed;	this.layer.top = xD;	this.refresh();	distance = distance - speed;	if (distance > 0) {		setcodette = this.obj_name+'.south('+distance+','+speed+',"'+codette+'")';		setTimeout(setcodette,speed);		}	else {		if (codette){runMe(codette);}		}		}	function layer_east(distance, speed, codette) {	if (distance < speed){speed = distance;}	yD = parseInt(this.left);	yD = yD + speed;	this.layer.left = yD;	this.refresh();	distance = distance - speed;	if (distance > 0) {		setcodette = this.obj_name+'.east('+distance+','+speed+',"'+codette+'")';		setTimeout(setcodette,speed);		}	else {		if (codette){runMe(codette);}		}	}		function layer_west(distance, speed, codette) {	if (distance < speed){speed = distance;}	yD = parseInt(this.left);	yD = yD - speed;	this.layer.left = yD;	this.refresh()	distance = distance - speed;	if (distance > 0) {;		setcodette = this.obj_name+'.west('+distance+','+speed+',"'+codette+'")';		setTimeout(setcodette,speed);		}	else {		if (codette){runMe(codette);}		}	}	function layer_northeast(distance,speed,codette) {	this.north(distance,speed,end);	this.east(distance,speed,codette);	}function layer_northwest(distance,speed,codette) {	this.north(distance,speed,end);	this.west(distance,speed,codette);	}	function layer_southeast(distance,speed,codette) {	this.south(distance,speed,end);	this.east(distance,speed,codette);	}	function layer_southwest(distance,speed,codette) {	this.south(distance,speed,end);	this.west(distance,speed,codette);	}	//move layer to x,y without hitting any points in betweenfunction layer_bounce(top,left,codette){	this.layer.top = top;	this.layer.left = left;	this.refresh();	if (codette){runMe(codette);}	}//move the layer to x,y hitting points in betweenfunction layer_move(top,left,codette){	xNow = parseInt(this.layer.left);	yNow = parseInt(this.layer.top);	xDistance = left - xNow;	yDistance = top - yNow;    window.status = xDistance;	if (xDistance > yDistance) {		xcodette = codette;		ycodette = end;		}	else {		xcodette = end;		ycodette = codette;		}	if (xDistance > 0) {		this.east(xDistance,this.speed,xcodette);		}	else {		xDistance = xDistance * -1;		this.west(xDistance,this.speed,xcodette);		}	if (yDistance > 0) {		this.south(yDistance,this.speed,ycodette);		}	else {		yDistance = yDistance * -1;		this.north(yDistance,this.speed,ycodette);		}	}	//trick function to randomly move the layer.  Not terribly useful and//is a huge CPU hog.function layer_moveRandom(topX,topY,codette) {	x = Math.random();	x = x * topX;	x = Math.round(x);	y = Math.random();	y = y * topY;	y = Math.round(y);	this.move(x,y,codette);	}	function dragOff() {	if(current_draggable.draggable){current_draggable.draggable=false;}	return true;	}	function dragLayer(event) {	if(current_draggable.draggable) {		if(document.layers){thisY=event.pageY;thisX=event.pageX;}		if(document.all){thisY=window.event.clientY;thisX=window.event.clientX;}		current_draggable.bounce(parseInt(thisY) - 1,parseInt(thisX) - 1);        window.status = thisY;		return false;		}	else {return true;}	}	function setDrag(layer) {	current_draggable = layer;	layer.draggable = true;	return false;	}	function layer_followPath(y,x,codette) {if (this.path.length > 1) {	nextY = this.path[0];	nextX = this.path[1];	this.path.reverse();	this.path.length = this.path.length - 2;	this.path.reverse();	eval(this.obj_name + '.bounce('+nextY+','+nextX+');')	if (codette) {		setcodette = this.obj_name+'.followPath('+y+','+x+',"'+codette+'")';		}	else{setcodette = this.obj_name+'.followPath()';}	setTimeout(setcodette,0);		}	else{		if(codette) {			runMe(codette);			}		}}		initGmove();
