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

var setFaqH3s, setFaqDivs;

// FAQの回答を隠し、クリック時に表示するようにする
function setFaq () {
	// メソッドチェック
	if ( !document.getElementsByTagName ||
		!document.getElementById ||
		!document.createElement ) return false;

	// 要素を取得
	var mainContent = document.getElementById( 'maincontent' );

	// 質問のh3要素を取得
	setFaqH3s = mainContent.getElementsByTagName( 'h3' );
	var questionIdx = new Array();
	for ( var i=0; i<setFaqH3s.length; i++ ) {
		if ( 'question' === getClassAttr( setFaqH3s[i] ) ) {
			questionIdx.push( i );
		}
	}
	// 回答のdiv要素を取得
	setFaqDivs = mainContent.getElementsByTagName( 'div' );
	var answerIdx = new Array();
	for ( var i=0; i<setFaqDivs.length; i++ ) {
		if ( 'answer' === getClassAttr( setFaqDivs[i] ) ) {
			answerIdx.push( i );
		}
	}

	// 一旦全ての回答を隠す
	for ( var i=0; i<questionIdx.length; i++ ) {
		var qId = setFaqH3s[ questionIdx[i] ].getAttribute( 'id' );
		var aId = qId.replace( 'q', 'a' )
		var efunc = 'showAnswer("' + aId + '");';

		setEvent( setFaqH3s[ questionIdx[i] ], 'onclick', efunc );
		setClassAttr( setFaqH3s[ questionIdx[i] ], 'question controlled' );
		setFaqH3s[ questionIdx[i] ].setAttribute( 'title', 'クリックすると回答を表示します' );
		setFaqDivs[ answerIdx[i] ].setAttribute( 'id', aId );
		setClassAttr( setFaqDivs[ answerIdx[i] ], 'hide' );
	}

	// 回答を隠すとページ上部へのリンクが細かい間隔で続くようになるので、最後を残して隠す
	var as = mainContent.getElementsByTagName( 'a' );
	var j=0;
	for ( var i=0; i<as.length; i++ ) {
		if ( 'gopagetop' === getClassAttr( as[i] ) ) {
			setClassAttr( as[i], 'hide' );
			j = i;
		}
	}
	setClassAttr( as[j], 'gopagetop' );

	// 全ての回答を表示、非表示のメニューを表示
	var a1 = document.createElement( 'a' );
	setClassAttr( a1, 'setanswer' );
	var a2 = a1.cloneNode( true );
	setEvent( a1, 'onclick', 'showAllAnswer( "answer" );' );
	setEvent( a2, 'onclick', 'showAllAnswer( "hide" );' );
	var text1 = document.createTextNode( '全ての回答を表示' );
	var text2 = document.createTextNode( '全ての回答を非表示' );
	a1.appendChild( text1 );
	a2.appendChild( text2 );

	var sep = document.createTextNode( ' | ' );

	var note = document.createTextNode( '各質問をクリックすると回答を表示します。' );
	var notediv = document.createElement( 'div' );
	notediv.setAttribute( 'id', 'setanswernote' );
	notediv.appendChild( note );

	var div = document.createElement( 'div' );
	div.setAttribute( 'id', 'setanswer' );
	div.appendChild( a1 );
	div.appendChild( sep );
	div.appendChild( a2 );
	div.appendChild( notediv );
	mainContent.insertBefore( div, setFaqH3s[0] );

	return true;
}

// クリックされた質問の回答を表示、非表示
function showAnswer ( aId ) {
	var answer = document.getElementById( aId );
	var mode = getClassAttr( answer );
	setClassAttr( answer, ( 'hide' === mode ? 'answer' : 'hide' ) );
	return true;
}

// 全ての回答を表示、非表示
function showAllAnswer ( mode ) {
	for ( var i=0; i<setFaqDivs.length; i++ ) {
		if ( 'answer' === getClassAttr( setFaqDivs[i] ) || 'hide' === getClassAttr( setFaqDivs[i] ) ) {
			setClassAttr( setFaqDivs[i], mode );
		}
	}
	return true;
}

