//***************************************************
//概要：お問い合わせの入力チェックを行う
//2007/11/1 ver2.00 
//全お問合せフォーム共通化
//*************************************************

//==================================================
//目的	：入力項目チェック
//引数	：ObjFrm		:お問合せ入力フォームオブジェクト
//引数	：checkArray	:各項目チェック条件の連想配列
//                       1->チェック不要
//                       2->必須チェックあり
//                       3->必須チェックなし
//戻値	：errMsg		:エラーメッセージ
//==================================================
function fieldCheck(ObjFrm, checkArray) {
	// チェックが必要かどうかの項目別フラグ
	var checkFlg = checkArray ;
	// エラーフラグ
	var isErr    = false;
	// 表示するエラーメッセージ
	var errMsg   = '';

	var tmp = '';
	
	//会社名チェック
	if( checkFlg['company_nm'] == "2" ){
		if (ObjFrm.company_nm.value == "" || !checkBlank(ObjFrm.company_nm.value)){
			errMsg += "・会社名を入力してください。\n";
			isErr = true;			
		}else if (bLength(ObjFrm.company_nm.value) > 100){
				errMsg += "・恐れ入りますが、会社名は全角５０文字以内で入力してください。\n";
				isErr = true;			
		}else if( zenhanCount(ObjFrm.company_nm.value) != 1 ){
			errMsg += "・会社名を全角の文字で入力してください。\n";
			isErr = true;
		}
	}

	//会社名チェック
	if( checkFlg['company_nm'] == "3" ){
		if (bLength(ObjFrm.company_nm.value) > 100){
			errMsg += "・恐れ入りますが、会社名は全角５０文字以内で入力してください。\n";
			isErr = true;			
		}else if( ObjFrm.company_nm.value != "" && zenhanCount(ObjFrm.company_nm.value) != 1 ){
			errMsg += "・会社名を全角の文字で入力してください。\n";
			isErr = true;
		}
	}

	//役職チェック
	if( checkFlg['post'] == "2" ){
		if (ObjFrm.post.value == "" || !checkBlank(ObjFrm.post.value)){
			errMsg += "・役職を入力してください。\n";
			isErr = true;			
		}else{
			if (bLength(ObjFrm.name_kanji.value) > 100){
				errMsg += "・恐れ入りますが、役職は全角５０文字以内で入力してください。\n";
				isErr = true;			
			}else if(ObjFrm.post.value != "" &&  zenhanCount(ObjFrm.post.value) != 1 ){
				errMsg += "・役職を全角の文字で入力してください。\n";
				isErr = true;
			}

		}
	}

	//役職チェック
	if( checkFlg['post'] == "3" ){
		if (bLength(ObjFrm.post.value) > 100){
			errMsg += "・恐れ入りますが、役職は全角５０文字以内で入力してください。\n";
			isErr = true;			
		}else if(ObjFrm.post.value != "" &&  zenhanCount(ObjFrm.post.value) != 1 ){
			errMsg += "・役職を全角の文字で入力してください。\n";
			isErr = true;
		}
	}

	//名前チェック
	if( checkFlg['name_kanji'] == "2" ){
		if (ObjFrm.name_kanji.value.replace('　', '').length == 0 || ObjFrm.name_kanji.value.replace(' ', '').length == 0 ||
			!checkBlank(ObjFrm.name_kanji.value)) {
			errMsg += "・お名前を入力してください。\n";
			isErr = true;			
		}else if( zenhanCount(ObjFrm.name_kanji.value) != 1 ){
			errMsg += "・お名前を全角の文字で入力してください。\n";
			isErr = true;
		}else{
		  	if (bLength(ObjFrm.name_kanji.value) > 18){
		  //if (bLength(ObjFrm.name_kanji.value) > 22){
				errMsg += "・恐れ入りますが、お名前は全角９文字以内で入力してください。\n";
				isErr = true;			
			}
		}
	}

	//名前チェック
	if( checkFlg['name_kanji'] == "3" ){
		  	if (bLength(ObjFrm.name_kanji.value) > 18){
		  //if (bLength(ObjFrm.name_kanji.value) > 22){
				errMsg += "・恐れ入りますが、お名前は全角９文字以内で入力してください。\n";
			isErr = true;
		}else if( zenhanCount(ObjFrm.name_kanji.value) != 1 ){
			errMsg += "・お名前を全角の文字で入力してください。\n";
			isErr = true;
		}
	}


	//ふりがなチェック
	if( checkFlg['name_kana'] == "2" ){
		if (ObjFrm.name_kana.value.replace('　', '').length == 0 || ObjFrm.name_kana.value.replace(' ', '').length == 0 ||
			!checkBlank(ObjFrm.name_kana.value)) {
			errMsg += "・ふりがなを入力してください。\n";
			isErr = true;
	  	}else if(bLength(ObjFrm.name_kana.value) > 22){
	  //}else if(bLength(ObjFrm.name_kana.value) > 18){
				errMsg += "・恐れ入りますが、ふりがなは全角１１文字以内で入力してください。\n";
				isErr = true;
		}else{
			if( ObjFrm.name_kana.value.match( /[^ぁ-んー　]+/ ) ) {
				errMsg += "・ふりがなは全角かなで入力してください。\n";
				isErr = true;
			}
		}
	}

	//ふりがなチェック
	if( checkFlg['name_kana'] == "3" ){
	  if (bLength(ObjFrm.name_kana.value) > 22){
	//if (bLength(ObjFrm.name_kana.value) > 18){
			errMsg += "・恐れ入りますが、ふりがなは全角１１文字以内で入力してください。\n";
			isErr = true;			
		}else{
			if( ObjFrm.name_kana.value.match( /[^ぁ-んー　]+/ ) ) {
				errMsg += "・ふりがなは全角かなで入力してください\n";
				isErr = true;
			}
		}
	}

	//電話番号チェック
	if( checkFlg['tel_no'] == "2" ){
		if( typeof(ObjFrm.tel_no) == 'undefined' ){
			var TLPNNO_1 = ObjFrm.tel_no1.value.replace(/^\s+|\s+$/g, "");
			var TLPNNO_2 = ObjFrm.tel_no2.value.replace(/^\s+|\s+$/g, "");
			var TLPNNO_3 = ObjFrm.tel_no3.value.replace(/^\s+|\s+$/g, "");
			TellNumber = (TLPNNO_1 + TLPNNO_2 + TLPNNO_3);

			if (TLPNNO_1 =="" || TLPNNO_2 =="" || TLPNNO_3 =="" || 
				!checkBlank(TLPNNO_1) || !checkBlank(TLPNNO_2) || !checkBlank(TLPNNO_3) ) {
				errMsg += '・電話番号を入力してください。\n';
				isErr = true;
			}else{
				if(zenhanCount(TLPNNO_1) != 5 || zenhanCount(TLPNNO_2) != 5 || zenhanCount(TLPNNO_3) != 5){
					errMsg += '・電話番号を正しく数字で入力してください。\n';
					isErr = true;
				}
				else if(TLPNNO_1.length<2){
					errMsg += '・市外局番を正しく数字で入力してください。\n';
					isErr = true;
				}
				else if(TLPNNO_1.substring(0,1)!="0"){
					errMsg += "・市外局番を正しく数字で入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_1.substring(1,2)=="0"){
					errMsg += "・市外局番を正しく数字で入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_1=="0120" || TLPNNO_1=="0800" || TLPNNO_1=="0990" || TLPNNO_1=="0180" || TLPNNO_1=="0570" || TLPNNO_1=="0170"){
					errMsg += "・市外局番を正しく数字で入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_3.length!=4){
					errMsg += "・電話番号を正しく数字で入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_1.length==2 && TLPNNO_2.length!=4){
					errMsg += "・市外局番、市内局番を正しく入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_1.length==3){
					if(TLPNNO_1=="010" || TLPNNO_1=="020" || TLPNNO_1=="030" || TLPNNO_1=="040"){
						errMsg += "・市外局番を正しく数字で入力してください。\n";
						isErr = true;
					}
					else if(TLPNNO_1=="050" || TLPNNO_1=="060" || TLPNNO_1=="070" || TLPNNO_1=="080" || TLPNNO_1=="090"){
						if(TLPNNO_2.length!=4){
							errMsg += "・市外局番、市内局番を正しく入力してください。\n";
							isErr = true;
						}
					else if(TLPNNO_3.length!=4){
							errMsg += "・電話番号を正しく入力してください。\n";
							isErr = true;
						}
					}
					else if(TLPNNO_2.length!=3){
						errMsg += "・市外局番、市内局番を正しく入力してください。\n";
						isErr = true;
					}
				}
				else if(TLPNNO_1.length==4){
					if(TLPNNO_2.length!=2){
						errMsg += "・市外局番、市内局番を正しく入力してください。\n";
						isErr = true;
					}
				}
				else if(TLPNNO_1.length==5 && TLPNNO_2.length!=1){
					errMsg += "・市外局番、市内局番を正しく入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_2.length==0){
					errMsg += "・市外局番、市内局番を正しく入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_1.length==6 && TLPNNO_2.length!=0){
					errMsg += "・市外局番、市内局番を正しく入力してください。\n";
					isErr = true;
				}
				else if(TellNumber.length>11){
					errMsg += "・市外局番-市内局番-電話番号が長すぎます。正しく入力してください。\n";
					isErr = true;
				}
			}
		}else{
			var TellNumber = ObjFrm.tel_no.value.replace(/^\s+|\s+$/g, "");
			if(TellNumber.length>13){
				errMsg += "・電話番号が長すぎます。正しく入力してください。\n";
				isErr = true;
			}
		}
	}

	//電話番号チェック
	if( checkFlg['tel_no'] == "3" ){
		if( typeof(ObjFrm.tel_no) == 'undefined' ){
			var TLPNNO_1 = ObjFrm.tel_no1.value.replace(/^\s+|\s+$/g, "");
			var TLPNNO_2 = ObjFrm.tel_no2.value.replace(/^\s+|\s+$/g, "");
			var TLPNNO_3 = ObjFrm.tel_no3.value.replace(/^\s+|\s+$/g, "");
			TellNumber = (TLPNNO_1 + TLPNNO_2 + TLPNNO_3);
		
			if(zenhanCount(TLPNNO_1) != 5 || zenhanCount(TLPNNO_2) != 5 || zenhanCount(TLPNNO_3) != 5){
				errMsg += '・電話番号を正しく数字で入力してください。\n';
				isErr = true;
			}
			//if(zenhanCount(TLPNNO_1) != 5){
			//	errMsg += '・市外局番を正しく数字で入力してください。\n';
			//	isErr = true;
			//}
			if(TLPNNO_1.length<2){
				errMsg += '・市外局番を正しく数字で入力してください。\n';
				isErr = true;
			}
			else if(TLPNNO_1.substring(0,1)!="0"){
				errMsg += "・市外局番を正しく数字で入力してください。\n";
				isErr = true;
			}
			else if(TLPNNO_1.substring(1,2)=="0"){
				errMsg += "・市外局番を正しく数字で入力してください。\n";
				isErr = true;
			}
			else if(TLPNNO_1=="0120" || TLPNNO_1=="0800" || TLPNNO_1=="0990" || TLPNNO_1=="0180" || TLPNNO_1=="0570" || TLPNNO_1=="0170"){
				errMsg += "・市外局番を正しく数字で入力してください。\n";
				isErr = true;
			}
			//if(zenhanCount(TLPNNO_2) != 5){
			//	errMsg += "・市内局番を正しく数字で入力してください。\n";
			//	isErr = true;
			//}
			//if(zenhanCount(TLPNNO_3) != 5){
			//	errMsg += "・電話番号を正しく数字で入力してください。\n";
			//	isErr = true;
			//}else
			if(TLPNNO_3.length!=4){
				errMsg += "・電話番号を正しく数字で入力してください。\n";
				isErr = true;
			}
			if(TLPNNO_1.length==2 && TLPNNO_2.length!=4){
				errMsg += "・市外局番、市内局番を正しく入力してください。\n";
				isErr = true;
			}
			if(TLPNNO_1.length==3){
				if(TLPNNO_1=="010" || TLPNNO_1=="020" || TLPNNO_1=="030" || TLPNNO_1=="040"){
					errMsg += "・市外局番を正しく数字で入力してください。\n";
					isErr = true;
				}
				else if(TLPNNO_1=="050" || TLPNNO_1=="060" || TLPNNO_1=="070" || TLPNNO_1=="080" || TLPNNO_1=="090"){
					if(TLPNNO_2.length!=4){
						errMsg += "・市外局番、市内局番を正しく入力してください。\n";
						isErr = true;
					}
				else if(TLPNNO_3.length!=4){
						errMsg += "・電話番号を正しく入力してください。\n";
						isErr = true;
					}
				}
				else if(TLPNNO_2.length!=3){
					errMsg += "・市外局番、市内局番を正しく入力してください。\n";
					isErr = true;
				}
			}
			else if(TLPNNO_1.length==4){
				if(TLPNNO_2.length!=2){
					errMsg += "・市外局番、市内局番を正しく入力してください。\n";
					isErr = true;
				}
			}
			else if(TLPNNO_1.length==5 && TLPNNO_2.length!=1){
				errMsg += "・市外局番、市内局番を正しく入力してください。\n";
				isErr = true;
			}
			else if(TLPNNO_2.length==0){
				errMsg += "・市外局番、市内局番を正しく入力してください。\n";
				isErr = true;
			}
			else if(TLPNNO_1.length==6 && TLPNNO_2.length!=0){
				errMsg += "・市外局番、市内局番を正しく入力してください。\n";
				isErr = true;
			}
			else if(TellNumber.length>11){
				errMsg += "・市外局番-市内局番-電話番号が長すぎます。正しく入力してください。\n";
				isErr = true;
			}
		}else{
			var TellNumber = ObjFrm.tel_no.value.replace(/^\s+|\s+$/g, "");
//			if(zenhanCount(TellNumber) !=5 ){
//				errMsg += '・電話番号を正しく数字で入力してください。\n';
//				isErr = true;
//			}
//			else if(TellNumber.length>13){
//				errMsg += "・電話番号が長すぎます。正しく入力してください。\n";
//				isErr = true;
//			}
			if(TellNumber.length>13){
				errMsg += "・電話番号が長すぎます。正しく入力してください。\n";
				isErr = true;
			}
		}
	}

	//メールアドレスチェック
	if( checkFlg['email'] == "2" ){
		if (ObjFrm.email.value == '' || !checkBlank(ObjFrm.email.value)) {
			errMsg += "・Ｅメールアドレスを入力してください。\n";
			isErr = true;
		}else if(ObjFrm.email.value.length < 6 || ObjFrm.email.value.length > 48 || emailCheck(ObjFrm.email.value) == false) {
				errMsg += "・Ｅメールアドレスを正しく入力してください\n";
				isErr = true;
		}else if(EMailKeitaiCheck(ObjFrm.email.value) == true){
				errMsg += "・携帯電話ではないＥメールアドレスを入力してください。\n";
				isErr = true;
		}
	}

	//メールアドレスチェック
	if( checkFlg['email'] == "3" ){
		if(ObjFrm.email.value.length < 6 || ObjFrm.email.value.length > 48 || emailCheck(ObjFrm.email.value) == false) {
				errMsg += "・Ｅメールアドレスを正しく入力してください\n";
				isErr = true;
		}else if(EMailKeitaiCheck(ObjFrm.email.value) == true){
				errMsg += "・携帯電話ではないＥメールアドレスを入力してください。\n";
				isErr = true;
		}
	}

	//メールアドレスチェック
	if( typeof(ObjFrm.email2) != 'undefined'){
		if(ObjFrm.email.value != ObjFrm.email2.value){
			errMsg += "・メールアドレスと確認用メールアドレスが異なります。\n";
			isErr = true;
		}
	}

	//住所チェック
	if( checkFlg['address'] == "2" ){
		if (bLength(ObjFrm.address.value)== 0 || !checkBlank(ObjFrm.address.value)){
			errMsg += "・住所を入力してください。\n";
			isErr = true;
		}else{
			if (bLength(ObjFrm.address.value) > 256){
				errMsg += "・恐れ入りますが、住所は全角１２８文字以内で入力してください。\n";
				isErr = true;
			}
		}
	}

	//住所チェック
	if( checkFlg['address'] == "3" ){
		if (bLength(ObjFrm.address.value) > 256){
			errMsg += "・恐れ入りますが、住所は全角１２８文字以内で入力してください。\n";
			isErr = true;
		}
	}
	//ご意見・お問い合わせチェック
	if( checkFlg['voice'] == "2" ){
		if (!checkBlank(ObjFrm.voice.value)) {
			errMsg += "・ご意見お問い合わせを入力してください。\n";
			isErr = true;
		}
//		else if (zenhanCount(ObjFrm.voice.value) != 1 ){
//			errMsg += "・ご意見お問い合わせを全角の文字で入力してください。\n";
//			isErr = true;
//		}
		else if (bLength(ObjFrm.voice.value) > 4000){
			errMsg += "・ご意見お問い合わせは全角２０００文字以内で入力してください。\n";
			isErr = true;
		}
	}

	//ご意見・お問い合わせチェック
	if( checkFlg['voice'] == "3" ){
//		if (zenhanCount(ObjFrm.voice.value) != 1 ){
//			errMsg += "・お問い合わせを全角の文字で入力してください。\n";
//			isErr = true;
//		}
//		else 
		if (bLength(ObjFrm.voice.value) > 4000){
			errMsg += "・お問い合わせは全角２０００文字以内で入力してください。\n";
			isErr = true;
		}
	}

	//返信希望チェック
	if (checkFlg['answer_flg'] == "2") {
		if ((ObjFrm.answer_flg[0].checked == false) && (ObjFrm.answer_flg[1].checked == false)) {
			errMsg += "・返信希望の有無をご選択ください。\n";
			isErr = true;
		}else{
			if ( (ObjFrm.answer_flg[0].value != "0") && (ObjFrm.answer_flg[0].value != "1") &&
				 (ObjFrm.answer_flg[1].value != "0") && (ObjFrm.answer_flg[1].value != "1") ) {
				errMsg += "・返信希望の有無を正しくご選択ください。\n";
				isErr = true;
			}
		}
	}

	// 返信希望チェック
	if (checkFlg['answer_flg'] == "3") {
		if ( (ObjFrm.answer_flg[0].value != "0") && (ObjFrm.answer_flg[0].value != "1") &&
			 (ObjFrm.answer_flg[1].value != "0") && (ObjFrm.answer_flg[1].value != "1") ) {
			errMsg += "・返信希望の有無を正しくご選択ください。\n";
			isErr = true;
		}
	}

	if(isErr){
		return errMsg;
	}else{
		if( checkFlg['email'] != "1" ){

			if(ObjFrm.email.value.match("--") || ObjFrm.email.value.match(/\.exe/)){
				errMsg += "特殊記号や記号が連続する文字列（Eメールアドレス）ではお申し込みいただけません。\n";
				errMsg += "恐れ入りますが、他の文字列を入力いただくかフリーダイヤルもしくはファクスにてお申し込みくださいますようお願いいたします。\n\n";
				errMsg += "(入力できない文字例)\n　　・　%    (パーセント)\n　　・　,     (カンマ)\n　　・　--  (ハイフンの連続)\n　　・　.exe(ドットエグゼ)\n\n";
				errMsg += "フリーダイヤル　0120-444-444　(8:00〜22:00　年中無休)\n";
				errMsg += "ファクス　　　　　0120-444-104　(24時間)\n";
				return errMsg;
			}
		}
		return '';
	}
}


/**
* バイト数をチェックします。
* 
* @param チェックする値
* @return バイト数
*/
function bLength(strLine) {

    var ix_str,strcnt=0;
    for(ix_str=0;ix_str<strLine.length;ix_str++){
        if(escape(strLine.charAt(ix_str)).length >= 4 ){
        	strcnt+=2;
        }else{
        	strcnt++;
        }
    }
    return strcnt;

//   var r = 0; 
//  for (var i = 0; i < str.length; i++) { 
//       var c = str.charCodeAt(i); 
       //Unicode :  0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3 
       //Shift_JIS: 0x0 〜 0x80, 0xa0 ,  0xa1 〜 0xdf ,    0xfd 〜 0xff 
//     if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { 
//       if ( (c >= 0x0 && c <= 0x80) || (c == 0xa0) || (c >= 0xa1 && c <= 0xdf) || (c >= 0xfd && c <= 0xff)) { 
//           r += 1; 
//       } else { 
//           r += 2; 
//       } 
//   } 
//   return r; 
} 

//==================================================
//目的	：全角/半角チェック
//引数	：chkStr	:チェックする文字列
//戻値	：0:半角のみ 1:全角のみ 3:全半混在 4:コントロールコード混在 5:数字のみ 6:アルファベットのみ 7:半角英数のみ 8:半角カナ混在
//==================================================
function zenhanCount(chkStr) {

	// 文字種カウンタ
	var numCnt;
	var alpCnt;
	var hanCnt;
	var kanaCnt;
	var zenCnt;
	var ctlCnt;
	var tmpStr;

	numCnt = 0;
	alpCnt = 0;
	hanCnt = 0;
	kanaCnt = 0;
	zenCnt = 0;
	ctlCnt = 0;
	tmpStr = '';

	if (escape('あ').charAt(1) == 'u') {
		for (i = 0; i < chkStr.length; i ++) {
			tmpStr = escape(chkStr.charAt(i))
			if (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == 'u') {
				if (chkStr.charAt(i) >= '｡' && chkStr.charAt(i) <= 'ﾟ') { kanaCnt ++ }
				else { zenCnt ++ }
				}
			else if (chkStr.charAt(i) >= ' ' && chkStr.charAt(i) <= '/') { hanCnt ++ }
			else if (chkStr.charAt(i) >= '0' && chkStr.charAt(i) <= '9') { numCnt ++ }
			else if (chkStr.charAt(i) >= ':' && chkStr.charAt(i) <= '@') { hanCnt ++ }
			else if (chkStr.charAt(i) >= 'A' && chkStr.charAt(i) <= 'Z') { alpCnt ++ }
			else if (chkStr.charAt(i) >= '[' && chkStr.charAt(i) <= '`') { hanCnt ++ }
			else if (chkStr.charAt(i) >= 'a' && chkStr.charAt(i) <= 'z') { alpCnt ++ }
			else if (chkStr.charAt(i) >= '{' && chkStr.charAt(i) <= '~') { hanCnt ++ }
			else { ctlCnt ++ }
			}
		}
	else {
		for (i = 0; i < chkStr.length; i ++) {
			tmpStr = escape(chkStr.charAt(i))
			if ((tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == '8') || (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == '9') || (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == 'E') || (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == 'F')) {
				zenCnt ++
				}
			else if (chkStr.charAt(i) >= '｡' && chkStr.charAt(i) <= 'ﾟ') { kanaCnt ++ }
			else if (chkStr.charAt(i) >= ' ' && chkStr.charAt(i) <= '/') { hanCnt ++ }
			else if (chkStr.charAt(i) >= '0' && chkStr.charAt(i) <= '9') { numCnt ++ }
			else if (chkStr.charAt(i) >= ':' && chkStr.charAt(i) <= '@') { hanCnt ++ }
			else if (chkStr.charAt(i) >= 'A' && chkStr.charAt(i) <= 'Z') { alpCnt ++ }
			else if (chkStr.charAt(i) >= '[' && chkStr.charAt(i) <= '`') { hanCnt ++ }
			else if (chkStr.charAt(i) >= 'a' && chkStr.charAt(i) <= 'z') { alpCnt ++ }
			else if (chkStr.charAt(i) >= '{' && chkStr.charAt(i) <= '~') { hanCnt ++ }
			else { ctlCnt ++ }
			}
		}

	// 0:半角のみ 1:全角のみ 3:全半混在 4:コントロールコード混在 5:数字のみ 6:アルファベットのみ 7:半角英数のみ 8:半角カナ混在
	hanCnt = hanCnt + numCnt + alpCnt;
	if (kanaCnt > 0) { return 8 }
	else if (ctlCnt > 0) { return 4 }
	else if (hanCnt == 0 && zenCnt > 0) { return 1 }
	else if (hanCnt > 0 && zenCnt > 0) { return 3 }
	else if (numCnt > 0 && hanCnt == numCnt) { return 5 }
	else if (alpCnt > 0 && hanCnt == alpCnt) { return 6 }
	else if ((alpCnt > 0 && numCnt >0) && alpCnt + numCnt == hanCnt) { return 7 }
	else if (hanCnt > 0) { return 0 }
}

//==================================================
//目的	：メールアドレスチェック
//引数	：chkStr	:チェックする文字列
//戻値	：emailCheck True=OK	False=NG
//==================================================
function emailCheck(chkStr) {

	if(!chkStr.match(/.*@.*\..*/i)){return false;}

	if (chkStr.charAt(0) == '@') { return false; }
	if (chkStr.charAt(1) == '@') { return false; }
	
	// mail address のチェック
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,3}|\d+)$/i

	var returnval=emailfilter.test(chkStr);

	if(returnval==false){

		if(chkStr.length>1){
			if(chkStr.charAt(chkStr.length-1)=="."){
				var returnval=emailfilter.test(chkStr.substring(0,chkStr.length-1));
			}
		}
	}
	return returnval;
}

//==================================================
//目的	：携帯メールアドレスかどうかチェックする
//引数	：chkStr	:チェックする文字列
//戻値	：emailCheck True=携帯	False=PC
//==================================================

function EMailKeitaiCheck(chkStr){

var Ng_MailAddress = new Array(30);
	Ng_MailAddress[0] = "@jp-t.ne.jp";
	Ng_MailAddress[1] = "@jp-d.ne.jp";
	Ng_MailAddress[2] = "@jp-h.ne.jp";
	Ng_MailAddress[3] = "@jp-r.ne.jp";
	Ng_MailAddress[4] = "@jp-n.ne.jp";
	Ng_MailAddress[5] = "@jp-s.ne.jp";
	Ng_MailAddress[6] = "@jp-q.ne.jp";
	Ng_MailAddress[7] = "@jp-c.ne.jp";
	Ng_MailAddress[8] = "@jp-k.ne.jp";
	Ng_MailAddress[9] = "@softbank.ne.jp";
	Ng_MailAddress[10] = "@d.vodafone.ne.jp";
	Ng_MailAddress[11] = "@h.vodafone.ne.jp";
	Ng_MailAddress[12] = "@t.vodafone.ne.jp";
	Ng_MailAddress[13] = "@c.vodafone.ne.jp";
	Ng_MailAddress[14] = "@k.vodafone.ne.jp";
	Ng_MailAddress[15] = "@r.vodafone.ne.jp";
	Ng_MailAddress[16] = "@n.vodafone.ne.jp";
	Ng_MailAddress[17] = "@s.vodafone.ne.jp";
	Ng_MailAddress[18] = "@q.vodafone.ne.jp";
	Ng_MailAddress[19] = "@ezweb.ne.jp";
	Ng_MailAddress[20] = "@ido.ne.jp";
	Ng_MailAddress[21] = "@sky.tkk.ne.jp";
	Ng_MailAddress[22] = "@sky.tu-ka.ne.jp";
	Ng_MailAddress[23] = "@sky.tck.ne.jp";
	Ng_MailAddress[24] = "@docomo.ne.jp";
	Ng_MailAddress[25] = "@em.nttpnet.ne.jp";
	Ng_MailAddress[26] = "@phone.ne.jp";
	Ng_MailAddress[27] = "@mozio.ne.jp";
	Ng_MailAddress[28] = "@pdx.ne.jp";
	Ng_MailAddress[29] = "@pipopa.ne.jp";
	Ng_MailAddress[30] = "@softbank.ne.jp";

	var ret;
	var i;
	for(i=0;i<Ng_MailAddress.length;i++){
		var rexp = new RegExp(Ng_MailAddress[i]);
		ret = rexp.test(chkStr);
		if(ret == true){
			return true;
		}
	}

	return false;
}


//==================================================
//目的	：空白文字だけかどうかをチェックする
//引数	：chkStr	:チェックする文字列
//戻値	：空白以外も入ってる:true 空白文字しかない:false
//==================================================
function checkBlank(chkStr) {

	var str = "";
	str = chkStr.replace(/^[\s　]+|[\s　]+$/g, "");
	if(str.length<1){
		return false;
	}
	return true;
}


//function CountLength(str) { 
//    var ByteLingth = 0; 
//
//    for (var i = 0; i < str.length; i++) { 
//        var c = str.charCodeAt(i); 
//        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { 
//            ByteLingth += 1; 
//        } else { 
//            ByteLingth += 2; 
//        } 
//    } 
//    
//    return ByteLingth; 
//}
//
//function fieldCheckTextLen(objText, textLen) {
//	if (chkTextZenLen(objText, textLen) == false){
//		return false;
//	}
//
//	return true;
//}
//
//function chkTextLen(text, textLen)
//{
//	var count;
//	var InputStrCount;
//
//	count = 0;
//	InputStrCount = 0;
//
//	for (i=0; i<text.length; i++)
//	{
//		n = escape(text.charAt(i));
//		if (n.length < 4) {
//			count++; 
//
//		}else{
//			count+=2;
//		}
//
//		if (count > textLen) {
//			return false;
//		}
//	}
//
//	return true;
//}
//
//
//function chkTextZenLen(text, textLen)
//{
//
//	var count;
//	var InputStrCount;
//
//	count = 0;
//	InputStrCount = 0;
//
//	for (i=0; i<text.length; i++)
//	{
//		n = escape(text.charAt(i));
//		if (n.length < 4) {
//			count++; 
//			return false;
//
//		}else{
//			count+=2;
//		}
//
//		if (count > textLen) {
//			return false;
//		}
//	}
//
//	return true;
//}
//
//function zenhanCount(chkStr) {
//
//	var numCnt;
//	var alpCnt;
//	var hanCnt;
//	var kanaCnt;
//	var zenCnt;
//	var ctlCnt;
//	var tmpStr;
//
//
//
//	numCnt = 0;
//	alpCnt = 0;
//	hanCnt = 0;
//	kanaCnt = 0;
//	zenCnt = 0;
//	ctlCnt = 0;
//	tmpStr = '';
//
//	if (escape('あ').charAt(1) == 'u') {
//		for (i = 0; i < chkStr.length; i ++) {
//			tmpStr = escape(chkStr.charAt(i))
//			if (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == 'u') {
//				if (chkStr.charAt(i) >= '｡' && chkStr.charAt(i) <= 'ﾟ') { kanaCnt ++ }
//				else { zenCnt ++ }
//				}
//			else if (chkStr.charAt(i) >= ' ' && chkStr.charAt(i) <= '/') { hanCnt ++ }
//			else if (chkStr.charAt(i) >= '0' && chkStr.charAt(i) <= '9') { numCnt ++ }
//			else if (chkStr.charAt(i) >= ':' && chkStr.charAt(i) <= '@') { hanCnt ++ }
//			else if (chkStr.charAt(i) >= 'A' && chkStr.charAt(i) <= 'Z') { alpCnt ++ }
//			else if (chkStr.charAt(i) >= '[' && chkStr.charAt(i) <= '`') { hanCnt ++ }
//			else if (chkStr.charAt(i) >= 'a' && chkStr.charAt(i) <= 'z') { alpCnt ++ }
//			else if (chkStr.charAt(i) >= '{' && chkStr.charAt(i) <= '~') { hanCnt ++ }
//			else { ctlCnt ++ }
//			}
//		}
//	else {
//		for (i = 0; i < chkStr.length; i ++) {
//			tmpStr = escape(chkStr.charAt(i))
//			if ((tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == '8') || (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == '9') || (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == 'E') || (tmpStr.charAt(0) == '%' && tmpStr.charAt(1) == 'F')) {
//				zenCnt ++
//				}
//			else if (chkStr.charAt(i) >= '｡' && chkStr.charAt(i) <= 'ﾟ') { kanaCnt ++ }
//			else if (chkStr.charAt(i) >= ' ' && chkStr.charAt(i) <= '/') { hanCnt ++ }
//			else if (chkStr.charAt(i) >= '0' && chkStr.charAt(i) <= '9') { numCnt ++ }
//			else if (chkStr.charAt(i) >= ':' && chkStr.charAt(i) <= '@') { hanCnt ++ }
//			else if (chkStr.charAt(i) >= 'A' && chkStr.charAt(i) <= 'Z') { alpCnt ++ }
//			else if (chkStr.charAt(i) >= '[' && chkStr.charAt(i) <= '`') { hanCnt ++ }
//			else if (chkStr.charAt(i) >= 'a' && chkStr.charAt(i) <= 'z') { alpCnt ++ }
//			else if (chkStr.charAt(i) >= '{' && chkStr.charAt(i) <= '~') { hanCnt ++ }
//			else { ctlCnt ++ }
//			}
//		}
//
//	hanCnt = hanCnt + numCnt + alpCnt;
//	if (kanaCnt > 0) { return 8 }
//	else if (ctlCnt > 0) { return 4 }
//	else if (hanCnt == 0 && zenCnt > 0) { return 1 }
//	else if (hanCnt > 0 && zenCnt > 0) { return 3 }
//	else if (numCnt > 0 && hanCnt == numCnt) { return 5 }
//	else if (alpCnt > 0 && hanCnt == alpCnt) { return 6 }
//	else if ((alpCnt > 0 && numCnt >0) && alpCnt + numCnt == hanCnt) { return 7 }
//	else if (hanCnt > 0) { return 0 }
//}
//
//function MailFormatCheck(chkStr) {
//
//	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,3}|\d+)$/i
//
//	var returnval=emailfilter.test(chkStr);
//
//	if(returnval==false){
//
//		if(chkStr.length>1){
//			if(chkStr.charAt(chkStr.length-1)=="."){
//
//				var returnval=emailfilter.test(chkStr.substring(0,chkStr.length-1));
//
//			}
//		}
//	}
//
//	return returnval;
//}
//
//function furiganaCheck(chkStr) {
//
//
//	var i;
//
//	for (i = 0; i < chkStr.length; i ++) {
//		if ((chkStr.charAt(i) >= 'ァ' && chkStr.charAt(i) <= 'ン') || chkStr.charAt(i) == 'ー'){ continue }
//		else { return false }
//		}
//	return true;
//}
//
///**
// * バイト数をチェックします。
// * 
// * @param チェックする値
// * @return バイト数
// */
//function bLength(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; 
//} 
//
//
