/*
 * ajax.js - トップページ(HTML版)更新情報 表示用スクリプト
 *
 * ○変更履歴
 * 2010.03.20 h.adachi : リニューアル対応追加
 * 2010.04.02 h.adachi : 「ステージG-KING」リンクなし対応追加
 * 2011.11.18 y.abe    :  GoogleAnalytics対応外部リンク対応追加
 */

/*** Script Start  ***/
// OnLoad Function (Main)
WriteUpdate = function () {
	// キャッシュ対策用タイムスタンプ
	var set_date = new Date();
	var set_time = Date.parse(set_date).toString();
	var set_param = '?' + set_time.substring(0, 10);
	
	// XML URL Path
	var url = new Array(
	  "../xml/top_pickup.xml",
	  "../xml/top_link.xml",
	  "../xml/top_ichioshi_pic.xml",
	  "../xml/g-king.xml",
	  "../xml/top_banner.xml",
	  "../xml/top_banner_event.xml",
	  "../xml/top_banner_support.xml",
	  "../xml/top_banner_etc.xml"
	);
	
	// Parse Each XMLs
	for (i=0; i<url.length; i++){
		var http = new JKL.ParseXML(url[i] + set_param);
		// 出力データの全配列化
		http.setOutputArrayAll();
		var func = "";
		// ピックアップ
		if (i == 0){
			func = function(data){
				if(!isEmpty(data.itemList)){
					setPickUp(data.itemList[0].item, 'pickup');
				}
			}
		}
		// 関連リンク
		if (i == 1){
			func = function(data){
				if(!isEmpty(data.itemList[0].item)){
					setLinkHTML(data.itemList[0].item, 'link', 'top_link', 40, '');
				}
			}
		}
		// イチオシ写真
		if (i == 2){
			func = function(data){
				if(!isEmpty(data.itemList[0].item)){
					setImgAndText(data.itemList[0].item, 'special', 'update_special', 160, '');
				}
			}
		}
		// ステージG-KING
		if (i == 3){
			func = function(data){
				if(!isEmpty(data.itemList[0].item)){
					setGking(data, 'set_gking');
				}
			}
		}
		// 左上バナー
		if (i == 4){
			func = function(data){
				if(!isEmpty(data.itemList[0].item)){
					setBanner(data.itemList[0].item, 'left', 'left_banner', 200, '');
				}
			}
		}
		// イベントバナー
		if (i == 5){
			func = function(data){
				if(!isEmpty(data.itemList[0].item)){
					setBanner(data.itemList[0].item, 'event', 'event_banner', 200, '');
				}
			}
		}
		// 協賛バナー
		if (i == 6){
			func = function(data){
				if(!isEmpty(data.itemList[0].item)){
					setBanner(data.itemList[0].item, 'support', 'support_banner', 60, 20);
				}
			}
		}
		// 右下バナー
		if (i == 7){
			func = function(data){
				if(!isEmpty(data.itemList[0].item)){
					setBanner(data.itemList[0].item, 'etc', 'etc_banner', 200, '');
				}
			}
		}
		http.async(func);
		http.parse();
	}

	// レクタングルバナー
	var str = '';
	str += '<p class="ad_large">\n'
		+  '<iframe scrolling="no" marginheight="0" marginwidth="0" border="0" frameborder="no" height="200" width="200" src="/pts/ad/ad_large.html"></iframe>\n'
		+  '</p>\n';
	var element = document.getElementById('ad_large');
	if(element){ element.innerHTML = str };

	// 広告テキスト
	var str2= '';
	str2 += '<p class="ad_txt1">\n'
		 +  '<iframe scrolling="no" marginheight="0" marginwidth="0" border="0" frameborder="no" height="50" width="200" src="/pts/ad/ad_txt.html"></iframe>\n'
		 +  '</p>\n'
		 +  '<p class="ad_txt2">\n'
		 +  '<iframe scrolling="no" marginheight="0" marginwidth="0" border="0" frameborder="no" height="50" width="200" src="/pts/ad/ad_txt2.html"></iframe>\n'
		 +  '</p>\n';
	var element2 = document.getElementById('ad_txt');
	if(element2){ element2.innerHTML = str2 };
}

// functions
/**
 * 「ピックアップ」設定用関数 setPickUp
 */
function setPickUp(data_node, div_name){
	var str = '';
	var data_length = data_node.length;
	var newsindex_url = './G/gnews/index.html';
	
	str += '<div class="pickup clearfix">\n<h3>ピックアップ</h3>\n';
	
	// 一覧表示HTML設定
	str += '<table>\n';
	var len = data_node.length;
	for(var i=0;i<len;i++){
		if(i==0 || i%2==0){ str += '<tr>\n' };
		
		str += getPickupHTML(data_node[i]);
		
		if(i==len-1 && i%2==0){
			str += '<td></td>\n</tr>\n';
		}else if(i%2==1){
			str += '</tr>\n';
		}
	}
	str += '</table>\n';
	// HTML書き込み(div id=div_name)
	var element = document.getElementById(div_name);
	if(element){ element.innerHTML = str };
}

/**
 * 「ピックアップ」HTML設定用関数 getPickupHTML
 */
function getPickupHTML(data_node){
	var str = '';
	var NEW_ICON   = '<img class="icon_new" alt="new" src="/pts/images/common/icon_new.gif"/>';
	var MOVIE_ICON = '<img src="/pts/images/common/icon_movie.gif" alt="動画" class="icon_movie">';
	
	str += '<td>';
	if(data_node.disp_new == '1'){ str += NEW_ICON };
	
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url + '">' + data_node.title;
		if(data_node.movie == '1'){ str += MOVIE_ICON };
		str += '</a>';
	}else{
		str += '<span>' + data_node.title;
		if(data_node.movie == '1'){ str += MOVIE_ICON };
		str += '</span>\n';
	}
	str += '</td>\n';
	return str;
}

/**
 * 「関連リンク」設定用関数 setLinkHTML
 */
function setLinkHTML(data_node, kind, div_name, width, height){
	var str = '';
	var len = data_node.length;
	
	str += '<div class="concern clearfix">\n<h3>関連リンク</h3>\n<table>\n';
	
	for(var i=0;i<len;i++){
		if(i==0 || i%2==0){ str += '<tr>\n' };
		
		str += getLinkHTML(data_node[i], kind, width, height);
		
		if(i==len-1 && i%2==0){
			str += '<td></td>\n</tr>\n';
		}else if(i%2==1){
			str += '</tr>\n';
		}
	}
	str += '</table>\n';
	// HTML書き込み(div id=div_name)
	var element = document.getElementById(div_name);
	if(element){ element.innerHTML = str };
}

/**
 * 「関連リンク」HTML設定用関数 getLinkHTML
 */
function getLinkHTML(data_node, kind, width, height){
	var str = '';
	
	str += '<td>';
	// 画像
	str += '<p class="thum">' + setImage(data_node, width, height) + '</p>\n';
	
	// 見出し
	str += '<h4>';
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url[0]  + '" ';
		if(data_node.popupDisplay == '1'){
			str += 'target="_blank">';
		}else{
			str += '>';
		}
		str += changeLineCode(data_node.title[0]) + '</a>';
	}else{
		str += changeLineCode(data_node.title[0]);
	}
	str += '</h4>\n';
	
	// テキスト
	if(!isEmpty(data_node.text)){
		str += '<p class="text">' + changeLineCode(data_node.text[0]) + '</p>\n';
	}
	str += '</td>\n';	
	return str;
}

/**
 * 「イチオシ写真」設定用関数 setImgAndText
 */
function setImgAndText(data_node, kind, div_name, width, height){
	var str = '';
	var data_length = data_node.length;
	
	str += '<div class="special clearfix">\n<ul>\n';
	for(var i=0;i<data_length;i++){
		str += getImgAndTextHTML(data_node[i], kind, width, height);
	}
	str += '</ul>\n</div>\n';
	// HTML書き込み(div id=div_name)
	var element = document.getElementById(div_name);
	if(element){ element.innerHTML = str };
}

/**
 * 「イチオシ写真」HTML設定用関数 getImgAndTextHTML
 */
function getImgAndTextHTML(data_node, kind, width, height){
	var str = '';
	
	str += '<li>\n';
	// 画像
	str += '<p class="photo">' + setImage(data_node, width, height) + '</p>\n';
	
	// テキスト
	str += '<p>';
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url[0]  + '" ';
		if(data_node.popupDisplay == '1'){
			str += 'target="_blank">';
		}else{
			str += '>';
		}
		str += '<span class="date">' + data_node.date[0] + '</span>'
			+  '<br/>' + changeLineCode(data_node.title[0])
			+  '</a>';
	}else{
		str += '<span class="date">' + data_node.date[0] + '</span>'
			+  '<br/>' + changeLineCode(data_node.title[0]);
	}
	str += '</p>\n</li>\n';
	return str;
}

/**
 * 「ステージG-KING」設定用関数 setGking
 */
setGking = function(data, div_name){
	var str = '';
	str += '<div class="gking">\n<h3>ステージG-KING</h3>\n<ul>\n<li>';
	
	// 記事内に"href"が含まれるかどうか
	if(data.itemList[0].item[0].indexOf('href') != -1){
		str += changeLineCode(data.itemList[0].item[0]);
	}else{
		str += '<span class="arrow">' + changeLineCode(data.itemList[0].item[0]) + '</span>';
	}
	str += '</li>\n</ul>\n</div>\n';
	
	// HTML書き込み(div id='set_ntvinfo')
	var element = document.getElementById(div_name);
	if(element){ element.innerHTML = str };
}

/**
 * バナー設定用関数 setBanner
 */
function setBanner(data_node, kind, div_name, width, height){
	var str = '';
	var data_length = data_node.length;
	
	if(!isEmpty(data_length)){
		for(var i=0;i<data_length;i++){
			if(kind!='support' || (kind=='support' && i==0)){ str += '<p>\n' };
			str += setImage(data_node[i], width, height);
			if(kind!='support' || (kind=='support' && i==data_length-1)){ str += '</p>\n' };
		}
	}
	// HTML書き込み(div id=div_name)
	var element = document.getElementById(div_name);
	if(element){ element.innerHTML = str };
}

/**
 * 画像部HTML設定用関数 setImage
 */
function setImage(data_node, width, height){
	var str = '';
	
	if(!isEmpty(data_node.url)){
		str += '<a href="' + data_node.url[0] + '" ';
		//Google Analytics対応 2011.11.18 y.abe
		if(data_node.url[0].indexOf('giants-seat') != -1){
			//str += 'onClick="javascript: pageTracker._trackPageview(\'/GA/lb-giants-seat\');"';
			str += 'onClick="javascript: _gaq.push([\'_trackPageview\',\'/GA/lb-giants-seat\']);"';
		}
		if(data_node.popupDisplay == '1'){
			str += 'target="_blank">';
		}else{
			str += '>';
		}
		str += '<img src="' + data_node.img[0] + '" ';
		if(!isEmpty(width)){ str += 'width="' + width + '" ' };
		if(!isEmpty(height)){ str += 'height="' + height + '" ' };
		if(!isEmpty(data_node.alt)){
			str += 'alt="' + data_node.alt[0] + '" title="' + data_node.alt[0] + '" />';
		}else{
			str += '/>';
		}
		str += '</a>';
	}else{
		str += '<img src="' + data_node.img[0] + '" ';
		if(!isEmpty(width)){ str += 'width="' + width + '" ' };
		if(!isEmpty(height)){ str += 'height="' + height + '" ' };
		if(!isEmpty(data_node.alt)){
			str += 'alt="' + data_node.alt[0] + '" title="' + data_node.alt[0] + '" />';
		}else{
			str += '/>';
		}
	}
	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; }

