// JavaScript Document
// vf_getValue
// vf_formatMessage
// vf_trim
// vf_isAlphanumeric
// vf_isHalfSize
// vf_isFullSize

var vldp_errorMessage = '';

	function vf_test() {
		alert("HOW ARE YOU ?");
	}
	
	function vf_formatMessage(fmtStr, args) {
	  var rtnStr = fmtStr;
	  for (var i = 0; i < args.length; i++) {
		rtnStr = rtnStr.replace('{' + i +'}', args[i]);
	  }
	  return rtnStr;
	}

	
	function vf_getValue(obj) {
	  if ( obj.type=='text'   || obj.type=='textarea' ||
		   obj.type=='hidden' || obj.type=='password' ) {
		return str_trim(obj.value);
	  } else if ( obj.type=='radio' || obj.type=='checkbox' ) {
		return '';
	  } else if ( obj.type=='select-one' ) {
		return obj.options[obj.options.selectedIndex].value;
	  }
	}
	
	function vf_trim(obj) {
	  if ( !(obj.type=='text' || obj.type=='textarea' || obj.type=='hidden') ) {
		return;
	  }
	  var src = vf_getValue(obj);
	  var exp = '[\\n\\r' + String.fromCharCode(0x20, 0x3000) + ']';
	  var reg = new RegExp(exp, 'g');
	  src = src.replace(reg, '');
	  obj.value = src;
	}
	
	function vf_isAlphanumeric(obj, dspnm) {
	  var objVal = vf_getValue(obj);
	  if (objVal=='') {
		return true;
	  }
	  var reg = new RegExp('^[A-Za-z0-9]*$');
	  if (!reg.test(objVal)) {
		vldp_errorMessage = vf_formatMessage('{0}には半角英数字のみ入力してください。', new Array(dspnm));
		alert(vldp_errorMessage);
		return false;
	  }
	  return true;
	}
	
	function vf_isNumeric(obj, dspnm) {
	  var objVal = vf_getValue(obj);
	  if (objVal=='') {
		return true;
	  }
	  var reg = new RegExp('^[0-9]*$');
	  if (!reg.test(objVal)) {
		vldp_errorMessage = vf_formatMessage('{0}には数字のみ入力してください。', new Array(dspnm));
		alert(vldp_errorMessage);
		return false;
	  }
	  return true;
	}

	function vf_isNumericText(str) {
	  var objVal = str;
	  if (objVal=='') {
		return true;
	  }
	  var reg = new RegExp('^[0-9]*$');
	  if (!reg.test(objVal)) {
		return false;
	  }
	  return true;
	}	
	
	function vf_isHalfSize(obj, dspnm) {
	  var objVal = vf_getValue(obj);
	  if (objVal=='') {
		return true;
	  }
	  for (var i = 0; i < objVal.length; i++) {
		var ch  = objVal.charAt(i);
		var esc = escape(ch);
		if ( !(esc.length == 3 && esc.indexOf('%') == 0) && !(esc.length == 1 && esc.indexOf('%') == -1) ) {
		  vldp_errorMessage = vf_formatMessage('{0}には半角文字のみ入力してください。',new Array(dspnm));
		  alert(vldp_errorMessage);
		  return false;
		}
	  }
	  return true;
	}
	
	function vf_isFullSize(obj, dspnm) {
	  var objVal = vf_getValue(obj);
	  if (objVal=='') {
		return true;
	  }
	  for (var i = 0; i < objVal.length; i++) {
		var ch  = objVal.charAt(i);
		var esc = escape(ch);
		if ( (esc.length == 3 && esc.indexOf('%')!=-1 && ch!='\\r' && ch!='\\n') || esc.length == 1) {
		  vldp_errorMessage = vf_formatMessage('{0}には全角文字だけを入力してください。', new Array(dspnm));
		  alert(vldp_errorMessage);
		  return false;
		}
	  }
	  return true;
	}
	
	function vf_isValidChar(obj, dspnm) 
	{
	  var objVal = vf_getValue(obj);
	
	  if (objVal=='') 
	  {
		return true;
	  }
	  
	  /* modified by: GMORAGA 2006/07/20 &,+ and # is added to the badCharList*/
	  /* modified by: NOINOI  2006/08/14 , is added to the badCharList*/
	  var badCharList = new Array('\\','<','>','"','%',"'","$","&","#",",","|");		
	
	  for (var i = 0; i < objVal.length; i++) 
	  {
		var ch  = objVal.charAt(i);
		
		for (var j = 0; j < badCharList.length; j++) 
		{
			if (ch == badCharList[j]) 
			{
			  vldp_errorMessage = vf_formatMessage('{0}に無効なデータが入っています。確認して再入力してください。',new Array(dspnm));
			  alert(vldp_errorMessage);
			  return false;
			}
		  }
		}
	
	  return true;
	}
	
	function vf_getCharHex(chval) {
		var esc = escape(chval);
		if (esc.indexOf('%') ==-1)
			return esc;
		else
			return esc.substring(2);
	}
	
	function vf_isZenkakuKana(obj, dspnm) {
// add 30FC, FF0D, 2015 for kana -...		
	  var objVal = vf_getValue(obj);
	  if (objVal=='') {
		return true;
	  }
	  for (var i = 0; i < objVal.length; i++) {
		var ch  = vf_getCharHex(objVal.charAt(i));
		if (!(((ch >= '30A1') && (ch <= '30F7')) || (ch == '3000') || (ch == '30FC') || (ch == 'FF0D') || (ch == '2015'))) {
		  vldp_errorMessage = vf_formatMessage('{0}には全角カナだけを入力してください。', new Array(dspnm));
		  alert(vldp_errorMessage);
		  return false;
		}
	  }
	  return true;
	}

	function vf_isHankakuKana(obj, dspnm) {
	  var objVal = vf_getValue(obj);
	  if (objVal=='') {
		return true;
	  }
	  for (var i = 0; i < objVal.length; i++) {
		var ch  = vf_getCharHex(objVal.charAt(i));
		if (!(((ch >= 'FF66') && (ch <= 'FF9E')) )) {
		  vldp_errorMessage = vf_formatMessage('{0}には半角カナだけを入力してください。', new Array(dspnm));
		  alert(vldp_errorMessage);
		  return false;
		}
	  }
	  return true;
	}
	
	function vf_isValidEmailFormat(obj, dspnm) {
		if (obj.type!='hidden') {
			var objVal = vf_getValue(obj);
			if (objVal=='') {
				return true;
		  	}
		  	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		  	if (!filter.test(objVal)) {
		  		vldp_errorMessage = vf_formatMessage('{0}には有効なメールアドレスを入力してください。', new Array(dspnm));
				alert(vldp_errorMessage);
				return false;
		 	}
		}
		 return true;
	}
	
	function vf_isEmpty(obj, dspnm){
		var objVal = Trim(vf_getValue(obj));
		if (objVal=='') {
			vldp_errorMessage = vf_formatMessage('{0}は必須入力です。必ず入力してください。', new Array(dspnm));
			alert(vldp_errorMessage);
			return false;
	  	}
	  	
	  	return true;
	}

	function vf_isHHMIFormat(obj, dspnm){
		var b_ret = true;
		var str = obj.value;
		var ar_split = str.split(":");

		if (ar_split.length != 2) 
		   b_ret = false;
		else  {
		   var hh = parseInt (ar_split[0]);
		   var mi = parseInt (ar_split[1]);

		   if (!vf_isNumericText(hh) || !vf_isNumericText(mi))
		   	b_ret = false;
		   else	if (hh < 0 || hh > 23) 
			b_ret = false;
		   else if (mi < 0 || mi > 59) 
			b_ret = false;
		}
		
		if (!b_ret) {
			alert(new FwMessage().getMessage('E0058', new Array(dspnm)));
		}

	  	return b_ret;
	}	
	function Trim(TRIM_VALUE){
		if(TRIM_VALUE.length < 1){
			return"";
		}
		TRIM_VALUE = RTrim(TRIM_VALUE);
		TRIM_VALUE = LTrim(TRIM_VALUE);
		if(TRIM_VALUE==""){
			return "";
		}else{
			return TRIM_VALUE;
		}
	} //End Function

	function RTrim(VALUE){
		var w_space = String.fromCharCode(32);
		var v_length = VALUE.length;
		var strTemp = "";
		if(v_length < 0){
			return"";
		}
		var iTemp = v_length -1;

		while(iTemp > -1){
			if(VALUE.charAt(iTemp) == w_space){
			}else{
				strTemp = VALUE.substring(0,iTemp +1);
				break;
			}
		iTemp = iTemp-1;
		} //End While
		return strTemp;
	} //End Function

	function LTrim(VALUE){
		var w_space = String.fromCharCode(32);
		if(v_length < 1){
			return"";
		}
		var v_length = VALUE.length;
		var strTemp = "";

		var iTemp = 0;

		while(iTemp < v_length){
			if(VALUE.charAt(iTemp) == w_space){
			}else{
				strTemp = VALUE.substring(iTemp,v_length);
				break;
			}
		iTemp = iTemp + 1;
		} //End While
		return strTemp;
	} //End Function	

	function str_trim(str)
	{
   		return str.replace(/^\s*|\s*$/g,"");
	}	
