xx = new Array();
yy = new Array();

moveNum = 19;	
timerID = 0;
time	= 10;
width = 18;
limit = 40;
count = 0.0;
radius = 200;
rad = 3.14*2/moveNum;
life = 0;
max_life = 1000;
fall_time=0;

XX = new Array();
for(ii=0;ii<moveNum;ii++)
	XX[ii] = new Array();
YY = new Array();
for(ii=0;ii<moveNum;ii++)
	YY[ii] = new Array();

MOUSE_X = -1;
MOUSE_Y = -1;

if (document.layers)
	document.captureEvents(Event.MOUSEMOVE);//　マウス移動イベントを横取り
document.onmousemove = mouseStatusXY;		//　マウス移動イベントハンドラを指定

//　ページ上の座標値を取得するためのイベントハンドラ
function mouseStatusXY(theEvent)
{
	// Netscape Navigator
	if (document.layers){
        	MOUSE_X = theEvent.pageX;	//　X座標値を得る
        	MOUSE_Y = theEvent.pageY;	//　Y座標値を得る
        	document.routeEvent(theEvent);	//　取得したイベントを元の状態に戻す
	}
	
	// Internet Explorer
	if (document.all){
        	MOUSE_X = document.body.scrollLeft+event.clientX;//　X座標値を得る
        	MOUSE_Y = document.body.scrollTop+event.clientY;//　Y座標値を得る
	}
}
/**********/

//　初期座標を取得

function getPos()
{
	for(ii=0; ii<moveNum; ii++){
		layerName = "lmnopqrstuvwxyzABCD".charAt(ii);
		if (document.layers){
			xx[ii] = document[layerName].left;
			yy[ii] = document[layerName].top;
		}
		if (document.all){
			xx[ii] = window[layerName].style.pixelLeft;
			yy[ii] = window[layerName].style.pixelTop
		}			
	}

	for(jj=0;jj<moveNum;jj++){
		for(ii=0;ii<moveNum;ii++){
			XX[jj][ii] = xx[ii];
			YY[jj][ii] = yy[ii];
		}
	}
}

function fall()
{
	for(ii=0;ii<moveNum;ii++){
		if(ii<fall_time/2){
			if(yy[ii]<800)
			   yy[ii] += 10;
		}
	}
	fall_time++;
	draw();
	clearTimeout(timerID);
	timerID = setTimeout("fall()",time);
}

//マウス追随
function toMouse()
{
	if(life++ <max_life){
		for(jj=moveNum-1;jj>0;jj--){
			for(ii=0;ii<moveNum;ii++){
				XX[jj][ii] = XX[jj-1][ii];
				YY[jj][ii] = YY[jj-1][ii];
			}
		}
	

		if(radius>15){
			//radius = 150*Math.cos(count/80);
			radius = 150-count*4;
			for (ii=0; ii<moveNum; ii++){
				XX[0][ii] = MOUSE_X+radius*Math.cos(rad*ii-count/8);
				YY[0][ii] = MOUSE_Y+radius*Math.sin(rad*ii-count/8);
			}
			count += 1;
		}
		else{
			for (ii=0; ii<moveNum; ii++){
				YY[0][ii] = MOUSE_Y;			
				XX[0][ii] = MOUSE_X+width*ii;
			}
		}
/****
		for (ii=0; ii<moveNum; ii++){
			YY[0][ii] = MOUSE_Y;			
			XX[0][ii] = MOUSE_X+width*ii;
		}
****/
		for(ii=0;ii<moveNum;ii++){
			xx[ii] = XX[ii][ii];
			yy[ii] = YY[ii][ii];
		}
		draw();

		clearTimeout(timerID);
		timerID = setTimeout("toMouse()",time);	//　タイマー割り込み設定
	}
	else{
		for(ii=0;ii<moveNum;ii++){
			xx[ii] = -20;
			yy[ii] = -20;
		}
		draw();
	}
}
function draw()
{
	for(ii=0;ii<moveNum;ii++){
		layerName = "lmnopqrstuvwxyzABCD".charAt(ii);	//***************
		if (document.layers){
			document[layerName].left = xx[ii];
			document[layerName].top = yy[ii];
		}
		if (document.all){
			window[layerName].style.pixelLeft = xx[ii];
			window[layerName].style.pixelTop = yy[ii];
		}
	}
}
