/*
 * datetab.js- 「ニュース」メニュータブ表示用スクリプト
 *
 * ○変更履歴
 * 2010.03.10 h.adachi   : ページリニューアル対応
 * 2010.04.01 h.nakajima : カテゴリ「チケット」追加
 * 2010.09.02 w.morioka  : カテゴリ「TV・雑誌」追加
 */

/*** Script Start  ***/
// OnLoad Function (Main)
/*
 * yyyymm：データが表示されている年月
 * type  ：対象ページの種類(news or farm or ticket)
 */
setDateTab = function (yyyymm, type) {
	var base_year  = yyyymm.substring(0,4);
	var base_month = yyyymm.substring(4,6);
	var MONTH_CLASS_NAME = ['', 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
	
	// ドメイン名
	var domain_name = 'http://' + location.hostname;
	// XML格納ディレクトリ
	var xml_dir = '/G/gnews/xml/';
	// XMLPath
	var url = xml_dir + 'month_news.xml';
	// Parse Each XMLs
	var http = new JKL.ParseXML(url);
	// 出力データの全配列化
	http.setOutputArrayAll();
	var func = "";
	func = function(data){
		var str = '';
		var data_year, data_month;
		var data_node = data.itemlist[0].item;
		
		// 年度データ存在確認用フラグ
		var exist_flag = false;
		
		// データが1件以上の場合
		if(!isEmpty(data_node)){
			str += '<ul class="' + MONTH_CLASS_NAME[parseInt(base_month,10)] + '">\n';
			
			var len = data_node.length;
			for(var i=0;i<len;i++){
				data_year  = data_node[i].date[0].substring(0,4);
				data_month = data_node[i].date[0].substring(4,6);
				
				// タブ設定
				if(base_year == data_year){
					exist_flag = true;
					str += '<li class="' + MONTH_CLASS_NAME[parseInt(data_month,10)] + '">';
					
					// ページの表示月ではなく、urlタグに値がある場合
					if(base_month != data_month && !isEmpty(data_node[i].url)){
						str += '<a href="' + domain_name + '/G/gnews/' + type + '_' + data_node[i].date[0] + '.html">'
							+  parseInt(data_month, 10) + '月' + '</a>';
					}else{
						str += parseInt(data_month, 10) + '月';
					}
					str += '</li>\n';
				}
			}
			// 年度データが存在しない場合
			if(!exist_flag){
				str = '<ul>\n';
				for(var j=1;j<MONTH_CLASS_NAME.length;j++){
					str += '<li class="' + MONTH_CLASS_NAME[j] + '">' + j + '月</li>\n'
				}
			}
			str += '</ul>\n';
			// HTML書き込み(div id='date_tab')
			var element = document.getElementById('date_tab');
			if(element){ element.innerHTML = str };
			
			// 年度リスト設定（ニュースのみ）
			writeArchiveLink(data.itemlist[0].list, domain_name);
		}
	}
	http.async(func);
	http.parse();
}

// functions
/**
 * 年度リスト設定＋表示用関数 writeArchiveLink
 *
 * ○引数
 * list_node   ： リスト情報格納用XMLデータ
 * domain_name ： ドメイン名
 */
function writeArchiveLink(list_node, domain_name){
	var str = '';
	var news_dir = domain_name + '/G/gnews/';
	var CATEGORY_LIST = ['team', 'farm', 'event', 'ticket', 'media', 'info'];
	var CATEGORY_NAME = {
		'team'  : 'チーム',
		'farm'  : 'ファーム',
		'event' : 'イベント',
		'ticket': 'チケット',
		'media' : 'TV・雑誌',
		'info'  : 'その他'
	};
	
	for(var i=list_node.length-1;i>=0;i--){
		if(list_node[i].year[0] != 'head'){
			// ヘッダー
			str += '<div class="nav">\n'
				+  '<h3 class="nav_news' + list_node[i].year[0] + '">'
				+  '<a href="' + news_dir + 'news_' + list_node[i].year[0] + '.html">'
				+  'ニュース' + list_node[i].year[0] + '</a></h3>\n'
				+  '<ul>\n';
			
			// ニュース一覧
			str += '<li class="nav_news">'
				+  '<a href="' + news_dir + 'news_' + list_node[i].year[0] + '.html">ニュース一覧</a>'
				+  '</li>';			
			
			// ジャンル別ニュース一覧（2010年度から掲載）
			if(parseInt(list_node[i].year[0], 10) >= 2010){
				for(var j=0;j<CATEGORY_LIST.length;j++){
					str += '<li class="nav_' + CATEGORY_LIST[j] + '">'
						+  '<a href="' + news_dir + CATEGORY_LIST[j] + '_' + list_node[i].year[0] + '.html">'
						+  CATEGORY_NAME[CATEGORY_LIST[j]] + '</a></li>\n';
				}
			}
			// フッター
			str += '</ul>\n</div>\n';
		}
	}
	// HTML書き込み(div id='date_list')
	var element = document.getElementById('date_list');
	if(element){ element.innerHTML = str };
}

/**
 * 空判定
 */
function isEmpty(obj){ return (obj == null || obj == undefined || obj == '')? true: false; }

