//=============================================
//	テキストファイルを読み込み、タブ区切りテキストを
//	行・項目ごとに分解し、2次元配列として返す
//=============================================
function readTextFile(pPortalName, pTextFile, pItemCnt) {
	var readBuff = '';
	var ary;
	var retAry = new Array();

	//-------------------------------------------
	//テキストファイルを読み込む
	//-------------------------------------------
	var txtObj
	if(window.XMLHttpRequest){
		//Win Mac Linux m1,f1,o8 Mac s1 Linux k3 & Win e7用
		txtObj = new XMLHttpRequest() ;
	} else if(window.ActiveXObject){
		//Win e4,e5,e6用
		try {
			txtObj = new ActiveXObject("Msxml2.XMLHTTP") ;
		} catch (e) {
			try {
				txtObj = new ActiveXObject("Microsoft.XMLHTTP") ;
			} catch (e2) {	txtObj = null; }
	   }
	} 

	if( txtObj ) {
		txtObj.open('GET', pTextFile, false);		//同期通信なので、第3引数にfalseを指定

		//ブラウザにより、テキストを読むタイミングが違う
		var ua = navigator.userAgent;
		var safari	  = ua.indexOf("Safari")!=-1;
		var konqueror = ua.indexOf("Konqueror")!=-1;
		var mozes	  = ((a=navigator.userAgent.split("Gecko/")[1] )?a.split(" ")[0]:0) >= 20011128 ;
		if(window.opera || safari || konqueror || mozes) {
			txtObj.onload = function()
			{
				if (txtObj.readyState == 4 && txtObj.status == 200 ) {
					readBuff = txtObj.responseText;
				}
			}
		}
		else {
			txtObj.onreadystatechange = function()
			{
				if (txtObj.readyState == 4 && txtObj.status == 200 ) {
					readBuff = txtObj.responseText;
				}
			}
		}

		txtObj.send('');
	}

	//-------------------------------------------
	//読み込んだデータを２次元配列に分割する
	//行：改行、列：タブ
	//-------------------------------------------
	if ( readBuff != '' ) {
		readBuff = readBuff.replace('\r','');
		ary = readBuff.split('\n');
		if( ary ) {
			var idx = 0;
			for ( var i = 0; i < ary.length; i++ ) {
				var wkAry = new Array();
				ary[i] = ary[i].replace('\r','');
				ary[i] = ary[i].replace('\n','');
				wkAry = ary[i].split('\t');
				//０番目がポータルなので、引数のポータル名が含まれているかチェック
				if ( wkAry[0].indexOf(pPortalName) >= 0 ) {
					if( wkAry.length < pItemCnt ) {
						//項目不足分は、空文字をセットする
						for( var j = wkAry.length; j < pItemCnt; j++ ) wkAry[j] = '';
					}
					retAry[idx] = wkAry;
					idx++;
				}
			}
		}
	}

	return retAry;
}

//=============================================
//	指定されたポータルのDHTMLを作成する文字列を返す
//=============================================
function CreateShowCampaignHTML(pPortalName) {
	var strHTML = '';

	try {
		var copyCount = 3;

		//-------------------------------------------
		// config.txtを読み込み、設定情報を保存する
		//-------------------------------------------
		var configBuff = readTextFile(pPortalName, '/pc/campaign/config.txt', 6);
		//var configBuff = readTextFile(pPortalName, 'http://www.bellemaison.jp/pc/campaign/config.txt', 6);

		//-------------------------------------------
		// setting.txtを読み込み、バナー情報を保存する
		//-------------------------------------------
		var banerBuff = readTextFile(pPortalName, '/pc/campaign/settings.txt', 10);
		//var banerBuff = readTextFile(pPortalName, 'http://www.bellemaison.jp/pc/campaign/settings.txt', 10);

		//-------------------------------------------
		// DHTMLにより、キャンペーン情報を表示する
		//-------------------------------------------
		//バナー情報配列の並べ替え（キャンペーンその他リンクレコードを最後に移動する）
		var pos = -1;
		for ( var i = 0; i < banerBuff.length; i++ ) {
			if( banerBuff[i][8] != '' || banerBuff[i][9] != '' ) {
				//その他リンク情報
				pos = i;
				break;
			}
		}
		if( pos != -1 ) {
			//見つかった位置からすべて１つづつずらす
			var w = banerBuff[pos];
			for( var j = pos; j < banerBuff.length - 1; j++ ) {
				banerBuff[j] = banerBuff[j+1];
			}
			banerBuff[banerBuff.length - 1] = w;
		}

		//<div>に表示するHTML文字列を編集する
		if( configBuff[0][1] != '' ) {
			strHTML += '<p class="' + configBuff[0][1] + '">注目のキャンペーン</p>';
		} else {
			strHTML += '<dl>';
			strHTML += '<dt>注目のキャンペーン</dt>';
		}
		strHTML += '<dd>';
		strHTML += '<ul>';
		for ( var i = 0; i < banerBuff.length - 1; i++ ) {		//その他リンクレコードは最後の１レコードである前提
			//適用クラス名の決定
			var clsName;
			if( i == 0 ) {
				//最上位CSSクラス名
				clsName = configBuff[0][2];
			} else if ( i == banerBuff.length - 2 ) {
				//最下位CSSクラス名
				clsName = configBuff[0][4];
			} else {
				//中間CSSクラス名
				clsName = configBuff[0][3];
			}

			//クラス名が空でなければ、そのクラスを指定する
			if( clsName != '' ) {
				strHTML += '<li class="' + clsName + '">';
			} else {
				strHTML += '<li>';
			}

			//キャンペーンリンク情報
			strHTML += '<a href="';
			if( banerBuff[i][7] == '' ) {
				strHTML += '#">';
			} else {
				strHTML += banerBuff[i][7] + '">';
			}

			//バナー
			if( banerBuff[i][6] != '' ) {
				strHTML += '<img alt="' + banerBuff[i][1] + '" ';
				strHTML += 'src="' + banerBuff[i][6] + '">'
			}
			strHTML += '</a>';

			//キャッチコピー（空文字でない分繰り返し）
			strHTML += '<p>';
			if( banerBuff[i][5] != '' ) {
				strHTML += '<a href="' + banerBuff[i][5] + '">';
			}
			
			var strCopy = '';
			for( var j = 0; j < copyCount; j++ ) {
				if( banerBuff[i][2 + j] != '' ) {
					if( strCopy != '' ) strCopy += '<br>';
					strCopy += banerBuff[i][2 + j];
				}
			}
			if( banerBuff[i][5] != '' ) {
				strHTML += '</a>';
			}
			strHTML += '' + strCopy + '</p>';
			strHTML += '</li>';
		}
		strHTML += '</ul>';
		strHTML += '</dd>';
		if( configBuff[0][1] != '' ) {
			strHTML += '</p>';
		} else {
			strHTML += '</dl></dd>';
		}

		//その他リンクレコードがあれば、それも追加する
		var lastPos = banerBuff.length - 1;
		if( banerBuff[lastPos][8] != '' || banerBuff[lastPos][9] != '' ) {

			if( configBuff[0][5] != '' ) {
				strHTML += '<p class="' + configBuff[0][5] + '">'
			} else {
				strHTML += '<span>'
			}

			if( banerBuff[lastPos][9] != '' ) {
				strHTML += '<a href="' + banerBuff[lastPos][9] + '">';
			}

			strHTML += banerBuff[lastPos][8];
			if( banerBuff[lastPos][9] != '' ) {
				strHTML += '</a>';
			}

			if( configBuff[0][5] != '' ) {
				strHTML += '</p>'
			} else {
				strHTML += '</span>'
			}
		}
	} catch(e) {
		strHTML = '';
	}

	return( strHTML );

}

