//------------------------------------------------
//長さチェック
// 文字列の文字数が指定値より小さい場合はTRUEが帰る
//------------------------------------------------
function Cmn_chkMCehck(val,vlen){
	var strLen;
	var strTmp;
  		if( val == ''){
  			return true;
  		}
    	if( val.length <= vlen){
    		return true;
    	} else {
    		return false;
    	}
}

//------------------------------------------------
//半角数字チェック関数
// 対象以外の場合Falseが返される
//------------------------------------------------
function Cmn_isHalfNum(val){
  	var numstring ="0123456789";
    	for (var i=0; i< val.length; i++)  {
    		if ( numstring.indexOf(val.charAt(i)) == -1 )
				return false;
		}
  	return true;
}

//------------------------------------------------
//半角アルファベットチェック関数
// 対象以外の場合Falseが返される
//------------------------------------------------
function Cmn_isHalfAb(val){			
  	var numstring ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
    	for (var i=0; i< val.length; i++)  {
    		if ( numstring.indexOf(val.charAt(i)) == -1 )
				return false;
		}
  	return true;
}



//------------------------------------------------
//全角カナチェック関数
// 対象以外の場合Falseが返される
//------------------------------------------------
function Cmn_isZenKana(vStr) {
	var ichkCnt;
	var list_data ="ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロワヲンヴー、・　";

	for(ichkCnt = 0; ichkCnt < vStr.length; ichkCnt++){
		if (list_data.indexOf(vStr.charAt(ichkCnt))==-1){
			return false;
		}
	}
	return true;
}

//------------------------------------------------
//メールアドレスチェック関数
// 対象以外の場合Falseが返される
//------------------------------------------------
function Cmn_chkEmail(val){
	if (val.indexOf("@") == -1){
		alert("[E-Mail]を正確に入力してください");
		return false;
	}else{
		var istrcnt
		var list_data ="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-@.";
		for(istrcnt = 0; istrcnt < val.length; istrcnt++){
			if (list_data.indexOf(val.charAt(istrcnt))==-1){
				alert("メールアドレスが正しくありません。半角英数を入れて下さい。");
				return false;
			}
		}
	}
	return true;
}

//------------------------------------------------
// 日付の妥当性チェック関数
// 対象以外の場合Falseが返される
//------------------------------------------------
function Cmn_chkDate(syear, smonth, sday){

	//本日日付を変数にセット
	var today = new Date();
	var today_year = today.getFullYear();
	var today_mon  = today.getMonth();
	var today_day  = today.getDate();
	var mon_type   = 0

	if((parseInt(syear)<1850)||(parseInt(syear)>parseInt(today_year))){
		alert("未来もしくは、認識できない年月日が入力されています。");
		return false;
	}else if (parseInt(syear) == parseInt(today_year) && parseInt(smonth) >= parseInt(today_mon) && parseInt(sday) > parseInt(today_day)){
		alert("未来もしくは、認識できない年月日が入力されています。");
		return false;
	}

	//月の算出
	if(smonth.substr(0,1)==0){
		if(smonth.substr(1,1)!=0){
			smonth = smonth.substr(1,1);
		}else{
			alert("月を正しく入力してください。");
			return false;
		}	
	}else if(smonth.substr(0,1)==1){
		if(smonth.substr(1,1)>2){
			alert("月を正しく入力してください。");
			return false;
		}	
	}else{
		alert("月を正しく入力してください。");
		return false;
	}

	//日の算出
	if(sday.substr(0,1)==0){
		if(sday.substr(1,1)==0){
			alert("日付を正しく入力してください。");
			return false;
		}	
	}else if(sday.substr(0,1)==1){
	}else if(sday.substr(0,1)==2){
		if(smonth==2){
			mon_type = parseInt(syear)%4;

			//閏年の時
			if(mon_type==0){
				if(sday.substr(1,1)>9){
					alert("日付を正しく入力してください。");
					return false;
				}
			}else{
				if(sday.substr(1,1)>8){
					alert("日付を正しく入力してください。");
					return false;
				}
			}
		}	
	}else if(sday.substr(0,1)==3){
		if(smonth==4||smonth==6||smonth==9||smonth==11){
			if(sday.substr(1,1)!=0){
				alert("日付を正しく入力してください。");
				return false;
			}
		}else if(smonth==2){
				alert("日付を正しく入力してください。");
				return false;
		}else{
			if(sday.substr(1,1)!=0&&sday.substr(1,1)!=1){
				alert("日付を正しく入力してください。");
				return false;
			}
		}
	}else{
		alert("日付を正しく入力してください。");
		return false;
	}
	return true;
}

//------------------------------------------------
// 全角・半角チェック
// 対象以外の場合Falseが返される
//
// chkFlg("Z":全角チェック、"H":半角チェック)
//
//------------------------------------------------
function Cmn_chkZH(strTarget,chkFlg){
	var i,charTarget,transTarget;
	//「あ」の長さを確認する⇒WEBブラウザによって全角の長さが
	//違うから（IE,NN4.06以降1文字、他2文字）
	var char_length = ("あ".length);
	
	//スペースを削除（g:オプション、くり返し）
	transTarget = strTarget.replace(/[ ]/g,"");
	if(transTarget.length == 0){
		return false;
	}
	
	if(chkFlg == "Z" ){
		for (i=0; i < transTarget.length; i=i+char_length){
	        charTarget = transTarget.charAt(i);
	        if((charTarget >= "!" && charTarget <= "~") || (charTarget >= "｡" && charTarget <= "ﾟ")){
				return false;
			}
		}
	}else if(chkFlg == "H"){
	    for(i=0;i < transTarget.length;i=i+char_length){
	        charTarget = transTarget.charAt(i);
	        if(charTarget >= "　" && charTarget <= "〜"){
	            return false;
	        }
	    }
	}else{
		return false;
	}
	return true;
}

//---------------------------------------------------
//入力文字チェック処理									
//インプットされた値をチェックする。
//使用例： a = CheckChar(チェック対象文字,チェック内容）
//引数		strChktxt：チェック対象文字
//			intflg：対象チェック内容
//				1：入力禁止文字
//				2：半角数字
//				3：半角英大文字
//				4：半角英小文字
//				5：半角英記号(入力禁止除く)
//				6：半角数字英大小文字
//				7：半角数字英大小文字記号
//				8：半角カナ文字，カナ記号
//				9：機種依存文字
//			   10：ファイル名称禁止文字	
//戻り値		N：チェック対象文字なし
//			Y：チェック対象文字あり
//			E：エラー
//---------------------------------------------------
function Cmn_CheckChar(strChktxt,intflg){
	if(strChktxt == ""){
		return "E";
	}
	
	switch(intflg){
		case 1:
			strChkData = ",\'*%;\"";
			break;
		case 2:
			strChkData = "0123456789";
			break;
		case 3:
			strChkData = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
			break;
		case 4:
			strChkData = "abcdefghijklmnopqrstuvwxyz";
			break;
		case 5:
			strChkData = "!#$&()-=^~|\@`[{+:*]}+./?_";
			break;
		case 6:
			strChkData = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
			break;
		case 7:
			strChkData = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$&'()-=^~|\@`[{+:*]}+.\"/?_ ";
			break;
		case 8:
			strChkData = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｯｬｭｮﾞﾟｰ｢｣ｹ･｡､";
			break;
		case 9:
			strChkData = "@ABCDEFGHIJKLMNOPQRS_`abcdefghijklmnopqrstu~∞ョ援窮欠合紫順島這";
			break;
		case 10:
			strChkData = "\/:,;*?\"<>|";
			break;
		case 11:		//1に<>を追加した版（encode対応）
			strChkData = "\"\',%?*;_<>";
			break;
		case 12:		//-を除いた版（郵便番号用）
			strChkData = "!#$&()=^~|\@`[{+:*]}+./?_";
			break;
		case 13:		//メールアドレス用
			strChkData = ";\"\',*%?";
			break;			
		case 14:		//パスワード用(1に半角スペースを追加したもの 2004/05/07 ADD)
			strChkData = ";\"\',*%? ";
			break;			
		default:
			return "E";
			break;
	}

	for (var i=0; i< strChktxt.length; i++)  {
		if(strChkData.indexOf(strChktxt.charAt(i)) != -1){
			return "Y";
		}
	}
		
  	return "N";
}

//---------------------------------------------------
//バイト数チェック
//文字列のバイト数を求めるには１文字ずつ抜き出しescape()を使ってエンコードします。
//エンコード結果は１バイト文字ならば３文字以内(%nnかCなどの文字になります)、
//日本語などの２バイト文字は４文字以上になります。エンコードされた文字列の長さを調べて
//４文字未満ならば１バイト、
//４文字以上ならば２バイトとしてカウンタを加算し、文字列の長さ分だけカウントします。
//---------------------------------------------------
function Cmn_getByte(text)
{
	count = 0;
	for (i=0; i< text.length; i++)
	{
		n = escape(text.charAt(i));
		if (n.length < 4) count++; else count+=2;
	}
	return count;
}


//------------------------------------------------
//長さチェック
// 文字列の文字数が指定値と同じ場合のみTRUEが返る
//------------------------------------------------
function Cmn_chklength(val,vlen){
	var strLen;
	var strTmp;
  		if( val == ''){
  			return true;
  		}
    	if( val.length == vlen){
    		return true;
    	} else {
    		return false;
    	}
}

//------------------------------------------------
//電話番号・ＦＡＸ番号チェック関数
// 対象以外の場合Falseが返される
//------------------------------------------------
function Cmn_TelFaxNum(val){
  	var numstring ="0123456789-";
    	for (var i=0; i< val.length; i++)  {
    		if ( numstring.indexOf(val.charAt(i)) == -1 )
				return false;
		}
  	return true;
}

//------------------------------------------------
//半角英数字チェック関数
// 対象以外の場合Falseが返される
//------------------------------------------------
function Cmn_chkHalfNumAb(val){
  	var numstring ="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    	for (var i=0; i< val.length; i++)  {
    		if ( numstring.indexOf(val.charAt(i)) == -1 )
				return false;
		}
  	return true;
}
