//バイト数取得
function get_len(str){				//value値
	var slen = 0;
	for(i=0;i<str.length;i++){
		ch = escape(str.charAt(i));
		if(ch.charAt(0) == "%"){
			slen = slen + (ch.length / 3);
		} else {
			slen = slen + 1;
		}
	}
	return(slen);
}

//文字数チェック
function LengthCheck(txt,len,mes){
	if(txt.length > len){
		alert(mes);
		return(false);
	}
	return(true);
}

//必須項目のチェック
function TextCheck(txt,mes){
	if(txt == ""){
		alert(mes);
		return(false);
	}
	return(true);
}

//メールアドレスチェック
function mail_check(tBox,mes){
	if(tBox.match(/[0-9A-Za-z\!\#\$\%\&\'*+\-\/\=\?\^\_\`\{\|\}\~\.]+@[0-9A-Za-z\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~\.]+/) == tBox) {
		return(true);
	}
	alert(mes);
	return(false);
}

//半角チェック
function hankaku_check(tBox,mes){
	var dat="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"#$%&'()=`|~{+*}<>?_-^\\@[;:],./" +
		"ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝ";
	for (i=0;i<tBox.length;i++){
		sw = 0;
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j) == (tBox.charAt(i))){
				sw = 1;
				break;
			}
		}
		if(sw == 0){
			alert(mes);
			return(false);
		}
	}
	return(true);
}

//半角英数チェック
function hankaku_eisu_check(tBox,mes){
	var dat="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"#$%&'()=`|~{+*}<>?_-^\\@[;:],./";
	for (i=0;i<tBox.length;i++){
		sw = 0;
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j) == (tBox.charAt(i))){
				sw = 1;
				break;
			}
		}
		if(sw == 0){
			alert(mes);
			return(false);
		}
	}
	return(true);
}

//半角英字チェック
function hankaku_eigo_check(tBox,mes){
	var dat="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	for (i=0;i<tBox.length;i++){
		sw = 0;
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j) == (tBox.charAt(i))){
				sw = 1;
				break;
			}
		}
		if(sw == 0){
			alert(mes);
			return(false);
		}
	}
	return(true);
}

//全角チェック
function zenkaku_check(tBox,mes){
	var dat="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"#$%&'()=`|~{+*}<>?_-^\\@[;:],./" +
		"ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝ";
	for (i=0;i<tBox.length;i++){
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j)==(tBox.charAt(i))){
				alert(mes);
				return(false);
			}
		}
	}
	return(true);
}

//全角カナチェック
function zenkaku_kana_check(tBox,mes){
	var dat="アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン" +
		"ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴァィゥェォャュョッー";
	for (i=0;i<tBox.length;i++){
		sw = 0;
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j) == (tBox.charAt(i))){
				sw = 1;
				break;
			}
		}
		if(sw == 0){
			alert(mes);
			return(false);
		}
	}
	return(true);
}

//全角かなチェック
function zenkaku_hirakana_check(tBox,mes){
	var dat="あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん" +
		"がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉゃゅょっー";
	for (i=0;i<tBox.length;i++){
		sw = 0;
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j) == (tBox.charAt(i))){
				sw = 1;
				break;
			}
		}
		if(sw == 0){
			alert(mes);
			return(false);
		}
	}
	return(true);
}

//numeric check
function NumericCheck(tBox){
	var dat="1234567890";
	for (i=0;i<tBox.length;i++){
		sw = 0;
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j) == (tBox.charAt(i))){
				sw = 1;
				break;
			}
		}
		if(sw == 0){
			return(false);
		}
	}
	return(true);
}

//半角数字チェック
function numeric_check(tBox,mes){
	if(NumericCheck(tBox) == false){
		alert(mes);
		return(false);
	}
	return(true);
}

//date check
function DateCheck(Year,Mon,Day){
	NowDate = new Date;
	now_date = String(NowDate.getFullYear()) + String(NowDate.getMonth()+1) + String(NowDate.getDate());
	birth_date = Year.value + Mon.value + Day.value;
	if(now_date < birth_date){
		alert("無効な日付が入力されています。");
		Year.focus(); 
		return false;
	}
		if (!NumericCheck(Year.value)){
		alert("年は半角数字で入力してください。");
		Year.focus(); 
		return false;
	}
	if (!NumericCheck(Mon.value)){
		alert("月は半角数字で入力してください。");
		Mon.focus(); 
		return false;
	}
	if (!NumericCheck(Day.value)){
		alert("日は半角数字で入力してください。");
		Day.focus(); 
		return false;
	}
	if (Year.value < 1800 || Year.value > 2100){
		alert("無効な年が入力されています。");
		Year.focus(); 
		return false;
	}
	if (Mon.value < 1 || Mon.value > 12){
		alert("無効な月が入力されています。");
		Mon.focus(); 
		return false;
	}
	if (Day.value < 1 || Day.value > 31){
		alert("無効な日が入力されています。");
		Day.focus(); 
		return false;
	}
	if (Day.value == 31){
		if (Mon.value==2 || Mon.value==4 || Mon.value==6 || Mon.value==9 || Mon.value==11){
			alert("月と日の関係が正しくありません。");
			Day.focus();
			return false;
		}
	} 
	if (Mon.value == 2 && Year.value%4 != 0){
		if (Day.value > 28){
		alert("この年は２８日までしかありません。");
		Day.focus(); 
		return false;
		}
	}
	else if (Mon.value == 2 && Year.value%4 == 0){
		if (Day.value > 29){
		alert("この年は２９日までしかありません。");
		Day.focus(); 
		return false;
		}
	}
	else if (Mon.value == 2 && Year.value%400 == 0){
		if (Day.value > 29){
		alert("この年は２９日までしかありません。");
		Day.focus(); 
		return false;
		}
	}
	else if (Mon.value == 2 && Year.value%100 == 0){
		if (Day.value > 28){
		alert("この年は２８日までしかありません。");
		Day.focus(); 
		return false;
		}
	}	
	
	return true;
}

//スペースチェック
function space_check(tBox,mes){
	var dat="　 ";
	for (i=0;i<tBox.length;i++){
		sw = 0;
		for (j=0;j<dat.length;j++){
			if(dat.charAt(j) == (tBox.charAt(i))){
				sw = 1;
				break;
			}
		}
		if(sw == 1){
			alert(mes);
			return(false);
		}
	}
	return(true);
}
