//XML読み込み関数
function readXml(){
	var myxml="gyomu/topics.xml";

	// 30日より前の情報を表示しない
	var elp = 30;					// 定数を設定する

	// 30日前の年月日を取得する
	var dt30 = new Date((new Date()).getTime() - elp * 86400000);

	// 7日前の年月日を取得する
	var dt7 = new Date((new Date()).getTime() - 7 * 86400000);

	// 年を取得
	var nYear30 = dt30.getYear();
	if (nYear30 < 2000) {
		 nYear30 += 1900;
	}
	var nYear7 = dt7.getYear();
	if (nYear7 < 2000) {
		 nYear7 += 1900;
	}

	// 月を取得
	var nMonth30 = dt30.getMonth() + 1;
	if (nMonth30 < 10) {
		nMonth30 = "0" + nMonth30;	// nMonthを2桁にする
	}
	var nMonth7 = dt7.getMonth() + 1;
	if (nMonth7 < 10) {
		nMonth7 = "0" + nMonth7;	// nMonthを2桁にする
	}

	 // 日を取得
	var nDay30 = dt30.getDate();
	if (nDay30 < 10) {
		nDay30 = "0" + nDay30;		// nDateを2桁にする
	}
	var nDay7 = dt7.getDate();
	if (nDay7 < 10) {
		nDay7 = "0" + nDay7;		// nDateを2桁にする
	}

	// YYYY-MM-dd
	var nDate30 = "" + nYear30 + nMonth30 + nDay30;
	var nDate7 = "" + nYear7 + nMonth7 + nDay7;

	if (window.XMLHttpRequest) {
		var ajax = new XMLHttpRequest();
		ajax.open("GET", myxml, false);

		// キャッシュを使わないように指定
		// Cache-ControlやPragmaの指定は確実ではないらしい
		ajax.setRequestHeader('If-Modified-Since', 'Thu, 01 Jan 1970 00:00:00 GMT');
		ajax.send(null);

		var xmldoc = ajax.responseXML;
		var root = xmldoc.documentElement;
		writeNews(root, nDate30, nDate7);
	} else if (window.ActiveXObject) {
		var xmldom = new ActiveXObject('microsoft.XMLDOM');
		xmldom.async = false;
		xmldom.load(myxml);

		var root = xmldom.documentElement;
		writeNews(root, nDate30, nDate7);
	} else {
		// Ajax等が使えないブラウザ

		var n = document.getElementById("news_contents");
		n.innerHTML = '<p>申し訳ありませんが、お使いのブラウザではこの情報を正常に表示できません。<br>お手数ですが、<a href="/cgi-bin/fukuoka/top/topicsparser.cgi"><img src="images/kyushu.png" alt="福岡管区気象台内ページへのリンク">新着情報</a>からご利用ください。</p>';

		return;
	}
}

function writeNews(doc, d30, d7) {
	var news = doc.getElementsByTagName("News");

	var ntext = [];
	var cntr = 0;

	// 新着情報の数だけ繰り返す
	for (var i = 0; i < news.length; ++i) {
		var n = news[i];
		var c = [];
		var cn = n.childNodes;

		// 子ノードの数だけ繰り返す
		for (var j = 0; j < cn.length; ++j) {
			if (cn[j].nodeType == 1) {
				c[cn[j].nodeName] = cn[j].firstChild.nodeValue;
			}
		}

		if (!c["Date"].match(/^(\d+)-(\d+)-(\d+)$/)) {
			continue;
		}
		var d = "" + RegExp.$1 + RegExp.$2 + RegExp.$3;

		// 新着情報は5件まで、かつ30日以内
		if (cntr > 4) {
			break;
		}
		if (d < d30) {
			continue;
		}

		// aタグの作成
		ntext.push('<a href="' + c['Source']);
		var icon = '';
		if (c['Source'].match(/\.pdf$/i)) {
			icon = '<img src="images/pdf.png" alt="PDFファイル" class="icon">';
		} else if (c['Source'].indexOf('www.jma.go.jp') != -1) {
			icon = '<img src="images/jmalogo.png" alt="気象庁ホームページへのリンク" class="icon">';
		} else {
			icon = '<img src="images/html.png" alt="HTMLファイル" class="icon">';
		}

		// ActionがLinkならself　Popupなら別ウィンドウで開く
		if(c["Action"] == "Link"){
			ntext.push('">' + icon + c['Title'] + '[' + c['Date'] + "]</a>");
		}else{
			ntext.push('" target="_blank">' + icon + c['Title'] + '[' + c['Date'] + "]</a>");
		}

		// 7日前より新しい情報はNewの画像をつける
		if(d7 < d) {
			ntext.push('<img src="images/top/new.png" height="12" alt="新着情報">' + '<br>\n');
		}else{
			ntext.push('<br>\n');
		}

		++cntr;
	}

	if (cntr == 0) {
		ntext.push('<h1>現在、新着情報はありません</h1>');
	}

	// 書き出しを行う
	document.getElementById("news_contents").innerHTML = ntext.join('');
}

// HTML読み込み後にXMLを読み込むように、イベントリスナを追加する
if (window.addEventListener) {
	// 一般的なブラウザの場合
	window.addEventListener("load", readXml, true);
} else if (window.attachEvent) {
	// IEの場合
	window.attachEvent("onload", readXml);
}
