/*
 * ajax.js - 更新情報 表示用スクリプト
 */
 
// 出力データ登録日格納用リスト
var out_data = new Array();

// HTML格納用変数
var list_str = '';
var prev_str = '';
var next_str = '';

var newsindex_url = './G/gnews/index.html';
var infoindex_url = './G/information/index.html';

// キャッシュ対策用タイムスタンプ
var set_date = new Date();
var set_time = Date.parse(set_date).toString();
var set_param = '?' + set_time.substring(0, 10);

/*** Script Start  ***/
// OnLoad Function (Main)
WriteUpdate = function () {
	// XML URL Path
	var url = new Array(
	  "../xml/top_news.xml" + set_param,
	  "../xml/top_info.xml" + set_param,
	  "../xml/top_ichioshi_info.xml" + set_param,
	  "../xml/top_ichioshi_pic.xml" + set_param,
	  "../xml/top_banner.xml" + set_param,
	  "../xml/top_banner_event.xml" + set_param,
	  "../xml/top_banner_support.xml" + set_param,
	  "../xml/top_banner_etc.xml" + set_param
	);
	
	// Parse Each XMLs
	for (i=0; i<url.length; i++){
		var http = new JKL.ParseXML(url[i]);
		var func = "";

		// ニュース
		if (i == 0){
			func = function(data){
				if(!isEmpty(data.itemList.item)){ setUpdate(data.itemList.item, 'news', 'update_news') };
			}
		}
		// 球団からのお知らせ
		if (i == 1){
			func = function(data){
				if(!isEmpty(data.itemList.item)){ setUpdate(data.itemList.item, 'info', 'update_info') };
			}
		}
		// イチオシ情報
		if (i == 2){
			func = function(data){
				if(!isEmpty(data.itemList.item)){
					setImgAndText(data.itemList.item, 'ichioshi', 'update_ichioshi_info', 60, '');
				}
			}
		}
		// イチオシ写真
		if (i == 3){
			func = function(data){
				if(!isEmpty(data.itemList.item)){
					setImgAndText(data.itemList.item, 'special', 'update_special', 150, '');
				}
			}
		}
		// バナー管理
		if (i == 4){
			func = function(data){
				if(!isEmpty(data.itemList.item)){
					setBanner(data.itemList.item, 'extra', 'extra_banner', 202, '');
				}
			}
		}
		// イベントバナー
		if (i == 5){
			func = function(data){
				if(!isEmpty(data.itemList.item)){
					setBanner(data.itemList.item, 'event', 'event_banner', 180, '');
				}
			}
		}
		// 協賛バナー
		if (i == 6){
			func = function(data){
				if(!isEmpty(data.itemList.item)){
					setBanner(data.itemList.item, 'support', 'support_banner',60 ,20);
				}
			}
		}
		// 右下バナー
		if (i == 7){
			func = function(data){
				if(!isEmpty(data.itemList.item)){
					setBanner(data.itemList.item, 'etc', 'etc_banner',200 ,'');
				}
			}
		}
		http.async(func);
		http.parse();
	}
}

// functions
/**
 * バナー設定用関数 setBanner
 */
function setBanner(data_node, kind, div_name, width, height){
	var i;
	var str = '';
	var data_length = data_node.length;
	
	if(!isEmpty(data_length)){
		for(i=0;i<data_node.length;i++){ str += getBannerHTML(data_node[i], kind, width, height) };
	}else{
		str += getBannerHTML(data_node, kind, width, height);
	}
	// HTML書き込み(div id=div_name)
	var element = document.getElementById(div_name);
	if(element){ document.getElementById(div_name).innerHTML = str };
}

/**
 * バナー用HTML設定用関数 getBannerHTML
 */
function getBannerHTML(data_node, kind, width, height){
	var str = '';

	if(kind!='support'){ str += '<p>' };
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url  + '" ';
		if(data_node.popupDisplay == '1'){
			str += 'target="_blank">';
		}else{
			str += '>';
		}
		str += '<img src="' + data_node.img + '" ';
		if(!isEmpty(width)){ str += 'width="' + width + '" ' };
		if(!isEmpty(height)){ str += 'height="' + height + '" ' };
		if(!isEmpty(data_node.alt)){
			str += 'alt="' + data_node.alt + '" title="' + data_node.alt + '" />';
		}else{
			str += '/>';
		}
		str += '</a>\n';
	}else{
		str += '<img src="' + data_node.img + '" ';
		if(!isEmpty(width)){ str += 'width="' + width + '" ' };
		if(!isEmpty(height)){ str += 'height="' + height + '" ' };
		if(!isEmpty(data_node.alt)){
			str += 'alt="' + data_node.alt + '" title="' + data_node.alt + '" />';
		}else{
			str += '/>\n';
		}
	}
	if(kind!='support'){ str += '</p>' };
	return str;
}

/**
 * 画像付きテキスト情報設定用関数 setImgAndText
 */
function setImgAndText(data_node, kind, div_name, width, height){
	var i;
	var str = '';
	var data_length = data_node.length;

	if(kind=='ichioshi'){ str += '<h3><span class="alt">イチオシ情報</span></h3>' };
	
	if(!isEmpty(data_length)){
		for(i=0;i<data_node.length;i++){ str += getImgAndTextHTML(data_node[i], kind, width, height) };
	}else{
		str += getImgAndTextHTML(data_node, kind, width, height);
	}
	// HTML書き込み(div id=div_name)
	var element = document.getElementById(div_name);
	if(element){ document.getElementById(div_name).innerHTML = str };
}

/**
 * 画像付きテキスト情報HTML設定用関数 getImgAndTextHTML
 */
function getImgAndTextHTML(data_node, kind, width, height){
	var str = '';
	
	// 表示種類に合わせてヘッダを変更する
	if(kind=='ichioshi'){
		str += '<div class="ichioshilist">';
	}else if(kind=='special'){
		str += '<div class="speciallist">';
	}
	
	// 画像
	str += '<p class="photo">';
	
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url  + '" ';
		if(data_node.popupDisplay == '1'){
			str += 'target="_blank">';
		}else{
			str += '>';
		}
		str += '<img src="' + data_node.img + '" ';
		if(!isEmpty(width)){ str += 'width="' + width + '" ' };
		if(!isEmpty(height)){ str += 'height="' + height + '" ' };
		if(!isEmpty(data_node.alt)){
			str += 'alt="' + data_node.alt + '" title="' + data_node.alt + '" />';
		}else{
			str += '/>';
		}
		str += '</a>';
	}else{
		str += '<img src="' + data_node.img + '" ';
		if(!isEmpty(width)){ str += 'width="' + width + '" ' };
		if(!isEmpty(height)){ str += 'height="' + height + '" ' };
		if(!isEmpty(data_node.alt)){
			str += 'alt="' + data_node.alt + '" title="' + data_node.alt + '" />';
		}else{
			str += '/>';
		}
	}
	str += '</p>';
	
	// テキスト
	str += '<p>';
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url  + '" ';
		if(data_node.popupDisplay == '1'){
			str += 'target="_blank">';
		}else{
			str += '>';
		}
		str += '<span class="date">' + data_node.date + '</span>';
		str += '<br/>' + changeLineCode(data_node.title);
		str += '</a>';
	}else{
		str += '<span class="date">' + data_node.date + '</span>';
		str += '<br/>' + changeLineCode(data_node.title);
	}
	str += '</p>';
	str += '</div>';
	return str;
}

/**
 * 更新情報設定用関数 setUpdate
 */
function setUpdate(data_node, kind, div_name){
	var i;
	var str = '';
	var data_length = data_node.length;
	
	// 表示種類に合わせてヘッダを変更する
	if(kind=='news'){
		str += '<div class="title_news">';
		str += '<h3><span class="alt">ニュース</span></h3>';
		str += '<p class="list"><a href="' + newsindex_url + '">ニュース一覧</a></p>';
		str += '</div>';
	}else if(kind=='info'){
		str += '<div class="title_info">';
		str += '<h3><span class="alt">球団からのお知らせ</span></h3>';
		str += '<p class="list"><a href="' + infoindex_url + '">お知らせ一覧</a></p>';
		str += '</div>';
	}

	// 一覧表示HTML設定
	str += '<ul>';
	if(!isEmpty(data_length)){
		for(i=0;i<data_node.length;i++){ str += getUpdateHTML(data_node[i], kind) };
	}else{
		str += getUpdateHTML(data_node, kind);
	}
	str += '</ul>';
	// HTML書き込み(div id=div_name)
	var element = document.getElementById(div_name);
	if(element){ document.getElementById(div_name).innerHTML = str };
}

/**
 * 更新情報HTML設定用関数 setUpdate
 */
function getUpdateHTML(data_node, kind){
	var str = '';
	str += '<li>';
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url + '">';
		if(kind=='news'){ str += '<span class="date">'+ data_node.date + '</span>' };
		str += data_node.title + '</a>';
	}else{
		if(kind=='news'){ str += '<span class="date">'+ data_node.date + '</span>' };
		str += data_node.title;
	}
	str += '</li>';
	return str;
}

/**
 * 改行コード(LF)→<br>変換用関数
 * 改行コード(LF)に対応。CRLFは確認中
 */
function changeLineCode(str){
	var returnCode = '';

	REbr = new RegExp(String.fromCharCode(10),"g");
	returnCode = str.replace(REbr,"<br>");
	return returnCode;
}

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