ERR=new Array();

function check_input_blank(str) {
if (eval(str+".value==\"\"")) {
	ERR.push(PRM[str].label+"を入力してください。");
	return false;
}

return true;
}

function check_alnum(str) {
if (eval(str+".value.match(/[^a-zA-Z0-9]/)"))
	ERR.push(PRM[str].label+"は半角英数字で入力してください。");
}

function check_number(str,minus) {
if (minus==1) {
	if (eval(str+".value.match(/[^-|0-9]/)"))
		ERR.push(PRM[str].label+"は半角数字またはマイナス記号(-)を"
			+"使って入力してください。");
	else if (!eval(str+".value.match(/^-{0,1}[0-9]+$/)") && str.value != "")
		ERR.push(PRM[str].label+"を正しく入力してください。");
} else {
	if (eval(str+".value.match(/[^0-9]/)"))
		ERR.push(PRM[str].label+"は半角数字で入力してください。");
}
}


function check_length(str) {
if (PRM[str].type=="v") {
	unit="文字";
} else if (PRM[str].type=="n") {
	unit="桁";
}

r_length=getRealLength(eval(str+".value"));

if (PRM[str].min>0 && r_length<PRM[str].min && r_length>0)
	ERR.push(PRM[str].label+"は"+PRM[str].min
		+unit+"以上で入力してください。");
if (PRM[str].max>0 && r_length>PRM[str].max)
	ERR.push(PRM[str].label+"は"+PRM[str].max
		+unit+"以内で入力してください。");
}


function check_user_id(str) {
if (eval(str+".value.match(/^[^a-zA-Z]/)"))
	ERR.push(PRM[str].label+"の先頭は半角英字で入力してください。");
if (eval(str+".value.match(/[^-._@a-zA-Z0-9]/)"))
	ERR.push(PRM[str].label+"は半角英数字またはハイフン(-)、ピリオド(.)、\nアンダーバー(_)、アットマーク(@)を使って入力してください。");
}


function check_password(str) {
if (eval(str+".value.match(/[^-!\"#$%&'()=^~\\\\|@`{[;+:*\\]},<.>\\/?_a-zA-Z0-9]/)"))
	ERR.push(PRM[str].label+"は半角英数字記号で入力してください。");
}


function check_name(str) {
if (eval(str+".value.match(/[-!\"#$%&'()=^~\\\\|@`{[;+:*\\]},<.>\\/?_]/)"))
	ERR.push(PRM[str].label+"は半角記号以外で入力してください。");
}


function check_mail(str) {
if (eval(str+".value.match(/[^a-zA-Z0-9\\-_.@]/g)")) {
	ERR.push(PRM[str].label+"の書式に間違いがあります。");
	return;
}
j=0;
e_len=eval(str+".value.length");
for (i=0;i<e_len;i++) {
	eStr=eval(str+".value.substr(i,1)");
	if (i==0 || i==e_len-1) {
		if (eStr.match(/[\-_.@]/)) {
			ERR.push(PRM[str].label+"の書式に間違いがあります。");
			return;
		}
	}
	if (eStr=="@") {j++;}
	if (j>1) {break;}
}
if (j>1 || (e_len>0 && j==0))
	ERR.push(PRM[str].label+"の書式に間違いがあります。");
}


function check_url(str) {
if (!eval(str+".value.match(/^https{0,1}:\\/\\/[0-9a-zA-Z#%&\\-+=~\\\\@:._\\/?()*]+$/)"))
	ERR.push(PRM[str].label+"の書式に間違いがあります。");
}


function check_file(str) {
if (!check_input_blank(str)) return;
if (!eval(str+".value.match(/^[a-zA-Z]:/)")) {
	ERR.push(PRM[str].label+"の書式に間違いがあります。");
} else {
	if (eval(str+".value.match(/[\\/*?\"<>|]/)"))
		ERR.push(PRM[str].label+"に使用できない文字(/ * ? \" < > |)が"
		+"含まれています。");

	eval(str+".value.match(/^.*\\\\(.*)$/)");
	r_length=getRealLength(RegExp.$1);
	if (PRM[str].max>0 && r_length>PRM[str].max)
		ERR.push(PRM[str].label+"は"+PRM[str].max
			+"文字以内で入力してください。");
}
}


function getRealLength(value) {
var i;
var cnt=0;

for (i=0;i<value.length;i++) {
	// UTF-8の全角は３バイト
	if (escape(value.charCodeAt(i)).length>=4) cnt+=3;
	else cnt++;
}

return cnt;
}

