//////////////////////////////////////////////////////////////////////
/*
ランダムに<a href><img></img></href>を変更するJavaScript

予め BannerArray(<img>タグ用のsrcの配列)と LinkerArray(<a>タグ用の
hrefの配列)を用意しておいてください。
例
var BannerArray = new Array();
var LinkerArray = new Array();
BannerArray.push("sbanner_oracle.gif");
LinkerArray.push("http://www.turbolinux.co.jp");
...

変更させたいimgとaタグは、name属性で指示します。
<a ... name="random_banner_linker">
<img ... name="random_banner">
この二つのタグが対象になります。

使い方は、上記二つのタグを１セット作ります。
例) <a href="" name="random_banner_linker"><img name="random_banner"></a>
次に<body>タグの onload イベントハンドラでInitRandomBanner()を呼び出します。
<body onload="InitRandomBanner()">
以上です。

img画像のロールオーバーもおまけで実装しました。
RollOverImageObject(IOName, ImagePath)
例)
<a onMouseOver="RollOverImageObject('img1', 'banner1.gif')">RollOver</a>
<img src="default.gif" name="img1">

*/
//////////////////////////////////////////////////////////////////////
//

var dhtmlnav = 0;
var dhtmlBrowser = 0;

if((document.all)||(document.layers)) dhtmlBrowser = 1;

////////////////////////////////////////
//
// img ロールオーバースクリプト
// IOName: <img>タグのname属性
// ImagePath: <img>タグのsrc属性
//
function RollOverImageObject(IOName, ImagePath)
{
	document.images[IOName].src = ImagePath;
	return;
}

////////////////////////////////////////
//
// 指定された整数値までの間での乱数生成
// MaxInt: 最大の乱数値
//
function RandomizedInteger(MaxInt)
{
	var result = Math.floor(Math.random() * MaxInt);
	return(result);
}

////////////////////////////////////////
//
// IEでは document.links[name] が無効なため、
// nameでlinkオブジェクトを取得するためにfor文を追加してある。
//
// <a href="..."> ロールオーバースクリプト
// LOName: <a href>のname属性
// HrefPath: <a href>のhref属性
//
function RollOverHrefObject(LOName, HrefPath)
{
	for(i = 0; i < document.links.length; i++) {
		obj = document.links[i];
		if(obj.name == LOName) obj.href = HrefPath;
	}
}

////////////////////////////////////////
//
// ランダムバナー表示用関数
// <body>のonloadで冒頭で一度だけ実行する。
//
// msecInterval: ランダム表示のための更新時間間隔(msec)
// objName: 対象となる<img><a>タグのname属性
//
// 例) <body onload="InitRandomBanner(500, 'random_banner')">
//
function InitRandomBanner(msecInterval, objName)
{
	if(dhtmlBrowser) dhtmlnav = 1;

	// ランダムにBanner/LinkerArrayのインデックスを生成
	var index = RandomizedInteger(BannerArray.length);

	// <img>タグロールオーバー
	RollOverImageObject(objName, BannerArray[index]);

	// <a>タグロールオーバー
	RollOverHrefObject(objName, LinkerArray[index]);

	// タイマーによる再帰呼び出しの設定
	var th = "InitRandomBanner(" + msecInterval + ", '" + objName + "')";
	window.setTimeout(th, msecInterval);
}
////////////////////////////////////////
//
// '半'ランダムバナー表示用関数
// <body>のonloadで冒頭で一度だけ実行する。
//
// msecInterval: ランダム表示のための更新時間間隔(msec)
// objName: 対象となる<img><a>タグのname属性
// NumOfIO: 先頭から順番に表示するArrayの数(Number Of 'In Order')
//
// 例) <body onload="InitRandomBanner(500, 'random_banner', 3)">
//
var currentIndex = 0;
function InitHalfRandomBanner(msecInterval, objName, NumOfIO)
{

	if(dhtmlBrowser) dhtmlnav = 1;

	var index = currentIndex++;
	if(currentIndex > NumOfIO) {
		currentIndex = 0;
			// ランダムにBanner/LinkerArrayのインデックスを生成
			index = RandomizedInteger(BannerArray.length);
	}

	// <img>タグロールオーバー
	RollOverImageObject(objName, BannerArray[index]);

	// <a>タグロールオーバー
	RollOverHrefObject(objName, LinkerArray[index]);

	// タイマーによる再帰呼び出しの設定
	var th = "InitHalfRandomBanner(" + 
				msecInterval + ", '" + 
				objName + "', " + 
				NumOfIO + ")";
	window.setTimeout(th, msecInterval);

}


