// headlineD.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 = 2; 		// スクロール量 (px)
	wait = 1;		// 一時停止時間 (秒)
	pause = 1;		// 一時停止状態フラグ (1:停止、0:再開)
	margn = 150;		// リスト項目の水平間隔 (px)
	resetTime = (new Date()).getTime(); //一時停止用タイマーリセット

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

	// 表示位置の初期化
	listWidth = new Array();
	for (i=0; i<listLength; i++) {
		listWidth[i] = listItems[i].offsetWidth;	
	}
	listLeft = new Array();
	for (i=0; i<listLength; i++) {		
		listItems[i].style.visibility = "visible";
		if (i>0) {
			listLeft[i] = parseInt(listLeft[i-1]) + listWidth[i-1] + margn + "px";
			listItems[i].style.left = Math.min(listItems[i].parentNode.offsetWidth,parseInt(listLeft[i]))+"px";
		}
		else listItems[i].style.left = listLeft[i] = listItems[i].parentNode.offsetWidth+"px";	
	}
	
	// 関数scrollH()を繰り返し処理する
	setInterval("updateHeadlines()",100);
}

// 繰り返し処理
function updateHeadlines() {
	// 各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.left) == -listWidth[n]) {
				// 右端に移動する
				listLeft[n] = Math.max(parseInt(listLeft[prev])+listWidth[prev] + margn,listItems[n].parentNode.offsetWidth + margn) + "px";
				style.left = Math.min(listItems[n].parentNode.offsetWidth,parseInt(listLeft[n]))+"px";
				act = (act+1)%listLength;
				break;
			}
			// 通常スクロールの場合
			else {
				// 左に移動する
				listLeft[n] = Math.max(-listWidth[n],parseInt(listLeft[n])-amount)+"px";
				style.left = Math.min(listItems[n].parentNode.offsetWidth,parseInt(listLeft[n]))+"px";			
			}		
		}
	}
}


