function validateEmpty(fld) {
    var error = "";
    if (fld.value.length == 0 || fld.value == '') {
        fld.style.background = 'Pink';
        error = "必須項目が入力されていません。\n"
    } else {
        fld.style.background = 'White';
    }
    return error;
}
function validateSelectbox(fld) {
    var error = "";
    if (fld.value=="0") {
        fld.style.background = 'Pink';
        error = "下記よりお選び下さい.\n"
    } else {
        fld.style.background = 'White';
    }
    return error;
}
function validateRadio(fld) {
	var error = "";
    var cnt = -1;
    for (var i=fld.length-1; i > -1; i--) {
        if (fld[i].checked) {cnt = i; i = -1;}
    }
    if (cnt == -1) error = "下記よりお選び下さい.\n";
    return error;
}
function validateDigits(fld){
	fld.style.background = 'White';
	var error = "";
	var min = 0;
	var max = 11;
	var numberFormat = /^\d+$/;
	if (fld.value.length >=min && fld.value.length <= max)
	{
		if (numberFormat.test(fld.value))
		{} else{
			fld.style.background = 'Pink';
			error += "数字を入力してください。\n";
		}
	} else {
		fld.style.background = 'Pink';
		error += "数字の桁数が多いです。\n";
	}
	return error;
}
function validateDigitsIf(fld){
	fld.style.background = 'White';
	var error = "";
	var min = 0;
	var max = 11;
	var numberFormat = /^\d+$/;
	if (fld.value.length >0){
		if(fld.value.length <= max) {
		if (numberFormat.test(fld.value))
		{} else{
			fld.style.background = 'Pink';
			error = "半角数字を入力してください。\n";}
		} else {
		fld.style.background = 'Pink';
		error = "数字の桁数が多いです。\n"; }
	}
	return error;
}
function validateFloat(fld, minvalue, maxvalue)
	{
		fld.style.background = 'White';
		var error = "";
		var numberFormat = /^\d+(\.\d+)?$/;
		var ValueInNumber = Number(fld.value)
		// Set the optional parameter if needed
   		if ( minvalue === undefined )
			{
      			minvalue = 0;
   			}
  		if ( maxvalue === undefined )
			{
      			maxvalue = 10000000000;
   			}
		if (fld.value.length >0)
			{
				if (numberFormat.test(fld.value) && ValueInNumber>=minvalue  && ValueInNumber<=maxvalue)
					{}
				else
					{
						fld.style.background = 'Pink';
						error += "小数を正しく入力してください。\n";
					}
			}
		else
			{
				fld.style.background = 'Pink';
				error += "小数を正しく入力してください。\n";
			}
		return error;
	}
function validateFloatIf(fld, minvalue, maxvalue)
	{
		fld.style.background = 'White';
		var error = "";
		var numberFormat = /^\d+(\.\d+)?$/;
		var ValueInNumber = Number(fld.value)
		// Set the optional parameter if needed
   		if ( minvalue === undefined ){
      			minvalue = 0;
   		}
  		if ( maxvalue === undefined ){
      			maxvalue = 10000000000;
   		}
		if (fld.value.length >0){
				if (numberFormat.test(fld.value) && ValueInNumber>=minvalue  && ValueInNumber<=maxvalue)
					{
				}else{
						fld.style.background = 'Pink';
						error += "小数を正しく入力してください。\n";
				}
		}
		return error;
	}
function validateFileExtension(fld)
	{
		fld.style.background = 'White';
		var error = "";
		if(!/(\.bmp|\.gif|\.jpg|\.jpeg)$/i.test(fld.value))
			{
				//alert("Invalid image file type");
				fld.style.background = 'Pink';
				error += "このイメージファイルのタイプは無効です。\n";
				//fld.form.reset();
				//fld.focus();
			}
		return error;
	}
function validateUsername(fld) {
    var error = "";
	var min = 5;
	var max = 12;
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if (fld.value == "")
	{
        fld.style.background = 'Pink';
        error = "ユーザー名を入力してください。\n";
    }
	else
		if ((fld.value.length < min) || (fld.value.length > max))
		{
			fld.style.background = 'Pink';
			error = "ユーザー名の文字数が正しくありません。\n";
	    }
		else
		if (illegalChars.test(fld.value))
		{
			fld.style.background = 'Pink';
			error = "ユーザー名に不適当な文字が入っています。\n";
		}
		else
		{
        	fld.style.background = 'White';
	    }
    return error;
}
function validatePassword(fld) {
	var min = 5;
	var max = 12;
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers
    if (fld.value == "") {
        fld.style.background = 'Pink';
        error = "パスワードを入力してください。\n";
    } else if ((fld.value.length < min) || (fld.value.length > max)) {
        error = "パスワードの文字数が正しくありません。\n";
        fld.style.background = 'Pink';
    } else if (illegalChars.test(fld.value)) {
        error = "パスワードに不適当な文字が入っています。\n";
        fld.style.background = 'Pink';
    } else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) {
        error = "パスワードを文字と数字を混ぜて入力してください。\n";
        fld.style.background = 'Pink';
    } else {
        fld.style.background = 'White';
    }
   return error;
}
function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}
function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   	fld.style.background = 'White';
    if (!(fld.value==""))
	{
        if (!emailFilter.test(tfld))
		{              //test email for illegal characters
        	fld.style.background = 'Pink';
	        error = "正しいメールアドレスを入力してください。\n";
    	} 
      else 
      if (fld.value.match(illegalChars)) 
      {
	        fld.style.background = 'Pink';
	        error = "メールアドレスの不適当な文字が入っています。\n";
		} else {
			for (var i = 0; i < tfld.length; ++i) {
				var c = tfld.charCodeAt(i);
				if (256 < c) {
			        fld.style.background = 'Pink';
			        error = "メールアドレスに全角文字が入力されています\n";
				}
			}
		}
    } else {
			fld.style.background = 'Pink';
			error = 'メールアドレスが入力されていません。\n';
	}
    return error;
}
function validateEmailIf(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    if (fld.value == "") {
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Pink';
        error = "正しいメールアドレスを入力してください。\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Pink';
        error = "メールアドレスの不適当な文字が入っています。\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}
function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');
   if (fld.value == "") {
        error = "電話番号が入力されていません。\n";
        fld.style.background = 'Pink';
    } else if (isNaN(parseInt(stripped))) {
        error = "電話番号に不適当な文字が入っています。\n";
        fld.style.background = 'Pink';
    } else if (!(stripped.length == 3)) {
        error = "電話番号が間違えています。市外局番を入力してください。\n";
		fld.style.background = 'Pink';
    }
    return error;
}
function validateURL(fld) {
 	var error="";
    var tfld = trim(fld.value);
	fld.style.background = 'White'; 
	if (!(tfld=="")) 
	{
		var urlregex = new RegExp(          "^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&amp;%\$#\=~_\-]+))*$");
		if(!urlregex.test(tfld))
		{
			fld.style.background = 'Pink';
	        error = "正しいＵＲＬを入力してください。\n";
		}
    } else 
		{
			fld.style.background = 'Pink';
			error = 'ＵＲＬが入力されていません\n';
		}
	return error;
}
function validateURLIf(fld) {
 	var error="";
    var tfld = fld.value;
	fld.style.background = 'White';
	//alert(tfld);
	if (!(tfld=="")) 
	{
//		var regexp = /http:\/\/[A-Za-z0-9\.-]\.[A-Za-z]{4}/;
//		var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");
var urlregex = new RegExp(          "^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&amp;%\$#\=~_\-]+))*$");
		if(!urlregex.test(tfld))
		{
			fld.style.background = 'Pink';
	        error = "正しいＵＲＬを入力してください。\n";
		}
    }
	return error;
}
/* validateEmailとセットで利用すること */
function validateMobileEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   	fld.style.background = 'White';
   	/* emailが空白でなく、かつE-mailのフォーマットであり、かつメールアドレスに不適当な文字が入っていない場合 */
    if ((!(fld.value=="")) && (emailFilter.test(tfld)) && (!fld.value.match(illegalChars))) {
    	//携帯のアドレスを除外する
    	if (
    		(tfld.indexOf("docomo.ne.jp") != -1) ||
    		(tfld.indexOf("softbank.ne.jp") != -1) ||
    		(tfld.indexOf("vodafone.ne.jp") != -1) ||
    		(tfld.indexOf("ezweb.ne.jp") != -1) ||
    		(tfld.indexOf("pdx.ne.jp") != -1)
    	) {
        	fld.style.background = 'Pink';
	        error = "携帯電話のメールアドレスでは登録できません\n";
    	}
	}
    return error;
}
