// 直接入力⇔リストボックス入力切替処理
// 引数：	lbObj（リストボックスオブジェクト）
//			txtObj（テキストボックス(直接入力)オブジェクト）
//			chgKnd（onchange発生イベント元(0:リストボックス、1:テキストボックス)）
function chgInput(lbObj, txtObj, chgKnd)
{
	// リストボックスに変化が生じた場合
	if (0 == chgKnd) {

		// リストボックスの内容が「直接入力」の場合
		if (lbObj.value == "直接入力") {

			// 何も行う必要がないため、何も行わず終了
			return;
		}
		// その他の場合
		else {

			// テキストボックスの内容をクリアして終了
			txtObj.value = "";
		}
	}

	// テキストボックスに変化が生じた場合
	else {

		// リストボックスの内容が「直接入力」の場合
		if (lbObj.value == "直接入力") {

			// 何も行う必要がないため、何も行わず終了
			return;
		}

		// その他の場合
		else {

			// リストボックスの内容を直接入力にして終了
			lbObj.value = "直接入力";
		}
	}
}

// テキストエリアタグチェック処理
// 引数：	argFrm（テキストエリアタグを含むFormタグオブジェクト）
//			argMaxSize（入力可能文字数）
function TextAreaChk(argFrm, argObj, argMaxSize)
{
	// 禁止文字検索処理
	ainRet = CharCheck(argObj);

	// 文字列サイズチェック処理
	ainRet += SizeCheck(argObj, argMaxSize);

	// 文字列に異常がない場合は、CGIを起動すること
	if (ainRet == 0) {
		argFrm.submit();
	}
}

// テキストエリアタグチェック処理(他JS関数からのJOINT用)
// 引数：	argFrm（テキストエリアタグを含むFormタグオブジェクト）
//			argMaxSize（入力可能文字数）
function TextAreaChk2(argObj, argMaxSize)
{
	// 禁止文字検索処理
	ainRet = CharCheck(argObj);

	// 文字列サイズチェック処理
	ainRet += SizeCheck(argObj, argMaxSize);

	// 文字列に異常がない場合は、CGIを起動すること
	if (ainRet == 0) {
		return 0;
	}
	return -1;
}

// テキストエリア・ボックスタグの禁止文字列チェックを行う処理
// 引数：	argObj（テキストエリア・ボックスタグオブジェクト）
function CharCheck(argObj){
	var tmp = argObj.value;

	ainRet = tmp.indexOf(',');
	if(ainRet != -1){
		alert(",'<>は使用不可能な文字です。");
		return -1;
	}

	ainRet = tmp.indexOf('\'');
	if(ainRet != -1){
		alert(",\'<>は使用不可能な文字です。");
		return -1;
	}

	ainRet = tmp.indexOf('<');
	if(ainRet != -1){
		alert(",\'<>は使用不可能な文字です。");
		return -1;
	}

	ainRet = tmp.indexOf('>');
	if(ainRet != -1){
		alert(",\'<>は使用不可能な文字です。");
		return -1;
	}

	return 0;
}

// 数値チェック処理
// 引数：	argObj（テキストエリアタグオブジェクト）
function NumberCheck(argObj)
{

	try {
	// 変数を設定する
		var number = eval(argObj.value);
	}
	catch(e) {
		alert("数字以外の文字が入力されています。もう一度確認して下さい。");
		return -1;
	}

	return 0;
}

// 数値（整数）チェック処理
// 引数：	argObj（テキストエリアタグオブジェクト）
function NumberCheckUInt(argObj)
{
	var number = argObj.value;

	if (number.match(/[^0-9]+/)) {
		alert("数字以外の文字が入力されています。もう一度確認して下さい。");
		return -1;
	}

	return 0;
}

// テキストエリアタグの文字数チェックを行う処理
// 引数：	argObj（テキストエリアタグオブジェクト）
//			argMaxSize（入力可能文字数）
function SizeCheck(argObj, argMaxSize)
{
	var tmp = argObj.value;

	if (GetLength(tmp) > argMaxSize) {
		MM_Alert("入力可能な文字数は全角"+argMaxSize/2+"文字までです", argObj);
		return -1;
	}

//	argObj.style.backgroundColor = "ffffff";
	return 0;

//	var tmp = argObj.value;
//	var len = tmp.length;

//	if(len > argMaxSize){
//		alert("入力可能な文字数は"+argMaxSize+"文字までです");
//	}else{
//		return 0;
//	}
//	return -1;
}

// 入力バイト数を返す
function GetLength(obj){
	var i,cnt = 0;
	for(i=0; i<obj.length; i++)
	{
		if (escape(obj.charAt(i)).length >= 4 ) {
			cnt+=2;
		} else {
			cnt++;
		}
	}
	return cnt;
}

// テキストエリアタグの文字チェック（数字のみ）を行う処理
// 引数：	argObj（テキストエリアタグオブジェクト）
function RangeCheck(argObj, argMin, argMax)
{
	//変数を設定する
	if ((argObj.value < argMin) ||
		(argObj.value > argMax)) {
		alert("入力可能な範囲は" + argMin + "〜" + argMax + "です。");
		return -1;
	}

	return 0;
}

// CGI引数に会員情報を付与し、実行する。
// 引数：	argUrl（実行先CGI）
function Set_Att(argUrl)
{
	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	cgiUrl = argUrl + "&" + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_AccKey;

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// CGI引数に会員情報を付与し、実行する。
// 引数：	argUrl（実行先CGI）
function Set_Att2(argUrl)
{
	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	cgiUrl = argUrl + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_AccKey;

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// CGI引数に会員情報を付与し、実行する。
// 引数：	argUrl（実行先CGI）
function Set_Attestation(argUrl)
{
	Set_Att(argUrl);
}

// CGI引数に会員情報を付与し、実行する。(submitの場合)
// 引数：	argFrm（CGI実行元formオブジェクト）
function Submit_Attestation(argFrm)
{
	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	argFrm.action = argFrm.action + "&" + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_AccKey;

	// CGIを実行する
	argFrm.submit();
}

// CGI引数に会員情報を付与し、実行する。(submitの場合)
// 引数：	argFrm（CGI実行元formオブジェクト）
//			argUrl（実行先CGI）
function Submit_Attestation2(argFrm, argUrl)
{
	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	argFrm.action = argUrl + "&" + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_Pass + "&" + top.MemberInfo.Member_lv + "&" + top.MemberInfo.Member_AccKey;

	// CGIを実行する
	argFrm.submit();
}

// CGI引数に会員情報を付与し、戻り値とする。（別窓表示Java Scriptで使用する際）
// 引数：	argUrl（実行先CGI）
function Ret_Attestation(argUrl)
{
	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	cgiUrl = argUrl + "&" + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_AccKey;

	// CGI URLにジャンプする
	return(cgiUrl);
}

// 全角、半角混在チェック処理
function CheckLength(str,flg) { 
	for (var i = 0; i < str.length; i++) { 
		var c = str.charCodeAt(i); 
		// Shift_JIS: 0x0 〜 0x80, 0xa0 , 0xa1 〜 0xdf , 0xfd 〜 0xff 
		// Unicode : 0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3 
		if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { 
			if(!flg) return true; 
		} else { 
			if(flg) return true; 
		}
	}
	return false; 
}

// 未入力及びオールスペース検出処理
function checkSpaceOnly(formElement, mode) {
	var str = formElement.value;
	if (mode == "0" && !str.length == 0) { return false; }
	for (var i = 0; i < str.length; i++) {
		if (mode == "1" && str.charCodeAt(i) != 32 && str.charCodeAt(i) != 12288) {
			if (str.charCodeAt(i) == -127 && str.charCodeAt(i+1) == 64) {
				i++;
			} else {
				if (str.charCodeAt(i) == 13) {
					if (str.charCodeAt(i+1) == 10) {
						i++;
					}
				} else {
					return false;
				}
			}
		}
	}
	return true;
}

// 未入力及びオールスペース検出処理
function isos_Trim(formElement) {
	var str = formElement.value;
	var sFlg = 0;
	var eFlg = 0;
	var dStart = 0;
	var dEnd = str.length - 1;

	// 始点トリミングの有無チェック
	if ((str.charCodeAt(0) == 32) || (str.charCodeAt(0) == 12288)) {
		sFlg = 1;
	}
	// 終点トリミングの有無チェック
	if ((str.charCodeAt(str.length - 1) == 32) || (str.charCodeAt(str.length - 1) == 12288)) {
		eFlg = 1;
	}

	if (sFlg == 1) {
		for (ainCnt = 0; ainCnt < str.length - 1; ainCnt++) {
			// スペースオンリーの場合
			if (ainCnt == str.length - 1 - 1) {
				formElement.value = '';
				return;
			}
			if ((str.charCodeAt(ainCnt) == 32) || (str.charCodeAt(ainCnt) == 12288)) {
				dStart++;
			} else {
				break;
			}
		}
	}

	if (eFlg == 1) {
		for (ainCnt = str.length - 1; ainCnt > 0; ainCnt--) {
			if ((str.charCodeAt(ainCnt) == 32) || (str.charCodeAt(ainCnt) == 12288)) {
				dEnd--;
			} else {
				break;
			}
		}
	}

	formElement.value = str.substring(dStart,dEnd + 1);

}

// 参加・登録の大会を開く
// 引数：	argFrm（CGI実行元formオブジェクト）
function Jmp_EntryCompe(argUrl)
{
	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	cgiUrl = argUrl + top.MemberInfo.Member_id + "&0&1";

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 現在開催中の大会を開く
// 引数：	argFrm（CGI実行元formオブジェクト）
function Jmp_NowCompe(argUrl)
{
	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	cgiUrl = argUrl + top.MemberInfo.Member_id + "&0&1";

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 過去の大会を開く
// 引数：	argFrm（CGI実行元formオブジェクト）
function Jmp_OldCompe(argUrl, argRetUrl)
{
	var arDate = new Array(3);

	arDate = setDate();

	var cgiUrl = "";

	// CGI URLに会員ID、会員レベル、アクセスキーを付与する
	cgiUrl = argUrl + arDate[0] + "&" + argRetUrl + "&" + top.MemberInfo.Member_id + "&0&1";

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 過去の大会を開く
// 引数：	argFrm（CGI実行元formオブジェクト）
function Jmp_RepList(argUrl)
{
	var arDate = new Array(3);

	arDate = setDate();

	var cgiUrl = "";

	if (top.MemberInfo.LogoutDispFlg == 0) {
		cgiUrl = "/pc/home/top/membertokuten/memberonly.html";
	} else {
		// CGI URLに会員ID、会員レベル、アクセスキーを付与する
		cgiUrl = argUrl + "&" + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_Pass;
	}

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 過去の大会を開く
// 引数：	argFrm（CGI実行元formオブジェクト）
function Jmp_SuiGrp(argUrl)
{
	var arDate = new Array(3);

	arDate = setDate();

	var cgiUrl = "";

	if (top.MemberInfo.LogoutDispFlg == 0) {
		cgiUrl = "/pc/home/top/membertokuten/memberonly.html";
	} else {
		// CGI URLに会員ID、会員レベル、アクセスキーを付与する
		Set_Att('/cgi-bin/InsertHeader/InsertHeader.exe?/pc/home/suiigf/oki-gureMy.html&1500');
		return;
	}

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// CGI引数に会員情報を付与し、実行する。（非会員の場合は固定ページへジャンプ）
// 引数：	argUrl（実行先CGI）
function Chk_Attestation(argUrl1, argUrl2)
{
	var cgiUrl = "";

	if (top.MemberInfo.Member_id == 0) {
		// 固定のURLを設定する
		cgiUrl = argUrl1;
	} else {
		// 固定のURLを設定する
		cgiUrl = argUrl2;
	}

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// CGI引数に会員情報を付与し、実行する。（非会員の場合は固定ページへジャンプ）
// 引数：	argUrl（実行先CGI）
function Chk_Attestation2(argUrl1, argUrl2)
{
	var cgiUrl = "";

	if (top.MemberInfo.Member_id == 0) {
		// 固定のURLを設定する
		cgiUrl = argUrl1;
	} else {
		// 固定のURLを設定する
		Set_Attestation(argUrl2);
		return;
	}

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 月刊釣果アルバム用関数
// 日付から初期に開くアルバムの月を確定させる。
// 注意：必ずisos_time.jsをヘッダ部で宣言していること。
// 引数：	argUrl（実行先CGI）
function Open_ResultAlbum(argUrl1, argUrl2, argUrl3, argUrl4, argUrl5, argUrl6)
{
	var arADate = new Array(3);
	var arBMonth;
	var arBYear;
	var arCDay;			// '090409 Mtok 4月9日釣果アルバムが3月分になる件対応

	arADate = setDate();
	arBMonth = arADate[1] - 1;
	if (arBMonth <= 0) {
		// 年をまたぐ場合の処理
		arBMonth = 12;
		arBYear = arADate[0] - 1;
	} else {
		arBYear = arADate[0];
	}

	arBMonth = "0" + arBMonth
	arBMonth = arBMonth.substring(arBMonth.length-2,arBMonth.length+1);

// '090409 Mtok 4月9日釣果アルバムが3月分になる件対応
	arCDay = arADate[2];
	// parseInt固有のバグ(0オリジンで表記時8、9は0になる)対策
	if (parseInt(arADate[2]) == 0) {
		// 文字列の2文字目のみを取り出す
		arCDay = arADate[2].substring(1,2);
	}
// '090409 Mtok 4月9日釣果アルバムが3月分になる件対応

	if (parseInt(arCDay) >= 2) {
//	if (parseInt(arADate[2]) >= 5) {		'090409 Mtok 4月9日釣果アルバムが3月分になる件対応
		// 月の5日を経過していれば当月の釣果アルバムを表示
		cgiUrl = "/cgi-bin/MonthResult/MonthResult.exe?SXXXXXXXX&CINIT&" + argUrl1 + "&" + arADate[0] + arADate[1] + "01&" + arADate[0] + arADate[1] + GetLastDay(arBYear, arADate[1]) + "&" + argUrl2 + "&" + argUrl3 + "&" + argUrl4 + "&" + argUrl5 + "&" + argUrl6;
	} else {
		// 月の5日を経過していなければ前月の釣果アルバムを表示
//		cgiUrl = "/cgi-bin/MonthResult/MonthResult.exe?SXXXXXXXX&CINIT&" + argUrl1 + "&" + arBYear + arBMonth + "01&" + arBYear + arBMonth + GetLastDay(arBYear, (arADate[1]-1)) + "&" + argUrl2 + "&" + argUrl3 + "&" + argUrl4 + "&" + argUrl5 + "&" + argUrl6;
		cgiUrl = "/cgi-bin/MonthResult/MonthResult.exe?SXXXXXXXX&CINIT&" + argUrl1 + "&" + arBYear + arBMonth + "01&" + arBYear + arBMonth + GetLastDay(arBYear, arBMonth) + "&" + argUrl2 + "&" + argUrl3 + "&" + argUrl4 + "&" + argUrl5 + "&" + argUrl6;
	}

	Set_Att(cgiUrl);
}

function AccessCounterMenu(argKNo, argKSNo, argUrl, argWin, argWidth, argHeight) {
	var str="";
	var CgiUrl;

	if (top.MemberInfo.LogoutDispFlg == 0) {
		var CgiUrl = "/cgi-bin/AccCounterA/AccCounterA.exe?"+ argKNo + "&" + argKSNo;
	} else {
		var CgiUrl = "/cgi-bin/AccCounterA/AccCounterA.exe?"+ (eval(argKNo) + 10000) + "&" + argKSNo;
	}

	str = '<div id="id_AccCountM"><img src="' + CgiUrl + '" width="0" height="0"></div>';

	// HTMLに書込む
	document_write(str, "id_AccCountM");

	var d1 = new Date().getTime();

	var d2 = new Date().getTime();

	while( d2 < d1 + 100 ){

		d2=new Date().getTime();

	}

return;
}

// 季節の釣り用関数
// 各引数を入力し、CGIの引数を構築する
// 注意：必ずisos_time.jsをヘッダ部で宣言していること。
// 引数：	argUrl（実行先CGI）
function Open_SeasonsResult(argCgi, argFid, argStart, argEnd, argIid, argBunya, argHtml)
{

	// 月の15日を経過していれば当月の釣果アルバムを表示
	cgiUrl = argCgi + argFid + "&" + argStart + "&" + argEnd + "&" + argIid + "&" + argBunya + "&&" + argHtml + "&1&" + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_AccKey;

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 季節の釣り用関数
// 各引数を入力し、CGIの引数を構築する(非会員には別ページを表示する)
// 注意：必ずisos_time.jsをヘッダ部で宣言していること。
// 引数：	argUrl（実行先CGI）
function Open_SeasonsLock(argCgi, argFid, argStart, argEnd, argIid, argBunya, argHtml)
{

	if (top.MemberInfo.Member_id == 0) {
		cgiUrl = "/pc/home/top/membertokuten/memberonly2.html";
	} else {

		// 月の15日を経過していれば当月の釣果アルバムを表示
		cgiUrl = argCgi + argFid + "&" + argStart + "&" + argEnd + "&" + argIid + "&" + argBunya + "&&" + argHtml + "&1&" + top.MemberInfo.Member_id + "&" + top.MemberInfo.Member_AccKey;
	}

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 潮見表用関数
// 日付をチェックし、適切な月の潮見表HTMLを自動的に表示する
// 注意：必ずisos_time.jsをヘッダ部で宣言していること。
// 引数：	なし
function Open_Siomi()
{
	var arDate = new Array(3);
	var arDateStr;
	var cgiUrl;

	// 年月日を取得し、配列に転送する
	arDate = setDate();

	// 年情報下2桁を取得する
	arDateStr = arDate[0] + arDate[1];
	arDateStr = arDateStr.substring(arDateStr.length-4,arDateStr.length+1);

	// URLを作成する
	cgiUrl = "/pc/home/siomihyou/siomi" + arDateStr + ".html";

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 磯割表用関数
// 日付をチェックし、適切な月の磯割表HTMLを自動的に表示する
// 注意：必ずisos_time.jsをヘッダ部で宣言していること。
// 引数：Arg1：年月日情報までのファイルパス及びファイル名
//		 Arg2：ヘッダHTML番号
function Open_Isowari(Arg1, Arg2)
{
	var arDate = new Array(3);
	var arDateStr;
	var htmlUrl;
	var cgiUrl;

	// 年月日を取得し、配列に転送する
	arDate = setDate();

	// 年情報下2桁を取得する
	arDateStr = arDate[0] + arDate[1];
	arDateStr = arDateStr.substring(arDateStr.length-4,arDateStr.length+1);

	// URLを作成する
	htmlUrl = Arg1 + arDateStr + ".html";

	// CGIのURLを作成する
	cgiUrl = "javascript:Set_Att('/cgi-bin/InsertHeader/InsertHeader.exe?" + htmlUrl + "&" + Arg2 + "');"

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

// 水温推移表用関数
// 日付をチェックし、適切な月の水温推移表HTMLを自動的に表示する
// 注意：必ずisos_time.jsをヘッダ部で宣言していること。
// 引数：Arg1：年月日情報までのファイルパス及びファイル名
//		 Arg2：ヘッダHTML番号
function Open_Suion(Arg1, Arg2)
{
	var arDate = new Array(3);
	var htmlUrl;
	var cgiUrl;

	// 年月日を取得し、配列に転送する
	arDate = setDate();

	// URLを作成する
	htmlUrl = Arg1 + arDate[1] + ".html";

	// CGIのURLを作成する
	cgiUrl = "javascript:Chk_Attestation2('/pc/home/top/membermousikomi/kaiinmousikomi.html','/cgi-bin/InsertHeader/InsertHeader.exe?" + htmlUrl + "&" + Arg2 + "');"

	// CGI URLにジャンプする
	location.href = cgiUrl;
}

