// headlineA.js (縦スクロール) //

// DOM対応ブラウザ判別
if (document.getElementById) {
	// 外部スタイルシート読み込み
	document.write("<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"headline/headlines.css\">");
	// ウインドウの読み込み完了時に関数initHeadlines()を実行
	window.onload = initHeadlines;
}

// 初期設定
function initHeadlines() {
	// "headlines"が見つからない場合は初期設定を行わず戻る
	if (!document.getElementById("headlines")) return;

	// 変数の初期化
	act = 0;		// 表示中のリスト項目No.
	amount = 4;		// スクロール量 (px)
	wait = 3;		// 一時停止時間 (秒)
	pause = 1;		// 一時停止状態フラグ (1:停止、0:再開)
	resetTime = (new Date()).getTime();	//一時停止用タイマーリセット
	
	// li要素を配列listItemsに格納
	listItems = document.getElementById("headlines").getElementsByTagName("li");
	listLength = listItems.length;

	// 表示位置の初期化
	for (i=0; i<listLength; i++) {
		listItems[i].style.top = (i* listItems[i].offsetHeight) + "px";
		listItems[i].style.visibility = "visible";
	}

	// 関数updateHeadlines()を繰り返し処理する
	if (listLength>1) setInterval("updateHeadlines()",100);
}

// 繰り返し処理
function updateHeadlines() {
	// 一時停止状態でない場合
	if (!pause) {
		// 各li要素（listItems）を順に処理
		for (i=0; i<listLength; i++) {
			n = (act+i)%listLength;	
			with (listItems[n]) {
				prev = (n>0)? n-1:listLength-1;
				// 上端に消えた場合
				if ( parseInt(style.top) == -offsetHeight) {
					// 一番下の行に移動し一時停止する
					style.top = parseInt(listItems[prev].style.top)+listItems[prev].offsetHeight+"px";
					act = (act+1)%listLength;
					resetTime = (new Date()).getTime();
					pause = 1;
					break;	
				}
				// 通常スクロールの場合
				else {
					// 上に移動する
					if (n==act) style.top = Math.max(-offsetHeight,parseInt(style.top)-amount)+"px";
					else style.top = parseInt(listItems[prev].style.top)+listItems[prev].offsetHeight+"px";		
				}
			}
		}
	}
	// 一時停止状態の場合
	else {
		// 一時停止後の経過時間を調べる
		releaseTime = (new Date()).getTime();
		// 3秒後に一時停止解除する
		if (releaseTime - resetTime > 1000 * wait ) pause = 0;
	}
}
