	/**
     * [関数名] trim
     * [機　能] 文字列前後の空白を取り除く
     * [説　明] 
     * [引　数]
     * [返り値]
    */		
	function trim(strChar){
	var NewString = '';
	
	NewString = strChar.replace(/^[　\s]+|[　\s]+$/g,"");

	return NewString;
	}

	/**
     * [関数名] CountLength
     * [機　能] バイト数を数える 
     * [説　明] 
     * [引　数]
     * [返り値]
    */		
	function CountLength(str) { 
    var r = 0; 
    for (var i = 0; i < str.length; i++) { 
        var c = str.charCodeAt(i); 
        // Shift_JIS: 0x0 〜 0x80, 0xa0 , 0xa1 〜 0xdf , 0xfd 〜 0xff 
        // Unicode : 0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3 
        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { 
            r += 1; 
        } else { 
            r += 2; 
        } 
    } 
    return r; 
	} 


	/**
     * [関数名] chkBetweenLength
     * [機　能] 入力文字数チェック（全角）
     * [説　明] 文字列の文字数を調べ、最大文字数以内で入力されているか調べる
     * [引　数]
     * @param obj フォームオブジェクト
     * @param strLengthMin 最小文字数
     * @param strLengthMax 最大文字数
     * [返り値]
     * @return true/false
    */
    function chkBetweenLength(obj, strLengthMin , strLengthMax , str_label ) {
		
		var str = obj.value;
		str = str.replace(/[\n\r]/g,""); //改行を取り除く
        var tmpLength=CountLength(str);//入力された文字列の長さ（文字数）
		//alert ( tmpLength );
        if(( tmpLength >= strLengthMin*2 ) && (tmpLength <= strLengthMax*2 ) ) {
         	return true;		
		}else{
			//alert ( str_label +"::" + "有効文字数 全角"+strLengthMin +"文字以上 " + strLengthMax + "文字以内を確認してください。");
			alert ( "\""+str_label +"\"は、有効文字数 (全角)"+strLengthMin +"文字以上〜(全角)" + strLengthMax + "文字以内です。\nもう一度ご確認ください。\n");
			return false;		
		}
    }
	
	/**
     * [関数名] chkBetweenLength_Han
     * [機　能] 入力文字数チェック（半角）
     * [説　明] 文字列の文字数を調べ、最大文字数以内で入力されているか調べる
     * [引　数]
     * @param obj フォームオブジェクト
     * @param strLengthMin 最小文字数
     * @param strLengthMax 最大文字数
     * [返り値]
     * @return true/false
    */
    function chkBetweenLength_Han(obj, strLengthMin , strLengthMax , str_label ) {
		
        var tmpLength=CountLength(obj.value);//入力された文字列の長さ（文字数）
		//alert ( tmpLength );
        if(( tmpLength >= strLengthMin ) && (tmpLength <= strLengthMax ) ) {
         	return true;		
		}else{
			//alert ( str_label +"::" + "有効文字数 半角"+strLengthMin +"文字以上 " + strLengthMax + "文字以内を確認してください。");
			alert ( "\""+str_label +"\"は、有効文字数 (半角)"+strLengthMin +"文字以上〜(半角)" + strLengthMax + "文字以内です。\nもう一度ご確認ください。\n");
			return false;		
		}
    }


	/**
     * [関数名] ZeroFormat
     * [機　能] ゼロ埋め
     * [説　明] 数値が指定した桁数になるまで数値の先頭をゼロで埋める
     *
     * @param  integer num    数値
     * @param  integer max    桁数
     * @return integer tmpS   ゼロ埋め後の数値
    */
    function ZeroFormat(num,max){
        var tmp=""+num;
        while(tmp.length<max){
            tmp="0"+tmp;
        }
        return tmp;
    }
    /*
    例：document.write(ZeroFormat(1,4)); //0001
    */
	
	
	/**
     * [関数名] isHanAlpha
     * [機　能] 半角英字チェック
     * [説　明] 文字列の中に半角英字（a-z,A-Z）以外の文字が含まれているか調べる
     *　　　　　半角スペースも半角英字とみなす
     * [引　数]
     * @param  obj テキストボックスオブジェクト
     * @return true(含まれていない) | false(含まれている)
    */
    function isHanAlpha(obj , str_label ){
        var str=trim(obj.value); /* 入力値 */
		obj.value = str;
		
        for(var i=0 ; i<str.length; i++){
            var code=str.charCodeAt(i);
            if ((65<=code && code<=90) || (97<=code && code<=122) || 
                 str.substr(i,1)==' ') {
                /* 半角英字（a-z,A-Z）の文字コード範囲 */
                /* 半角スペースも許容 */
            }else{
                alert( str_label +"::" + "半角英字以外が含まれています");
                return false;
            }
        }
        //alert("全て半角英字です");
        return true;
    }
	
	
	 /**
     * [関数名] isRegNum
     * [機　能] 数値チェック（正規表現）
     * [説　明] 数値（0-9）以外の文字が含まれているか正規表現を使用して調べる
     *
     *　　　　　/文字/ のように / で検索対象の文字を囲む
     *　　　　　^ は否定、[^0-9] は 0〜9 の数値以外を意味する
     *　　　　　/g を付けるとマッチした全ての文字をカンマ区切りで返す
     *　　　　　(この場合は数値以外の文字が返される)
     *
     * @param obj テキストボックスオブジェクト
     * @return true(数値のみの場合) | false(数値以外が含まれている場合）
    */
    function isRegNum(obj  , str_label ){
        var str=trim(obj.value); /* 入力値 */
		obj.value = str;
		
        if (str.match(/[^0-9]/g)){
            alert ( str_label +"::" + str.match(/[^0-9]/g)+"\n\n数値以外が含まれています");
            return false;
        }
        //alert ("全て数値です");
        return true;
    }
	
	function isRegTEL(obj  , str_label ){
        var str=trim(obj.value); /* 入力値 */
		obj.value = str;
		
        if (str.match(/[^0-9-]/g)){
            alert ( str_label +"::" + str.match(/[^0-9-]/g)+"\n\n数値またはﾊｲﾌﾝ以外が含まれています");
            return false;
        }
        //alert ("全て数値です");
        return true;
    }


	 /**
     * [関数名] IsDate
     * [機　能] 入力日付のチェック
     * [引　数]
     * [返り値]
    */
	// 入力日付のチェック
	// datestr:(YYYY-MM-DD)形式の日付文字列
	function IsDate( obj , str_label ){		
		var datestr = trim(obj.value); /* 入力値 */
		
    // 正規表現による書式チェック 
   		if(!datestr.match(/^\d{4}\-\d{1,2}\-\d{1,2}$/)){ 
			//alert ( str_label +"::" + "形式が正しくありません。　" + datestr );
        	return false; 
    	}else{
			var date_DATA = datestr.split("-") ;
    		var v_Year  = eval(date_DATA[0]);
    		var v_Month = eval(date_DATA[1]);
    		var v_Day  =  eval(date_DATA[2]);
			
			var YYYYMMDD = v_Year+v_Month+v_Day ;
    		// 月,日の妥当性チェック 
			if(v_Month >= 1 && v_Month <= 12 && v_Day >= 1 && v_Day <= 31){ 
				//alert ( v_Month );
				v_Month = v_Month -1 ;
				var v_Date = new Date(v_Year, v_Month, v_Day); 
					if(isNaN(v_Date)){ 
						return false; 
						}else if(v_Date.getFullYear() == v_Year && v_Date.getMonth() == v_Month && v_Date.getDate() == v_Day){ 
						return true; 
					}else{ 
						alert ( str_label +"::" + "形式が正しくありません。　" + datestr );
						return false; 
					} 
			}else{ 
				alert ( str_label +"::" + "形式が正しくありません。　" + datestr );
				return false; 
			} 

		}   
	} 
	
	
	/**
     * [関数名] IsDateTime
     * [機　能] 入力日付＆時間のチェック
     * [引　数]
     * [返り値]
    */
	// 入力日付＋時間のチェック
	// datestr:(YYYY-MM-DD hh:mm:ss)形式の日付時間文字列
	function IsDateTime( obj , str_label ){		
		var datetimestr = trim(obj.value); /* 入力値 */
		
    // 正規表現による書式チェック 
   		if(!datetimestr.match(/^\d{4}\-\d{1,2}\-\d{1,2}\s\d{1,2}\:\d{1,2}\:\d{1,2}$/)){ 
			alert ( str_label +"::" + "形式が正しくありません。　" + datetimestr );
        	return false; 
    	}else{
			var date_str_tmp = datetimestr.split(" ") ;
			
			var time_DATA = date_str_tmp[1].split(":") ;
			var v_hh = time_DATA[0];
			var v_mm = time_DATA[1];
			var v_ss = time_DATA[2]; 
			var hhmmss = v_hh+v_mm+v_ss ;
			
			var date_DATA = date_str_tmp[0].split("-") ;
    		var v_Year  = date_DATA[0];
    		var v_Month = date_DATA[1];
    		var v_Day  =  date_DATA[2];
			
			var YYYYMMDD = v_Year+v_Month+v_Day ;
    		// 月,日の妥当性チェック 
			if(v_Month >= 1 && v_Month <= 12 && v_Day >= 1 && v_Day <= 31){ 
				v_Month = v_Month -1 ;
				var v_Date = new Date(v_Year, v_Month, v_Day); 
					if(isNaN(v_Date)){ 
						return false; 
						}else if(v_Date.getFullYear() == v_Year && v_Date.getMonth() == v_Month && v_Date.getDate() == v_Day){ 
						return true; 
					}else{ 
						alert ( str_label +"::" + "形式が正しくありません。　" + datestr );
						return false; 
					} 
			}else{ 
				alert ( str_label +"::" + "形式が正しくありません。　" + datestr );
				return false; 
			} 

		}   
	} 
	
	/**
     * [関数名] isRegHan
     * [機　能] 半角チェック
     * [説　明] 文字列中に半角文字以外が含まれているか正規表現を使用して調べる
     * [引　数] 
     * @param obj テキストボックスオブジェクト
     * [返り値]
     * @return true(半角文字のみの場合) | false(半角文字以外が含まれている場合)
    */ 
    function isRegHan( obj , str_label ){
        var str=obj.value;
		//alert ( str );
        /* 半角英数字(0-9)、四則演算子(+-/*)、ピリオド(.)、カンマ(,) (:)(/)(~) */
        var tmp=str.match(/[0-9a-zA-Z\_\?\=\{\}\(\)\%\#\@\&\/\:\~\+\-\/\*\,\. ]+/g);
        /* matchメソッドの返り値が入力値と等しい場合は、全て半角 */
        if (tmp!=str){
            alert(  str_label +"::" + "半角文字以外が含まれています");
            return false;
        }else{
            //alert("半角文字のみです");
            return true;
        }
    }
	
	function isRegHan_value ( str , str_label ){
        var tmp=str.match(/[0-9a-zA-Z\_\?\=\{\}\(\)\%\#\@\&/\:\~\+\-\/\*\,\. ]+/g);
        /* matchメソッドの返り値が入力値と等しい場合は、全て半角 */
        if (tmp!=str){
            alert(  str_label +"::" + "半角文字以外が含まれています");
            return false;
        }else{
            //alert("半角文字のみです");
            return true;
        }
    }
	
	/**
     * [関数名] chkRegEmail
     * [機　能] 正規表現によるメールアドレス（E-mail）チェック
     * [引　数]
     * @param str 入力された文字列
     * [返り値]
     * @return true(E-mail形式である場合) | false(E-mail形式でない場合)
    */
    function chkRegEmail( obj , str_label ){
		var str=obj.value;
        /* E-mail形式の正規表現パターン */
        /* @が含まれていて、最後が .(ドット)でないなら正しいとする */
        var Seiki=/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i;
        /* 入力された値がパターンにマッチするか調べる */
        if(str!=""){
            if(str.match(Seiki)){
                //alert(str.match(Seiki)+"\n\nメールアドレスの形式は正しいです");
                return true;
            }else{
                alert( str_label +"::" + "メールアドレスの形式が不正です");
                return false;
            }
        }else{
            /* 何も入力されていない場合はアラート表示 */
            //alert("メールアドレスを入力してください");
            return false;
        }
    }



