
/*************************************************************************
 * 各画面から呼び出すFunction
 *************************************************************************/

/**
 * 入力系必須チェック.（テキストボックス、テキストエリア）
 * 入力されていればtrueを返す.
 *
 * @param myform    フォームオブジェクト
 * @param paramName パラメータ名
 * @param paramWord パラメータの日本語名称（vars.jsで定義したものを指定すること）
 */
function requiredInput(myform, paramName, paramWord) {
	if (myform.elements[paramName].value=="") {
		// パラメータが未入力
		errorElement(myform.elements[paramName]);
		alert(createMsg(m_requiredInput, paramWord, "", ""));
		return false;
	}
	return true;
}

/**
 * 選択系必須チェック.（セレクトボックス）
 * 選択されていればtrueを返す.
 *
 * @param myform    フォームオブジェクト
 * @param paramName パラメータ名
 * @param paramWord パラメータの日本語名称（vars.jsで定義したものを指定すること）
 */
function requiredSelect(myform, paramName, paramWord) {
	if (myform.elements[paramName].value=="") {
		// パラメータが未入力
		errorElement(myform.elements[paramName]);
		alert(createMsg(m_requiredSelect, paramWord, "", ""));
		return false;
	}
	return true;
}

/**
 * チェック系必須チェック.（チェックボックス、ラジオボタン）
 * 選択されていればtrueを返す.
 *
 * @param myform    フォームオブジェクト
 * @param paramName パラメータ名
 * @param paramWord パラメータの日本語名称（vars.jsで定義したものを指定すること）
 */
function requiredCheck(myform, paramName, paramWord) {
	var isChecked = false;
	var isOne = false;
	// 選択肢の数をチェックする（１個だとundefinedになる）
	if(myform.elements[paramName].length == undefined){
		isOne = true;
	}
	if(isOne){
		if (myform.elements[paramName].checked) {
			// チェックされていればOK
			isChecked = true;
		}
	}else{
		// 全ての選択肢に対してチェックされているかどうか判定する
		for (i=0 ; i<myform.elements[paramName].length ; i++) {
			if (myform.elements[paramName][i].checked) {
				// 1つでもチェックされていればOK
				isChecked = true;
				break;
			}
		}
	}
	if (!isChecked) {
		if(isOne){
			// 選択肢をエラー状態にする
			errorElement(myform.elements[paramName]);
		}else{
			for (i=0 ; i<myform.elements[paramName].length ; i++) {
				// 全選択肢をエラー状態にする
				errorElement(myform.elements[paramName][i]);
			}
			if (myform.elements[paramName].length > 0) {
				// 先頭の選択肢にフォーカスをあてる
				myform.elements[paramName][0].focus();
			}
		}
		alert(createMsg(m_requiredSelect, paramWord, "", ""));
		return false;
	}
	return true;
}

/**
 * ユーザID形式チェック
 */
function userId(myform) {
	var element = myform.userId;
	var word = w_userId;
	// 空ならOK
	if (isNullOrBlank(element)) {
		return true;
	}
	// 形式チェック
	if (!isHankakuID(element.value)) {
		errorElement(element);
		alert(createMsg(m_invalidFormat, word, "", ""));
		return false;
	}
	// 文字数チェック
	if (!isLengthRange(element.value, 3, 12)) {
		errorElement(element);
		alert(createMsg(m_invalidLength, word, "", ""));
		return false;
	}
	return true;
}

/**
 * パスワード形式チェック
 */
function password(myform) {
	var element = myform.password;
	var word = w_password;
	return isPassword(element, word);
}

/**
 * パスワード変更チェック.
 * パスワード変更画面でのみ使用してください.
 */
function passwordChange(myform) {
	var element1 = myform.password_O;
	var element2 = myform.password_N;
	var element3 = myform.password_K;
	var word1 = w_password_O;
	var word2 = w_password_N;
	var word3 = w_password_K;
	// 全て必須
	if (!requiredInput(myform, "password_O", word1))	return false;
	if (!requiredInput(myform, "password_N", word2))	return false;
	if (!requiredInput(myform, "password_K", word3))	return false;
	// 形式チェック
	if (!isPassword(element1, word1))	return false;
	if (!isPassword(element2, word2))	return false;
	if (!isPassword(element3, word3))	return false;
	// 新パスワードと確認パスワードの一致確認
	if (element2.value != element3.value) {
		var el = new Array();
		el[0] = element2;
		el[1] = element3;
		errorElements(el);
		alert(createMsg(m_dataNotEqual, word2, word3, ""));
		return false;
	}

	return true;
}

/**
 * サンプルテキストチェック
 */
function text(myform) {
	var element = myform.text;
	var word = w_text;
	// 入力必須
	if (!requiredInput(myform, "text", word))
		return false;

	// 文字数チェック
	if (!isLengthRange(element.value, 1, 256)) {
		errorElement(element);
		alert(createMsg(m_invalidLength, word, "", ""));
		return false;
	}
	return true;
}

