///////////////////////////////////////////////////////////////////////////////////////////
/**
 * 項目タイプと属性を指定して入力値をチェックします。
 * 正常な場合trueを返します。
 * 詳細は【JavaScript定義】を参照下さい。
 */
var HANKAKU_KANA_VAL	= "";
var HANKAKU_SUJI_VAL	= "";
var HANKAKU_EIJI_VAL	= "";
var ZENKAKU_KANA_VAL	= "";
var ZENKAKU_SUJI_VAL	= "";
var ZENKAKU_EIJI_VAL	= "";
var MARK1_VAL			= "";
var MARK2_VAL			= "";
var MARK3_VAL			= "";
var MARK3_2_VAL			= "";
var DISABLECHARS		= "";
var SHNCDWORDS			= "";
var MARK4_VAL			= "";
var MARK4ZEN_VAL		= "";

function init(){
	HANKAKU_KANA_VAL	= "ｱｧｲｨｳｩｴｪｵｫｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝﾟﾞｬｭｮ";
	HANKAKU_SUJI_VAL	= "1234567890";
	HANKAKU_EIJI_VAL	= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	ZENKAKU_KANA_VAL	= "　アァイィウゥエェオォカガキギクグケゲコゴサザシジスズセゼソゾ" +
						   "タダチヂツッヅテデトドナニヌネノハバパヒビピフブプヘベペホボポ" +
						   "マミムメモヤャユュヨョラリルレロワヮヲンヴー−．";
	ZENKAKU_HIRA_VAL	= "　あぁいぃうぅえぇおぉかがきぎくぐけげこごさざしじすずせぜそぞ" +
						   "ただちぢつっづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽ" +
						   "まみむめもやゃゆゅよょらりるれろわゎをんー−．";
	ZENKAKU_SUJI_VAL	= "０１２３４５６７８９";
	ZENKAKU_EIJI_VAL	= "　ＡａＢｂＣｃＤｄＥｅＦｆＧｇＨｈＩｉＪｊＫｋＬｌＭｍＮｎＯｏ" +
						   "ＰｐＱｑＲｒＳｓＴｔＵｕＶｖＷｗＸｘＹｙＺｚ";
	MARK1_VAL			= "　ー−．-";
	MARK2_VAL			= "　()（） ";
	MARK3_VAL			= "<>'\"?&";

	// 2007.10.30 MIC)takeda メールアドレス使用禁止文字修正 ---------->
	MARK3_2_VAL			= "\"():;[]\\<>'^*!$|%";
	// <---------- 2007.10.30 MIC)takeda メールアドレス使用禁止文字修正

	MARK4_VAL			= "!#$%=~^|@{}[];:+*,./_`";
	MARK4ZEN_VAL		= "！＃＄％＝〜＾｜＠｛｝［］；：＋＊，．／＿‘";
	MARK5_VAL           = "-._@/!#+;~:";
	MARK6_VAL           = "&$?";

	/**
	 * 入力できない文字(952文字)
	 * (SJIS 0x8740から0x87FF 及び 0xED40以降)
	 */
	DISABLECHARS	= "";
	SHNCDWORDS	= "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-/_";
}

function inputCheck(checkType, maxLength, isRequired, nFieldName, fieldName1, fieldName2, fieldName3, fieldName4){
	init();

	// リターンコードを格納する変数
	var chk_flg = true;
	// チェックする変数内の値を格納する変数
	var str = "";

	//日付、郵便番号、パスワード、クレ有効期限、申込番号はmaxLengthが固定
	if (checkType == "8")  maxLength = 8;
	if (checkType == "12") maxLength = 7;
	if (checkType == "15") maxLength = 20;
	if (checkType == "16") maxLength = 6;
	if (checkType == "17") maxLength = 15;
	if (checkType == "23") maxLength = 100;

	//項目固有のチェックから行う。
	switch (checkType){
		case "1": //半角英字チェック
			if (!Hankaku_Eiji_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "2": //半角英数字チェック
			if (!Hankaku_EijiSuji_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "3": //半角数字チェック
			if (!Hankaku_Suji_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "4": //全角チェック
			if (!Zenkaku_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "5": //全角カタカナチェック
			if (!Zenkaku_Kana_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "6": //カタカナ数字チェック
			if (!KanaSuji_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "7": //カタカナ英数字記号チェック
			if (!KanaEijiSujiMark_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "8": //日付チェック
			if (!Date_chk(fieldName1, fieldName2, fieldName3, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
			str = fieldvalue1 + fieldvalue2 + fieldvalue3;
			break;
		case "9": //プルダウンチェック
			if (!PullDown_chk(fieldName1, nFieldName)) chk_flg = false;
			n   = eval("document.form1." + fieldName1 + ".selectedIndex");
			str = eval("document.form1." + fieldName1 + "[" + n + "].value");
			break;
		case "10": //ラジオボタンチェック
            if(isRequired){
    			if (!Radio_chk(fieldName1, nFieldName)) chk_flg = false;
            }
			break;
		case "11": //メールアドレスチェック
			if (!Mail_chk(fieldName1, fieldName2, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			str = fieldvalue1 + '@' + fieldvalue2;
			break;
		case "12": //郵便番号チェック
			if (!ZipCode_chk(fieldName1, fieldName2, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			str = fieldvalue1 + fieldvalue2;
			break;
		case "13": //電話番号チェック(携帯電話番号不可)
			if (!Tel_chk1(fieldName1, fieldName2, fieldName3, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
			str = fieldvalue1 + fieldvalue2 + fieldvalue3;
			break;
		case "14": //携帯電話番号チェック
			if (!KTel_chk(fieldName1, fieldName2, fieldName3, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
			str = fieldvalue1 + fieldvalue2 + fieldvalue3;
			break;
		case "15": //パスワードチェック
			if (!Password_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "16": //クレジット有効期限チェック
			if (!CreLimit_chk(fieldName1, fieldName2, fieldName3, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			str = fieldvalue1 + fieldvalue2;
			break;
		case "17": //商品コードチェック
			if (!ShnCd_chk(fieldName1, nFieldName)) chk_flg = false;
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			//fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			str = fieldvalue1;
			break;
		case "18": //同値チェック
			if (!Equal_chk(fieldName1, fieldName2, nFieldName)) chk_flg = false;
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "19": //ボーナス一括払いチェック
			if (!BonusIkkatsu_chk(fieldName1, fieldName2, fieldName3, fieldName4, nFieldName)) chk_flg = false;
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "20": //半角入力不可文字チェック
			if (!Hankaku_DisableChars_chk(fieldName1, nFieldName)) chk_flg = false;
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "21": //電話番号チェック(携帯電話番号可)
			if (!Tel_chk2(fieldName1, fieldName2, fieldName3, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
			str = fieldvalue1 + fieldvalue2 + fieldvalue3;
			break;
		case "22": //必須チェック
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "23": // IDチェック
			if (!Id_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "24":	// 入力可能文字チェック
			if (!DisableChars_chk(fieldName1, nFieldName)) chk_flg = false;
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "25":  // メールアドレスチェック(アカウント＠ドメイン)
			if (!Mail_chk2(fieldName1, nFieldName)) chk_flg = false;
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			str = fieldvalue1;
			break;
		case "26": //電話番号チェック(携帯電話番号可)ハイフン付
			if (!Tel_chk3(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			str = fieldvalue1;
			break;
		case "27":	// パラメータが分かりやすいものか？チェック
			if(!isEasyParam(fieldName1, nFieldName)) chk_flg	= false;
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			str	= fieldvalue1;
			break;
		case "28":	// IDとパスワードが同値か？チェック
			if(!isIdPwSame(fieldName1, fieldName2)) chk_flg	= false;
			break;
		case "29": //半角英字,半角SPチェック
			if (!Hankaku_EijiSp_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
       case "30": //日付チェック
			if (!Date_chk2(fieldName1, fieldName2, fieldName3, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
			fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
			fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
			str = fieldvalue1 + fieldvalue2 + fieldvalue3;
			break;
		case "31":	// PCメールと携帯メールが同値か？チェック（同じならfalseを返す）
			if(!isMailSame(fieldName1, fieldName2, fieldName3, fieldName4)) chk_flg	= false;
			break;
		case "32":	// 電話番号チェック(-を除去してチェック一般・携帯可能)
			if(!Tel_chk4(fieldName1, fieldName2, fieldName3, nFieldName)) chk_flg	= false;
			fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
            str = fieldvalue1;
			break;
		case "33": //パスワードチェック２
			if (!Password_chk2(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "34": //パスワードチェック３
			if (!Password_chk3(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "35":	// 入力可能文字チェック(管理用)
			if (!DisableChars_chk4adm(fieldName1, nFieldName)) chk_flg = false;
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "36":	// ポイントＭＡＸチェック
			if (!PointMaxCheak(fieldName1, fieldName2, nFieldName)) chk_flg = false;
			str = eval("document.form1." + fieldName2 + ".value");
			break;
		case "37": // IDチェック(ログイン時)
			if (!Id_chk3(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "38": // 全角ひらがなチェック
			if (!Zenkaku_Hira_chk(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "39": // フリー入力欄時カード番号チェック(CCS Ware, mod-i)
			if (!Cre_FreeInput_chk(fieldName1, nFieldName, "10", maxLength)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		case "40": // フリー入力欄時カード番号チェック(VeriTrans)
			if (!Cre_FreeInput_chk(fieldName1, nFieldName, "8", maxLength)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		// 360)takeda BBL暫定 IDチェック４桁
		case "99": // IDチェック(会員変更時)
			if (!Id_chk_zan(fieldName1, nFieldName)) chk_flg = false;
			// maxlengthチェック用に値の取得を行う。
			str = eval("document.form1." + fieldName1 + ".value");
			break;
		default:
			break;
	}
	if (!chk_flg) return false; // 項目固有処理でエラーであれば終了する。

	// プルダウンとラジオボタン以外の時のみチェックする。
	if (!((checkType == "9") || (checkType == "10") || (checkType == "19"))){
		// 共通的なチェックを行う。
		// 必須入力チェック
		if (isRequired) {
			if (!Required_chk(str)) {
				showAlert("MSGC00010", fieldName1, nFieldName);
				return false;
			}
		}
		if (!startWithBlank(str)) {
			showAlert("MSGC00020", fieldName1, nFieldName);
			return false;
		}
	}

    // 電話番号チェック(ハイフンカットでチェック)に限り入力値を編集
    if("32" == checkType){
        var aryTel = str.split('-');
        var tel = "";
        var i;
        for(i = 0; i < aryTel.length; i++){
            tel += aryTel[i];
        }
        str = tel;
    }

	var nMaxLength  = -1;
//	if(isNaN(maxLength)){
//		alert("デバッグ：maxLengthは数値で指定されていません");
//		nMaxLength = parseInt(maxLength);
//	}
//	else{
//		alert("1");
		nMaxLength  = parseInt(maxLength);
//		alert("2");
//	}
//	alert("nMaxLength: " + nMaxLength + ", isNaN():" + isNaN(nMaxLength));

	// maxLengthチェック
	//if (maxLength != -1) {
	if (nMaxLength != -1) {
		//if (!MaxLength_chk(checkType, str, fieldName1, nFieldName, maxLength)) return false;
		if (!MaxLength_chk(checkType, str, fieldName1, nFieldName, nMaxLength)) return false;
	}
	return chk_flg;
}

/**
 * 指定のメッセージコードでalertを表示し、項目にカーソルを移動します。
 * changeVal1およびchangeVal2に指定した文字をメッセージに埋め込みます。
 */
function showAlert(errorCode, fieldName, changeVal1, changeVal2){
	alertMessage(errorCode,changeVal1,changeVal2);
	var item = "document.form1." + fieldName +".value";
	// ラジオボタンの時はfieldName[n]としないと"undefined"になるので、フォーカスを当てない事にした。
	if (typeof eval(item) != "undefined"){
		var item = "document.form1." + fieldName +".focus()";
		eval(item);
	}
}

/**
 * 文字が入力されているかどうかチェックします。
 */
function Required_chk(str){
	if (str.length == 0) return false;
	else return true;
}

/**
 * 空白文字で始まる場合、falseを返します。
 */
function startWithBlank(str){
	if (str.length == 0) return true;
	else {
		if (str.charAt(0) == " " ||str.charAt(0) == "　") return false;
		return true;
	}
}

/**
 * 最大入力文字数を超えていないかチェックします。
 */
function MaxLength_chk(checkType, str, fieldName, nFieldName, maxLength){
	if (str.length == 0) return true;
	if (str.length > maxLength) {
		showAlert("MSGC00030", fieldName, nFieldName, maxLength);
		return false;
	}
	return true;
}

/**
 * 半角英字かどうかをチェックします。
 * 全て半角英字であればtrueを返します。
 */
function Hankaku_Eiji_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_Eiji_chk(str)) {
		showAlert("MSGC00040", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 半角英数字かどうかをチェックします。
 * 全て半角英数字であればtrueを返します。
 */
function Hankaku_EijiSuji_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_EijiSuji_chk(str)) {
		showAlert("MSGC00050", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 半角数字かどうかをチェックします。
 * 全て半角数字であればtrueを返します。
 */
function Hankaku_Suji_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_Suji_chk(str)) {
		showAlert("MSGC00060", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 全角かどうかをチェックします。
 * 全て全角であればtrueを返します。
 */
function Zenkaku_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_DisableChars_chk(str)) {
		showAlert("MSGC00310", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Zenkaku_chk(str)) {
		showAlert("MSGC00070", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 全角カナかどうかをチェックします。
 * 全て全角カナであればtrueを返します。
 */
function Zenkaku_Kana_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Zenkaku_Kana_chk(str)) {
		showAlert("MSGC00080", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 全角ひらがなかどうかをチェックします。
 * 全て全角ひらがなであればtrueを返します。
 */
function Zenkaku_Hira_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Zenkaku_Hira_chk(str)) {
		showAlert("MSGC00430", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 有効なカード番号かどうかをチェックします。
 * 有効なカード番号であればtrueを返します。
 */
function Cre_FreeInput_chk(fieldName1, nFieldName, minLength, maxLength){
	str = eval("document.form1." + fieldName1 + ".value");
	var nMinLength = parseInt(minLength);
	var nMaxLength = parseInt(maxLength);

	// 数値チェック
	if (!inner_Hankaku_Suji_chk(str)) {
		showAlert("MSGC00060", fieldName1, nFieldName);
		return false;
	}

	// 桁数チェック
	if (str.length != 0){
		if (str.length < nMinLength || str.length > nMaxLength){
			showAlert("MSGC00440", fieldName1, nFieldName, minLength);
			return false;
		}
	}
	return true;
}

/**
 * カナまたは数字かどうかをチェックします。
 * 全てカナまたは数字であればtrueを返します。
 */
function KanaSuji_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_KanaSuji_chk(str)) {
		showAlert("MSGC00090", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * カナまたは英字または数字または記号かどうかをチェックします。
 * 全てカナまたは英字または数字または記号であればtrueを返します。
 */
function KanaEijiSujiMark_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_KanaEijiSujiMark_chk(str)) {
		showAlert("MSGC00100", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 有効な日付値かどうかをチェックします。
 * 有効な日付値であればtrueを返します。
 * また、月および日の前ゼロ補完を自動で行います。
 */
function Date_chk(fieldName1, fieldName2, fieldName3, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		if (fieldvalue1 == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "年");
			return false;
		}
		if (fieldvalue2 == ""){
			showAlert("MSGC00130", fieldName2, nFieldName, "月");
			return false;
		}
		if (fieldvalue3 == ""){
			showAlert("MSGC00130", fieldName3, nFieldName, "日");
			return false;
		}
		// 月の前ゼロ補完
		if (fieldvalue2.length <= 1) fieldvalue2 = '0' + fieldvalue2;
		// 日の前ゼロ補完
		if (fieldvalue3.length <= 1) fieldvalue3 = '0' + fieldvalue3;
		str = fieldvalue1 + fieldvalue2 + fieldvalue3;
		if (!inner_Date_chk(str)) {
			showAlert("MSGC00110", fieldName1, nFieldName);
			return false;
		}
		var valueChenge = "document.form1." + fieldName2 + ".value=" + "'" + fieldvalue2 + "'";
		eval(valueChenge);
		var valueChenge = "document.form1." + fieldName3 + ".value=" + "'" + fieldvalue3 + "'";
		eval(valueChenge);
	}
	return true;
}

/**
 * プルダウンの先頭項目以外が選択されているかどうかをチェックします。
 * 先頭項目以外が選択されていればtrueを返します。
 * 先頭項目の値は必ず""であり、他の選択肢に""がないものします。
 */
function PullDown_chk(fieldName1, nFieldName){
	//alert("PullDown_chk() come");
	//str = eval("document.form1." + fieldName1 + ".value");
	//alert("str: " + str);


	//alert("PullDown_chk() come");
	//str = eval("document.form1." + fieldName1 + ".value");

	n	= eval("document.form1." + fieldName1 + ".selectedIndex");
	str		= eval("document.form1." + fieldName1 + "[" + n + "].value");

	if (str == "" || str == null) {
		showAlert("MSGC00120", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * ラジオボタンが選択されているかどうかをチェックします。
 * ラジオボタンが選択されていればtrueを返します。
 */
function Radio_chk(fieldName1, nFieldName){
	if (!inner_Radio_chk(fieldName1)) {
		showAlert("MSGC00120", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 有効なメールアドレスかどうかをチェックします。
 * 有効なメールアドレスであればtrueを返します。
 * 実際に存在するドメインorユーザであるかはチェックしません。
 */
function Mail_chk(fieldName1, fieldName2, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	str = fieldvalue1 + fieldvalue2;
	if ((fieldvalue1 == "") && (fieldvalue2 != "")){
		showAlert("MSGC00140", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_chk(fieldvalue1)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_Kana_chk(fieldvalue1)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Email_DisableChars_chk(fieldvalue1)){
		showAlert("MSGC00450", fieldName1, nFieldName);
		return false;
	}
	if (fieldvalue1.length != 0){
		f_quest = fieldvalue1.indexOf("@")
		if ( f_quest != -1) {
			showAlert("MSGC00170", fieldName1, nFieldName);
			return false;
		}
	}
	if (fieldvalue1.length != 0){
		f_quest = fieldvalue1.indexOf(",")
		if ( f_quest != -1) {
			showAlert("MSGC00180", fieldName1, nFieldName);
			return false;
		}
	}
	if (fieldvalue1.length != 0){
		f_quest = fieldvalue1.indexOf(" ")
		if ( f_quest != -1) {
			showAlert("MSGC00190", fieldName1, nFieldName);
			return false;
		}
	}
	if ((fieldvalue2 == "") && (fieldvalue1 != "")){
		showAlert("MSGC00140", fieldName2, nFieldName);
		return false;
	}
	if (!inner_Hankaku_chk(fieldvalue2)){
		showAlert("MSGC00150", fieldName2, nFieldName);
		return false;
	}
	if (!inner_Hankaku_Kana_chk(fieldvalue2)){
		showAlert("MSGC00150", fieldName2, nFieldName);
		return false;
	}
	if (!inner_Email_DisableChars_chk(fieldvalue2)){
		showAlert("MSGC00450", fieldName2, nFieldName);
		return false;
	}
	if (fieldvalue2.length != 0){
		f_quest = fieldvalue2.indexOf(".")
		f_length = fieldvalue2.length-1
		if ( f_quest == 0 || f_quest == -1 || f_quest == f_length ){
			showAlert("MSGC00200", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue2.length != 0){
		f_quest = fieldvalue2.indexOf("@")
		if ( f_quest != -1) {
			showAlert("MSGC00170", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue2.length != 0){
		f_quest = fieldvalue2.indexOf(",")
		if ( f_quest != -1) {
			showAlert("MSGC00180", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue2.length != 0){
		var_lastchar = fieldvalue2.charAt(f_length)
		if ( var_lastchar == "." ) {
			showAlert("MSGC00210", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue2.length != 0){
		f_quest = fieldvalue2.indexOf(" ")
		if ( f_quest != -1) {
			showAlert("MSGC00190", fieldName2, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * 有効な郵便番号かどうかをチェックします。
 * 有効な郵便番号であればtrueを返します。
 * 実際に存在する郵便番号であるかはチェックしません。
 */
function ZipCode_chk(fieldName1, fieldName2, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	str = fieldvalue1 + fieldvalue2;
	if (!Hankaku_Suji_chk(fieldName1, nFieldName)){
		return false;
	}
	if ((fieldvalue1 != "") || (fieldvalue2 != "")){
		if (fieldvalue1.length != 3){
			showAlert("MSGC00160", fieldName1, nFieldName);
			return false;
		}
		if (fieldvalue2.length != 4){
			showAlert("MSGC00160", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue1 =="000"){ ;
		showAlert("MSGC00230", fieldName1, nFieldName);
		return false;
	}
	if (!Hankaku_Suji_chk(fieldName2, nFieldName)){
		return false;
	}
	return true;
}

/**
 * 有効な電話番号かどうかをチェックします。(携帯電話番号不可)
 * 有効な電話番号であればtrueを返します。
 */
function Tel_chk1(fieldName1, fieldName2, fieldName3, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	str = fieldvalue1 + fieldvalue2 + fieldvalue3;
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		if (fieldvalue1 == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "市外局番");
			return false;
		}
		if (fieldvalue2 == ""){
			showAlert("MSGC00130", fieldName2, nFieldName, "市内局番");
			return false;
		}
		if (fieldvalue3 == ""){
			showAlert("MSGC00130", fieldName3, nFieldName, "加入者番号");
			return false;
		}
	}
	if (!Hankaku_Suji_chk(fieldName1, nFieldName)){;
		return false;
	}
	if (fieldvalue1 != ""){
		var chk_cd1 = fieldvalue1.substring(0,1);
		if (chk_cd1 !="0"){ ;
			showAlert("MSGC00240", fieldName1, nFieldName);
			return false;
		}
		var chk_cd2 = fieldvalue1.substring(2,3);
		if (chk_cd2 == "0"){ ;
			showAlert("MSGC00250", fieldName1, nFieldName);
			return false;
		}
	}
	if (!Hankaku_Suji_chk(fieldName2, nFieldName)){;
		return false;
	}
	if (!Hankaku_Suji_chk(fieldName3, nFieldName)){;
		return false;
	}
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		var chk_cd3 = fieldvalue1.length + fieldvalue2.length + fieldvalue3.length
		if (chk_cd3 != 10 || fieldvalue3.length!=4 ){ ;
			showAlert("MSGC00260", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * 有効な携帯電話番号かどうかをチェックします。
 * 有効な携帯電話番号であればtrueを返します。
 */
function KTel_chk(fieldName1, fieldName2, fieldName3, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	str = fieldvalue1 + fieldvalue2 + fieldvalue3;
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		if (fieldvalue1 == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "市外局番");
			return false;
		}
		if (fieldvalue2 == ""){
			showAlert("MSGC00130", fieldName2, nFieldName, "市内局番");
			return false;
		}
		if (fieldvalue3 == ""){
			showAlert("MSGC00130", fieldName3, nFieldName, "加入者番号");
			return false;
		}
	}
	if (!Hankaku_Suji_chk(fieldName1, nFieldName)){;
		return false;
	}
	if (fieldvalue1 != ""){
		var chk_cd1 = fieldvalue1.substring(0,1);
		if (chk_cd1 !="0"){ ;
			showAlert("MSGC00240", fieldName1, nFieldName);
			return false;
		}
		var chk_cd2 = fieldvalue1.substring(2,3);
		if (chk_cd2 != "0"){ ;
			showAlert("MSGC00220", fieldName1, nFieldName);
			return false;
		}
	}
	if (!Hankaku_Suji_chk(fieldName2, nFieldName)){;
		return false;
	}
	if (!Hankaku_Suji_chk(fieldName3, nFieldName)){;
		return false;
	}
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		var chk_cd3 = fieldvalue1.length + fieldvalue2.length + fieldvalue3.length
		if (chk_cd3 != 11 || fieldvalue3.length !=4 ){
			showAlert("MSGC00260", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * 有効なパスワードかどうかをチェックします。
 * 有効なパスワードであればtrueを返します。
 */
function Password_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_EijiSuji_chk(str)) {
		showAlert("MSGC00050", fieldName1, nFieldName);
		return false;
	}
	if (str.length != 0){
		if (str.length < 4 || str.length > 20){
			showAlert("MSGC00270", fieldName1, nFieldName);
			return false;
		}
	}
	/* EASYテスト
	if(!inner_isEasyParam(str)){
		showAlert("MSGC00360", fieldName1, nFieldName);
		return false;
	}
	*/
	return true;
}

/**
 * 有効な日付値かどうかをチェックします。
 * 期限切れかどうかをチェックします。
 * ＯＫあればtrueを返します。
 */
function CreLimit_chk(fieldName1, fieldName2, fieldName3, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	if ((fieldvalue1 != "") || (fieldvalue2 != "")){
		if (fieldvalue1 == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "年");
			return false;
		}
		if (fieldvalue2 == ""){
			showAlert("MSGC00130", fieldName2, nFieldName, "月");
			return false;
		}
		// 月の前ゼロ補完
		if (fieldvalue2.length <= 1) fieldvalue2 = '0' + fieldvalue2;
		str = fieldvalue1 + fieldvalue2 + "01";
		if (!inner_Date_chk(str)) {
			showAlert("MSGC00110", fieldName1, nFieldName);
			return false;
		}
		var valueChenge = "document.form1." + fieldName2 + ".value=" + "'" + fieldvalue2 + "'";
		eval(valueChenge);
		if (fieldvalue1 + fieldvalue2 < fieldvalue3.substring(0,6)) {;
			showAlert("MSGC00280", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * 有効な申込番号かどうかをチェックします。
 * 有効な申込番号であればtrueを返します。
 * チェックディジットや存在チェックは行いません。
 */
function ShnCd_chk(fieldName1, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	str = fieldvalue1;
	if ((fieldvalue1 != "")){
		if (fieldvalue1 == ""){
			showAlert("MSGC00010", fieldName1, nFieldName);
			return false;
		}
	}
	if (!inner_ShnCd_chk(str)) {
		showAlert("MSGC00140", fieldName1, nFieldName);
		return false;
	}
	if ((fieldvalue1 != "")){
		if (fieldvalue1.length > 15){
			showAlert("MSGC00140", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * ２値がイコールかどうかをチェックします。
 * イコールであればtrueを返します。
 */
function Equal_chk(fieldName1, fieldName2, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	if ((fieldvalue1 != "") || (fieldvalue2 != "")){
		if (fieldvalue1 != fieldvalue2){
			showAlert("MSGC00300", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * ボーナス一括払い可能期間かどうかをチェックします。
 * ボーナス一括払い可能期間であればtrueを返します。
 */
function BonusIkkatsu_chk(fieldName1, fieldName2, fieldName3, fieldName4, nFieldName){
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	fieldvalue4 = eval("document.form1." + fieldName4 + ".value");
	todayMMDD = fieldvalue4.substring(4,8);
	startMMDD = fieldvalue2.substring(0,4);
	endMMDD = fieldvalue2.substring(4,8);
	if (startMMDD <= todayMMDD && todayMMDD <= endMMDD) {;
		showAlert("MSGC00290", fieldName1, nFieldName);
		return false;
	}
	startMMDD = fieldvalue3.substring(0,4);
	endMMDD = fieldvalue3.substring(4,8);
	if (startMMDD <= todayMMDD && todayMMDD <= endMMDD) {;
		showAlert("MSGC00290", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 半角入力不可文字かどうかをチェックします。
 * 半角入力不可文字でなければtrueを返します。
 */
function Hankaku_DisableChars_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_DisableChars_chk(str)) {
		showAlert("MSGC00320", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 有効な電話番号かどうかをチェックします。(携帯電話番号可)
 * 有効な電話番号であればtrueを返します。
 */
function Tel_chk2(fieldName1, fieldName2, fieldName3, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	str = fieldvalue1 + fieldvalue2 + fieldvalue3;
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		if (fieldvalue1 == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "市外局番");
			return false;
		}
		if (fieldvalue2 == ""){
			showAlert("MSGC00130", fieldName2, nFieldName, "市内局番");
			return false;
		}
		if (fieldvalue3 == ""){
			showAlert("MSGC00130", fieldName3, nFieldName, "加入者番号");
			return false;
		}
	}
	if (!Hankaku_Suji_chk(fieldName1, nFieldName)){;
		return false;
	}
	if (fieldvalue1 != ""){
		var chk_cd1 = fieldvalue1.substring(0,1);
		if (chk_cd1 !="0"){ ;
			showAlert("MSGC00240", fieldName1, nFieldName);
			return false;
		}
	}
	if (!Hankaku_Suji_chk(fieldName2, nFieldName)){;
		return false;
	}
	if (!Hankaku_Suji_chk(fieldName3, nFieldName)){;
		return false;
	}
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		var chk_cd3 = fieldvalue1.length + fieldvalue2.length + fieldvalue3.length
		if (!(chk_cd3 == 10 || chk_cd3 == 11) || fieldvalue3.length!=4 ){ ;
			showAlert("MSGC00260", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * 有効なIdかどうかをチェックします。
 * 有効なIdであればtrueを返します。
 */
function Id_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (str.length != 0){
		if (str.length < 6 || str.length > 100){
			showAlert("MSGC00360", fieldName1, nFieldName);
			return false;
		}
	}
	if (!inner_Hankaku_chk(str)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_Kana_chk(str)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_DisableChars_chk(str)){
		showAlert("MSGC00320", fieldName1, nFieldName);
		return false;
	}
	if (str.length != 0){
		f_quest = str.indexOf(",")
		if ( f_quest != -1) {
			showAlert("MSGC00400", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

function Id_chk3(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_chk(str)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_Kana_chk(str)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_DisableChars_chk(str)){
		showAlert("MSGC00320", fieldName1, nFieldName);
		return false;
	}
	if (str.length != 0){
		f_quest = str.indexOf(",")
		if ( f_quest != -1) {
			showAlert("MSGC00400", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

// 360)takeda BBL暫定 IDチェック４桁
function Id_chk_zan(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (str.length != 0){
		if (str.length < 4 || str.length > 100){
			showAlert("MSGC99990", fieldName1, nFieldName);
			return false;
		}
	}
	if (!inner_Hankaku_chk(str)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_Kana_chk(str)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_DisableChars_chk(str)){
		showAlert("MSGC00320", fieldName1, nFieldName);
		return false;
	}
	if (str.length != 0){
		f_quest = str.indexOf(",")
		if ( f_quest != -1) {
			showAlert("MSGC00400", fieldName1, nFieldName);
			return false;
		}
	}
	return true;
}

/**
 * JIS範囲内のコードかチェックします
 * 全てJIS内のコードであればtrueを返します。
 */
function DisableChars_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_DisableChars_chk(str)) {
		showAlert("MSGC00310", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * JIS範囲内のコードかチェックします
 * 全てJIS内のコードであればtrueを返します。
 * (管理画面用にDisableChars_chkよりチェックをあまくしてます)
 */
function DisableChars_chk4adm(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_DisableChars_chk4adm(str)) {
		showAlert("MSGC00310", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 有効な日付値かどうかをチェックします。
 * 有効な日付値であればtrueを返します。
 * また、月および日の前ゼロ補完を自動で行います。
 */
function Date_chk2(fieldName1, fieldName2, fieldName3, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		if (fieldvalue2 == ""){
			showAlert("MSGC00130", fieldName2, nFieldName, "月");
			return false;
		}
		if (fieldvalue3 == ""){
			showAlert("MSGC00130", fieldName3, nFieldName, "日");
			return false;
		}
		// 月の前ゼロ補完
		if (fieldvalue2.length <= 1) fieldvalue2 = '0' + fieldvalue2;
		// 日の前ゼロ補完
		if (fieldvalue3.length <= 1) fieldvalue3 = '0' + fieldvalue3;
		str = fieldvalue1 + fieldvalue2 + fieldvalue3;
		if (!inner_Date_chk2(str)) {
			showAlert("MSGC00110", fieldName1, nFieldName);
			return false;
		}
		var valueChenge = "document.form1." + fieldName2 + ".value=" + "'" + fieldvalue2 + "'";
		eval(valueChenge);
		var valueChenge = "document.form1." + fieldName3 + ".value=" + "'" + fieldvalue3 + "'";
		eval(valueChenge);
	}
	return true;
}

/**
 * === 内部function ===
 * 半角かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Hankaku_chk(str){
	chk_flg = true;
	for (i=0;i<=str.length-1;i++){
		b  = str.substring(i,i+1)
		xb = escape(b)
		if(xb.length==3){
			xb2 = xb.substring(1,3)
			if((("80"<=xb2)&(xb2<"A1"))|("DF" < xb2)){  //アスキーコードによる判定(nn4.05以下）
				chk_flg=false
				break
			}
		}else{
			if(xb.length==6){
				f_code = xb.substring(0,2)
				if (f_code == "%u") {                 //ユニコードによる判定(ie4.x)
					xb2=xb.substring(2,6)
					if((xb2<"FF61")|("FF9F" < xb2)){
						chk_flg=false
						break
					}
				}else{                                //アスキーコードによる判定(nn4.05以上）
					xb2 = xb.substring(1,3)
					if((("80"<=xb2)&(xb2<"A1"))|("DF" < xb2)){
						chk_flg=false
						break
					}
				}
			}else{
				if(xb.length == 4){
					xb2=xb.substring(1,3)
					if((("80"<=xb2)&(xb2<"A1"))|("DF" < xb2)){  //アスキーコードによる判定(nn4.05以上）全角数字等の対応
						chk_flg=false
						break
					}
				}else{
					if(xb.length!=1){
						alert("チェックロジックエラー")
						alert(xb)
						chk_flg = false
						break
					}
				}
			}
		}
	}
	return chk_flg;
}
/**
 * === 内部function ===
 * 全角文字のチェックを行います。
 * 入力不可文字が含まれるとfalseを返します。
 */
function inner_DisableChars_chk(str){
	/*
	var disable	= "";
	for(i = 0; i < DISABLECHARS.length; i++){
		s	= escape(DISABLECHARS.charCodeAt(i));
		disable	+= i + ": " + DISABLECHARS.charAt(i) + "[" + s.toString(16) + "],  ";
	}
	alert(disable);
	for (i=0; i<str.length; i++) {
		alert(DISABLECHARS.indexOf(str.charAt(i)));
		if (DISABLECHARS.indexOf(str.charAt(i)) > -1) return false;
	}
	*/
	return true;
}

/**
 * === 内部function ===
 * 全角文字のチェックを行います。
 * 入力不可文字が含まれるとfalseを返します。
 * 管理画面用にinner_DisableChars_chkよりチェックをあまくしてあります。
 */
function inner_DisableChars_chk4adm(str){
	/*
	var disable	= "";
	for(i = 0; i < DISABLECHARS.length; i++){
		s	= escape(DISABLECHARS.charCodeAt(i));
		disable	+= i + ": " + DISABLECHARS.charAt(i) + "[" + s.toString(16) + "],  ";
	}
	alert(disable);
	for (i=0; i<str.length; i++) {
		alert(DISABLECHARS.indexOf(str.charAt(i)));
		if (DISABLECHARS.indexOf(str.charAt(i)) > -1) return false;
	}
	*/
	return true;
}

/**
 * === 内部function ===
 * 半角英字かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Hankaku_Eiji_chk(str){
	var chk_flg = true;
	var checkOK = HANKAKU_EIJI_VAL;	  // OKな文字種
	var checkStr = str;			  // チェックする文字列
	var allValid = true;		  // 全ての文字がOKかどうかのフラグ
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 半角英数字かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Hankaku_EijiSuji_chk(str){
	var chk_flg = true;
	var checkOK = HANKAKU_EIJI_VAL + HANKAKU_SUJI_VAL;	  // OKな文字種
	var checkStr = str;			  // チェックする文字列
	var allValid = true;		  // 全ての文字がOKかどうかのフラグ
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 半角数字かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Hankaku_Suji_chk(str){
	var chk_flg = true;
	var checkOK = HANKAKU_SUJI_VAL;	  // OKな文字種
	var checkStr = str;			  // チェックする文字列
	var allValid = true;		  // 全ての文字がOKかどうかのフラグ

	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++){
			if (ch == checkOK.charAt(j)){
				break;
			}
		}
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 全角文字かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Zenkaku_chk(str){
	chk_flg = true
	for (i=0;i<=str.length-1;i++){
		b  = str.substring(i,i+1)
		xb = escape(b)
		if(xb.length==3){
			if ( (navigator.appName.charAt(0)=="N") &&
				 (navigator.appVersion.substring(0,4)>="4.06") ) { //ｎｎ４．06以上、ｉｅ４．ｘ以上の対応
				xb2 = xb.substring(1,3)
				if((("80"<=xb2)&(xb2<"A1"))|("DF" < xb2)){
					chk_flg = true
				}else{
					chk_flg=false
					break
				}
			} else {                                  //  nn４．06以下の対応
				xb2 = xb.substring(1,3)
				if((("80"<=xb2)&(xb2<"A1"))|("DF" < xb2)){
					i++
				}else{
					chk_flg=false
					break
				}
			}
		}else{
			if(xb.length==6){
				f_code = xb.substring(0,2)
				if (f_code == "%u") {                 //ユニコードによる判定(ie4.x)
					xb2=xb.substring(2,6)
					if((xb2<"FF61")|("FF9F" < xb2)){
						chk_flg = true
					}else{
						chk_flg=false
						break
					}
				}else{                                //アスキーコードによる判定(nn4.05以上）
					xb2 = xb.substring(1,3)
					if((("80"<=xb2)&(xb2<"A1"))|("DF" < xb2)){
						chk_flg = true
					}else{
						chk_flg=false
						break
					}
				}
			}else{
				if(xb.length == 4){
					xb2=xb.substring(1,3)
					if((("80"<=xb2)&(xb2<"A1"))|("DF" < xb2)){  //アスキーコードによる判定(nn4.05以上）全角数字等の対応
						chk_flg = true
					}else{
						chk_flg=false
						break
					}
				}else{
					if(xb.length!=1){
						alert("チェックロジックエラー")
						alert(xb)
						chk_flg=false
						break
					}
					chk_flg=false
					break
				}
			}
		}
	}
	return chk_flg;
}
/**
 * === 内部function ===
 * 全角カタカナかどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Zenkaku_Kana_chk(str){
	var chk_flg = true;
	var checkOK = ZENKAKU_KANA_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 全角ひらがなかどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Zenkaku_Hira_chk(str){
	var chk_flg = true;
	var checkOK = ZENKAKU_HIRA_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 全角数字かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Zenkaku_Suji_chk(str){
	var chk_flg = true;
	var checkOK = ZENKAKU_SUJI_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 全角英字かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Zenkaku_Eiji_chk(str){
	var chk_flg = true;
	var checkOK = ZENKAKU_EIJI_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * カタカナor数字かどうかをチェックします。(半角全角可能)
 * OKであればtrueを返します。
 */
function inner_KanaSuji_chk(str){
	var chk_flg = true;
	var checkOK = HANKAKU_SUJI_VAL + ZENKAKU_KANA_VAL + ZENKAKU_SUJI_VAL + MARK1_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * カタカナor英字or数字or記号かどうかをチェックします。(英字数字は半角全角可能)
 * OKであればtrueを返します。
 */
function inner_KanaEijiSujiMark_chk(str){
	var chk_flg = true;
	var checkOK = HANKAKU_SUJI_VAL + HANKAKU_EIJI_VAL + ZENKAKU_KANA_VAL + ZENKAKU_SUJI_VAL + ZENKAKU_EIJI_VAL + MARK1_VAL + MARK2_VAL + MARK4_VAL + MARK4ZEN_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 日付の正当性をチェックします。(閏年も考慮)
 * OKであればtrueを返します。
 */
function inner_Date_chk(str){
	var chk_flg = true
	var strLen = str.length
	if (!inner_Hankaku_Suji_chk(str)) return false;
	if (strLen == 8){
		var strYear  = str.substring(0, 4);
		var strMonth = str.substring(4, 6);
		var strDay   = str.substring(6, 8);
		strYear  = eval(strYear)
		strMonth = eval(strMonth)
		strDay   = eval(strDay)

		var dd = new Date();
		var yy = dd.getYear();
		if (yy < 1900) yy += 1900;
		if (strMonth < 1 || strMonth > 12) {
			chk_flg = false;
		}
		else if (strDay < 1 || strDay > 31) {
			chk_flg = false;
		}
		else if ((strMonth == 4 || strMonth == 6 ||
				  strMonth == 9 || strMonth == 11) && strDay == 31) {
			chk_flg = false;
		}
		else if (strMonth == 2 && strDay > 29) {
			chk_flg = false;
		}
		else if (strMonth == 2 && strDay == 29) {
			var intAns = strYear % 4
			if (intAns == 0) {
				intAns = strYear % 100
				if (intAns == 0) {
					intAns = strYear % 400
					if (intAns != 0) {
						chk_flg = false;
					}
				}
			}
			else {
				chk_flg = false;
			}
		}
	}
	else {
		chk_flg = false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * ラジオボタンの選択有無をチェックします。
 * 選択されていればtrueを返します。
 */
function inner_Radio_chk(fieldName){
	var chk_flg = true
	var num = "document.form1." + fieldName + ".length" ;
	var flg = "ng";

	num = eval(num)

	if (!num) {
		var chk = eval("document.form1." + fieldName +".checked");
		if (chk == true) {
			flg = "ok" ;
		}
	} else {
		for (i=0;i<=num-1;i++){
			var chk = "document.form1." + fieldName +"[i].checked";
			chk = eval(chk);
			if (chk == true) {
				flg = "ok" ;
				break;
			}
		}
	}

	if (flg == "ng") {
		chk_flg = false;
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 半角カタカナかどうかをチェックします。
 * 半角カタカナであればfalseを返します。
 */
function inner_Hankaku_Kana_chk(str){
	var chk_flg = true
	var checkNG=HANKAKU_KANA_VAL;
	var checkStr = str
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++)  {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkNG.length;  j++) {
			if (ch == checkNG.charAt(j)) {
				chk_flg= false;
				break;
			}
		}
	}
	return chk_flg
}
/**
 * === 内部function ===
 * 半角入力不可文字かどうかをチェックします。
 * 半角入力不可文字であればfalseを返します。
 */
function inner_Hankaku_DisableChars_chk(str){
	var chk_flg = true;
	var checkNG=HANKAKU_KANA_VAL + MARK3_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++)  {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkNG.length;  j++) {
			if (ch == checkNG.charAt(j)) {
				chk_flg= false;
				break;
			}
		}
	}
	return chk_flg
}
// 2008.04.16 MIC)takeda Eメール時にだけのチェックに修正 -------------------------------->
/**
 * === 内部function ===
 * 半角入力不可文字かどうかをチェックします(Eメール用)
 * 半角入力不可文字であればfalseを返します。
 */
function inner_Email_DisableChars_chk(str){
	var chk_flg = true;
	var checkNG=HANKAKU_KANA_VAL + MARK3_2_VAL;
	var checkStr = str;
	var allValid = true;
	var allNum = "";
	for (i = 0;  i < checkStr.length;  i++)  {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkNG.length;  j++) {
			if (ch == checkNG.charAt(j)) {
				chk_flg= false;
				break;
			}
		}
	}
	return chk_flg
}
// <-------------------------------- 2008.04.16 MIC)takeda Eメール時にだけのチェックに修正
/**
 * === 内部function ===
 * 商品番号有効文字種かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_ShnCd_chk(str){
	var chk_flg = true;
	var checkOK = SHNCDWORDS;	  // OKな文字種
	var checkStr = str;			  // チェックする文字列
	var allValid = true;		  // 全ての文字がOKかどうかのフラグ
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}

/**
 * === 内部function ===
 * 日付の正当性をチェックします。(閏年も考慮)
 * OKであればtrueを返します。
 */
function inner_Date_chk2(str){
	var chk_flg = true
	var strLen = str.length
	strYear  = eval(strYear)
	strMonth = eval(strMonth)
	strDay   = eval(strDay)
	var dd = new Date();
	var yy = dd.getYear();

	if (!inner_Hankaku_Suji_chk(str)) return false;

	if(strLen == 4){
		var strMonth = str.substring(0, 2);
		var strDay   = str.substring(2, 4);
		if (strMonth < 1 || strMonth > 12) {
			chk_flg = false;
		}
		else if (strDay < 1 || strDay > 31) {
			chk_flg = false;
		}
		else if ((strMonth == 4 || strMonth == 6 ||
				  strMonth == 9 || strMonth == 11) && strDay == 31) {
			chk_flg = false;
		}
		else if (strMonth == 2 && strDay > 29) {
			chk_flg = false;
		}
	}
	if (strLen == 8){
		var strYear  = str.substring(0, 4);
		var strMonth = str.substring(4, 6);
		var strDay   = str.substring(6, 8);
				if (yy < 1900) yy += 1900;
		if (strMonth < 1 || strMonth > 12) {
			chk_flg = false;
		}
		else if (strDay < 1 || strDay > 31) {
			chk_flg = false;
		}
		else if ((strMonth == 4 || strMonth == 6 ||
				  strMonth == 9 || strMonth == 11) && strDay == 31) {
			chk_flg = false;
		}
		else if (strMonth == 2 && strDay > 29) {
			chk_flg = false;
		}
		else if (strMonth == 2 && strDay == 29) {
			var intAns = strYear % 4
			if (intAns == 0) {
				intAns = strYear % 100
				if (intAns == 0) {
					intAns = strYear % 400
					if (intAns != 0) {
						chk_flg = false;
					}
				}
			}
			else {
				chk_flg = false;
			}
		}
	}
	return chk_flg
}

/**
 * === 内部function ===
 * 半角英数字 & PASSWORD用記号かどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Hankaku_EijiSujiPass_chk(str){
	var chk_flg = true;
	var checkOK = HANKAKU_EIJI_VAL + HANKAKU_SUJI_VAL + MARK5_VAL;	  // OKな文字種
	var checkStr = str;			  // チェックする文字列
	var allValid = true;		  // 全ての文字がOKかどうかのフラグ
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}

/**
 * === 内部function ===
 * 半角英数字 & PASSWORD用記号かどうかをチェックします。（ログイン用）
 * OKであればtrueを返します。
 */
function inner_Hankaku_EijiSujiPass_chk2(str){
	var chk_flg = true;
	var checkOK = HANKAKU_EIJI_VAL + HANKAKU_SUJI_VAL + MARK5_VAL + MARK6_VAL;	  // OKな文字種
	var checkStr = str;			  // チェックする文字列
	var allValid = true;		  // 全ての文字がOKかどうかのフラグ
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}

/* 指定のメッセージコードで警告ダイアログを表示 */
function alertMessage(errorCode,arg1,arg2){
	alert(getMessage(errorCode,arg1,arg2));
}
/* 指定のメッセージコードで警告ダイアログを表示 */
function confirmMessage(errorCode,arg1,arg2){
	return confirm(getMessage(errorCode,arg1,arg2));
}
/* 指定のメッセージコードよりメッセージを返す */
function getMessage(errorCode,arg1,arg2){
	return msgMgr(errorCode).replace("&1",arg1).replace("&2",arg2);
}
function msgMgr(errorCode){
	switch (errorCode){
	case "MSGC00010" : return "&1が入力されていません。";
	case "MSGC00020" : return "先頭に空白文字は利用できません。";
	case "MSGC00030" : return "&1は&2文字以内で入力して下さい。";
	case "MSGC00040" : return "&1は半角英字(a-z,A-Z)のみ有効です。";
	case "MSGC00050" : return "&1は半角英数字(a-z,A-Z,0-9)のみ有効です。";
	case "MSGC00060" : return "&1は半角数字(0-9)のみ有効です。";
	case "MSGC00070" : return "&1は全角で入力して下さい。\nスペースも全角のみ可能です。";
	case "MSGC00080" : return "&1は全角カタカナで入力して下さい。\nスペースも全角のみ可能です。";
	case "MSGC00090" : return "&1は全角カタカナ または 全角数字で入力して下さい。\nスペースも全角のみ可能です。";
	case "MSGC00100" : return "&1は全角カタカナ または 全角英数字で入力して下さい。\n括弧や長音記号も使用出来ます。";
	case "MSGC00110" : return "&1は日付として正しくありません。";
	case "MSGC00120" : return "&1が選択されていません。";
	case "MSGC00130" : return "&1の&2が入力されていません。";
	case "MSGC00140" : return "&1が正しく入力されていません。";
	case "MSGC00150" : return "&1は半角で入力して下さい（半角カタカナは不可）。";
	case "MSGC00160" : return "&1の桁数が正しくありません。";
	case "MSGC00170" : return "&1が正しく入力されていません。\nアットマーク（@）は入力しないでください。";
	case "MSGC00180" : return "&1が正しく入力されていません。\nカンマ（,）はメールアドレスには使用できません。";
	case "MSGC00190" : return "&1が正しく入力されていません。\nスペースは入力しないでください。";
	case "MSGC00200" : return "&1が正しく入力されていません。\nドット(.)の位置を確認して下さい。";
	case "MSGC00210" : return "&1が正しく入力されていません。\nドット(.)が最後に付いています。確認して下さい。";
	case "MSGC00220" : return "&1は、携帯電話・PHSの番号を入力してください。";
	case "MSGC00230" : return "&1が正しく入力されていません。\n上３桁が全てゼロになっています。";
	case "MSGC00240" : return "電話番号（市外局番）に誤りがあります。確認してください。";
	case "MSGC00250" : return "&1は、携帯電話・PHS以外の番号を入力してください。";
	case "MSGC00260" : return "&1の桁数に誤りがあります。";
	case "MSGC00270" : return "&1は、４〜２０桁で入力してください。";
	case "MSGC00280" : return "クレジットカードの有効期限が切れています。";
	case "MSGC00290" : return "現在、ボーナス一括払いはご利用になれません。\n\n【ボーナス一括払いご利用期間】\n 夏 : １２月１６日 〜 　６月１５日\n 冬 : 　７月１６日 〜 １１月１５日";
	case "MSGC00300" : return "&1と確認用の入力内容が一致していません。確認してください。";
	case "MSGC00310" : return "&1にはJIS範囲外の特殊文字や外字は入力できません。";
	case "MSGC00320" : return "&1が正しく入力されていません。\n半角カタカナや記号(<>'\"?&)は入力しないでください。";
	case "MSGC00330" : return "請求できるカタログは&1冊までです。";
	case "MSGC00340" : return "&1は1から&2の間で選んでください。";
	case "MSGC00350" : return "応募できるプレゼントは&1つまでです。";
	case "MSGC00360" : return "&1は、６桁以上で入力してください。";
	case "MSGC00370" : return "&1には他の方がわかりにくいものを指定して下さい。";
	case "MSGC00380" : return "IDとパスワードには同じものは指定できません。";
    case "MSGC00390" : return "名義人は半角英字(a-z,A-Z)または半角空白のみ有効です。";
	case "MSGC00400" : return "&1が正しく入力されていません。\nカンマ（,）は使用できません。";
	case "MSGC00410" : return "E-mailアドレスと携帯mailアドレスには同じものは指定できません。";
	case "MSGC00420" : return "ご利用最大ポイントを超えています。";
	case "MSGC00430" : return "&1は全角ひらがなで入力して下さい。\nスペースも全角のみ可能です。";
	case "MSGC00440" : return "&1は&2〜16桁で入力してください。";
	case "MSGC00450" : return "&1が正しく入力されていません。\n半角カタカナや記号('<>\\\"()[],;:^*!$%|)は入力しないでください。";
	case "MSGC00460" : return "&1が正しく入力されていません。\n半角カタカナや記号は入力しないでください。";
	// 360)takeda BBL暫定 IDチェック４桁
	case "MSGC99990" : return "&1は、４桁以上で入力してください。";
	}
	return "メッセージ未登録：" + errorCode;
}

function isRange(value, min, max, modeMin, modeMax, nFieldName){
	init();

	var bRet    = false;
	var val = Number(eval("document.form1." + value + ".value"));
	if(false == Hankaku_Suji_chk(value, nFieldName)){
		return bRet;
	}
	if(false == inner_Hankaku_Suji_chk(min)){
		showAlert("MSGC00140", value, nFieldName);
		return bRet;
	}
	if(false == inner_Hankaku_Suji_chk(max)){
		showAlert("MSGC00140", value, nFieldName);
		return bRet;
	}

	if(0 != modeMin){
		modeMin = 1;
	}
	if(0 != modeMax){
		modeMax = 1;
	}
	if(0 == modeMin && 0 == modeMax){
		if(min <= val && val <= max){
			bRet    = true;
		}
	}
	else if(0 == modeMin && 1 == modeMax){
		if(min <= val && val < max){
			bRet    = true;
		}
	}
	else if(1 == modeMin && 0 == modeMax){
		if(min < val && val <= max){
			bRet    = true;
		}
	}
	else if(1 == modeMin && 1 == modeMax){
		if(min < val && val < max){
			bRet    = true;
		}
	}
	if(false == bRet){
		showAlert("MSGC00140", value, nFieldName);
	}
	return bRet;
}

function showAlert_(errorCode, fieldName, changeVal1, changeVal2){
	alert("");
}

/**
 * 有効なメールアドレスかどうかをチェックします。
 * 有効なメールアドレスであればtrueを返します。
 * 実際に存在するドメインorユーザであるかはチェックしません。
 */
function Mail_chk2(fieldName1, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	str = fieldvalue1;

	var parts   = fieldvalue1.split('@');
	if(2 != parts.length){
		//alert("@なし");
		showAlert("MSGC00140", fieldName1, nFieldName);
		return false;
	}

	if ((fieldvalue1 == "")){
		showAlert("MSGC00140", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_chk(fieldvalue1)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Hankaku_Kana_chk(fieldvalue1)){
		showAlert("MSGC00150", fieldName1, nFieldName);
		return false;
	}
	if (!inner_Email_DisableChars_chk(fieldvalue1)){
		showAlert("MSGC00450", fieldName1, nFieldName);
		return false;
	}

	/**
	if (fieldvalue1.length != 0){
		f_quest = fieldvalue1.indexOf("@")
		if ( f_quest != -1) {
			showAlert("MSGC00170", fieldName1, nFieldName);
			return false;
		}
	}
	*/
	if (fieldvalue1.length != 0){
		f_quest = fieldvalue1.indexOf(",")
		if ( f_quest != -1) {
			showAlert("MSGC00180", fieldName1, nFieldName);
			return false;
		}
	}
	if (fieldvalue1.length != 0){
		f_quest = fieldvalue1.indexOf(" ")
		if ( f_quest != -1) {
			showAlert("MSGC00190", fieldName1, nFieldName);
			return false;
		}
	}
	/*
	if ((fieldvalue2 == "") && (fieldvalue1 != "")){
		showAlert("MSGC00140", fieldName2, nFieldName);
		return false;
	}
	if (!inner_Hankaku_chk(fieldvalue2)){
		showAlert("MSGC00150", fieldName2, nFieldName);
		return false;
	}
	if (!inner_Hankaku_Kana_chk(fieldvalue2)){
		showAlert("MSGC00150", fieldName2, nFieldName);
		return false;
	}
	if (!inner_Email_DisableChars_chk(fieldvalue2)){
		showAlert("MSGC00450", fieldName2, nFieldName);
		return false;
	}
	*/
	if (parts[1].length != 0){
		f_quest = parts[1].indexOf(".")
		f_length = parts[1].length-1
		if ( f_quest == 0 || f_quest == -1 || f_quest == f_length ){
			showAlert("MSGC00200", fieldName1, nFieldName);
			return false;
		}
	}
	/*
	if (fieldvalue2.length != 0){
		f_quest = fieldvalue2.indexOf("@")
		if ( f_quest != -1) {
			showAlert("MSGC00170", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue2.length != 0){
		f_quest = fieldvalue2.indexOf(",")
		if ( f_quest != -1) {
			showAlert("MSGC00180", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue2.length != 0){
		var_lastchar = fieldvalue2.charAt(f_length)
		if ( var_lastchar == "." ) {
			showAlert("MSGC00210", fieldName2, nFieldName);
			return false;
		}
	}
	if (fieldvalue2.length != 0){
		f_quest = fieldvalue2.indexOf(" ")
		if ( f_quest != -1) {
			showAlert("MSGC00190", fieldName2, nFieldName);
			return false;
		}
	}
	*/
	return true;
}


/**
 * 有効な一般回線・携帯電話番号かどうかをチェックします。
 * 有効な一般回線・携帯電話番号であればtrueを返します。
 */
function Tel_chk3(fieldName1, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	str = fieldvalue1;
	var tel = str.split('-');
	if(3 != tel.length){
			showAlert("MSGC00140", fieldName1, nFieldName, "市外局番");
			return false;
	}

	if ((tel[0] != "") || (tel[1] != "") || (tel[2] != "")){
		if (tel[0] == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "市外局番");
			return false;
		}
		if (tel[1] == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "市内局番");
			return false;
		}
		if (tel[2] == ""){
			showAlert("MSGC00130", fieldName1, nFieldName, "加入者番号");
			return false;
		}
	}
	if (!inner_Hankaku_Suji_chk(tel[0])){;
		showAlert("MSGC00130", fieldName1, nFieldName, "市外局番");
		return false;
	}
	if (fieldvalue1 != ""){
		var chk_cd1 = tel[0].substring(0,1);
		if (chk_cd1 !="0"){ ;
			showAlert("MSGC00240", fieldName1, nFieldName);
			return false;
		}
		/*
		var chk_cd2 = fieldvalue1.substring(2,3);
		if (chk_cd2 != "0"){ ;
			showAlert("MSGC00220", fieldName1, nFieldName);
			return false;
		}
		*/
	}
	if (!inner_Hankaku_Suji_chk(tel[1])){;
		showAlert("MSGC00130", fieldName1, nFieldName, "市内局番");
		return false;
	}
	if (!inner_Hankaku_Suji_chk(tel[2])){;
		showAlert("MSGC00130", fieldName1, nFieldName, "加入者番号");
		return false;
	}
	/*
	if ((fieldvalue1 != "") || (fieldvalue2 != "") || (fieldvalue3 != "")){
		var chk_cd3 = fieldvalue1.length + fieldvalue2.length + fieldvalue3.length
		if (chk_cd3 != 11 || fieldvalue3.length !=4 ){
			showAlert("MSGC00260", fieldName1, nFieldName);
			return false;
		}
	}
	*/
	return true;
}


/**
 * 有効な一般回線・携帯電話番号かどうかをチェックします。
 * 有効な一般回線・携帯電話番号であればtrueを返します。
 */
function Tel_chk4(fieldName1, fieldName2, fieldName3, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	str = fieldvalue1;

    if("" != str){
        var aryTel = str.split('-');
        var tel = "";
        var i;
        for(i = 0; i < aryTel.length; i++){
            tel += aryTel[i];
        }

        if(10 != tel.length && 11 != tel.length){
            showAlert("MSGC00140", fieldName1, nFieldName, "電話番号");
            return false;
        }

        if("" == tel){
            showAlert("MSGC00140", fieldName1, nFieldName, "電話番号");
            return false;
        }
        if (tel != ""){
            var chk_cd1 = tel.substring(0,1);
            if(chk_cd1 != "0"){ ;
                //showAlert("MSGC00240", fieldName1, nFieldName);
    			showAlert("MSGC00130", fieldName1, nFieldName, "市外局番");
                return false;
            }
        }
        if (!inner_Hankaku_Suji_chk(tel)){;
            showAlert("MSGC00140", fieldName1, nFieldName, "電話番号");
            return false;
        }
    }
	return true;
}

/**
 * 有効なパスワードかどうかをチェックします。（特殊記号追加バージョン）
 * 有効なパスワードであればtrueを返します。
 */
function Password_chk2(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_EijiSujiPass_chk(str)) {
		showAlert("MSGC00460", fieldName1, nFieldName);
		return false;
	}
	if (str.length != 0){
		if (str.length < 4 || str.length > 20){
			showAlert("MSGC00270", fieldName1, nFieldName);
			return false;
		}
	}
	/* EASYテスト
	if(!inner_isEasyParam(str)){
		showAlert("MSGC00360", fieldName1, nFieldName);
		return false;
	}
	*/
	return true;
}

/**
 * 有効なパスワードかどうかをチェックします。（特殊記号追加バージョン）
 * 有効なパスワードであればtrueを返します。
 */
function Password_chk3(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
	if (!inner_Hankaku_EijiSujiPass_chk2(str)) {
		showAlert("MSGC00460", fieldName1, nFieldName);
		return false;
	}
	if (str.length == 0){
			showAlert("MSGC00010", fieldName1, nFieldName);
			return false;
	}
	/* EASYテスト
	if(!inner_isEasyParam(str)){
		showAlert("MSGC00360", fieldName1, nFieldName);
		return false;
	}
	*/
	return true;
}


/**
 * === 内部function ===
 * 安易な文字列かを判定する
 */
function inner_isEasyParam(val){
	var ngCount;
	var i;

	ngCount	= 0;
	for(i = 0; i < val.length; i++){
		if(i > 0){
			if(val.charCodeAt(i) == val.charCodeAt(i-1) ||
				val.charCodeAt(i) == (val.charCodeAt(i-1)+1) ||
				val.charCodeAt(i) == (val.charCodeAt(i-1)-1)){
				ngCount++;
			}
		}
	}
	if(val.length == (ngCount+1)){
		return false;
	}
	return true;
}

/**
 * === 内部function ===
 * IDとパスワードが同値かチェックする
 */
function inner_isIdPwSame(id, pass){
	if(id == pass){
		return true;
	}
	return false;
}

/**
 * 値が簡単な文字列の並び(aaa,111,123,321など)でないか？
 */
function isEasyParam(fieldName1, nFieldName){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	str = fieldvalue1;
	if(!inner_isEasyParam(str)){
		showAlert("MSGC00370", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * 値が同値でないか？
 */
function isIdPwSame(fieldName1, fieldName2){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");

	str1 = fieldvalue1;
	str2 = fieldvalue2;
	if(inner_isIdPwSame(str1, str2)){
		showAlert("MSGC00380", fieldName1, "");
		return false;
	}
	return true;
}

/**
 * 半角英字かどうかをチェックします。
 * 全て半角英字であればtrueを返します。
 */
function Hankaku_EijiSp_chk(fieldName1, nFieldName){
	str = eval("document.form1." + fieldName1 + ".value");
    var headS   = str.charAt(0);
    var tailS   = str.charAt(str.length-1);
    if(" " == headS || " " == tailS){
		showAlert("MSGC00390", fieldName1, nFieldName);
		return false;
    }
	if (!inner_Hankaku_Eiji_Sp_chk(str)) {
		showAlert("MSGC00390", fieldName1, nFieldName);
		return false;
	}
	return true;
}

/**
 * === 内部function ===
 * 半角英字OR半角SPかどうかをチェックします。
 * OKであればtrueを返します。
 */
function inner_Hankaku_Eiji_Sp_chk(str){
	var chk_flg = true;
	var checkOK = HANKAKU_EIJI_VAL + " ";	  // OKな文字種
	var checkStr = str;			  // チェックする文字列
	var allValid = true;		  // 全ての文字がOKかどうかのフラグ
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);  // チェックする文字列から1文字づつ取得
		for (j = 0;  j < checkOK.length;  j++) if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length){ // チェックOK文字種の中に存在しない場合
			allValid = false;	  // NG文字があったのでフラグをfalseとする
			break;
		}
	}
	if (!allValid) {
		chk_flg= false;
	}
	return chk_flg
}
/**
 * 値が同値でないか？
 */
function isMailSame(fieldName1, fieldName2,fieldName3, fieldName4){
	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");
	fieldvalue3 = eval("document.form1." + fieldName3 + ".value");
	fieldvalue4 = eval("document.form1." + fieldName4 + ".value");

	str1 = fieldvalue1 + "@" + fieldvalue2;
	str2 = fieldvalue3 + "@" + fieldvalue4;
	if(inner_isMailSame(str1, str2)){
		showAlert("MSGC00410", fieldName1, "");
		return false;
	}
	return true;
}

/**
 * === 内部function ===
 * e-mailと携帯mailが同値でないかチェックする
 */
function inner_isMailSame(email, kmail){
	if(email == kmail){
		return true;
	}
	return false;
}

/**
 * 値が大きくないか？(fieldName1 < fieldName2)ならfalse
 */
function PointMaxCheak(fieldName1, fieldName2, nFieldName){

	fieldvalue1 = eval("document.form1." + fieldName1 + ".value");
	fieldvalue2 = eval("document.form1." + fieldName2 + ".value");

	if(!inner_isMaxCheck(fieldvalue1, fieldvalue2)){
		showAlert("MSGC00420", fieldName2, "");
		return false;
	}
	return true;
}

/**
 * === 内部function ===
 * 数値が大きくないか val1(比較元） < val2（比較対象） false
 */
function inner_isMaxCheck(fieldvalue1, fieldvalue2){
	str1 = new Number(fieldvalue1);
	str2 = new Number(fieldvalue2);
	if(str1 < str2){
		return false;
	}
	return true;
}

///////////////////////////////////////////////////////////////////////////////////////////

