

// headlineC.js (横スクロール) //

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

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

	// 変数の初期化
	act = 0;		// 表示中のリスト項目No.
	amount = 20;	// スクロール量 (px)
	wait = 8;		// 一時停止時間 (秒)
	pause = 0;		// 一時停止状態フラグ (1:停止、0:再開)
	resetTime = (new Date()).getTime();	//一時停止用タイマーリセット

	// li要素を配列listItemsに格納
	listItems = document.getElementById("move_banner").getElementsByTagName("li");
	listLength = listItems.length;

	// 表示位置の初期化
	for (i=0; i<listLength; i++) {
		listItems[i].style.left = listItems[i].parentNode.offsetWidth + "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;
			prev = (act>0) ? act-1:listLength-1;
			with (listItems[n]) {			
				// 表示エリアの左端に達した場合
				if ( parseInt(style.left)==0 && n==act) {
					// 一時停止する
					act = (act+1)%listLength;
					pause = 1;
					break;	
				}
				// 通常スクロールの場合
				else {
					// 左に移動する
					if (n==act && parseInt(listItems[prev].style.left)>= parseInt(style.left)) style.left = Math.max(0,parseInt(style.left)-amount)+"px";
					else if (n==act) style.left = Math.max(parseInt(listItems[prev].style.left) + listItems[prev].offsetWidth,Math.max(0,parseInt(style.left)-amount))+"px";
				}
			}
		}
	}
	// 一時停止状態の場合
	else {
		// 一時停止後の経過時間を調べる
		releaseTime = (new Date()).getTime();
		// 3秒後に一時停止解除する
		if (releaseTime - resetTime > 1000 * wait ) {
			pause = 0;
			resetTime = (new Date()).getTime();
		}
	}
	with (listItems[prev]) {
		// 前の項目が左端に消えた場合、右端に移動
		if ( parseInt(style.left)<=0 && parseInt(style.left)>-offsetWidth) style.left = Math.max(-offsetWidth,parseInt(style.left)-amount)+"px"; 
		else style.left = listItems[prev].parentNode.offsetWidth + "px";
	}
}