// 定義
	var ia = {
		all: ["na1", "na2", "na3", "na4", "na11", "na12", "na13", "na14", "na21", "na22", "na23", "na24"], 
		id0: ["na1", "na2", "na3", "na4"], 
		id1: ["na11", "na12", "na13", "na14"], 
		id2: ["na21", "na22", "na23", "na24"], 
		d: ["一般", "経済", "IT他"]
	};
	var ni = ia["d"].length;
// データファイルの選択１
	function loadFirst2(n) {
		znaDisp("block");
		$("newssub").innerHTML = pNewsSub();
		zmSelect(ni, "sn");
		showFile(ia["all"], "t");
	}
// データファイルの選択２
	function loadW(url) {
		znaDisp("none");
		zmSelect(url, "sn");
		showFile(ia["id" + url], "w");
	}
// コンテンツの表示非表示
	function showFile(ids, menu) {
		for(var i=0; i<ia["all"].length; i++) {
			$(ia["all"][i]).style.display = "none";
			$("a" + ia["all"][i]).style.display = "none";
		}
		for(var i=0; i<ids.length; i++) {
			$(ids[i]).style.display = "block";
			if(menu=='w') {
				$("a" + ids[i]).style.display = "block";
			}
			loadFile(ids[i], menu);
		}
		var v = (menu=="t") ? "visible" : "hidden";
	}
// データファイルの読み込み
	function loadFile(id, menu) {
		var id = r(id);
		var fName =  "./xml/?id=" + id;
		var hObj = createXMLHttpRequest();
		if(hObj) {
			hObj.open("GET", fName, true);
			hObj.onreadystatechange = function() { 
				setTimeout(function() {
  				if(hObj.readyState == 0 || hObj.readyState == 4) {
						return;
					}
					hObj.abort();
					return NotFiles(id);
				}, 15000);
				switch(hObj.readyState) {
				case 4 :
					var t = hObj.responseText;
					if(!t) {
						return NotFiles(id);
					}
					var tmp = [];
					var data = eval("(" + t + ")");
					if(!data) {
						return NotFiles(id);
					}
					$(id).innerHTML = pHatenaB(tmp, data, id, menu);
					break;
				default :
 					$(id).innerHTML = "<p><img src=\"./sub/load.gif\" alt=\"[load]\" /> Now Loading...</p>";
 				}
			}
			hObj.send(null);
		}
	}
	function NotFiles(id) {
		$(id).innerHTML = "<p class=\"f10\">（データを取得できませんでした）</p>";
	}
// 表示処理
	function pHatenaB(tmp, data, id, menu) {
		var num = (menu=="t") ? 1 : data.item.length;
		for(var i=0; i<num; i++){
			var more = (data.item[i].a3) ? " <br />\n<div class=\"fbody\" id=\"v" + id + i + "\" style=\"display:none;\">\n" + data.item[i].a3 + "\n</div>\n" : "<br id=\"v" + id + i + "\" />";
			tmp.push("\n<a href=\"javascript:hidesss('" + id + i + "');\" title=\"ニュースの概要を見る\" class=\"non\"><img id=\"i" + id + i + "\" src=\"./sub/img2.gif\" alt=\"+\" /></a> <a href=\"" + data.item[i].a1 + "\" class=\"out\" target=\"_blank\">" + data.item[i].a2 + "</a> <span class=\"count\"><a href=\"http://b.hatena.ne.jp/entry/" + data.item[i].a1 + "\" title=\"この記事をブックマークしているユーザーのリストを見る\" target=\"_blank\">" + data.item[i].a4 + " users</a></span>" + more);
		}
		return tmp.join("");
	}
// メニュー処理
	function pNewsSub() {
		var t="";
		for(var i=0; i<ni; i++) {
			t += "<span id=\"sn" + i + "\"><a href=\"#toptitle\" onclick=\"return loadW(" + i + ");\" onkeypress=\"return loadW(" + i + ");\" title=\"" + ia["d"][i] + "ニュースの一覧を見る\">" + ia["d"][i] + "</a></span>　\n";
		}
		return "　<span id=\"sn" + ni + "\"><a href=\"#toptitle\" onclick=\"return loadFirst2(1);\" onkeypress=\"return loadFirst2(1);\" title=\"トップニュースを見る\">トップ</a></span>　\n" + t;
	}
// 表示非表示
	function hidesss(num) {
		var a=$("v" + num).style;
		a.display = (a.display=="none") ? "block" : "none";
		var b=$("i" + num), img1="./sub/img1.gif", img2="./sub/img2.gif";
		b.src = (b.src.match(/img1/i)) ? img2 : img1;
	}
// 小見出しの表示非表示
	function znaDisp(bn) {
		for(var i=0; i<ni; i++) {
			$("zna" + i).style.display = bn;
		}
	}
// メニューの強調
	function zmSelect(url, id) {
		for(var i=0; i<=ni; i++) {
			$(id + i).style.fontWeight = "normal";
			$(id + i).style.backgroundColor = "#fffffe";
		}
		$(id + url).style.fontWeight = "bold";
		$(id + url).style.backgroundColor = "yellow";
	}
// http://ablog.seesaa.net/article/33686378.html
	function r(s) {
		if(!s) return;
		return String(s).replace(/([<>&\"])/gm, function(m0, m1) {
			return {'<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;'}[m1];
		});
	}
