// window.onloadイベントに追加
addWinLoadEvent( genFaqList );

// FAQから質問を抜き出し、一覧を生成する
function genFaqList () {
	// メソッドチェック
	if ( !document.getElementsByTagName ||
		!document.getElementById ||
		!document.createElement ) return false;

	// 挿入する要素を生成
	var firstH3Id, gotop;
	var ul = document.createElement( 'ul' );
	ul.setAttribute( 'id', 'questions' );

	// 質問の一覧を生成
	// 質問部分は<h3 class="question" id="（質問id）">（質問）</h3>という形になっている
	var h3s = document.getElementsByTagName( 'h3' );
	for ( var i=0; i<h3s.length; i++ ) {
		if ( 'question' === getClassAttr( h3s[i] ) ) {
			// 挿入する場所の直後の要素のid属性を取得
			if ( !firstH3Id ) {
				firstH3Id = h3s[i].getAttribute( 'id' );
			}

			// アンカーを生成
			var a = document.createElement( 'a' );
			a.setAttribute( 'href', '#' + h3s[i].getAttribute( 'id' ) );

			// h3要素の値をa要素の値としてコピー
			var h3childs = h3s[i].childNodes;
			for ( var j=0; j<h3childs.length; j++ ) {
				a.appendChild( h3childs[j].cloneNode( true ) );
			}

			// li要素に生成したa要素を追加
			var li = document.createElement( 'li' );
			li.appendChild( a );

			// ul要素に生成したli要素を追加
			ul.appendChild( li );
		}
	}

	// 質問が一つもない場合は終了
	if ( 0 === ul.childNodes.length ) return true;

	// ページ先頭に戻るリンクをドキュメント内からコピーして生成
	var as = document.getElementsByTagName( 'a' );
	for ( var i=0; i<as.length; i++ ) {
		if ( 'gopagetop' === getClassAttr( as[i] ) ) {
			gotop = as[i].cloneNode( true );
			break;
		}
	}

	// 生成した一覧と先頭に戻るリンクを書き出し
	var firstH3 = document.getElementById( firstH3Id );
	firstH3.parentNode.insertBefore( ul, firstH3 );
	firstH3.parentNode.insertBefore( gotop, firstH3 );
	return true;
}

