/*
''' <summary>
''' チェック用JavaScript
''' </summary>
''' <remarks>
''' </remarks>
*/

/*

<summary>
エラーコントロールをクリアする
</summary>
<param name="obj">オブジェクト</param>
<remarks>
</remarks>

*/
function clearErrCtl(obj) {
	obj.style.backgroundColor = "white";
}

/*

<summary>
エラーコントロールを設定する
</summary>
<param name="obj">オブジェクト</param>
<remarks>
</remarks>

*/
function setErrCtl(obj) {
	obj.style.backgroundColor = "#ffb3b3";
}

/*

<summary>
文字列をチェックする
</summary>
<param name="value">値</param>
<param name="charType">文字種</param>
<returns>OK/NG</returns>
<remarks>
</remarks>

*/
function checkString(value, charType, pattern) {
	var ret = true;

	if (value == null || value.length == 0) {
		return true;
	}

	switch (charType) {
		case "p":
			// 郵便番号
			value = value.replace("_", "");
			break;
	}

	for (i = 0; i < value.length; i++) {
		if (!checkChar(value.charAt(i), charType, pattern)) {
			return false;
		}
	}

	return ret;
}

function checkChar(value, charType, pattern) {
	var ret = true;

	for (var i = 0; i < charType.length; i++) {
		switch (charType.charAt(i)) {
			case "Ｆ":
				// 全角
				if (escape(value).length < 4) {
					ret = false;
				}
				break;
			case "H":
				// 半角
				if (escape(value).length >= 4) {
					ret = false;
				}
				break;
		}
		if (pattern != "") {
			// 正規表現に一致するかチェックする
			if (value.match(pattern) != value) {
				ret = false;
			}
		}

		if (!ret) {
			break;
		}
	}

	return ret;
}

/*

<summary>
数値かどうかチェックする
</summary>
<param name="value">値</param>
<param name="charType">文字種</param>
<returns>OK/NG</returns>
<remarks>
</remarks>

*/
function checkNumeric(value, charType) {
	var ret = true;

	if (isNaN(value)) {
		ret = false;
	}

	if (ret) {
		switch (charType) {
			case "N":
			case "F":
			case "M":
				// 正数のみ
				if (parseFloat(value) < 0) {
					ret = false;
				}
			break;
		}
	}

	return ret;
}
