/*
 * faq.js
 * faq.htmlで使用する関数を定義する。
 */

// name space: chika.faq
var chika;

if (!chika) {
    chika = {};
}
else if (typeof chika !== "object") {
    throw new Error('"chika" already exists and is not an object');
}

if (!chika.faq) {
    chika.faq = {};
}
else if (typeof chika.faq !== "object") {
    throw new Error('"chika.faq" already exists and is not an object');
}


/*
 * function toggle()
 * "よくある質問"の回答部分（dd要素）を展開/折りたたむ関数。
 * クリック・イベントに応じて動作する。
 * 質問部分（dt要素）のイベント・ハンドラとして登録・使用されることを想定。
 */
chika.faq.toggle = function () {
    var target = this.nextSibling;		// dd要素
    while (target.nodeType === 3) {		// TEXT_NODE
        target = target.nextSibling;		// FireFox3.6.3のDOM Inspectorによると、dt要素とdd要素の間に#text要素が存在する
    }

    var status = target.style.display;
    if (status === "block") {
        target.style.display = "none";		// dd要素を表示しない
    }
    else {
        target.style.display = "block";		// dd要素を表示する
    }
};


/*
 * function setHandler()
 * chika.faq.toggle関数を"よくある質問"の質問部分（dt要素）のイベント・ハンドラとして登録する。
 */
chika.faq.setHandler = function () {
    var targets = document.getElementsByTagName("dt");
    for (var i = 0; i < targets.length; i++) {
        targets[i].onclick = chika.faq.toggle;
    }
};


// onload時にイベント・ハンドラを登録する
if (window.addEventListener) {
    window.addEventListener("load", chika.faq.setHandler, false);
}
else {						// Internet Explorer
    window.attachEvent("onload", chika.faq.setHandler);
}

