// JavaScript Document

/**
 * ナビゲーションの状態を初期化する。
 * 現在地とその親階層の要素をハイライトする。
 * 現在地の判定はパンくずリスト（topicPath）を基準とします。
 */
function initNavi() {
	var titles = new Array();
	// topicPathを配列として抽出
	extractTopicPath(jQuery("#topicpathArea ul li:first").next().next(), titles);

	// ナビゲーション中にあるパンくずリストと同一テキストを持つ要素をハイライト
	for (var i = 0; i < titles.length; i++) {
		jQuery("#sideArea a").each(function() {
			var naviTxt = trim(jQuery(this).text());
			if (titles[i].url) {
				if (this.baseURI == titles[i].url.baseURI && naviTxt == titles[i].text) {
					jQuery(this).parent("span").addClass("current");
				}
			} else {
				var naviURL = this.href.substr(0, this.href.lastIndexOf("/"));
				var currentURL = document.URL.split("#")[0].substr(0, document.URL.split("#")[0].lastIndexOf("/"));
				if (naviURL == currentURL && naviTxt == titles[i].text) {
					jQuery(this).parent("span").addClass("current");
				}
			}
		});
	}
}

/**
 * 指定された要素の兄要素を配列に格納していく。
 */
function extractTopicPath(target, titles) {
	if (target != null && target.next().length >= 0 && target.text() != "") {
		var obj = {text:trim(target.text())};
		if (target.find("a").length > 0) {
			obj.url = target.find("a")[0];
		}
		titles.push(obj);
		extractTopicPath(target.next(), titles);
	}
}

function trim(txt) {
	return txt.replace(/^\s+|\s+$/g, "");
}

jQuery(function() {initNavi();});


