
Validation.addAllThese([
['required','必須項目です', function(v) {
	return !Validation.get('IsEmpty').test(v);
}],
['v_zenkaku','全角文字で入力してください', function (v) {
	return Validation.get('IsEmpty').test(v) || !/[^ -~｡-ﾟ]*/.test(v)
}],
['v_zenkaku_katakana','全角カタカナで入力してください', function (v) {
	return Validation.get('IsEmpty').test(v) || /^[ァ-ヶー]+$/.test(v)
}],
['v_hira','ひらがなで入力してください', function (v) {
	return Validation.get('IsEmpty').test(v) || /^[ぁ-ん]+$/.test(v)
}],
['v_not_han','半角カナを含めないで入力してください', function (v) {
	return Validation.get('IsEmpty').test(v) || !/[ｧ-ﾝﾞﾟ]+$/.test(v)
}],
['v_number','半角数字を入力して下さい', function(v) {
	return Validation.get('IsEmpty').test(v) || (!isNaN(v) && !/^\s+$/.test(v));
}],
['v_digits','スペースや記号を含めずに半角数字を入力して下さい', function(v) {
	return Validation.get('IsEmpty').test(v) || !/[^\d]/.test(v);
}],
['v_alpha','スペースや記号を含めずに半角アルファベットを入力して下さい', function (v) {
	return Validation.get('IsEmpty').test(v) || /^[a-zA-Z]+$/.test(v)
}],
['v_alphanum','スペースや記号を含めずに半角のアルファベットか数字を入力して下さい', function(v) {
	return Validation.get('IsEmpty').test(v) || !/\W/.test(v)
}],
['v_date','日付を入力して下さい', function(v) {
	var test = new Date(v);
	return Validation.get('IsEmpty').test(v) || !isNaN(test);
}],
['v_email','xxx@yyy.jpのような形式で入力して下さい', function (v) {
	return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)
}],
['v_url','http(s)://から入力して下さい', function (v) {
	return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)
}],
['v_date_au', 'yyyy/mm/dd の形式で入力して下さい 例）2000/03/28', function(v) {
	if(Validation.get('IsEmpty').test(v)) return true;
	var regex = /^(\d{4})\/(\d{2})\/(\d{2})$/;
	if(!regex.test(v)) return false;
	var d = new Date(v.replace(regex, '$3/$2/$1'));
	return (parseInt(RegExp.$3, 10) == d.getFullYear()) &&
	(parseInt(RegExp.$2, 10) == (1 + d.getMonth())) &&
	(parseInt(RegExp.$1, 10) == d.getDate());
}],
['v_currency_dollar','Please enter a valid $ amount. For example $100.00 .', function(v) {
	// [$]1[##][,###]+[.##]
	// [$]1###+[.##]
	// [$]0.##
	// [$].##
	return Validation.get('IsEmpty').test(v) || /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(v)
}],
//selectチェック
['v_select','選択して下さい', function(v,elm){
	return elm.options ? elm.selectedIndex > 0 : !Validation.get('IsEmpty').test(v);
}],
//radio、checkboxチェック（一つ以上）
['v_check_radio_one','選択して下さい', function (v,elm) {
	var p = elm.parentNode;
	var options = p.getElementsByTagName('input');
	//	return $A(options).any(function(elm) {
	//		return $F(elm);
	//	});
	var cnt = 0;
	$A(options).each(function(elm){
		if(elm.checked) {
			cnt++;
		}
	});
	return cnt >= 1;
}],
//group select
['v_group_select','未選択項目があります', function (v,elm) {
	var p = elm.parentNode;
	var options = p.getElementsByTagName('select');
	var valueFlg = false;
	$A(options).each(function(elm){
		if(elm.selectedIndex > 0) {
			valueFlg = true;
		}
	});
	var returnFlg = true;
	if(valueFlg){
		$A(options).each(function(elm){
			if(elm.selectedIndex == 0) {
				returnFlg = false;
			}
		});
	}
	return returnFlg;
}],
//group select 必須
['v_group_select_required','未選択項目があります', function (v,elm) {
	var p = elm.parentNode;
	var options = p.getElementsByTagName('select');
	var cnt = 0;
	$A(options).each(function(elm){
		if(elm.selectedIndex > 0) {
			cnt++;
		}
	});
	return v && cnt==$A(options).length;
}],
//group select 日付チェック
['v_group_select_date','日付が不正です', function (v,elm) {
	var p = elm.parentNode;
	if(p.nodeName == 'SPAN' || p.nodeName == 'DIV'){
		var options = p.getElementsByTagName('select');
		var date = new Array();
		var cnt = 0;
		$A(options).each(function(elm){
			date[cnt] = elm.value;
			cnt++;
		});
		if(date[0] && date[1] && date[2]){//すべてに値があればチェック
			var d = new Date(date[0],date[1]-1,date[2]);
			if(d.getFullYear() == date[0] && d.getMonth() == date[1]-1 && d.getDate() == date[2]){
				return true;
			}else{
				return false;
			}
		}
		return true;
	}
}],
//group text
['v_group_txt','未入力項目があります', function (v,elm) {
	var p = elm.parentNode;//上のノードを取得
	var options = p.getElementsByTagName('input');//取得したノードの中のinput要素を取得
	var valueFlg = false;
	$A(options).each(function(elm){
		if(elm.value.trim() != '') {
			valueFlg = true;
		}
	});
	var returnFlg = true;
	if(valueFlg){
		$A(options).each(function(elm){
			if(elm.value.trim() == ''){
				returnFlg = false;
			}
		});
	}
	return returnFlg;
}],
//group text 必須
['v_group_txt_required','未入力項目があります', function (v,elm) {
	var p = elm.parentNode;//上のノードを取得
	var options = p.getElementsByTagName('input');//取得したノードの中のinput要素を取得
	var cnt = 0;
	$A(options).each(function(elm){
		if(elm.value.trim() != '') {
			cnt++;
		}
	});
	return v && cnt==$A(options).length;
}]
]);