/* ================================================== */
/* 社会保険診療報酬支払基金　RSSリーダ Javascript     */
/* rss-reader.js                                      */
/* 【注意】必ずjquery-1.4.2.min.js の後に実行すること */
/*         Atom1.0表示用に最適化                      */
/*                                                    */
/* 来歴---------------------------------------------- */
/* 2010/10/13　新規作成                               */
/* 2011/03/15　「強調」処理追加                       */
/*                                                    */
/* ================================================== */

/* 初期処理：処理変数定義 */
// 「重要なお知らせ」のエントリーが無い場合のメッセージ(char)
var outputNoEntryMassageImportantMessages = '現在、重要なお知らせはありません。';

// 「お知らせ」のエントリーが無い場合のメッセージ(char)
var outputNoEntryMassageMessages          = '現在、お知らせはありません。';

// 「ニュースリリース」のエントリーが無い場合のメッセージ(char)
var outputNoEntryMassageNewsRelease       = '現在、ニュースリリースはありません。';

var displayMessagesMax = 5;		// 「お知らせ」」RSSエントリーを表示する最大数(int)　※「重要なお知らせ」は制限なし
var displayNewsMax     = 5;		// 「ニュースリリース」RSSエントリーを表示する最大数(int)


var inputLocationURL              = location.href;					// 現在開いているページのURL(char)
var tmpLocationCategory           = inputLocationURL.split("/");	// URLを"/"で区切った時の一時格納用配列変数(char)
var inputLocation2ndCategory      = tmpLocationCategory[3];			// 現在開いているページの2階層のカテゴリ or ページ名(char)
var inputMessagesRSS              = inputLocalHeader + '/rss/messages/atom.xml';		// 「重要なお知らせ」「お知らせ」RSSファイルの格納場所(char)
var inputNewsReleaseRSS           = inputLocalHeader + '/rss/news-release/atom.xml';	// 「ニュースリリース」RSSファイルの格納場所(char)
var outputImportantMessagesDispID = '#important-messages';			// 「重要なお知らせ」RSSデータ表示場所(HTML上)(char)
var outputMessagesDispID          = '#messages';					// 「お知らせ」RSSデータ表示場所(HTML上)(char)
var outputNewsReleaseDispID       = '#news-release';				// 「ニュースリリース」RSSデータ表示場所(HTML上)(char)
var inputTopPageFlag              = false;							// トップページ判定用フラグ


/* 初期処理：onload時処理定義 返り値：なし */
$(document).ready(function(){

	// トップページ判定
	if($("#branding").length > 0){
		inputTopPageFlag = true;
	}

	// 「重要なお知らせ」「お知らせ」表示
	getNaviXML(inputMessagesRSS,displayRSSMessages);

	// 「ニュースリリース」表示
	if($(outputNewsReleaseDispID).size() > 0){
		getNaviXML(inputNewsReleaseRSS,displayRSSNewsRelease);
	}

});


/* 表示処理:「お知らせ」RSSデータの表示　返り値：なし */
function displayRSSMessages(getXMLData){

	// 変数定義
	var displayCount         = 0;			// アクセスランキング表示数(int)
	var tmpTailNodeFlag      = false;		// 現在のノードがXMLの最後尾を示すフラグ(boolean)
	var tmpImportantData     = '';			// 「重要なお知らせ」データ蓄積用一時変数(char)
	var tmpMessagesData      = '';			// 「お知らせ」データ蓄積用一時変数(char)
	var tmpDateChar          = new Array;	// 日付データを"-"で区切った時の一時格納用配列変数(char)
	var tmpImportantFlag     = false;		// "重要"フラグ(boolean)
	var tmpImportantDispFlag = false;		// 「重要なお知らせ」に掲載するフラグ(boolean)
	var outputDateChar       = '';			// 出力用日付データ(char)
	var outputTextChar       = '';			// 出力用テキストデータ(char)
	var outputInsertData     = '';			// 最終的に出力する表示するデータ(char)

	// ヘッダ部分定義
	outputInsertData += '<ul>';

	/* RSSエントリー表示処理 */

	// 表示エリア初期化
	if($(outputImportantMessagesDispID).size() > 0){
		$(outputImportantMessagesDispID).empty();
	}
	if($(outputMessagesDispID).size() > 0){
		$(outputMessagesDispID).empty();
	}

	// エントリー表示処理
	$(getXMLData).find("entry").each(function(){

		outputDateChar = '';
		outputTextChar = '';
		tmpImportantFlag = false;
		tmpImportantDispFlag = false;
		tmpNewWindowFlag = false;
		tmpEmphasisFlag  = false;

		// 年月日の抽出
		tmpDateChar = $(this).find("updated").text().substring(0,10).split("-");

		// 年月日の出力
		outputDateChar = tmpDateChar[0] + '年' + tmpDateChar[1] + '月' + tmpDateChar[2] + '日';

		// 「重要」の有無のチェック
		if($(this).find("category").attr("term").indexOf("重要",0) > -1){
			tmpImportantFlag = true;
			if($(outputImportantMessagesDispID).size() > 0){
				tmpImportantDispFlag = true;
			}
		}
		if($(this).find("category").attr("term").indexOf("掲載終了",0) > -1){
			tmpImportantDispFlag = false;
		}
		if($(this).find("category").attr("term").indexOf("強調",0) > -1){
			tmpEmphasisFlag = true;
		}

		// 対象がURLデータを持っているかチェック
		if($(this).find("link").attr("href") != ''){
			// 対象が新規ウィンドウとなるファイルかのチェック
			if($(this).find("link").attr("href").indexOf(".pdf", 0) > -1){
				tmpNewWindowFlag = true;
			}
			
			if(tmpNewWindowFlag){
				outputTextChar = '<a href="' + inputLocalHeader + $(this).find("link").attr("href") + '" target="_blank';
			}else{
				outputTextChar = '<a href="' + inputLocalHeader + $(this).find("link").attr("href");
			}

			// 「強調」の有無
			if(tmpEmphasisFlag){
				outputTextChar += '" style="color: #D90000; font-weight: bold;">';
			}else{
				outputTextChar += '">';
			}

			outputTextChar += $(this).find("title").text() + '</a>';
		}else{
			outputTextChar += $(this).find("title").text();
		}

		outputTextChar += displayNewIcon(tmpDateChar[0],tmpDateChar[1],tmpDateChar[2]);

		/* XMLデータ表示処理 */

		// 「重要なお知らせ」用データ格納
		if($(outputImportantMessagesDispID).size() > 0 && tmpImportantDispFlag == true){
			// ダウンロードアイコンの有無
			if(tmpNewWindowFlag){
				tmpImportantData += '<li class="download">';
			}else{
				tmpImportantData += '<li>';
			}
			tmpImportantData += outputTextChar + '</li>';

		// 「お知らせ」用データ格納
		}else if($(outputMessagesDispID).size() > 0){

			// トップページ以外ならば、displayCountをリセットし、全て表示
			if(!inputTopPageFlag){
				displayCount = 0;
			}

			// displayMaxの回数分出力していなければ、データ出力
			if(displayCount < displayMessagesMax){
				tmpMessagesData += '<dl class="news">';
				tmpMessagesData += '<dt>' + outputDateChar + '</dt>';
				// ダウンロードアイコンの有無
				if(tmpNewWindowFlag){
					tmpMessagesData += '<dd class="download">';
				}else{
					tmpMessagesData += '<dd>';
				}
				if(tmpImportantFlag){
					tmpMessagesData += '<img src="' + inputLocalHeader + '/images/contents_icon_important.png" width="29" height="15" alt="重要">';
				}
				tmpMessagesData += outputTextChar + '</dd>';
				tmpMessagesData += '</dl>';
				displayCount++;
			}
		}

	});


	// 「重要なお知らせ」データの出力
	if($(outputImportantMessagesDispID).size() > 0){
		// 出力用データが無い場合はメッセージを表示
		if(tmpImportantData == ''){
			outputInsertData = '<p>' + outputNoEntryMassageImportantMessages + '</p>';
		}else{
			outputInsertData = '<ul class="important-news">' + tmpImportantData + '</ul>';
		}
		$(outputImportantMessagesDispID).append(outputInsertData);
	}

	// 「お知らせ」データの出力
	if($(outputMessagesDispID).size() > 0){
		// 出力用データが無い場合はメッセージを表示
		if(tmpMessagesData == ''){
			outputInsertData = '<p>' + outputNoEntryMassageMessages + '</p>';
		}else{
			outputInsertData = tmpMessagesData;
		}
		$(outputMessagesDispID).append(outputInsertData);
	}

}


/* 表示処理:「ニュースリリース」RSSデータの表示　返り値：なし */
function displayRSSNewsRelease(getXMLData){

	// 変数定義
	var displayCount     = 0;			// アクセスランキング表示数(int)
	var tmpTailNodeFlag  = false;		// 現在のノードがXMLの最後尾を示すフラグ(boolean)
	var tmpNewsData      = '';			// 「ニュースリリース」データ蓄積用一時変数(char)
	var tmpDateChar      = new Array;	// 日付データを"-"で区切った時の一時格納用配列変数(char)
	var outputDateChar   = '';			// 出力用日付データ(char)
	var outputTextChar   = '';			// 出力用テキストデータ(char)
	var outputInsertData = '';			// 最終的に出力する表示するデータ(char)

	// ヘッダ部分定義
	outputInsertData += '<ul>';

	/* RSSエントリー表示処理 */

	// 表示エリア初期化
	$(outputNewsReleaseDispID).empty();

	// エントリー表示処理
	$(getXMLData).find("entry").each(function(){

		outputDateChar = '';
		outputTextChar = '';

		// 年月日の抽出
		tmpDateChar = $(this).find("updated").text().substring(0,10).split("-");

		// 年月日の出力
		outputDateChar = tmpDateChar[0] + '年' + tmpDateChar[1] + '月' + tmpDateChar[2] + '日';
		outputTextChar = '<a href="' + inputLocalHeader + $(this).find("link").attr("href") + '">' + $(this).find("title").text() + '</a>' + displayNewIcon(tmpDateChar[0],tmpDateChar[1],tmpDateChar[2]);

		// 対象がURLデータを持っているかチェック
		if($(this).find("link").attr("href") != ''){
			// 対象が新規ウィンドウとなるファイルかのチェック
			if($(this).find("link").attr("href").indexOf(".pdf", 0) > -1){
				tmpNewWindowFlag = true;
			}
			
			if(tmpNewWindowFlag){
				outputTextChar = '<a href="' + inputLocalHeader + $(this).find("link").attr("href") + '" target="_blank">';
			}else{
				outputTextChar = '<a href="' + inputLocalHeader + $(this).find("link").attr("href") + '">';
			}
			outputTextChar += $(this).find("title").text() + '</a>';
		}else{
			outputTextChar += $(this).find("title").text();
		}
		outputTextChar += displayNewIcon(tmpDateChar[0],tmpDateChar[1],tmpDateChar[2]);

		/* XMLデータ表示処理 */

		// 「ニュースリリース」用データ格納
		// トップページ以外ならば、displayCountをリセットし、全て表示
		if(!inputTopPageFlag){
			displayCount = 0;
		}

		// displayMaxの回数分出力していなければ、データ出力
		if(displayCount < displayNewsMax){
			tmpNewsData += '<dl class="news">';
			tmpNewsData += '<dt>' + outputDateChar + '</dt>';
			// ダウンロードアイコンの有無
			if(tmpNewWindowFlag){
				tmpNewsData += '<dd class="download">';
			}else{
				tmpNewsData += '<dd>';
			}
			tmpNewsData += outputTextChar + '</dd>';
			tmpNewsData += '</dl>';
			displayCount++;
		}

	});

	// 「ニュースリリース」データの出力
	// 出力用データが無い場合はメッセージを表示
	if(tmpNewsData == ''){
		outputInsertData = '<p>' + outputNoEntryMassageNewsRelease + '</p>';
	}else{
		outputInsertData = tmpNewsData;
	}
	$(outputNewsReleaseDispID).append(outputInsertData);

}

