// グローバル変数の定義
HOST_URL = "";
LINK_PATH = "/e-news/";				// このサイトのトップURL
IMAGE_DIR = LINK_PATH + "images/";	// このサイトの画像格納先URL
FIRST_DATE = new Date(2009,2,1);	// これ以前はカレンダー左矢印を出さない。
PLAYER_MODE = 'real';				// flashプレイヤーのモード
/*
 * 非同期にサーバ通信するための関数
 * （この関数を通してサーバと通信します）
 */
function getData(targetFunction, callBackFunction, params) {
    var pageURL = HOST_URL + targetFunction;
	var postRequest = new AjaxRequest(pageURL, "post", params, callBackFunction);
}

/*
 * DOMエレメントへのショートカット
 */
function $(elemName) {
	return document.getElementById(elemName);
}

function fnkeyword(id,cnt) {
	if(id != -1) {
		for(i=0; i<cnt; i++) {
			document.getElementById('keyword_'+i).style.display = 'none';
		}
		document.getElementById('keyword_'+id).style.display = 'block';
	}
	else {	
		for(i=0; i<cnt; i++) {
			document.getElementById('keyword_'+i).style.display = 'none';
		}
	}

}
/*
 * 今回の単語ページ		英単語表示制御
 */
function show_en_word(i) {
	if (document.getElementById('word_en_'+i).style.display == 'none'){
		document.getElementById('word_en_'+i).style.display = '';
	}else{
		document.getElementById('word_en_'+i).style.display = 'none';
	}
}

function show_en_all() {
	i = 0;
	while (!!document.getElementById('word_en_'+i)){
		if (document.getElementById('onoff_en').value == "false"){
			document.getElementById('word_en_'+i).style.display = '';
		}else{
			document.getElementById('word_en_'+i).style.display = 'none';
		}
		i++;
	}

	if (document.getElementById('onoff_en').value == "false"){
		document.getElementById('onoff_en').value = "true";
	}else{
		document.getElementById('onoff_en').value = "false";
	}
}

/*
 * 今回の単語ページ		日本語訳表示制御
 */
function show_jp_word(i) {
	if (document.getElementById('word_jp_'+i).style.display == 'none'){
		document.getElementById('word_jp_'+i).style.display = '';
	}else{
		document.getElementById('word_jp_'+i).style.display = 'none';
	}
}

function show_jp_all() {
	i = 0;
	while (!!document.getElementById('word_jp_'+i)){
		if (document.getElementById('onoff_jp').value == "false"){
			document.getElementById('word_jp_'+i).style.display = '';
		}else{
			document.getElementById('word_jp_'+i).style.display = 'none';
		}
		i++;
	}

	if (document.getElementById('onoff_jp').value == "false"){
		document.getElementById('onoff_jp').value = "true";
	}else{
		document.getElementById('onoff_jp').value = "false";
	}
}

function fnlearnmore(id) {
	if(id) {
		for(i=1; i<5; i++) {
			document.getElementById('learn_more_'+i).style.display = 'none';
		}
		document.getElementById('learn_more_'+id).style.display = 'block';
	}
	else {	
		for(i=1; i<5; i++) {
			document.getElementById('learn_more_'+i).style.display = 'none';
		}
	}

}

function fntab(id) {
	for(i=1; i<3; i++) {
		document.getElementById('tab'+i).className = '';
		document.getElementById('tab_'+i).style.display = 'none';
		document.getElementById('notes_tab'+i).style.display = 'none';
	}
	document.getElementById('tab'+id).className = 'active';
	document.getElementById('tab_'+id).style.display = 'block';
	document.getElementById('notes_tab'+id).style.display = 'block';
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function fnpopup(popid, show) {
	if(show) {
		document.getElementById('popup_' + popid).style.display = 'block';		
		var arrayPageSizeWithScroll =	getPageSizeWithScrollUser();
		document.getElementById("pop_bg").style.height = arrayPageSizeWithScroll[1] + "px";
		document.getElementById('pop_bg').style.display = 'block';		
		
	} else {
		document.getElementById('popup_' + popid).style.display = 'none';
		document.getElementById('pop_bg').style.display = 'none';
	}
}

function getPageSizeWithScrollUser(){

	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		xWithScroll = window.innerWidth + window.scrollMaxX;
	} else 
	if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		//yWithScroll = document.body.offsetHeight;
		xWithScroll =	document.body.offsetWidth;
		yWithScroll =	document.getElementById("conatiner").offsetHeight + 100;
	}
	arrayPageSizeWithScroll = new Array(xWithScroll,yWithScroll);
	//alert( 'The height is ' + yWithScroll + ' and the width is ' + xWithScroll );     
	return arrayPageSizeWithScroll; 
}

//-----------------------------------------------------------------

/*
 * Ajaxリクエストオブジェクト
 */
AjaxRequest = function(target_url, method, parameters, callBack) {
	this.timer;
	this.timeout_sec = 10; // タイムアウトの秒数
	this.target_url = target_url;
	this.method = method;
	this.parameters = parameters;
	this.callBack = callBack;
	
	this.sendRequest();
}

AjaxRequest.prototype = {
	getHttpObj: function() {
		var XMLHttpObj;
		try {
			if(window.XMLHttpRequest) {
				XMLHttpObj = new XMLHttpRequest();
			} else if(window.ActiveXObject) {
				XMLHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} catch(e) {
		}
		return XMLHttpObj;
	},

	timeoutCheck: function(httpObj) {
		this.timeout_sec --;
		if(this.timeout_sec <= 0) {
			// タイマーをストップする
			clearInterval(this.timer);
			// HTTPリクエストを中断する
			httpObj.abort();
			return false;
		}
	},

	sendRequest: function() {
		var httpObj = this.getHttpObj();
		var oThis = this; // クロージャ用の変数
		
		// タイマーをセット
		this.timer = setInterval(function(){oThis.timeoutCheck(httpObj)}, 1000);
	
		httpObj.open(this.method, this.target_url, true);
		if(this.method == "post") {
			httpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		}

		httpObj.onreadystatechange = function() {
			if(httpObj.readyState == 4) {
				clearInterval(oThis.timer);
				if(httpObj.status == 0 || (httpObj.status >= 200 && httpObj.status < 300)) {
					oThis.callBack(httpObj);
				} else {
alert(httpObj.status+":"+httpObj.statusText);
					return false;
				}
			}
		}
		httpObj.send(this.parameters);
	}
}

//-----------------------------------------------------------------
// カレンダーの HTML 文字列を返す
// 引数: date		Dateオブジェクト	カレンダーの日付
// 引数: dataArray	データの配列
// 						日付ごとに設定したい項目を連想配列で持つ
// 						dataArray["yyyy-mm-dd"]["bgcolor"]
// 						dataArray["yyyy-mm-dd"]["url"]
// 引数: nextUrl	次月リンクのURL
// 引数: prevUrl	前月リンクのURL
// 戻り値: HTML文字列
function getNewsTopCalendarHtml(date, dataArray, nextUrl, prevUrl){
	//現在日付
	now = new Date();
	var str = '<center><table border="0" cellspacing="3" cellpadding="0" ><tr><td width="20" align="left">';
	if ((date.getFullYear() != FIRST_DATE.getFullYear()) || (date.getMonth() != FIRST_DATE.getMonth() )){
		str += '<a href="'+prevUrl+'"><img src="'+IMAGE_DIR+'arr_back.gif" alt="Back" width="11" height="17" border="0"></a>';
	}
	str += '</td>\n<td>'+date.getFullYear()+'<br/>' + getMonthName(date.getMonth()+1) + '</td>'
			+ '<td><span class="calender_month_label">'+ (date.getMonth()+1) +'</span></td>'
			+ '<td width="20" align="right">';
	if ((date.getFullYear() != now.getFullYear()) || (date.getMonth() != now.getMonth() )){
		str += '<a href="'+nextUrl+'"><img src="'+IMAGE_DIR+'arr_next.gif" alt="Next" width="11" height="17" border="0"></a>';
	}
	str += '</td>\n</tr></table>\n';

	str += '<table width="230" height="130" border="0" cellspacing="3" cellpadding="0" class="calender_text">\n'
			+ '<tr>\n'
//			+ '<td width="11" rowspan="7" align="left"><a href="'+prevUrl+'"><img src="'+IMAGE_DIR+'arr_back.gif" alt="Back" width="11" height="17" border="0"></a></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'sun.gif" alt="SUN" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'mon.gif" alt="MON" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'tue.gif" alt="TUE" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'wed.gif" alt="WED" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'thu.gif" alt="THU" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'fri.gif" alt="FRI" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'sat.gif" alt="SAT" width="24" height="10"></td>\n'
//			+ '<td width="11" rowspan="7" align="right"><a href="'+nextUrl+'"><img src="'+IMAGE_DIR+'arr_next.gif" alt="Next" width="11" height="17" border="0"></a></td>\n'
			+ '</tr>\n';

	// 日付を書き込む
	date.setDate(1);
	var base = date.getDay();
	var days = getMonthDays(date);
	for ( i = 0; i < 42; i++ ){
		var bg = "";
		var as = "<span style='color:#777777;'>";
		var ae = "</span>";
		if ( i % 7 == 0 ){
			str += "<tr align='center'>";
			bg = " bgcolor='#FF0000'";
			as = "<span style='color:#FFFFFF;'>";
			ae = "</span>";
		}
		if ( (base <= i) && (i < base + days) ){
			var day = i + 1 - base;
			var datetext = getDateString(new Date(date.getFullYear(), date.getMonth(), day));
			
			// 背景色設定
			if ( (dataArray != undefined) 
					&& (dataArray[datetext] != undefined) 
					&& (dataArray[datetext]["bgcolor"] != undefined) ){
				bg = " bgcolor='" + dataArray[datetext]["bgcolor"] + "'";
			}
			
			// URL設定
			if ( (dataArray != undefined) 
					&& (dataArray[datetext] != undefined)
					&& (dataArray[datetext]["url"] != undefined)
					&& (dataArray[datetext]["url"] != "") ){
				as = "<a href='" + dataArray[datetext]["url"] + "'><div>";
				ae = "</div></a>";
			}
			
//			str += "<td class='calender_waku'" + bg + ">" + as + day + ae + "</td>\n";
			str += "<td " + bg + ">" + as + day + ae + "</td>\n";
		}
		else{
//			str += "<td class='calender_waku'>&nbsp;</td>\n";
			str += "<td >&nbsp;</td>\n";
		}
		if ( i % 7 == 6 ){
			str += "</tr>\n";
		}
	}
	str += "</table></div></center>";

	return str;
}

//-----------------------------------------------------------------
// カレンダーの HTML 文字列を返す
// 引数: date		Dateオブジェクト	カレンダーの日付
// 引数: dataArray	データの配列
// 						日付ごとに設定したい項目を連想配列で持つ
// 						dataArray["yyyy-mm-dd"]["bgcolor"]
// 						dataArray["yyyy-mm-dd"]["url"]
// 引数: nextUrl	次月リンクのURL
// 引数: prevUrl	前月リンクのURL
// 戻り値: HTML文字列
function getMyCalendarHtml(date, dataArray, nextUrl, prevUrl){
	//現在日付
	now = new Date();

	if (FIRST_DATE.getMonth() < 10){
		first_ym = FIRST_DATE.getFullYear() + "0" + FIRST_DATE.getMonth();
	}else{
		first_ym = FIRST_DATE.getFullYear() + "" + FIRST_DATE.getMonth();
	}

	if (date.getMonth() < 10){
		date_ym = date.getFullYear() + "0" + date.getMonth();
	}else{
		date_ym = date.getFullYear() + "" + date.getMonth();
	}

	if (now.getMonth() < 10){
		now_ym = now.getFullYear() + "0" + now.getMonth();
	}else{
		now_ym = now.getFullYear() + "" + now.getMonth();
	}
	
	var str = '<div id="calender_left_My">'+date.getFullYear()+'<br/>'
				+ getMonthName(date.getMonth()+1) + '<br/><span class="calender_month_label">'+ (date.getMonth()+1) +'</span></div>\n'
				+ '<div id="calender_right_My">\n';

	str += '<table width="270" height="130" border="0" cellspacing="3" cellpadding="0" class="calender_text">\n'
			+ '<tr>\n'
			+ '<td width="11" rowspan="7" align="left" style="border : 0;">';
			if (date_ym > first_ym){
				str += '<a href="'+prevUrl+'"><img src="'+IMAGE_DIR+'arr_back.gif" alt="Back" width="11" height="17" border="0"></a>';
			}
			str += '</td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'sun.gif" alt="SUN" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'mon.gif" alt="MON" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'tue.gif" alt="TUE" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'wed.gif" alt="WED" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'thu.gif" alt="THU" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'fri.gif" alt="FRI" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'sat.gif" alt="SAT" width="24" height="10"></td>\n'
			+ '<td width="11" rowspan="7" align="right" style="border : 0;">';
			if (date_ym < now_ym){
				str += '<a href="'+nextUrl+'"><img src="'+IMAGE_DIR+'arr_next.gif" alt="Next" width="11" height="17" border="0"></a>';
			}
			str += '</td>\n'
			+ '</tr>\n';

	// 日付を書き込む
	date.setDate(1);
	var base = date.getDay();
	var days = getMonthDays(date);
	for ( i = 0; i < 42; i++ ){
		var bg = "";
		var as = "<span style='color:#777777;'>";
		var ae = "</span>";
		if ( i % 7 == 0 ){
			str += "<tr align='center'>";
			bg = " bgcolor='#FF0000'";
			as = "<span style='color:#FFFFFF;'>";
			ae = "</span>";
		}
		if ( (base <= i) && (i < base + days) ){
			var day = i + 1 - base;
			var datetext = getDateString(new Date(date.getFullYear(), date.getMonth(), day));
			
			// 背景色設定
			if ( (dataArray != undefined) 
					&& (dataArray[datetext] != undefined) 
					&& (dataArray[datetext]["bgcolor"] != undefined) ){
				bg = " bgcolor='" + dataArray[datetext]["bgcolor"] + "'";
			}
			
			// スコア設定
			var score = "";
			if ( (dataArray != undefined) && (dataArray[datetext] != undefined) ){
				if ( (dataArray[datetext]["news"] != undefined) ){
					score += "ニュースの本文 " + dataArray[datetext]["news"] + "% | ";
				} else {
					score += "ニュースの本文 記録なし | ";
				}
				
				if ( (dataArray[datetext]["keyword"] != undefined) ){
					score += "キーワード " + dataArray[datetext]["keyword"] + "%";
				} else {
					score += "キーワード 記録なし";
				}
			}
			
			// Function設定
			if (day != "" && ((i % 7) % 6) != 0 ){		// 日曜と土曜はリンクさせない
				as = "<a onClick=click_week('" + datetext + "') title='" + score + "'><div>";
				ae = "</div></a>";
			}
			
			str += "<td " + bg + ">" + as + day + ae + "</td>\n";
		}
		else{
			str += "<td >&nbsp;</td>\n";
		}
		if ( i % 7 == 6 ){
			str += "</tr>\n";
		}
	}
	str += "<tr><td style='border:0;'></td><td colspan='7' style='color:#000000;font-size:10px;font-weight:normal;border:0;'>カレンダーの日付をクリックするとその週の内容が表示されます。</td></tr></table></div>";

	return str;
}

//-----------------------------------------------------------------
// カレンダーの HTML 文字列を返す
// 引数: date		Dateオブジェクト	カレンダーの日付
// 引数: dataArray	データの配列
// 						日付ごとに設定したい項目を連想配列で持つ
// 						dataArray["yyyy-mm-dd"]["bgcolor"]
// 						dataArray["yyyy-mm-dd"]["url"]
// 引数: nextUrl	次月リンクのURL
// 引数: prevUrl	前月リンクのURL
// 戻り値: HTML文字列
function getCalendarHtml(date, dataArray, nextUrl, prevUrl){
	//現在日付
	now = new Date();

	if (FIRST_DATE.getMonth() < 10){
		first_ym = FIRST_DATE.getFullYear() + "0" + FIRST_DATE.getMonth();
	}else{
		first_ym = FIRST_DATE.getFullYear() + "" + FIRST_DATE.getMonth();
	}

	if (date.getMonth() < 10){
		date_ym = date.getFullYear() + "0" + date.getMonth();
	}else{
		date_ym = date.getFullYear() + "" + date.getMonth();
	}

	if (now.getMonth() < 10){
		now_ym = now.getFullYear() + "0" + now.getMonth();
	}else{
		now_ym = now.getFullYear() + "" + now.getMonth();
	}
	
	var str = '<div id="calender_left">'+date.getFullYear()+'<br/>'
				+ getMonthName(date.getMonth()+1) + '<br/><span class="calender_month_label">'+ (date.getMonth()+1) +'</span></div>\n'
				+ '<div id="calender_right">\n';

	str += '<table width="270" height="130" border="0" cellspacing="3" cellpadding="0" class="calender_text">\n'
			+ '<tr>\n'
			+ '<td width="11" rowspan="7" align="left" style="border : 0;">';
//			if ((date.getFullYear() != FIRST_DATE.getFullYear()) || (date.getMonth() != FIRST_DATE.getMonth() )){
			if (date_ym > first_ym){
				str += '<a href="'+prevUrl+'"><img src="'+IMAGE_DIR+'arr_back.gif" alt="Back" width="11" height="17" border="0"></a>';
			}
			str += '</td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'sun.gif" alt="SUN" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'mon.gif" alt="MON" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'tue.gif" alt="TUE" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'wed.gif" alt="WED" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'thu.gif" alt="THU" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'fri.gif" alt="FRI" width="24" height="10"></td>\n'
			+ '<td width="27" align="center" style="border : 0;"><img src="'+IMAGE_DIR+'sat.gif" alt="SAT" width="24" height="10"></td>\n'
			+ '<td width="11" rowspan="7" align="right" style="border : 0;">';
//			if ((date.getFullYear() != now.getFullYear()) || (date.getMonth() != now.getMonth() )){
			if (date_ym < now_ym){
				str += '<a href="'+nextUrl+'"><img src="'+IMAGE_DIR+'arr_next.gif" alt="Next" width="11" height="17" border="0"></a>';
			}
			str += '</td>\n'
			+ '</tr>\n';

	// 日付を書き込む
	date.setDate(1);
	var base = date.getDay();
	var days = getMonthDays(date);
	for ( i = 0; i < 42; i++ ){
		var bg = "";
		var as = "<span style='color:#777777;'>";
		var ae = "</span>";
		if ( i % 7 == 0 ){
			str += "<tr align='center'>";
			bg = " bgcolor='#FF0000'";
			as = "<span style='color:#FFFFFF;'>";
			ae = "</span>";
		}
		if ( (base <= i) && (i < base + days) ){
			var day = i + 1 - base;
			var datetext = getDateString(new Date(date.getFullYear(), date.getMonth(), day));
			
			// 背景色設定
			if ( (dataArray != undefined) 
					&& (dataArray[datetext] != undefined) 
					&& (dataArray[datetext]["bgcolor"] != undefined) ){
				bg = " bgcolor='" + dataArray[datetext]["bgcolor"] + "'";
			}
			
			// URL設定
			if ( (dataArray != undefined) 
					&& (dataArray[datetext] != undefined)
					&& (dataArray[datetext]["url"] != undefined)
					&& (dataArray[datetext]["url"] != "") ){
				as = "<a href='" + dataArray[datetext]["url"] + "'><div>";
				ae = "</div></a>";
			}
			
//			str += "<td class='calender_waku'" + bg + ">" + as + day + ae + "</td>\n";
			str += "<td " + bg + ">" + as + day + ae + "</td>\n";
		}
		else{
//			str += "<td class='calender_waku'>&nbsp;</td>\n";
			str += "<td >&nbsp;</td>\n";
		}
		if ( i % 7 == 6 ){
			str += "</tr>\n";
		}
	}
	str += "</table></div>";

	return str;
}

// 指定した日が含まれる月の日数を算出
// 引数: date: 日付
// 戻り値: 日数
function getMonthDays(date){
	var days = 28;
	var month = date.getMonth();
	for ( i = 29; i <= 31; i++ )
	{
		var d1 = new Date(date.getYear(), month, i);
		if ( d1.getMonth() == month ){
			days = i;
		}
	}
	return days;
}

// 指定した日を'yyyy-mm-dd'形式で返す
// 引数: date: 日付
// 戻り値: 日付文字列
function getDateString(date){
	var y = date.getFullYear();
	var m = date.getMonth() + 1;
	if ( m < 10 ){ m = "0" + m; }
	var d = date.getDate();
	if ( d < 10 ){ d = "0" + d; }

	return y + "-" + m + "-" + d;
}

// 月の名前を返す
function getMonthName(num) {
	var str = "";
	switch (num) {
		case 1 :
			str = "Jan";
			break;
		case 2 :
			str = "Feb";
			break;
		case 3 :
			str = "Mar";
			break;
		case 4 :
			str = "Apr";
			break;
		case 5 :
			str = "May";
			break;
		case 6 :
			str = "Jun";
			break;
		case 7 :
			str = "Jul";
			break;
		case 8 :
			str = "Aug";
			break;
		case 9 :
			str = "Sep";
			break;
		case 10 :
			str = "Oct";
			break;
		case 11 :
			str = "Nov";
			break;
		case 12 :
			str = "Dec";
			break;
	}
	return str;
}

//-----------------------------------------------------------------

// SWF Player のタグを返します。
// $media_name には ファイル名を指定します。
function createFlashTags(media_name)
{
	// 対象ファイル以外は何も出力しない。※ファイル名（パス）スラッシュが必須な点に注意（原則必ず入るはずなので）
	var matches = media_name.match(/^(.*\/)([^\/]+)(\.flv|\.mp3)$/);
	if( (matches == null) || (matches.length < 1) )
	{
		return '';
	}

	// 親ディレクトリ付でファイル名を取得（ただしサーバドメイン部分など固定の上位の部分は含まない）
	var file = matches[1]+matches[2];
	
	// ファイル名を ID として利用する。
	var id = matches[2];
	
	// 使用するプレイヤーの選択（flvとmp3では異なるプレイヤーを使用）※拡張子はなしで指定。
	var player = 'swfp/video_player';
	var width = 280;
	var width = 254;
	if(matches[3] == '.flv')
	{
		player = LINK_PATH+'swfp/video_player';			// プレイヤーファイル名の設定
		width = 280;									// フィールドサイズの設定
		height = 254;
	}
	else
	{
		// プレイヤーファイル名の設定
		player = LINK_PATH+'swfp/audio_player2';		// プレイヤーファイル名の設定
		width = 64;										// フィールドサイズの設定
		height = 18;
	}

	// タグの出力
//AC_FL_RunContent_STR
	var result = AC_FL_RunContent_STR(
				'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
				'width', width,
				'height', height,
				'src', player,
				'quality', 'high',
				'pluginspage', 'http://www.adobe.com/go/getflashplayer_jp',
				'align', 'middle',
				'play', 'true',
				'loop', 'true',
				'scale', 'showall',
				'wmode', 'window',
				'devicefont', 'false',
				'id', id,
				'bgcolor', '#ffffff',
				'name', id,
				'menu', 'true',
				'allowFullScreen', 'false',
				'allowScriptAccess','sameDomain',
				'movie', player,
				'salign', '',
				'FlashVars', 'type='+PLAYER_MODE+'&m_name='+file) +
				'	<noscript>'+
				'		<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+width+'" height="'+height+'" id="'+id+'" align="middle">'+
				'		<param name="allowScriptAccess" value="sameDomain" />'+
				'		<param name="allowFullScreen" value="false" />'+
				'		<param name="movie" value="'+player+'.swf?type='+PLAYER_MODE+'&m_name='+file+'" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />	<embed src="'+player+'.swf?type='+PLAYER_MODE+'&m_name='+file+'" quality="high" bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="'+id+'" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer_jp" />'+
				'		</object>'+
				'	</noscript>';
	return result;
}

//-----------------------------------------------------------------

//
function addListener(elem, eventType, func, cap) {
	if(elem.addEventListener) {
		elem.addEventListener(eventType, func, cap);
	} else if(elem.attachEvent) {
		elem.attachEvent("on"+eventType, func);
	} else {
		return false;
	}
}

// innerText(FireFox は textContent)の設定
function setInnerText(elem, value){
	if ( navigator.userAgent.indexOf("Firefox") >= 0 ){
		elem.textContent = value;
	}
	else{
		elem.innerText = value;
	}
}

// 入力フィールドの文字数制限
function limitEnqueteInputLength(elem, maxlen, maxret, restTextDispId, restReturnDispId){
	// 改行を除く文字数を制限
	var text = elem.value;
	var s0   = text.replace(/\r|\n/g, '');
	while ( s0.length > maxlen ){
		text = text.substr(0, text.length - 1);
		s0   = text.replace(/\r|\n/g, '');
	}

	// 改行の個数を制限
	var count = 0;
	var pre = '';
	for ( var i = 0; i < text.length; i++ ){
		var chr = text.charAt(i);
		if ( (chr == '\r') || ((pre != '\r') && (chr == '\n')) ){
			if ( ++count > maxret ){
				text  = text.substr(0, i);
				count = maxret;
				break;
			}
		}
		pre = chr;
	}

	// 制限結果が異なっていたら elem.value にセット
	if ( text != elem.value ){
		var scr = elem.scrollTop;
		elem.value = text;
		if ( navigator.userAgent.indexOf("Firefox") >= 0 ){
			elem.scrollTop = scr;
		}
	}

	// 入力可能な残り文字数を表示
	var e = document.getElementById(restTextDispId);
	if ( e != null ){
		setInnerText(e, maxlen - s0.length);
	}

	// 入力可能な残り改行数を表示
	var e = document.getElementById(restReturnDispId);
	if ( e != null ){
		setInnerText(e, maxret - count);
	}
}


