///////////////////////////////////////////////////
// お遊び No.3.4 Produced by「CLUB とむやん君」
// URL http://www2s.biglobe.ne.jp/~club_tom/
///////////////////////////////////////////////////

///////////////////////////////////////////////////
// 画像の開始位置＆移動間隔＆移動スピード＆
// 方向転換の距離＆クリックすると画像の動きを止めるかどうかを書いて下さい。
var dxOa34=100,dyOa34=100; // 開始位置(dxOa34：x座標、dyOa34：y座標)
var hOa34=10;              // 移動間隔
var mouseSpeedOa34=20;     // 移動スピード(単位：1/1000秒)
var h2Oa34=100;            // 方向転換の距離(hOa34より小さくしないで下さい。)
var moveStopOa34=true;     // 画像の停止の有無です。
                           // (true：有り、false：無し)
///////////////////////////////////////////////////

var mxOa34=dxOa34,myOa34=dyOa34,moveStopFlagOa34=false;

// イベントキャプチャーを設定する部分です。
if (document.all || document.getElementById || document.layers) {
	if (document.layers) document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove=mouseMoveEvOa34;
	if (moveStopOa34) {
		if (document.layers) document.captureEvents(Event.CLICK);
		document.onclick=mouseMoveStopOa34;
	}
}

// イベントキャプチャーのマウス位置関数の部分です。
function mouseMoveEvOa34(e) {
	mxOa34=getPoOa34(e,true);
	myOa34=getPoOa34(e,false);
}

// イベントキャプチャーのStop関数の部分です。
function mouseMoveStopOa34() {
	moveStopFlagOa34=!moveStopFlagOa34;
}

// マウスカーソルの座標を取得する部分です。
function getPoOa34(e,flag) {
	if (document.all) {
		if (flag) return document.body.scrollLeft+event.clientX;
		else return document.body.scrollTop+event.clientY;
	}
	else if (document.getElementById || document.layers) {
		if (flag) return e.pageX;
		else return e.pageY;
	}
}

// 指定した場所に画像を移動させる部分です。
function setPoOa34(name,x,y) {
	if (document.all) {
		document.all(name).style.posLeft=x;
		document.all(name).style.posTop=y;
	}
	else if (document.getElementById) {
		document.getElementById(name).style.left=x;
		document.getElementById(name).style.top=y;
	}
	else if (document.layers) document.layers[name].moveTo(x,y);
}

// 移動距離からxy座標を算出する部分です。
function getXYOa34(x1,y1,x2,y2,l,dl,flag) {
	var x,y;
	if (l==0) {
		if (flag==true) return x1;
		if (flag==false) return y1;
	}
	else {
		x=dl/l*(x2-x1)+x1;
		if (flag==true) return x;
		if (flag==false) {
			if (x1-x2==0) {
				if (y1<y2) return y1+dl;
				else return y1-dl;
			} else return (y1-y2)/(x1-x2)*x+y1-(y1-y2)/(x1-x2)*x1;
		}
	}
}

// メイン関数の部分です。
function mouseMoveOa34() {
	if (document.all || document.getElementById || document.layers) {
		if (!moveStopFlagOa34) {
			var xx,l;
			l=Math.abs(Math.sqrt(Math.pow((mxOa34-dxOa34),2)+Math.pow((myOa34-dyOa34),2)));
			if (l<h2Oa34-hOa34) {
				xx=getXYOa34(dxOa34,dyOa34,mxOa34,myOa34,l,-hOa34,true);
				dyOa34=getXYOa34(dxOa34,dyOa34,mxOa34,myOa34,l,-hOa34,false);
				dxOa34=xx;
				setPoOa34("imgOa34",dxOa34,dyOa34);
			}
			else if (l>=h2Oa34) {
				xx=getXYOa34(dxOa34,dyOa34,mxOa34,myOa34,l,hOa34,true);
				dyOa34=getXYOa34(dxOa34,dyOa34,mxOa34,myOa34,l,hOa34,false);
				dxOa34=xx;
				setPoOa34("imgOa34",dxOa34,dyOa34);
			}
		}
		setTimeout("mouseMoveOa34()",mouseSpeedOa34);
	}
}

