$(document).ready(function () {
		//トップページの各小見出しをツリービューで表示する設定
		//
		//jqueryのtreeviewプラグインを使って見出しを畳んだり開いたりする表示を
		//実現している。
		//
		//treeviewプラグインについては
		//http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
		//を参照のこと。ドキュメントとデモが見られます。

		//divをツリービュー化する補助関数。
		//順序依存なので関数化。
		//
		//0番目と1番目の見出しを開いて表示し、2番目以降はたたんで表示
		//
		//<div id="tree">
		//  <div class=".fold-control">
		//  ...
		//  </div>
		//  <!-- 実際のツリーはここから -->
		//  <ul>
		//    <li><span>見出し</span>
		//	</li>
		//	...
		//  </ul>
		//  <!-- ここまで -->
		//</div>
		//
		//について、
		//make_treeview("#tree");
		//でtreeをツリービューで表示
		var make_treeview = function (id, n)
		{
			n = n || 1;

			$(id + " ul li:gt(" + n + ")").addClass("closed");
			$(id + " ul").treeview({
				animated: 200,
				collapsed: false,
				control: id + " .fold-control"
			});
		};

		make_treeview("#update-info");
		make_treeview("#news");
		make_treeview("#important-info");
		make_treeview("#security-news");

		var toggle_fold = function (obj, mode) {
			var control_obj = null;

			if (mode === "open") {
				obj.html("").removeClass("curr");
				obj.prev("a").html("閉じる").addClass("curr");;

				obj.siblings("a.toggle").html("").removeClass("select");
			}
			else if (mode === "close") {
				obj.html("").removeClass("curr");
				obj.next("a").html("開く").addClass("curr");

				obj.siblings("a.toggle").html("").removeClass("select");
			}
			else if (mode === "hitarea") {
				control_obj = obj.parents("ul").siblings("div.fold-control");

				if (! control_obj.children("a.toggle").hasClass("select")) {
					control_obj.children("a.close").html("閉じる").removeClass("curr");
					control_obj.children("a.open").html("開く").removeClass("curr");
					control_obj.children("a.toggle").html("切替").addClass("select");
				}
			}
		}

		$(".fold-control .close").click(
			function () {
				toggle_fold($(this), "close");
				$(this).removeClass("initial");
				$(this).siblings("a.initial").removeClass("initial");
			}
		);

		$(".fold-control .open").click(
			function () {
				toggle_fold($(this), "open");
				$(this).removeClass("initial");
				$(this).siblings("a.initial").removeClass("initial");
			}
			);

		$(".fold-control .toggle").click(
				function () {
					var curr_obj = $(this).prevAll("a.curr");

					if (! curr_obj.hasClass("initial")) {
						if (curr_obj.hasClass("open")) {
							toggle_fold(curr_obj, "open");
						}
						else if (curr_obj.hasClass("close")) {
							toggle_fold(curr_obj, "close");
						}
					}
				}
			);

		$("ul.treeview li div.hitarea").click(
				function () {
					toggle_fold($(this), "hitarea");
				}
				);
})

