/*
 *
 * javascriptフォームチェック関数
 * formChecker.js
 *
 * v1.3.0
 * 2002.10.03
 * i
 *
 */

// -----------------------------------------------
// 定義チェック
// element: 指定するフォームエレメント
// -----------------------------------------------
function isDefined(ele) {
	if (typeof(ele) != "undefined") {
		return true;
	} else {
		return false;
	}
}

// -----------------------------------------------
// hiddenチェック
// element: 指定するフォームエレメント
// -----------------------------------------------
function isHidden(ele) {
	if (ele.type == "hidden") {
		return true;
	} else {
		return false;
	}
}

// -----------------------------------------------
// 空欄チェック
// element: 指定するフォームエレメント
// -----------------------------------------------
function isBlank(ele) {
	// eleがセレクトメニューの場合
	if (ele.type == "select-one") {
		if (ele.selectedIndex == 0 || ele.value == '') {
			return true;
		} else {
			return false;
		}
	}

	// eleがチェックボックスの場合
	if (ele.type == "checkbox") {
		return  !ele.checked;

	// eleがそれ以外の場合
	} else {
		if (ele.value == "") {
			return true;
		} else {
			return false;
		}
	}
}

// -----------------------------------------------
// ラジオボタンチェック
// element: 指定するフォームエレメント
// -----------------------------------------------
function isRadioChecked(element) {
	return (typeof(getRadioValue(element)) != 'undefined');
}

// -----------------------------------------------
// ラジオボタンの選択値を取得
// element: 指定するフォームエレメント
// -----------------------------------------------
function getRadioValue(element) {
	var i;
	if (element.length) {
		for (i = 0; i < element.length; i++) {
			if (element[i].checked) {
				return element[i].value;
			}
		}
	} else {
		if (element.checked) {
			return element.value;
		}
	}
}

// -----------------------------------------------
// 数値チェック
// element: 指定するフォームエレメント
// -----------------------------------------------
function isNumeric(ele) {
	// 必須項目とは限らないので空欄でもスルー
	if(ele.value == "") {
		return true;
	} else if(ele.value == 0) {
		return false;
	} else {
		if (isNaN(parseFloat(ele.value))) {
			return false;
		} else {
			return true;
		}
	}
}

// -----------------------------------------------
// 文字数チェック
// element: 指定するフォームエレメント
// len: 文字数上限
// -----------------------------------------------
function isAboved(ele, len) {
	if(ele.value.length >= len) {
		return true;
	} else {
		return false;
	}
}

// -----------------------------------------------
// 数字入力強制メソッド
// evt: eventのkeycodeを得て数字+α以外は破棄
// -----------------------------------------------
function forceNumeric(evt) {
	if ((48 <= evt.keyCode && evt.keyCode <= 57)		// numkey
		|| (96 <= evt.keyCode && evt.keyCode <= 105)	// tenkey
		|| evt.keyCode == 110							// period
		|| evt.keyCode == 190							// dot
		|| (37 <= evt.keyCode && evt.keyCode <= 40)		// cursor
		|| evt.keyCode == 8								// bs
		|| evt.keyCode == 46							// del
		|| evt.keyCode == 45							// insert
		|| evt.keyCode == 36							// home
		|| evt.keyCode == 35							// end
		|| evt.keyCode == 16							// shift
		|| evt.keyCode == 17							// ctrl
		|| evt.keyCode == 9								// tab
		|| evt.keyCode == 13							// enter
		) {
		return true;
	} else {
		return false;
	}
}
