
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errFile
// 概要：必須項目チェック(file用)
// 引数:
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errFile(frmObj,errormsg){
	if (frmObj.value == "") {
		alert (errormsg + "を参照ボタンから設定して下さい");
		frmObj.focus();
		return false;
	}
	return true;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errText
// 概要：必須項目チェック(text用)
// 引数:
//      form     :
//      maxlength:最大入力文字数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errText(frmObj,maxlength,errormsg){
	// 先頭・末尾の空白文字の削除
	frmObj.value = trim(frmObj.value);
	if (frmObj.value == "") {
		alert (errormsg + "を入力して下さい");
		frmObj.focus();
		return false;
	}else{
		if(frmObj.value.length > maxlength){
			alert (errormsg + "は" + maxlength + "文字以内で入力して下さい");
			frmObj.focus();
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errTextarea
// 概要：必須項目チェック(textarea用)
// 引数:
//      form     :
//      maxlength:最大入力文字数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errTextarea(frmObj,maxlength,errormsg){
	// 先頭・末尾の空白文字の削除
	frmObj.value = trim(frmObj.value);
	if (frmObj.value == "") {
		alert (errormsg + "を入力して下さい");
		frmObj.focus();
		return false;
	}else{
		if(frmObj.value.length > maxlength){
			alert (errormsg + "は" + maxlength + "文字以内で入力して下さい");
			frmObj.focus();
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errSelect
// 概要：必須項目チェック(セレクト入力チェック)
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errSelect(frmObj,errormsg){
	if (frmObj.selectedIndex == 0) {
		alert (errormsg + "をお選び下さい" );
		frmObj.focus();
		return false;
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errSelect2
// 概要：必須項目チェック(セレクト入力チェック,size指定あり)
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errSelect2(frmObj,errormsg){
	if (frmObj.value == "") {
		alert (errormsg + "をお選び下さい" );
//		frmObj.focus();
		return false;
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errRadio
// 概要：必須項目チェック(radio用)
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errRadio(frmObj,errormsg){

	return errCheckbox(frmObj, errormsg);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errCheckbox
// 概要：必須項目チェック(checkbox用)
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errCheckbox(frmObj,errormsg){

	chk_flg = 99;

	// 配列件数が1件の時つまりhoge[0]の場合
	if(frmObj.length == undefined){
		if(frmObj.checked) {
			chk_flg = 1;
		}
	}

	for (i=0 ; i< frmObj.length ; i++)	{
		if(frmObj[i].checked) {
			chk_flg = i;
			break;
		}
	}

	if (chk_flg == 99) {
		alert(errormsg + "を選択して下さい");

		if(i==0){
			frmObj.focus();
		}
		else{
			frmObj[0].focus();
		}
		return false;
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errCheckbox2
// 概要：必須項目チェック(checkbox用)
// パラメータ
//      form     :
//      CntCheck :最大チェック可能数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errCheckbox2(frmObj,CntCheck,errormsg){

	chk_flg = 0;

	for (i=0 ; i< frmObj.length ; i++)	{
		if(frmObj[i].checked) {
			chk_flg ++;
		}
	}

	if (chk_flg > CntCheck) {
		alert (errormsg);
		frmObj[0].focus();
		return false;
	}
	return true;

}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errCheckbox_notfocus
// 概要：必須項目チェック(checkbox用) エラーの場合にfocusしない
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errCheckbox_notfocus(frmObj,errormsg){

	chk_flg = 99;

	// 配列件数が1件の時つまりhoge[0]の場合
	if(frmObj.length == undefined){
		if(frmObj.checked) {
			chk_flg = 1;
		}
	}

	for (i=0 ; i< frmObj.length ; i++)	{
		if(frmObj[i].checked) {
			chk_flg = i;
			break;
		}
	}

	if (chk_flg == 99) {
		alert(errormsg + "を選択して下さい");
		return false;
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：errCheckbox2_notfocus
// 概要：必須項目チェック(checkbox用) エラーの場合にfocusしない
// パラメータ
//      form     :
//      CntCheck :最大チェック可能数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function errCheckbox2_notfocus(frmObj,CntCheck,errormsg){

	chk_flg = 0;

	for (i=0 ; i< frmObj.length ; i++)	{
		if(frmObj[i].checked) {
			chk_flg ++;
		}
	}

	if (chk_flg > CntCheck) {
		alert (errormsg);
		return false;
	}
	return true;

}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：lengthCheck
// 概要：入力文字数チェック(texteria等のチェック用)
// 引数:
//      form     :
//      maxlength:最大入力文字数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function lengthCheck(frmObj,maxlength,errormsg){
	if(frmObj.value.length > maxlength ){
		alert (errormsg + "は" + maxlength + "文字以内で入力して下さい");
		frmObj.focus();
		return false;
	}
	return true;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：minilengthCheck
// 概要：最低入力文字数チェック(texteria等のチェック用)
// 引数:
//      form     :
//      minilength:最低入力文字数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function minilengthCheck(frmObj,minilength,errormsg){
	if(frmObj.value.length < minilength ){
		alert (errormsg + "は" + minilength + "文字以上で入力して下さい");
		frmObj.focus();
		return false;
	}
	return true;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：NumberCheck
// 概要：入力項目チェック(テキスト、数値チェック)
// パラメータ
//      form     :
//      maxlength:最大入力文字数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function NumberCheck(frmObj,maxlength,errormsg){
	frmObj.value = frmObj.value.replace(",","");//ユーザーの入力時に「10,000」等のコピーした際に「,」が入るので強制置換、再set

	// 入力があったらチェック
	if(frmObj.value!=''){
		if (isNumber(frmObj.value) == false || frmObj.value.length > maxlength){
			alert (errormsg + "は半角数字 " + maxlength + "文字以内で入力して下さい");
			frmObj.focus();
			return false;
		}
	}
	return true;

}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：TelCheck
// 概要：入力項目チェック(電話番号、FAX番号等)
// パラメータ
//      form     :
//      maxlength:最大入力文字数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function TelCheck(frmObj,maxlength,errormsg){
	// 入力があったらチェック
	if(frmObj.value!=''){
		if (isNumber2(frmObj.value) == false || frmObj.value.length > maxlength){
			alert (errormsg + "は半角数字 " + maxlength + "文字以内で入力して下さい");
			frmObj.focus();
			return false;
		}
	}
	return true;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：ZenkakuCheck
// 概要：入力項目チェック(テキスト、全角チェック)
// パラメータ
//      form     :
//      maxlength:最大入力文字数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function ZenkakuCheck(frmObj,maxlength,errormsg){
	// 入力があったらチェック
	if(frmObj.value!=''){
		if (isZenkaku(frmObj.value) == false || frmObj.value.length > maxlength){
			alert (errormsg + "は全角文字 " + maxlength + "文字以内で入力して下さい");
			frmObj.focus();
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：KanaCheck
// 概要：入力項目チェック(テキスト、全角カタカナチェック)
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function KanaCheck(frmObj,maxlength,errormsg){
	// 入力があったらチェック
	if(frmObj.value!=''){
		if(isKana(frmObj.value) == false || frmObj.value.length > maxlength){
			frmObj.focus();
			alert (errormsg + "は全角カタカナ " + maxlength + "文字以内で入力して下さい");
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：AlphaCheck
// 概要：入力項目チェック(テキスト、半角英字チェック)
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function AlphaCheck(frmObj,maxlength,errormsg){
	// 入力があったらチェック
	if(frmObj.value!=''){
		if(isAlpha(frmObj.value) == false || frmObj.value.length > maxlength){
			alert (errormsg + "は半角英字 " + maxlength + "文字以内で入力して下さい");
			frmObj.focus();
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：AlphaNumberCheck
// 概要：入力項目チェック(テキスト、半角英数字チェック)
// パラメータ
//      form     :
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function AlphaNumberCheck(frmObj,maxlength,errormsg){
	// 入力があったらチェック
	if(frmObj.value!=''){
		if(isAlphaNumber(frmObj.value) == false || frmObj.value.length > maxlength){
			alert (errormsg + "は半角英数字 " + maxlength + "文字以内で入力して下さい");
			frmObj.focus();
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 名前：FloatCheck
// 概要：入力項目チェック(テキスト、小数点桁数チェック)
// パラメータ
//      form     :
//      num      :有効小数点桁数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function FloatCheck(frmObj,num,errormsg){
	// 入力があったらチェック
	if(frmObj.value!=''){
		if(isFloat(frmObj.value)){
			var bal;
			bal = frmObj.value.split(".");
			if(bal[1].length > num){
				frmObj.focus();
				alert(errormsg + "を小数点" + num + "桁以内で入力して下さい");
				return false;
			// ここで初めて成功
			}else{
				return true;
			}
		}else{
			frmObj.focus();
			alert(errormsg + "を小数点" + num + "桁以内で入力して下さい");
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 名前：FloatCheck2
// 概要：入力項目チェック(テキスト、小数点桁数チェック（小数点以下がなくてもOK）)
// パラメータ
//      form     :
//      num      :有効小数点桁数
//      errormsg :エラーメッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function FloatCheck2(frmObj,num1,num2,errormsg){

	// 入力があったらチェック
	if(frmObj.value!=''){
		frmObj.value = frmObj.value.replace(",","");//ユーザーの入力時に「10,000」等のコピーした際に「,」が入るので強制置換、再set
		if(isFloat(frmObj.value)){
			var bal;
			bal = frmObj.value.split(".");
			if(bal[1].length > num1){
				frmObj.focus();
				alert(errormsg + "を小数点" + num1 + "桁以内で入力して下さい");
				return false;
			// ここで初めて成功
			}else{
				return true;
			}
		}else{
			if(!NumberCheck(frmObj,num2,errormsg)){return false;}
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：MailCheck
// 概要：入力項目チェック(テキスト、メールアドレスの正当性チェック)
// パラメータ
//      form     :
//+++++++++++++++++++++++++++++++++++++++++++++++++
function MailCheck(frmObj){
	// 入力があったらチェック
	if(frmObj.value!=''){
		if(isMail(frmObj.value) == false){
			alert ("メールアドレスが不正です。");
			frmObj.focus();
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：DateCheck
// 概要：入力項目チェック(テキスト、日付チェック)
// パラメータ
//      form
//+++++++++++++++++++++++++++++++++++++++++++++++++
function DateCheck(frmObj_y,frmObj_m,frmObj_d){

	// 入力があったらチェック
	if(frmObj_y.value!='' 
	&& frmObj_m.value!='' 
	&& frmObj_d.value!=''
	){
		if(isDate(frmObj_y.value,frmObj_m.value,frmObj_d.value) == false){
			alert("日付が存在しません。");
			frmObj_y.focus();
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：DateCheck2
// 概要：入力項目チェック(テキスト、日付必須チェック)
// パラメータ
//      form
//+++++++++++++++++++++++++++++++++++++++++++++++++
function DateCheck2(frmObj_y,frmObj_m,frmObj_d,errormsg){
	if(!errSelect(frmObj_y,errormsg)){return false;}
	if(!errSelect(frmObj_m,errormsg)){return false;}
	if(!errSelect(frmObj_d,errormsg)){return false;}

	if(isDate(frmObj_y.value,frmObj_m.value,frmObj_d.value) == false){
		alert("日付が存在しません。");
		frmObj_y.focus();
		return false;
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：DateComp
// 概要：入力項目チェック(テキスト、日付期間チェック)
// パラメータ
//      form
//      flg		1:from-to比較　2:入力値（日付）と当日比較　3:入力値（時期）と当日比較
//+++++++++++++++++++++++++++++++++++++++++++++++++
function DateComp(frmObj_y1,frmObj_m1,frmObj_d1,frmObj_y2,frmObj_m2,frmObj_d2,flg){

	if(flg == "1")
	{
		// from-to比較
		var dtfrom	= new Date(frmObj_y1.value, frmObj_m1.value -1, frmObj_d1.value);
		var dtto	= new Date(frmObj_y2.value, frmObj_m2.value -1, frmObj_d2.value);
	}
	else if(flg == "2")
	{
		// 入力値（日付）と当日比較
		var dtNow	= new Date();
		var dtfrom	= new Date(dtNow.getYear(), dtNow.getMonth(), dtNow.getDate());
		var dtto	= new Date(frmObj_y2.value, frmObj_m2.value -1, frmObj_d2.value);
	}
	else if(flg == "3")
	{
		// 入力値（時期）と当日比較
		var dtNow	= new Date();
		var dtfrom	= new Date(dtNow.getYear(), dtNow.getMonth(), dtNow.getDate());
		if(frmObj_d2.value == "01")
		{
			// 上旬
			var dtto	= new Date(frmObj_y2.value, frmObj_m2.value -1, 10);
		}
		else if(frmObj_d2.value == "11")
		{
			// 中旬
			var dtto	= new Date(frmObj_y2.value, frmObj_m2.value -1, 20);
		}
		else if(frmObj_d2.value == "21")
		{
			// 下旬
			var dtto	= new Date(frmObj_y2.value, frmObj_m2.value, 1);
		}
	}

	var cmp		= dtto.getTime() - dtfrom.getTime();
	var cmp2	= (Math.ceil(cmp / 1000 / 60 / 60 / 24));

	if(flg == "1")
	{
		if(cmp2 <= 0)
		{
			alert("期間の設定が間違っています。");
			frmObj_y1.focus();
			return false;
		}
	}
	else if(flg == "2" || flg == "3")
	{
		if(cmp2 < 0)
		{
			alert("日付が過去になっています。");
			frmObj_y2.focus();
			return false;
		}
	}

	return true;
}


//以下メンバー関数・外部(各ページ)からの参照は禁止
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：Trim
// 概要：文字列の先頭・末尾の全角・半角スペースの除去
// パラメータ
//      form
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Removes leading whitespaces
function LTrim( value ) {
	
//	var re = /\s*((\S+\s*)*)/;
//	return value.replace(re, "$1");

	var re1 = /\s*((\S+\s*)*)/;
	var re2 = /^[ 　]*/;// 先頭の全角スペースを在るだけ省く
	value = value.replace(re1, "$1");
	value = value.replace(re2, "");
	return value;
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
//	var re = /((\s*\S+)*)\s*/;
//	return value.replace(re, "$1");

	var re1 = /((\s*\S+)*)\s*/;
	var re2 = /[ 　]*$/;// 末尾の全角スペースを在るだけ省く
	value = value.replace(re1, "$1");
	value = value.replace(re2, "");
	return value;
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}


//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isNumber
// 概要：半角数字か否か
// パラメータ
//      form
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isNumber(value) { 
	return (value.match(/[0-9]+/) == value);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isNumber2
// 概要：半角数字か否か（ハイフン"-"含む）
// パラメータ
//      form
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isNumber2(value) { 
	return (value.match(/[0-9\-]+/) == value);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isAlpha
// 概要：半角英字か否か
// パラメータ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isAlpha(value){
	return (value.match(/[a-zA-Z]+/) == value);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isAlphaNumber
// 概要：半角英数字か否か（"@","_","-","."も含める）
// パラメータ
//      form
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isAlphaNumber(value) { 
	return (value.match(/[a-zA-Z0-9@_\-.]+/) == value);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 名前：isFloat
// 概要：小数か否か
// パラメータ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isFloat(value){
	var bal;
	bal = value.split(".");
	if(bal.length == 2){
		if(isNumber(bal[0]) && isNumber(bal[1])){
			return true;
		}
	}
	return false;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isKana
// 概要：全角カタカナか否か
// パラメータ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isKana(value){

	var i, transTarget, char_length;
	var checkStr = new String("ァアィイゥウヴェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲン？ゞー・");

	var char_length = ("ア".length);
	transTarget = value.replace(/[	]/g, "");
	if(transTarget.length == 0){
		return false;
	}

	for(i=0;i<transTarget.length;i=i+char_length){
		if(checkStr.indexOf(transTarget.charAt(i),0)==-1){
			return false;
		}
	}
	return true;
// 正規表現は「ー」が弾かれてしまうので・・・
//	return (value.match(/[ァ-ン]+/g) == value);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isZenkaku
// 概要：全角文字か否か
// パラメータ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isZenkaku(value) {
	for (var i = 0; i < value.length; ++i) {
		var c = value.charCodeAt(i);
		//  半角カタカナは不許可
		if (c < 256 || (c >= 0xff61 && c <= 0xff9f)) {
			return false;
		}
	}
	return true;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isMail
// 概要：メールアドレスか否か(@付きで来るのが条件)
// パラメータ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isMail(value) {
//	return (value.match(/^\S+@\S+\.\S+$/) == value);
//	return (value.match(/^([0-9a-zA-Z.-_]{1,})@([0-9a-zA-Z.-_]{1,})$/) == value);

//#	if(!value.match(/^([0-9a-zA-Z.\-_]{1,})@([0-9a-zA-Z.\-_]{1,})$/)){
	if(!value.match(/^([0-9a-zA-Z.\-_]{1,})@(([\w-]+\.[\w-]+){1,})$/)){
		return false;
	}else{
		return true;
	}
	
}
//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：isDate
// 概要：入力項目チェック(暦日の存在チェック)
// パラメータ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function isDate(kaku_yyyy,kaku_mm,kaku_dd) {
	var v_yyyy;
	var v_mm;
	var v_dd;
	// 例 08=>8,19=>19,01=>1
	// 10進数の整数変換
	v_yyyy = parseInt(kaku_yyyy,10);
	v_mm   = parseInt(kaku_mm,10);
	v_dd   = parseInt(kaku_dd,10);
//alert(v_yyyy);
//alert(v_mm);
//alert(v_dd);

//#	if ((v_mm < 01) || (v_mm > 12)) { return false;	}		// 月数チェック
//#	if ((v_mm == 01) || (v_mm == 03) || (v_mm == 05) || (v_mm == 07) || (v_mm == 08) || (v_mm == 10) || (v_mm == 12)) {
//#	if ((v_dd < 01) || (v_dd > 31)) { return false;	}		// ３１日チェック
//#	} else {
//#	if ((v_dd < 01) || (v_dd > 30)) { return false; }		// ３０日チェック
//#	}
//#
//#	if (v_mm == 02) {										// 閏年チェック
//#		if ((v_yyyy % 400 == 0) || ((v_yyyy % 4 == 0) && (v_yyyy % 100 != 0))) {
//#			if (v_dd > 29) { return false; }
//#		} else {
//#			if (v_dd > 28) { return false; }
//#		}
//#	}

	if ((v_mm < 1) || (v_mm > 12)) { return false;	}		// 月数チェック
	if ((v_mm == 1) || (v_mm == 3) || (v_mm == 5) || (v_mm == 7) || (v_mm == 8) || (v_mm == 10) || (v_mm == 12)) {
	if ((v_dd < 1) || (v_dd > 31)) { return false;	}		// ３１日チェック
	} else {
	if ((v_dd < 1) || (v_dd > 30)) { return false; }		// ３０日チェック
	}

	if (v_mm == 2) {										// 閏年チェック
		if ((v_yyyy % 400 == 0) || ((v_yyyy % 4 == 0) && (v_yyyy % 100 != 0))) {
			if (v_dd > 29) { return false; }
		} else {
			if (v_dd > 28) { return false; }
		}
	}

	return true;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：endCRTrim
// 概要：末尾の改行を削除する
//+++++++++++++++++++++++++++++++++++++++++++++++++
function endCRTrim(value)
{
   return value.replace(/[\n\r]*$/g,"");
}

//+++++++++++++++++++++++++++++++++++++++++++++++++


//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：JC_page_link
// 概要：ページ移動全般
// パラメータ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function JC_page_link(form,link)
{
	form.action		= link;
	form.target		= "_self";
	form.method		= "post";
	form.submit();
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：JC_search_ck
// 概要：検索時チェックボックスチェック
// パラメータ
//      frmObj	：チェック項目
//      link	：飛ばし先URL
//      limit	：チェック数制限
//      errormsg：メッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function JC_search_ck(form,frmObj,link,limit,errormsg)
{
	if(JC_search_err_ck(frmObj,limit,errormsg))
	{
		form.action			= link;
		form.target			= "_self";
		form.submit();
	}
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：JC_search_err_ck
// 概要：検索時チェックボックスチェック
// パラメータ
//      frmObj	：チェック項目
//      limit	：チェック数制限
//      errormsg：メッセージ
//+++++++++++++++++++++++++++++++++++++++++++++++++
function JC_search_err_ck(frmObj,limit,errormsg)
{
	if(!errCheckbox_notfocus(frmObj,errormsg)){return false;}
	if(!errCheckbox2_notfocus(frmObj,limit,errormsg + 'は最大' + limit + '箇所まで選択できます。')){return false;}

	return true;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：JC_radio_clear
// 概要：ラジオボタンクリア
// パラメータ
//      frmObj	：チェック項目
//+++++++++++++++++++++++++++++++++++++++++++++++++
function JC_radio_clear(frmObj)
{
	var o = document.getElementsByName(frmObj);
	for(i = 0; o.length > i; i++)
	{
		o[i].checked	= false;
	}
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
// 関数：JC_scroll_map
// 概要：スクロール地図最大化表示
// パラメータ
//      url	：スクロール地図
//+++++++++++++++++++++++++++++++++++++++++++++++++
function JC_scroll_map(url)
{
    var sw = screen.width;
    var sh = screen.height;

    var ssize = 'toolbar=1,location=1,directories=1,status=1,scrollbars=1,resizable=1,menubar=1,width=' + sw + ',height=' + sh;

    window.open(url,'scroll_map',ssize);
}



//以下デザイン用関数

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


