
var CookieVarName1 = 'KamokuIdList';
var CookieVarName2 = 'KeyIco';
var CookieVarName3 = 'Keyword';

//------------------------------【 目 次 】---------------------------------

// [1] Cookie に ID を追加・削除（チェックボックスの場合）
		// writeIdList(KamokuID)
// [1.1] Cookie の ID とチェックボックスの状態を照合（ロード時チェック）
		// checkIdList(KamokuID)
// [2] 詳細画面における、科目リスト追加用の2つのチェックボックスのための関数
		// writeChkBox(KamokuID, CBID)
// [3] 全角数字 → 半角数字変換 （ただし、データの型は文字型とする）
		// Full2Half(NumVal)
// [4] 科目IDが存在するかどうかのチェック（一括問い合わせページ）
		// IDExist()
// [5] 10科目以内どうかのチェック（お問い合わせ科目リストページ）
		// NumConf()
// [6] 機関が一つ以上選択されているかどうかチェック（講座提供機関一覧ページ）
		// OrgChk()
// [7] Cookie の値を取得
		// getCookie(VarName)
// [8] Cookie に値をセット
		// setCookie(Name, Value)
// [9] Cookie が使用可かどうかのテスト （このファイルを読み込んだ時点で動作）


//--------------------------------------------------------------------------
// [1] Cookie に ID を追加・削除（チェックボックスの場合）
//--------------------------------------------------------------------------

function writeIdList(KamokuID) {
	var ValAry = new Array();
	getVal = getCookie(CookieVarName1);
	if (getVal) ValAry = getVal.split(',');

	// <TD> 背景色変更用
	TDID = 'Chk' + KamokuID;

	// チェックボックスの状態
	i = 1;
	var Status = 0;
	while (document.SelectList.elements[i]) {
		ElVal = document.SelectList.elements[i].value;
		if (ElVal == KamokuID) {
			if (
				document.SelectList.elements[i].type == 'checkbox'
				&& document.SelectList.elements[i].checked
			) {
				Status = 1; // ON
			} else {
				Status = 0; // OFF
			}
			break;
		}
		i ++;
	}

	// チェックボックスが ON で、まだリストに入っていない科目ならリストに追加
	if (Status) {
		Already = 'yet';
		if (ValAry[0]) {
			i = 0;
			while (ValAry[i]) {
				if (ValAry[i] == KamokuID) {
					Already = 'yes';
					break;
				}
				i ++;
			}
		}
		if (Already == 'yet') ValAry.push(KamokuID);
		document.getElementById(TDID).style.backgroundColor = OnColor;

	// チェックボックスが OFF で、リストに入っている科目ならリストから削除
	} else {
		if (ValAry[0]) {
			var TmpAry = new Array();
			i = 0;
			while (ValAry[i]) {
				if (ValAry[i] != KamokuID) {
					TmpAry.push(ValAry[i]);
				}
				i ++;
			}
			ValAry = TmpAry;
		}
		document.getElementById(TDID).style.backgroundColor = OffColor;
	}

	ValAry.sort();
	setVal = ValAry.toString();
	setCookie(CookieVarName1, setVal);

	return true;
}


//--------------------------------------------------------------------------
// [1.1] Cookie の ID とチェックボックスの状態を照合（ロード時チェック）
//--------------------------------------------------------------------------

function checkIdList(KamokuID) {
	var ValAry = new Array();
	getVal = getCookie(CookieVarName1);
	if (getVal) ValAry = getVal.split(',');

	// チェックボックスの状態
	i = 1;
	var Status = 0;
	var Change = -1;
	while (document.SelectList.elements[i]) {
		ElVal = document.SelectList.elements[i].value;
		if (ElVal == KamokuID) {
			if (
				document.SelectList.elements[i].type == 'checkbox'
				&& document.SelectList.elements[i].checked
			) {
				Status = 1; // ON
			} else {
				Status = 0; // OFF
			}
			Change = i;
			break;
		}
		i ++;
	}

	// Cookie の状態
	Exist = 0;
	if (ValAry[0]) {
		i = 0;
		while (ValAry[i]) {
			if (ValAry[i] == KamokuID) {
				Exist = 1;
				break;
			}
			i ++;
		}
	}

	// チェックボックスと Cookie に相違があればリロード
	if ((Status && !Exist) || (!Status && Exist)) {
		location.reload();
	}

	return true;
}


//--------------------------------------------------------------------------
// [2] 詳細画面における、科目リスト追加用の2つのチェックボックスのための関数
//--------------------------------------------------------------------------

function writeChkBox(KamokuID, CBID) {
	var ValAry = new Array();
	getVal = getCookie(CookieVarName1);
	if (getVal) ValAry = getVal.split(',');

	// FORM修正時要注意!!!
	f = 4; // 最初のチェックボックスの要素番号
	i = 5; // 2番目のチェックボックスの要素番号

	// <TD> 背景色変更用
	TDID  = 'Chk' + KamokuID;       // 最初のチェックボックス
	TDIDa = 'Chk' + KamokuID + 'a'; // 2番目のチェックボックス

	// チェックボックスの状態
	var Status = 0;
	if (CBID == TDID) {
		Change = i; // 状態を変えるチェックボックスの要素番号
		if (
			document.SelectList.elements[f].type == 'checkbox'
			&& document.SelectList.elements[f].checked
		) {
			Status = 1;
		}
	} else {
		Change = f; // 状態を変えるチェックボックスの要素番号
		if (
			document.SelectList.elements[i].type == 'checkbox'
			&& document.SelectList.elements[i].checked
		) {
			Status = 1;
		}
	}
	if (Status) {
			document.SelectList.elements[Change].checked= true;
			document.getElementById(TDID).style.backgroundColor  = OnColor;
			document.getElementById(TDIDa).style.backgroundColor = OnColor;
	} else {
			document.SelectList.elements[Change].checked = false;
			document.getElementById(TDID).style.backgroundColor  = OffColor;
			document.getElementById(TDIDa).style.backgroundColor = OffColor;
	}

	writeIdList(KamokuID);
	return true;
}

//--------------------------------------------------------------------------
// [3] 全角数字 → 半角数字変換 （ただし、データの型は文字型とする）
//--------------------------------------------------------------------------

function Full2Half(NumVal) {
	var Befor = new Array('１', '２', '３', '４', '５', '６', '７', '８', '９', '０');
	var After = new Array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
	var i;
	while (NumVal.match(/[０-９]/)) {
		for (i = 0; i < Befor.length; i ++){
			NumVal = NumVal.replace(Befor[i], After[i]);
		}
	}
	return NumVal;
}

//--------------------------------------------------------------------------
// [4] 科目IDが存在するかどうかのチェック（一括問い合わせページ）
// （参照する科目IDリストは、PHP でページ内に用意すること）
//--------------------------------------------------------------------------

function IDExist() {
	// Submit 前に実行し OK なら Cookie 保存して Submit、NG ならエラーメッセージ
	// Cookie は、テキストボックスの入力内容に準じて再定義される
	// (ただし、10科目を超えている場合は何もしない)
	var errMes = '';
	var ValAry = new Array();
	var MaxOver = 0;
	var AllID = AllIDStr.split(',');
	var i = 0;
	while (document.SelectList.elements[i]) {
		var Exist = 0;
		if (
			document.SelectList.elements[i].type == 'text'
			&& document.SelectList.elements[i].value
		) {
			CheckID = Full2Half(document.SelectList.elements[i].value);
			document.SelectList.elements[i].value = CheckID;
			j = 0;
			while (AllID[j]) {
				if (CheckID == AllID[j]) {
					Exist = 1;
					break;
				}
				j ++;
			}

			if (Exist) {
				// Cookieリスト用配列要素追加
				ValAry.push(CheckID);
			} else {
				errMes += CheckID + ' は存在しない科目コードです!\n';
			}
		} else if (
			document.SelectList.elements[i].type == 'hidden'
			&& document.SelectList.elements[i].name == 'MaxOver'
		) {
			MaxOver = 1;
		}
		i ++;
	}

	if (errMes != '') {
		alert(errMes);
		return false;
	} else if (ValAry[0]) {
		ValAry.sort();

		// ValAry の重複を削除
		NewAry = new Array();
		i = 0;
		PreVal = '';
		while (ValAry[i]) {
			if (ValAry[i] != PreVal) NewAry.push(ValAry[i]);
			PreVal = ValAry[i];
			i ++;
		}

		setVal = NewAry.toString();
		setCookie(CookieVarName1, setVal);
		return true;
	} else if (MaxOver) {
		// 10科目を超える場合、何もせずにリスト画面へ
		return true;
	} else {
		// 選択科目がない！（クリアした場合も）
		setCookie(CookieVarName1, '');
		alert('お問い合わせする科目コードが入力されていません');
		return false;
	}
}

//--------------------------------------------------------------------------
// [5] 10科目以内どうかのチェック（お問い合わせ科目リストページ）
//--------------------------------------------------------------------------

function NumConf() {
	// Submit 前に実行

	var NumCount = 0;
	var i = 0;
	while (document.SelectList.elements[i]) {
		if (
			document.SelectList.elements[i].type == 'checkbox'
			&& document.SelectList.elements[i].checked
		) {
			NumCount ++;
		}
		i ++;
	}

	if (!NumCount) {
		alert('お問い合わせする科目が選択されていません');
		return false;
	} else if (NumCount > 10) {
		alert('お問い合わせできる科目数は10科目までです');
		return false;
	} else {
		return true;
	}
}

//--------------------------------------------------------------------------
// [6] 機関が一つ以上選択されているかどうかチェック（講座提供機関一覧ページ）
//--------------------------------------------------------------------------

function OrgChk() {
	// Submit 前に実行

	var ChkCount = 0;
	var i = 0;
	while (document.SelectList.elements[i]) {
		if (
			document.SelectList.elements[i].type == 'checkbox'
			&& document.SelectList.elements[i].checked
		) {
			ChkCount ++;
		}
		i ++;
	}

	if (!ChkCount) {
		alert('機関を選択（チェック）してください');
		return false;
	} else {
		return true;
	}
}

//--------------------------------------------------------------------------
// [7] Cookie の値を取得
//--------------------------------------------------------------------------

function getCookie(VarName) {
	VarName += "=";
	VarCook = document.cookie + ";";
	Start = VarCook.indexOf(VarName);
	if (Start != -1) {
		End = VarCook.indexOf(";", Start);
		return unescape(VarCook.substring(Start + VarName.length, End));
	}
	return false;
}

//--------------------------------------------------------------------------
// [8] Cookie に値をセット
//--------------------------------------------------------------------------

function setCookie(Name, Value) {
	var TmpStr = '';
	if (Value) TmpStr += Name + "=" + escape(Value) + ";";
	else       TmpStr += Name + "=;";

	// expires:省略するとブラウザを終了させるまでが有効期限
	// TmpStr += "expires=Thu, 31-Dec-2037 23:59:59;";
	TmpStr += "path=/online;";
	document.cookie = TmpStr;
}

//--------------------------------------------------------------------------
// [9] Cookie が使用可かどうかのテスト （このファイルを読み込んだ時点で動作）
//--------------------------------------------------------------------------

var TmpStr = 'CookieOK=1;';
TmpStr += "path=/online;";
document.cookie = TmpStr;

testVal = getCookie('CookieOK');
if (testVal) {
	// alert(testVal);
} else {
	alert('このサイトのご利用は、Cookie の使用を前提にしています。\nCookie を使用できるようにブラウザを設定してください');
}

// alert(history.length);
