//RSSURL
var feedurl = new Array(5);
feedurl[0] = "/js/mmrss/latestinfoall.xml";
feedurl[1] = "/js/mmrss/latestinformation.xml";
feedurl[2] = "/js/mmrss/functionup.xml";
feedurl[3] = "/js/mmrss/eventall.xml";
feedurl[4] = "/js/mmrss/maintenance.xml";
feedurl[5] = "/js/mmrss/pressrelease.xml";

//カテゴリー
var category = new Array(5);
category[0] = '一覧';
category[1] = 'お知らせ';
category[2] = '機能アップ';
category[3] = 'イベント';
category[4] = 'メンテナンス';
category[5] = 'プレスリリース';

var disp_wnum=20;		//表示文字数

//宣言クラス
function item(){
	var title;
	var url;
	var url_target;
	var category;
	var date;
}

//RSS情報取得処理
window.onload = function() {
	for (var rss_count = 0 ;rss_count<feedurl.length ;rss_count++) {
		requestFile(feedurl[rss_count]);
	}
}

function requestFile(fileName) {
	//time
	var time = new Date();
	var num = time.getTime();

	var xmlHttpReq = createHttpRequest()
	xmlHttpReq.open("GET", fileName + "?" + num ,true)

	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState==4) {
			var xmlData = xmlHttpReq.responseXML;

			var xml_titles = xmlData.getElementsByTagName("title");
			var xml_title = xml_titles[0].childNodes[0].nodeValue;
			var ctg_flg=0;			//カテゴリーフラグ
			var infoicon = "";
			if (xml_title.indexOf("お知らせ") > 0) {
				//機能アップ
				ctg_flg = 1;
				var container = document.getElementById("latestinformation");
			}
			else if (xml_title.indexOf("機能アップ") > 0) {
				//お知らせ
				ctg_flg = 2;
				var container = document.getElementById("functionup");
			}
			else if (xml_title.indexOf("イベント") > 0) {
				//イベント
				ctg_flg = 3;
				var container = document.getElementById("eventall");
			}
			else if (xml_title.indexOf("メンテナンス") > 0) {
				//メンテナンス
				ctg_flg = 4;
				var container = document.getElementById("maintenance");
			}
			else if (xml_title.indexOf("プレスリリース") > 0) {
				//プレスリリース
				ctg_flg = 5;
				var container = document.getElementById("pressrelease");
			}
			else {
				//一覧
				ctg_flg = 0;
				var container = document.getElementById("latestinfoall");
			}
			//HTMLbody初期化
			var html = "";

			try{
				//RSS情報取得
				var cnt = 0;
				var itemData = xmlData.getElementsByTagName("item");

				for (var i = 0 ;i<itemData.length ;i++) {

					if(cnt>9) {
						break;
					}

					var entry = itemData[i];
					//カテゴリ
					var flg = false;
					for(var c = 0; c < entry.getElementsByTagName("category").length; c++){
						var tags = entry.getElementsByTagName("category")[c].childNodes[0].nodeValue;

						//一覧
						if(ctg_flg == 0) {
							switch(tags){
								case 'お知らせ': //お知らせ
									infoicon = '<img src="/images/icon_linfo.gif" alt="お知らせ" />';
									break;
								case '機能アップ': //機能アップ
									infoicon = '<img src="/images/icon_func.gif" alt="機能アップ" />';
									break;
								case 'イベント': //イベント
									infoicon = '<img src="/images/icon_event.gif" alt="イベント" />';
									break;
								case 'メンテナンス': //メンテナンス
									infoicon = '<img src="/images/icon_mtnc.gif" alt="メンテナンス" />';
									break;
								case 'プレスリリース': //プレスリリース
									infoicon = '<img src="/images/icon_pressr.gif" alt="プレスリリース" />';
									break;
								case 'ユーザーイベント': //ユーザイベント
									infoicon = '<img src="/images/icon_usrevent.gif" alt="ユーザイベント" />';
									break;
								default:
									break;
							}
							flg = true;
							break;

						} else {
						//一覧以外

							if(category[ctg_flg].match(tags)){
								switch(ctg_flg){
									case 1: //お知らせ
										infoicon = '<img src="/images/icon_linfo.gif" alt="お知らせ" />';
										break;
									case 2: //機能アップ
										infoicon = '<img src="/images/icon_func.gif" alt="機能アップ" />';
										break;
									case 3: //イベント
										infoicon = '<img src="/images/icon_event.gif" alt="イベント" />';
										break;
									case 4: //メンテナンス
										infoicon = '<img src="/images/icon_mtnc.gif" alt="メンテナンス" />';
										break;
									case 5: //プレスリリース
										infoicon = '<img src="/images/icon_pressr.gif" alt="プレスリリース" />';
										break;
									default:
										break;
								}

								flg = true;
								break;
							}
						}
					}

					//情報が無い場合
					if( flg == false){
						continue;
					}

					//開始タグ
					html += '<div class="newslist"><dl>\n';

					//日付の取得
					var date = getEntryDate(entry.getElementsByTagName("pubDate")[0].childNodes[0].nodeValue);
					if(date==null) {
						break;
					}

					//日付
					date_s = date.substr(5,5);
					html += '<dt>'+date_s+'</dt>\n';

					//お知らせアイコン
					html += '<dd>'+infoicon+'</dd>\n';

					//タイトル
					var title = entry.getElementsByTagName("title")[0].childNodes[0].nodeValue;
					if(title.length > disp_wnum) {
						title = title.substr(0,disp_wnum)+'…';
					}
					html += '<dd><a href="'+ entry.getElementsByTagName("link")[0].childNodes[0].nodeValue +'">'+title+'</a></dd>';

					//NEWアイコン
					if(checkToday(entry.getElementsByTagName("pubDate")[0].childNodes[0].nodeValue)){
						//dtタグへ日付(YYYY/MM/DD)設定
						html += '<dd><img src="/images/new.gif" alt="NEW" class="new"/></dd>\n';
					}

					//終了タグ
					html += '</dl></div>\n';

					//カウントUP
					cnt++;
				}

				if(cnt != 0){
					//出力
					container.innerHTML=html;

				}else{
					container.innerHTML='<div class="newslist"><dl><dd>'+category[ctg_flg]+'はありません。</dd></dl></div>';
				}

			}catch(e){
				container.innerHTML= '<div class="newslist"><dl><dd>'+category[ctg_flg]+'の取得に失敗しました。</dd></dl></div>';
			}
			ctg_flg++;
		}
	}
	xmlHttpReq.send(null)
}

function createHttpRequest() {
	var x = null;

	//IE7,Firefox, Safari
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}

	//IE6
	try {
		return new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
		// IE5
		try {
			return new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			x = null;
		}
	}
	return x;
}

//2桁変換
function padZero(value) {
	return ("0" + value).slice(-2)
};

//ミリ秒
function toMiliSec(value) {
	return Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), 1)
};

//日付編集(YYYY/MM/DD HH:MM)
function toLocaleDateString(dt){
	return dt.getFullYear()+'/'+padZero(dt.getMonth()+1)+'/'+padZero(dt.getDate())+' '+padZero(dt.getHours())+':'+padZero(dt.getMinutes());
}

//メンテナンス情報日付比較
function getEntryDate(dt){

	var ddt = new Date(dt);
	var entryDate = toLocaleDateString(ddt);

	return entryDate;
}

//Newアイコン
function checkToday(dt){

	//日付Date型変換
	var dd = new Date(dt);
	var adDate = padZero(dd.getFullYear())+"/"+padZero((dd.getMonth()+1))+"/"+padZero(dd.getDate())+' '+padZero(dd.getHours())+':'+padZero(dd.getMinutes());
	var dDate = toMiliSec(dd);

	//今日の日付取得
	var today = new Date();
	var atDate = padZero(today.getFullYear())+"/"+padZero((today.getMonth()+1))+"/"+padZero(today.getDate())+' '+padZero(today.getHours())+':'+padZero(today.getMinutes());
	var tDate = toMiliSec(today);
	
//	alert("RSS"+adDate+" >= 今日"+atDate);
	var pasttime = (tDate-dDate)/86400000;
	
	//YYYY/MM/DD形式でチェック
	if(pasttime < 1){
		return true;
	}
	return false;
}
