// 需要メッセージ内容
var REQUIRE_MSG = "ERR_00010";
// 全角入力エラーメッセージ内容
var ERR_MODE_WIDE = "ERR_00014";
// 全角カナ入力エラーメッセージ内容
var ERR_MODE_WIDEKANA_MSG = "ERR_00015";
// 半角英数字入力エラーメッセージ内容
var ERR_MODE_HANKAKUALPHANUM_MSG = "ERR_00016";
// 数値エラーメッセージ内容
var ERR_NUMBER_MSG = "ERR_00017";
// 半角英数字記号入力エラーメッセージ内容
var ERR_MODE_HANKAKUALPHANUMMARK_MSG = "ERR_00018";
// 半角入力エラーメッセージ内容
var ERR_MODE_HANKAKU_MSG = "ERR_00020";
// 入力文字の長エラーメッセージ内容
var ERR_LENGTH_OVER_MSG = "ERR_00021";
// 桁数が不足しています
var ERR_LENGTH_LOW_MSG = "ERR_00022";
// 整数小数
var ERR_LENGTH_MSG = "ERR_00026";
// 数値エラーメッセージ内容
var ERR_NUMBERZERO_MSG = "ERR_00027";
// マイマス不可
var ERR_MINUS_MSG = "ERR_00029";
// DATEエラーメッセージ内容
var ERR_DATE_MSG = "ERR_00031";
// 妥当な値ではありません
var ERR_TELNUMBER_MSG = "ERR_00048";
// 半角カナ入力エラーメッセージ内容
var ERR_MODE_HANKAKUKANA_MSG = "ERR_00054";
// 半角英字入力エラーメッセージ内容
var ERR_MODE_HANKAKUALPHA_MSG = "ERR_00055";
// 禁則文字以外
var ERR_MODE_NOPROHIBITION_MSG = "ERR_00056";
// 時間エラーメッセージ内容
var ERR_TIME_MSG = "ERR_00057";
// {0}に{1}は入力ができません。
var ERR_HANKANA_MSG = "ERR_00090";

var ERR_MINUNIT_MSG = "ERR_00224";
var ERR_MAXUNIT_MSG = "ERR_00225";




//正常時の色
var OK_COLOR = "";
//需要色：緑色
var REQUIRE_COLOR = "#fffebf";
//エラー色：赤色
var ERR_RED_COLOR = "#ffd9d9";

//数値正常時のメッセージ内容
var OK_NUMBER_MSG = "";
//時間正常時のメッセージ内容
var OK_TIME_MSG = "";
//正常時のメッセージ内容
var OK_MSG = "";
//DATE正常時のメッセージ内容
var OK_DATE_MSG = "";

/***************************************************************************************************
 *　BEGIN：共通関数
 **************************************************************************************************/

function doCssControl(obj) {
	if (trim(obj.innerHTML) == "") {
		obj.style.display = "none";
	} else {
		obj.style.display = "";
		var langCdObj = document.getElementById("gamenDispLangcd");
		var langCd = "ja";
		if (langCdObj != null) {
			langCd = langCdObj.value;
		}
		if (langCd == "en") {
			obj.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + trim(obj.innerHTML).replace(/&nbsp;/g,"");
		} else {
			obj.innerHTML = "&nbsp;&nbsp;&nbsp;" + trim(obj.innerHTML).replace(/&nbsp;/g,"");
		}

	}
}

//==============================================================
// 機能 ：コントロールチェック結果を設定する
// 引数1：メッセージ表示エリアのコントロールID`
// 引数2：メッセージ表示エリアの表示用メッセージ
// 引数3：チェックしたコントロールの背景色
// 戻り ：なし
//==============================================================
function setCheckResult(msgAreaCtrlId, msgAreaMessage, actionCtrlColor) {

    if (msgAreaCtrlId != null && msgAreaCtrlId != "" &&
        msgAreaMessage != null) {
        document.getElementById(msgAreaCtrlId).className = "errLabel";
        if (msgAreaMessage != "") {
        	document.getElementById(msgAreaCtrlId).innerHTML = "&nbsp;&nbsp;&nbsp;" + msgAreaMessage + "<br/>";
        } else {
       		document.getElementById(msgAreaCtrlId).innerHTML = msgAreaMessage;
       	}
        doCssControl(document.getElementById(msgAreaCtrlId));
    }

    if (actionCtrlColor != null) {
        var e = getEvent();
        if (e) {
        	var obj = e.srcElement || e.target;
        	obj.style.backgroundColor = actionCtrlColor;
        }
    }

}

//==============================================================
// 機能 ：メッセージの取得する共通関数
// 引数1：メッセージID`
// 引数2：エラーメッセージ表示部にて使用論理名
// 戻り ：取得したメッセージ値
//==============================================================
function getMessageById(messageId, strCaption) {

    //戻るメッセージ
    var msgString = "";

    if (messageId != null && messageId != "" && strCaption != null ) {

        msgString = document.getElementById(messageId).value.toString();

        //論理名リスト
        var strArray = strCaption.split(",");
        var i = null;
        var tmpStr = "";
        for (i = 0; i < strArray.length; i++) {
            //tmpStr = "\{" + i + "\}";
            //msgString = msgString.replace(tmpStr.toString(), strArray[i].toString());

            if (i == 0) {
            	msgString = msgString.replace(/\{0\}/g,strArray[i].toString());
            }
            if (i == 1) {
            	msgString = msgString.replace(/\{1\}/g,strArray[i].toString());
            }
            if (i == 2) {
            	msgString = msgString.replace(/\{2\}/g,strArray[i].toString());
            }
        }
    }
    return msgString;
}

//==============================================================
// 機能 ：コントロールチェック結果を設定する
// 引数1：メッセージ表示エリアのコントロールID`
// 引数2：メッセージID`
// 引数3：エラーメッセージ表示部にて使用論理名
// 引数4：チェックしたコントロールの背景色
// 戻り ：なし
//==============================================================
function setChkResultByMsgId(msgAreaCtrlId, messageId, strCaption, actionCtrlColor) {

    setCheckResult(msgAreaCtrlId, getMessageById(messageId, strCaption), actionCtrlColor);

}

function setChkResultByMsgNm(msgAreaCtrlId, messageNm, strCaption, actionCtrlColor) {

    setCheckResult(msgAreaCtrlId, messageNm, actionCtrlColor);

}

//=====================================================================
// 機能：イベント発生するコントロールの属性値を取得する
// 引数1：イベント発生するコントロールの属性
// 戻り：コントロールの属性がnull以外の場合、該当属性値を取得して戻る
//=====================================================================
function getCtrlAttribute(strAttribute) {
    //戻り値を初期化
    var tmpValue = null;
    //イベント発生のコントロール場所
    var e = getEvent();
    if (e != null) {
        var actCtrl = e.srcElement || e.target;
        if (strAttribute == null) {
            return tmpValue;
        }
        //引数を判断する、null以外の場合、値を取得して戻る
        if (actCtrl.attributes[strAttribute]) {
            tmpValue = actCtrl.attributes[strAttribute].nodeValue.toString();
        }
    }
    return tmpValue;
}

//=============================================================
// 機能：IEとFirefoxのイベント互換性関数
// 引数：なし
// 戻り：なし
//=============================================================
function getEvent()
{
    if(document.all || (navigator.userAgent.indexOf("Opera")==0)) {
        return window.event;
    }
    func = getEvent.caller;
    while(func != null){
        var arg0 = func.arguments[0];
        if(arg0) {
            if((arg0.constructor == Event || arg0.constructor == MouseEvent)
                || (typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)){
                return arg0;
            }
        }
        func = func.caller;
    }
    return null;
}

//=============================================================
// 機能：スペースを削除する関数
// 引数：指定用の文字列、スペースの削除する場所
// 戻り：なし
//=============================================================
function trim(str) {
    if (str == null || str =="") {
        return "";
    }
    return str.replace(/(^\s*)|(\s*$)/g, "");
}

//==============================================================
// 機能：イベント発生のコントロール背景色をクリア
// 引数：なし
// 戻り：なし
//==============================================================
function clearBackgroundColor(control){
    var e = getEvent();
    var obj = e.srcElement || e.target;
    obj.style.backgroundColor = "";
}

/***************************************************************************************************
 *　END：共通関数
 **************************************************************************************************/

/***************************************************************************************************
 *　BEGIN：文字列のチェック
 **************************************************************************************************/
//==============================================================
// 機能：背景色を変更
// 引数：なし
// 戻り：なし
//==============================================================
function changeStyleOnblur(){
    var e = getEvent();
    var obj = e.srcElement || e.target;
    var msgArea;
    var inputMust  = obj.attributes["require"].nodeValue;
    var caption;
    //var ime = obj.attributes["ime"].nodeValue;
    if (obj.attributes["msgArea"]) {
    	msgArea = obj.attributes["msgArea"].nodeValue;
    }
    if (obj.attributes["caption"]) {
    	caption = obj.attributes["caption"].nodeValue;
    }


    obj.value = trim(obj.value);
    if (inputMust.toLowerCase() == "true" && obj.value == "") {
          //エリーメッセージ　表示
          setChkResultByMsgId(msgArea, REQUIRE_MSG, caption, ERR_RED_COLOR);
          return;
    } else {
          setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
    }

    if (obj.value != "") {
        oChkTextFormat(obj);
    }
    //ime = false
    //if (ime.toLowerCase() == "false" && obj.value != "") {
        //全角文字が混在している場合はエラー
    //    if (bIsNarrowString(obj.value) == false) {
    //        setChkResultByMsgId(msgArea, ERR_MODE_HANKAKU_MSG, caption, ERR_RED_COLOR);
    //        return;
    //     } else {
    //        setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
    //    }
    //}
}

function txtOnblur(obj){

    var msgArea;
    var inputMust  = obj.attributes["require"].nodeValue;
    var caption;
    //var ime = obj.attributes["ime"].nodeValue;
    if (obj.attributes["msgArea"]) {
    	msgArea = obj.attributes["msgArea"].nodeValue;
    }
    if (obj.attributes["caption"]) {
    	caption = obj.attributes["caption"].nodeValue;
    }

    obj.value = trim(obj.value);

    if (inputMust.toLowerCase() == "true" && obj.value == "") {
          //エリーメッセージ　表示
          setChkResultByMsgId(msgArea, REQUIRE_MSG, caption, ERR_RED_COLOR);

          if (document.getElementById(msgArea).innerHTML != "") {
          	obj.style.backgroundColor = ERR_RED_COLOR;
          }
          return;
    } else {
          setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
    }

    if (obj.value != "") {
        oChkTextFormat(obj);
        if (document.getElementById(msgArea).innerHTML != "") {
          	obj.style.backgroundColor = ERR_RED_COLOR;
          }
    }
}

//====================================================
// 機能： 文字列のバイト数を取得する。
//        全角を2バイト、半角を1バイトとしてカウントする。
// 引数： バイトを取得する値
// 戻り： 取得したバイト数
//====================================================
function getByteCount(str) {
    var r = 0;
    var i = null;
    for (var i = 0; i < str.length; i++) {
        var c = str.charCodeAt(i);
        // Shift_JIS: 0x0 ～ 0x80, 0xa0 , 0xa1 ～ 0xdf , 0xfd ～ 0xff
        if ((c >= 0x0 && c <= 0x80) || (c == 0xa0) ||
         (c >= 0xa1 && c <= 0xdf) || (c >= 0xfd && c <= 0xff)) {
        // Unicode : 0x0 ～ 0x80, 0xf8f0, 0xff61 ～ 0xff9f, 0xf8f1 ～ 0xf8f3

            r += 1;
        } else {
            r += 3;
        }
    }
    return r;
}

//=================================================================
// 機能：文字列入力用テキストボックスのフォーマットチェック関数
// 引数：pObjTarget チェック対象htmlオブジェクト
// 戻り：なし
//=================================================================
function oChkTextFormat(pObjTarget) {

    var msgArea = getCtrlAttribute("msgArea");
    var caption = getCtrlAttribute("caption");

    //値が存在するか
    if (typeof( pObjTarget.value ) !=  "undefined" && pObjTarget.value != "") {
        //禁則文字使用チェック
        //if (bIsProhibitString(pObjTarget.value) == false) {
        //   setChkResultByMsgId(msgArea, ERR_MODE_NOPROHIBITION_MSG, caption, ERR_RED_COLOR);
        //   return;
        //} else {
        //   setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
        //}

        //全角・半角の入力制御の指定を取得し、
        //指定どおり全角・半角が混在していないかチェックを行う
        var checkMode = pObjTarget.attributes["checkMode"].nodeValue;
        if (typeof(checkMode) != "undefined") {

            //半角指定の場合
            if (checkMode == "MODE_HANKAKU") {
                //全角文字が混在している場合はエラー
                if (bIsNarrowString(pObjTarget.value) == false) {
                  setChkResultByMsgId(msgArea, ERR_MODE_HANKAKU_MSG, caption, ERR_RED_COLOR);
                    return;
                }else{
                  setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }

            //半角カナ指定の場合
            } else if (checkMode == "MODE_HANKAKUKANA") {
                if (bIsHankakuKanaString(pObjTarget.value) == false) {
                    setChkResultByMsgId(msgArea, ERR_MODE_HANKAKUKANA_MSG, caption, ERR_RED_COLOR);
                    return;
                } else {
                    setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }
            //全角カナ指定の場合
            } else if (checkMode == "MODE_WIDEKANA") {

                if (bIsWideKanaString(pObjTarget.value) == false) {
                    setChkResultByMsgId(msgArea, ERR_MODE_WIDEKANA_MSG, caption, ERR_RED_COLOR);
                    return;
                } else {
                    setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }
            //半角数値指定の場合
            } else if (checkMode == "MODE_HANKAKUNUM") {
                if (pObjTarget.value.match(/[^0-9\.\-]/)) {
                    setChkResultByMsgId(msgArea, ERR_NUMBER_MSG, caption, ERR_RED_COLOR);
                    return;
                } else {
                    setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }

            //半角英字指定の場合
            } else if (checkMode == "MODE_HANKAKUALPHA") {
                if (pObjTarget.value.match(/[^a-zA-Z]/)) {
                    setChkResultByMsgId(msgArea, ERR_MODE_HANKAKUALPHA_MSG, caption, ERR_RED_COLOR);
                    return;
                } else {
                   setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }
            //半角英数字指定の場合
            } else if (checkMode == "MODE_HANKAKUALPHANUM") {

                if (pObjTarget.value.match(/[^a-zA-Z0-9]/)) {
                   setChkResultByMsgId(msgArea, ERR_MODE_HANKAKUALPHANUM_MSG,
                                       caption, ERR_RED_COLOR);
                   return;
                } else {
                   setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }
            //半角英数記号指定の場合
            }else if (checkMode == "MODE_HANKAKUALPHANUMMARK") {
                if (bIsNarrowESKigouString(pObjTarget.value) == false) {
                     setChkResultByMsgId(msgArea, ERR_MODE_HANKAKUALPHANUMMARK_MSG,
                                         caption, ERR_RED_COLOR);
                     return;
                } else {
                    setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }
            //全角指定の場合
            } else if (checkMode == "MODE_WIDE") {
            	if (!bIsWideString(pObjTarget.value)) {
                     setChkResultByMsgId(msgArea, ERR_MODE_WIDE,
                                         caption, ERR_RED_COLOR);
                     return;
                } else {
                    setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }
            // URL
            } else if (checkMode == "MODE_URL") {

				if (!chekcUrl(pObjTarget.value)) {
					setChkResultByMsgId(msgArea, ERR_TELNUMBER_MSG,
                                         caption, ERR_RED_COLOR);
                     return;
				} else {
                    setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
                }
            // EMAIL
            } else if (checkMode == "MODE_MAIL") {
	            if (!checkEmail(pObjTarget.value)) {
		    		setChkResultByMsgId(msgArea, ERR_TELNUMBER_MSG,
                                         caption, ERR_RED_COLOR);
                     return;
		    	} else {
		    		setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
		    	}
		    // カスタム番号
            } else if (checkMode == "MODE_CUSTOMER") {
	            if (!checkCustomer(pObjTarget.value)) {
		    		setChkResultByMsgId(msgArea, ERR_TELNUMBER_MSG,
                                         caption, ERR_RED_COLOR);
                     return;
		    	} else {
		    		setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
		    	}
		    // ユーザID
            } else if (checkMode == "MODE_USERID") {
            	if (!checkUserId(pObjTarget.value)) {
		    		setChkResultByMsgId(msgArea, ERR_MODE_HANKAKUALPHANUMMARK_MSG,
                                         caption, ERR_RED_COLOR);
                     return;
		    	} else {
		    		setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
		    	}
            }
        }
    }

    // 半角カナ入力不可のチェック
    var kana = pObjTarget.attributes["hankana"].nodeValue;
    if (kana == "false") {
    	if (!checkHankakuKana(pObjTarget.value)) {
    		setChkResultByMsgId(msgArea, ERR_HANKANA_MSG,caption, ERR_RED_COLOR);
    		return;
    	}
    }

    // 文字列のバイト数がmaxLength内であるかどうかチェックする
    var stringLength = getByteCount(pObjTarget.value);

    if (pObjTarget.attributes["maxLength"]) {
    	var max = pObjTarget.attributes["maxLength"].nodeValue;
    	if (max != "undefined") {
    		if (stringLength > max) {
	    		setChkResultByMsgId(msgArea, ERR_LENGTH_OVER_MSG, caption, ERR_RED_COLOR);
		 		return;
	    	}
    	}
    }

    if (pObjTarget.attributes["minLength"]) {
    	var min = pObjTarget.attributes["minLength"].nodeValue;
    	if (min != "undefined") {
    		if (stringLength < min) {
    			setChkResultByMsgId(msgArea, ERR_LENGTH_LOW_MSG, caption, ERR_RED_COLOR);
        		return;
    		}
    	}
   	}
	setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);

}

function chekcUrl(value) {
	var regex = "^((https|http|ftp|rtsp|mms)?://)"
			    + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"
			    + "(([0-9]{1,3}\.){3}[0-9]{1,3}"
			    + "|"
			    + "([0-9a-z_!~*'()-]+\.)*"
			    + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\."
			    + "[a-z]{2,6})"
			    + "(:[0-9]{1,4})?"
			    + "((/?)|"
			    + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";

    if (!value.match(regex)) {
    	return false;
    }

    if (value.indexOf(".") == -1) {
    	return false;
    }

    var prohbit = "\\\"'|*`^><)(}{][";
    for (i = 0; i < value.length; i++) {
        if (prohbit.indexOf(value.charAt(i)) >= 0) {
            return false;
        }
    }

    return true;
}

function checkEmail(email) {

	//var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
	//var pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
	var pattern = /^[a-zA-Z0-9!#$%&'*+-/=?^_`{|}~.]+@[a-zA-Z0-9-.]+(\.[a-zA-Z0-9-.]+)+$/;

	if (!pattern.test(email)) {
		return false;
	}

	var part = email.split("@");

	if (part[0].charAt(0)=="." || part[0].charAt(part[0].length-1)=="." || part[0].indexOf("..") != -1) {
		return false;
	}

	if (part[1].charAt(0)=="." || part[1].charAt(0)=="-") {
		return false;
	}

	//if (email.charAt(0)=="." || email.charAt(0)=="@" || email.indexOf('@', 0) == -1 || email.indexOf('.', 0) == -1 || email.lastIndexOf("@")==email.length-1 || email.lastIndexOf(".")==email.length-1) {
    //　　 return false;
　　//}

	return true;
}

function checkCustomer(customer) {
	//var pattern1 =/^\d{1}-\d{7}$/;
	var pattern1 =/^\d{1,7}-\d{1,7}$/;
	var pattern2 =/^\d{8}$/;
	if (!pattern1.test(customer) && !pattern2.test(customer)) {
		return false;
	}
	if (customer.replace("-","").length != 8) {
		return false;
	}

	return true;
}

function checkUserId(userId) {

	var pattern = /^[a-zA-Z0-9!#$%&'*+-/=?^_`{|}~.]+$/;

	if (!pattern.test(userId)) {
		return false;
	}

	if (userId.charAt(0)=="." || userId.charAt(userId.length-1)=="." || userId.indexOf("..") != -1) {
		return false;
	}

	return true;
}

//==============================================================
// 機能：全角文字列チェック関数
// 引数：pStrValue   チェック対象の文字列
// 戻り：チェック結果 (true=全て全角文字 false=半角文字が混在)
//==============================================================
function bIsWideString( pStrValue ) {

	//半角英数(全角変換可能)
    var gStrNarrowChar = 'abcdefghijklmnopqrstuvwxyz'
                       + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                       + '1234567890'
                       + '!"#$%&\'()-=^~\\|@`[{;+:*]},<.>/?_ ';
    //半角カナ
    var gStrNarrowKana = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
    //半角文字列
    var gStrNarrow = gStrNarrowChar + gStrNarrowKana;
    var i;

    // 定義した半角文字列にない文字が含まれているかどうかチェックする
    for (i = 0; i < pStrValue.length; i++) {
        if (gStrNarrow.indexOf(pStrValue.charAt(i)) >= 0) {
            return false;
        }
    }

    return true;

}

//==============================================================
// 機能：半角文字列チェック関数
// 引数：pStrValue   チェック対象の文字列
// 戻り：チェック結果 (true=全て半角文字 false=全角文字が混在)
//==============================================================
function bIsNarrowString( pStrValue ) {
    //半角英数(全角変換可能)
    var gStrNarrowChar = 'abcdefghijklmnopqrstuvwxyz'
                       + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                       + '1234567890'
                       + '!"#$%&\'()-=^~\\|@`[{;+:*]},<.>/?_ ';
    //半角カナ
    var gStrNarrowKana = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
    //半角文字列
    var gStrNarrow = gStrNarrowChar + gStrNarrowKana;
    var i;

    // 定義した半角文字列にない文字が含まれているかどうかチェックする
    for (i = 0; i < pStrValue.length; i++) {
        if (gStrNarrow.indexOf(pStrValue.charAt(i)) < 0) {
            return false;
        }
    }

    // 半角文字列であることを返す
    return true;

}
//==================================================================
// 機能：全角カナ文字列チェック関数
// 引数：pStrValue   チェック対象の文字列
// 戻り：チェック結果 (true：全角カナのみ false：全角カナ以外が含まれている)
//==================================================================
function bIsWideKanaString( pStrValue ) {
    //全角カナ
    var gStrWideKana    = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘ"
                        +"ホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」"
                        + "　　　　　ガギグゲゴザジズゼゾダヂヅデド　　　　　"
                        +"バビブベボ　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　"
                        + "　　　　　　　　　　　　　　　　　　　　　　　　　パピプペポ";
    for (i = 0; i<pStrValue.length; i++){
        if (gStrWideKana.indexOf(pStrValue.charAt(i),0) == -1) {
            return false;
        }
    }
    return true;
}
//==================================================================
// 機能：半角カナ文字列チェック関数
// 引数：pStrValue   チェック対象の文字列
// 戻り：チェック結果 (true：半角カナのみ false：半角カナ以外が含まれている)
//==================================================================
function bIsHankakuKanaString( pStrValue ) {
    //半角カナ
    var gStrNarrowKana  = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
    for (i = 0; i<pStrValue.length; i++){
        if (gStrNarrowKana.indexOf(pStrValue.charAt(i),0) == -1) {
            return false;
        }
    }
    return true;
}
//==================================================================
// 機能：半角カナ文字列チェック関数
// 引数：pStrValue   チェック対象の文字列
// 戻り：チェック結果 (false：半角カナのみ true：半角カナ以外が含まれている)
//==================================================================
function checkHankakuKana( pStrValue ) {
    //半角カナ
    var gStrNarrowKana  = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
    for (i = 0; i<pStrValue.length; i++){
    	var tmp = pStrValue.charAt(i);
    	if (gStrNarrowKana.indexOf(tmp) != -1) {
    		return false;
    	}
    }
    return true;
}

//==============================================================
// 機能：半角英数記号チェック関数
// 引数：pStrValue   チェック対象の文字列
// 戻り：チェック結果 (true=全て半角英数記号 false=全角文字が混在)
//==============================================================
function bIsNarrowESKigouString( pStrValue ) {
    //半角英数(全角変換可能)
    var gStrNarrowChar  = 'abcdefghijklmnopqrstuvwxyz'
                        + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                        + '1234567890'
                        + '!"#$%&\'()-=^~\\|@`[{;+:*]},<.>/?_ ';
    var i = 0;

    // 定義した半角文字列にない文字が含まれているかどうかチェックする
    for (i = 0; i < pStrValue.length; i++) {
        if (gStrNarrowChar.indexOf(pStrValue.charAt(i)) < 0) {
            return false;
        }
    }

    // 半角英数記号であることを返す
    return true;

}
//==================================================================
// 機能：不正文字列チェック関数
// 引数：pStrValue   チェック対象の文字列
// 戻り：チェック結果 (true=不正文字が false=不正文字混在なし)
//==================================================================
function bIsProhibitString( pStrValue ) {
    var gStrProhbit1  = "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮" +
                "⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞" +
                "㎎㎏㏄㎡〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻∮∑∟⊿仡仼伀伃伹佖侊侒侔" +
                "侚俉俍俿倞倢偀偂偆偰傔僘僴兊兤冝冾凬刕劜劦劯勀勛匀匇匤卲厓厲叝咊咜咩" +
                "哿喆坙坥垬埇埈增墲夋奓奛奝奣妤妺孖寀寘寬尞岦岺峵崧嵂嵓嵭嶸嶹巐弡弴彅" +
                "彧德忞恝悅悊惕惞惲愑愠愰愷憘戓抦揵摠撝擎敎昀昉昕昞昤昮昱昻晗晙晥晳暙" +
                "暠暲暿曺曻朎杦枻柀栁桄桒棈棏楨榘槢樰橆橫橳橾櫢櫤毖氿汜汯沆泚洄浯涇涖" +
                "涬淏淲淸淼渧渹渼湜溿澈澵濵瀅瀇瀨炅炫炻焄焏煆煇煜燁燾犱犾猤獷玽珉珒珖" +
                "珣珵琇琦琩琪琮瑢璉璟甁甯畯皂皛皜皞皦睆砡硎硤硺礰禔禛竑竧竫箞絈絜綠綷" +
                "緖繒纊罇羡茁荢荿菇菶葈蒴蓜蕓蕙蕫薰蠇裵褜訒訷詹誧誾諟諶譓譿賰賴贒赶軏" +
                "遧郞鄕鄧釗釚釞釤釥釭釮鈆鈊鈐鈹鈺鈼鉀鉎鉑鉙鉧鉷鉸銈銧鋐鋓鋕鋗鋙鋠鋧鋹" +
                "鋻鋿錂錝錞錡錥鍈鍗鍰鎤鏆鏞鏸鐱鑅鑈閒隝隯霳霻靃靍靏靑靕顗顥餧馞驎髙髜" +
                "魲魵鮏鮱鮻鰀鵫鵰鸙黑朗隆﨎﨏塚﨑晴﨓﨔凞猪益礼神祥福靖精羽﨟蘒﨡諸﨣" +
                "﨤逸都﨧﨨﨩飯飼館鶴";
    var i;

    // 定義した禁則文字が含まれているかどうかチェックする
    for (i = 0; i < pStrValue.length; i++) {
        if (gStrProhbit1.indexOf(pStrValue.charAt(i)) >= 0) {
            return false;
        }

    }

    // 禁則文字が含まれていないことを返す
    return true;
}
//==============================================================
// 機能：テキストエリアの長さチェック
// 引数：なし
// 戻り：なし
//==============================================================
function checkMaxInput()
{
    var e = getEvent();
    var obj = e.srcElement || e.target;
    var maxLen = obj.attributes["maxLength"].nodeValue;
    var valueLength = obj.value.length;
    var stringValue = obj.value;
    if (valueLength > maxLen) {
        obj.value = obj.value.substring(0, maxLen);
    }

}
//==============================================================
// 機能：テキストエリアの背景色を変更
// 引数：なし
// 戻り：なし
//==============================================================
function textAreaStyleOnblur(){
    var e = getEvent();
    var obj = e.srcElement || e.target;
    var msgArea = getCtrlAttribute("msgArea");
    var inputMust  = getCtrlAttribute("require");
    var caption = getCtrlAttribute("caption");
    //var ime = obj.attributes["ime"].nodeValue;
    if (inputMust.toLowerCase() == "true" && obj.value == "") {
          //エリーメッセージ　表示
          setChkResultByMsgId(msgArea, REQUIRE_MSG, caption, ERR_RED_COLOR);
          return;
    } else {
          setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
    }
    if(obj.value != ""){
	    // 半角カナ入力不可のチェック
	    var kana = getCtrlAttribute("hankana");
	    if (kana == "false") {
	    	if (!checkHankakuKana(obj.value)) {
	    		setChkResultByMsgId(msgArea, ERR_HANKANA_MSG,caption, ERR_RED_COLOR);
	    		return;
	    	}
	    }
        // 文字列のバイト数がmaxLength内であるかどうかチェックする
        if (obj.attributes["maxLength"]) {
        	var stringLength = getByteCount(obj.value);
	        var max = obj.attributes["maxLength"].nodeValue;
	        if ( stringLength>max　) {
	             setChkResultByMsgId(msgArea, ERR_LENGTH_OVER_MSG, caption, ERR_RED_COLOR);
	            return ;
	        } else {
	            setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
	        }
        } else {
        	setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
        }

    }
     //ime = false の場合
     //if (ime.toLowerCase() == "false" && obj.value != "") {
        //全角文字が混在している場合はエラー
        //if (bIsNarrowString(obj.value) == false) {
        //    setChkResultByMsgId(msgArea, ERR_MODE_HANKAKU_MSG, caption, ERR_RED_COLOR);
        //    return;
        // } else {
        //    setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
        //}
    //}
}
/***************************************************************************************************
 *　END：文字列のチェック
 **************************************************************************************************/

/***************************************************************************************************
 *　BEGIN：数値テキストボックスのチェック
 **************************************************************************************************/
//=============================================================
// 機能：Focusを失う時、数値テキストボックスのチェック関数
// 引数：なし
// 戻り：なし
//=============================================================
function OnBlurFmtNumber() {

    // イベント発生のコントロール場所
    var e = getEvent();
    var actionCtrl = e.srcElement || e.target;
    // コントロールの画面値を取得
    var orgValue = trim(actionCtrl.value);
    actionCtrl.value = orgValue;
    orgValue = orgValue.replace(/,/g, "");
    var pattern = /^[0-9]+$/;

    // protites
    var require = getCtrlAttribute("require");
    var outPutCrl = getCtrlAttribute("msgArea");
    var caption = getCtrlAttribute("caption");
    var leftLength = getCtrlAttribute("leftLength");
    var rightLength = getCtrlAttribute("rightLength");
    var zero = getCtrlAttribute("zero");
    var minus = getCtrlAttribute("minus");
    var withDot = getCtrlAttribute("withDot");

    var tani = getCtrlAttribute("tani");
    var checkLength = getCtrlAttribute("checkLength");
    //var minUnit = getCtrlAttribute("minUnit");
    //var maxUnit = getCtrlAttribute("maxUnit");
    //var unit = getCtrlAttribute("unit");
    //var keta = getCtrlAttribute("keta");

    if (require.toLowerCase() == "true" && orgValue == "" && outPutCrl != null) {
    	actionCtrl.value = "";
        setChkResultByMsgId(outPutCrl, REQUIRE_MSG, caption, ERR_RED_COLOR);
        return;
    }

    if (require.toLowerCase() == "false" && orgValue == "" && outPutCrl != null) {
        setChkResultByMsgId(outPutCrl, OK_NUMBER_MSG, caption, OK_COLOR);
        return;
    }

    // マイナス判断
    var isMinus = false;
    if (orgValue.substring(0, 1) == "-") {
    	isMinus = true;
    	orgValue = orgValue.substring(1, orgValue.length);
    }


    var arr = orgValue.split(".");
    if (arr.length > 2) {
    	setChkResultByMsgId(outPutCrl, ERR_NUMBER_MSG, caption, ERR_RED_COLOR);
        return;
    }
    var leftValue = arr[0];
    var rightValue = "0";
    if (arr.length == 2) {
    	rightValue = arr[1];
    	if (rightValue == "") {
    		rightValue = "0";
    	}
    }

    // 数値チェック
    if (!pattern.test(leftValue) || !pattern.test(rightValue)) {
    	setChkResultByMsgId(outPutCrl, ERR_NUMBER_MSG, caption, ERR_RED_COLOR);
        return;
    }
    // サイスチェック
    if (withDot == null || withDot == "false") {
    	rightValue = "";
    } else {
    	if (checkLength != "false") {
	    	if (leftValue.length > leftLength || (rightValue.length > rightLength && trimZero(rightValue) != "")) {
		    	setChkResultByMsgId(outPutCrl, ERR_LENGTH_MSG, caption, ERR_RED_COLOR);
		        return;
		    }
    	}
    }

    // ゼロチェック
    if (zero.toLowerCase() == "false") {
        if (trimZero(leftValue) == "" && (trimZero(rightValue) == "" || rightValue == "")) {
        	actionCtrl.value = "0";
	        setChkResultByMsgId(outPutCrl, ERR_NUMBERZERO_MSG, caption, ERR_RED_COLOR);
	        return;
        }
    }
    // マイマスチェック
    if (minus.toLowerCase() == "false" && isMinus) {
        setChkResultByMsgId(outPutCrl, ERR_MINUS_MSG, caption, ERR_RED_COLOR);
        return;
    }

    // format
    leftValue = trimLeftZero(leftValue);
    if (leftValue == "") {
    	leftValue = "0";
    }
    rightValue = trimRightZero(rightValue);

    var newStr = "";
    var cnt = 1;
    for (var i=leftValue.length-1; i>=0; i--) {
        newStr = leftValue.charAt(i) + newStr;
        if (cnt == 3 && i != 0) {
            newStr = "," + newStr;
            cnt = 0;
        }
        cnt++;
    }

    var ret = newStr;
    if (withDot != null && withDot == "true") {
	    if (rightValue != "") {
	    	ret += "." + rightValue;
	    }
    }

    // 単位チェック
    //var ret2 = ret.replace(/,/g, "");
    //if (minUnit != null && minUnit != "" && maxUnit != null && maxUnit != ""
    //	&& unit != null && unit != "" && keta != null && keta != "") {
    //	if (minUnit - ret2 > 0 || ret2 - maxUnit > 0) {
    //		//var messageNm = getMessageById(ERR_MAXUNIT_MSG, caption);
    //		var c = minUnit + tani + "～" + maxUnit + tani;
    //		setChkResultByMsgId(outPutCrl, ERR_MAXUNIT_MSG, c, ERR_RED_COLOR);
    //		return;
    //	}

    //	if ((rightValue != null && rightValue != "" && rightValue.length > keta) || ret2 % minUnit != 0) {
    		//var messageNm = getMessageById(ERR_MINUNIT_MSG, caption);
    //		var c = minUnit + tani;
    //		setChkResultByMsgId(outPutCrl, ERR_MINUNIT_MSG, c, ERR_RED_COLOR);
    //		return;
    //	}

    //} else {
    //	if (withDot != null && withDot == "true") {
	 //   	if (leftValue.length > leftLength || (rightValue.length > rightLength && trimZero(rightValue) != "")) {
	//	    	setChkResultByMsgId(outPutCrl, ERR_LENGTH_MSG, caption, ERR_RED_COLOR);
	//	        return;
	//	    }
	 //   }
    //}

    actionCtrl.value = ret;
    setChkResultByMsgId(outPutCrl, OK_NUMBER_MSG, caption, OK_COLOR);

}

//=============================================================
// 機能：引数の文字列に対し、指定桁数になるよう0埋めします
// 引数：digit 指定桁数 str 文字列
// 戻り：0埋め後の文字列
//=============================================================
function appendZero(digit, str) {

    var zl = digit - str.length;
    if (zl == 0) {
        return str;
    }

    // 0埋め
    var buf = "";
    for (i = 0; i < zl; i++) {
        buf = buf + "0";
    }
    return buf.toString() + str;

}

//=============================================================
// 機能：二側のゼロを削除する関数
// 引数：指定用の文字列、二側のゼロの削除する場所
// 戻り：なし
//=============================================================
function trimZero(str) {
    if (str == null || str =="") {
        return null;
    }
    return str.replace(/(^[0]*)|([0]*$)/g, "");
}

//=============================================================
// 機能：左側のゼロを削除する関数
// 引数：指定用の文字列、左側のゼロの削除する場所
// 戻り：なし
//=============================================================
function trimLeftZero(str) {
    if (str == null || str =="") {
        return null;
    }
    return str.replace(/(^[0]*)/g, "");
}

//=============================================================
// 機能：右側のゼロを削除する関数
// 引数：指定用の文字列、右側のゼロの削除する場所
// 戻り：なし
//=============================================================
function trimRightZero(str) {
    if (str == null || str =="") {
        return null;
    }
    return str.replace(/([0]*$)/g, "");
}

//=============================================================
// 機能：Focusを取得する時、数値テキストボックスの処理関数
// 引数：指定用のコントロール、セパレータ","の削除する場所
// 戻り：なし
//=============================================================
function OnFocusFmtNumber(obj) {
    obj.value = obj.value.replace(/,/g, "");
    obj.select();
    clearBackgroundColor();
}

//=============================================================
// 機能：してしたコントロールの値をフォーマット
//       セパレータ","を追加する関数
// 引数：指定用のコントロール、フォーマットの場所
// 戻り：なし
//=============================================================
function setFormatNumber(obj) {
    var value = obj.value;
    if (value == undefined) {
        return;
    }
    var str = String(value);
    if (str == null || str == "") {
        return;
    }
    var list = str.split("\.");
    if (list.length < 1 || list[0].length < 3) {
        return;
    }
    var newStr = "";
    var cnt = 1;
    var end = 0;
    if (str.charAt(0) == '-') {
        end++;
    }
    for (var i=list[0].length-1; i>=end; i--) {
        newStr = list[0].charAt(i) + newStr;
        if (cnt == 3 && i != end) {
            newStr = "," + newStr;
            cnt = 0;
        }
        cnt++;
    }
    if (str.charAt(0) == '-') {
        newStr = "-" + newStr;
    }
    obj.value = str.replace(list[0], newStr);
}
/***************************************************************************************************
 *　END：数値テキストボックスのチェック
 **************************************************************************************************/

/***************************************************************************************************
 *　BEGIN：時間テキストボックスのチェック
 **************************************************************************************************/
//==============================================================
// 機能：時間テキストボックスのチェック
// 引数：なし
// 戻り：なし
//==============================================================
function subFmtTime() {
    //イベント発生のコントロール場所
    var e = getEvent();
    var actionCtrl = e.srcElement || e.target;
    var requireValue = getCtrlAttribute("require");
    var msgAreaValue = getCtrlAttribute("msgArea");
    var caption = getCtrlAttribute("caption");
    var pattern = /^([0-1][0-9]|2[0-4]):[0-5][0-9]$/;
    if (requireValue.toLowerCase() == "true") {
        if (actionCtrl.value == "") {
            setChkResultByMsgId(msgAreaValue, REQUIRE_MSG, caption, ERR_RED_COLOR);
            return;
        }else if ((!pattern.test(actionCtrl.value)) || ((actionCtrl.value).substr(0,2) == "24")) {
            setChkResultByMsgId(msgAreaValue, ERR_TIME_MSG, caption, ERR_RED_COLOR);
            return;
        }else {
            setChkResultByMsgId(msgAreaValue, OK_TIME_MSG, caption, OK_COLOR);
            return;
        }
    } else if (actionCtrl.value == "") {
        setChkResultByMsgId(msgAreaValue, OK_TIME_MSG, caption, OK_COLOR);
        return;
    } else if ((!pattern.test(actionCtrl.value)) || ((actionCtrl.value).substr(0,2) == "24")) {
        setChkResultByMsgId(msgAreaValue, ERR_TIME_MSG, caption, ERR_RED_COLOR);
        return;
    } else {
        setChkResultByMsgId(msgAreaValue, OK_TIME_MSG, caption, OK_COLOR);
        return;
    }
}
/***************************************************************************************************
 *　END：時間テキストボックスのチェック
 **************************************************************************************************/

/***************************************************************************************************
 *　BEGIN：電話番号テキストボックスのチェック
 **************************************************************************************************/
//==============================================================
// 機能：電話番号テキストボックスのチェック
// 引数：なし
// 戻り：なし
//==============================================================
function OnBlurFmtTelNumber() {
    //入力必須
    var requireFlg = "false";
    //イベント発生のコントロール場所
    var e = getEvent();
    var actionCtrl = e.srcElement || e.target;
    //コントロールの画面値を取得
    var showValue = trim(actionCtrl.value);
	actionCtrl.value = showValue;
    //入力必須の判断
    requireFlg = getCtrlAttribute("require");
    var strOutPutCrl = getCtrlAttribute("msgArea");
    var caption  = getCtrlAttribute("caption");
    if (requireFlg.toLowerCase() == "true") {
        if (actionCtrl.value == "" && strOutPutCrl != null ) {
            setChkResultByMsgId(strOutPutCrl, REQUIRE_MSG, caption, ERR_RED_COLOR);
            return;
        }
    } else {
    	if (actionCtrl.value == "" && strOutPutCrl != null ) {
    		setChkResultByMsgId(strOutPutCrl, OK_NUMBER_MSG, caption, OK_COLOR);
	    	return;
    	}
    }

    //チェックを開始する
    if (showValue != null) {

        var resultFlg = checkTel(showValue);
        if (strOutPutCrl) {
            if(resultFlg){
                 setChkResultByMsgId(strOutPutCrl, OK_NUMBER_MSG, caption, OK_COLOR);
            }else{
                setChkResultByMsgId(strOutPutCrl, ERR_TELNUMBER_MSG, caption, ERR_RED_COLOR);
            }
        }
    }
}

function checkTel(value) {
	var pattern1 =/^\d{1,17}-\d{1,17}-\d{1,17}$/;
	var pattern2 = /^[0-9]+$/;
	if (!pattern1.test(value) && !pattern2.test(value)) {
		return false;
	}
	if (value.length > 20) {
		return false;
	}
	return true;
}

function OnBlurFmtFaxNumber() {
    //入力必須
    var requireFlg = "false";
    //イベント発生のコントロール場所
    var e = getEvent();
    var actionCtrl = e.srcElement || e.target;
    //コントロールの画面値を取得
    var showValue = trim(actionCtrl.value);
	actionCtrl.value = showValue;
    //入力必須の判断
    requireFlg = getCtrlAttribute("require");
    var strOutPutCrl = getCtrlAttribute("msgArea");
    var caption  = getCtrlAttribute("caption");
    if (requireFlg.toLowerCase() == "true") {
        if (actionCtrl.value == "" && strOutPutCrl != null ) {
            setChkResultByMsgId(strOutPutCrl, REQUIRE_MSG, caption, ERR_RED_COLOR);
            return;
        }
    } else {
    	if (actionCtrl.value == "" && strOutPutCrl != null ) {
    		setChkResultByMsgId(strOutPutCrl, OK_NUMBER_MSG, caption, OK_COLOR);
	    	return;
    	}
    }

    //チェックを開始する
    if (showValue != null) {
        pattern =/(^([0-9]+)((\-)?[0-9]+)*(\-)?([0-9]+$))|(^[0-9]+$)/;
        var resultFlg = pattern.test(showValue);
        if (strOutPutCrl) {
            if(resultFlg){
                 setChkResultByMsgId(strOutPutCrl, OK_NUMBER_MSG, caption, OK_COLOR);
            }else{
                setChkResultByMsgId(strOutPutCrl, ERR_TELNUMBER_MSG, caption, ERR_RED_COLOR);
            }
        }
    }
}

//==============================================================
// 機能：直通電話番号テキストボックスのチェック
// 引数：flg
// 戻り：なし
//==============================================================
function OnBlurFmtTelNumberWithSubset(flg) {

    var requireFlg = "false";
    requireFlg = getCtrlAttribute("require");

    //var pattern1 = /(^([0-9]+)((\-)?[0-9]+)*(\-)?([0-9]+$))|(^[0-9]+$)/;
    var pattern1 =/^\d{3}-\d{3}-\d{4}$/;
    var pattern1_1 = /^[0-9]+$/;
    var pattern2 = /^[0-9]+$/;
    var id = getCtrlAttribute("id");
    var strOutPutCrl = getCtrlAttribute("msgArea");
    var caption  = getCtrlAttribute("caption");

    var hidValue = "";
    var valueTel = "";
    var valueSub = "";
    var otherId = "";
    var hidId = "";

	// 電話番号
    if (flg == "0") {
		otherId = id.replace("_Tel", "_Sub");
		hidId = id.replace("_Tel", "");
		valueTel = trim(document.getElementById(id).value);
		valueSub = trim(document.getElementById(otherId).value);
		if (valueTel == "" && valueSub == "") {
			document.getElementById(hidId).value = "";
		} else {
			document.getElementById(hidId).value = valueTel + "#" + valueSub;
		}

    }

    // 直通番号
    if (flg == "1") {
		otherId = id.replace("_Sub", "_Tel");
		hidId = id.replace("_Sub", "");
		valueTel = trim(document.getElementById(otherId).value);
		valueSub = trim(document.getElementById(id).value);

		if (valueTel == "" && valueSub == "") {
			document.getElementById(hidId).value = "";
		} else {
			document.getElementById(hidId).value = valueTel + "#" + valueSub;
		}
    }

    var objTel = document.getElementById(id);
    var objSub = document.getElementById(otherId);

    objTel.value = trim(objTel.value);
    objSub.value = trim(objSub.value);

    // チェック
    if (valueTel != "") {
		if (checkTel(valueTel)) {
			if (valueSub != "") {
				if (!pattern2.test(valueSub)) {
					setCheckResultForTel(strOutPutCrl, ERR_TELNUMBER_MSG, caption, ERR_RED_COLOR,objTel,objSub);
					return;
				} else {
					setCheckResultForTel(strOutPutCrl, OK_NUMBER_MSG, caption, OK_COLOR,objTel,objSub);
					return;
				}
			} else {
				if (requireFlg.toLowerCase() != "true") {
					setCheckResultForTel(strOutPutCrl, OK_NUMBER_MSG, caption, OK_COLOR,objTel,objSub);
					return;
				}
			}
		} else {
			setCheckResultForTel(strOutPutCrl, ERR_TELNUMBER_MSG, caption, ERR_RED_COLOR,objTel,objSub);
			return;
		}
	} else {
		if (valueSub != "") {
       		setCheckResultForTel(strOutPutCrl, ERR_TELNUMBER_MSG, caption, ERR_RED_COLOR,objTel,objSub);
       		return;
       	} else {
       		if (requireFlg.toLowerCase() != "true") {
       			setCheckResultForTel(strOutPutCrl, OK_NUMBER_MSG, caption, OK_COLOR,objTel,objSub);
				return;
       		}
       	}
	}

	//入力必須の判断
    if (requireFlg.toLowerCase() == "true") {
        if (strOutPutCrl != null ) {
        	if (valueTel == "" || valueSub == "") {
        		setCheckResultForTel(strOutPutCrl, REQUIRE_MSG, caption, ERR_RED_COLOR,document.getElementById(id),document.getElementById(otherId));
	        	return;
        	}
        }
    }
}

function setCheckResultForTel(msgAreaCtrlId, messageId, caption, actionCtrlColor, obj1, obj2) {

	var msgAreaMessage = getMessageById(messageId, caption);

    if (msgAreaCtrlId != null && msgAreaCtrlId != "" &&
        msgAreaMessage != null) {
        document.getElementById(msgAreaCtrlId).innerHTML=msgAreaMessage;
        if (msgAreaMessage != "") {
        	document.getElementById(msgAreaCtrlId).innerHTML = "&nbsp;&nbsp;&nbsp;" + msgAreaMessage + "<br/>";
        } else {
       		document.getElementById(msgAreaCtrlId).innerHTML = msgAreaMessage;
       	}
        doCssControl(document.getElementById(msgAreaCtrlId));
    }

    if (obj1 != null && obj2 != null) {
        obj1.style.backgroundColor = actionCtrlColor;
        obj2.style.backgroundColor = actionCtrlColor;
    }

}

//=============================================================
// 機能：Focusを取得する時、電話番号テキストボックスの処理関数
// 引数：指定用のコントロール、セパレータ","の削除する場所
// 戻り：なし
//=============================================================
function OnFocusFmtTelNumber() {
    clearBackgroundColor();
}

function OnFocusFmZip() {
    var e = getEvent();
    var obj = e.srcElement || e.target;
    obj.style.backgroundColor = "";

    var msgArea;
    if (obj.attributes["msgArea"]) {
    	msgArea = obj.attributes["msgArea"].nodeValue;
    	document.getElementById(msgArea).innerHTML = "";
    }
}
/***************************************************************************************************
 *　END：電話番号テキストボックスのチェック
 **************************************************************************************************/

/***************************************************************************************************
 *　START：画面用の共通関数
 **************************************************************************************************/

//==============================================================
// 機能 ：メッセージの取得する共通関数
// 引数1：メッセージID`
// 戻り ：取得したメッセージ値
//==============================================================
function getMessageInfo(messageId) {
    return document.getElementById(messageId).value.toString();
}

//==============================================================
// 機能 ：メッセージ表示
// 引数1：メッセージID`
//==============================================================
function alertMessage(messageId,args) {
	if (args == "") {
		alert(getMessageInfo(messageId));
	} else {
		var message = getMessageById(messageId,args);
		alert(message);
	}
}

//==============================================================
// 機能 ：確認メッセージ表示
// 引数1：メッセージID`
//==============================================================
function confirmMessage(messageId) {
	return confirm(getMessageInfo(messageId));
}
/***************************************************************************************************
 *　END：画面用の共通関数
 **************************************************************************************************/

 /***************************************************************************************************
 *　BEGIN：姓名のチェック
 **************************************************************************************************/

//==============================================================
// 機能 ：メッセージの取得する共通関数
// 引数1：メッセージID`
// 戻り ：取得したメッセージ値
//==============================================================
function doubleTextOnfocus(seiId, meiId) {
	document.getElementById(seiId).style.backgroundColor = "";
	document.getElementById(meiId).style.backgroundColor = "";
	if (document.getElementById(seiId).attributes["msgArea"]) {
		var msgArea = document.getElementById(seiId).attributes["msgArea"].nodeValue;
		if (msgArea) {
			document.getElementById(msgArea).innerHTML = "";
			doCssControl(document.getElementById(msgArea));
		}
	}
}

function doubleTextOnblur(seiId, meiId, nameId) {
	document.getElementById(seiId).value = trim(document.getElementById(seiId).value);
	document.getElementById(meiId).value = trim(document.getElementById(meiId).value);
    var checkValue = trim(document.getElementById(seiId).value) + trim(document.getElementById(meiId).value);
    var msgArea = document.getElementById(seiId).attributes["msgArea"].nodeValue;
    var caption = document.getElementById(seiId).attributes["caption"].nodeValue;
    var inputMust = document.getElementById(seiId).attributes["require"].nodeValue;
    var checkMode = document.getElementById(seiId).attributes["checkMode"].nodeValue;
    var splitFlg = document.getElementById(seiId).attributes["splitFlg"].nodeValue;
    document.getElementById(nameId).value = trim(document.getElementById(seiId).value) + splitFlg + trim(document.getElementById(meiId).value)
    if (document.getElementById(nameId).value == splitFlg) {
		document.getElementById(nameId).value = "";
    }

    if (inputMust.toLowerCase() == "true" && (trim(document.getElementById(seiId).value) == "" || trim(document.getElementById(meiId).value) == "")) {
		//エリーメッセージ　表示
		setNameCheckResult(msgArea, REQUIRE_MSG, caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
		return;
    }
    if (checkValue != "") {
   		//半角指定の場合
        if (checkMode == "MODE_HANKAKU") {
            //全角文字が混在している場合はエラー
            if (bIsNarrowString(checkValue) == false) {
				setNameCheckResult(msgArea, ERR_MODE_HANKAKU_MSG, caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
                return;
            }else{
				setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }

        //半角カナ指定の場合
        } else if (checkMode == "MODE_HANKAKUKANA") {
            if (bIsHankakuKanaString(checkValue) == false) {
                setNameCheckResult(msgArea, ERR_MODE_HANKAKUKANA_MSG, caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
                return;
            } else {
                setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }
        //全角カナ指定の場合
        } else if (checkMode == "MODE_WIDEKANA") {

            if (bIsWideKanaString(checkValue) == false) {
                setNameCheckResult(msgArea, ERR_MODE_WIDEKANA_MSG, caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
                return;
            } else {
                setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }
        //半角数値指定の場合
        } else if (checkMode == "MODE_HANKAKUNUM") {
            if (checkValue.match(/[^0-9\.\-]/)) {
                setNameCheckResult(msgArea, ERR_NUMBER_MSG, caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
                return;
            } else {
                setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }

        //半角英字指定の場合
        } else if (checkMode == "MODE_HANKAKUALPHA") {
            if (checkValue.match(/[^a-zA-Z]/)) {
                setNameCheckResult(msgArea, ERR_MODE_HANKAKUALPHA_MSG, caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
                return;
            } else {
               setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }
        //半角英数字指定の場合
        } else if (checkMode == "MODE_HANKAKUALPHANUM") {

            if (checkValue.match(/[^a-zA-Z0-9]/)) {
               setNameCheckResult(msgArea, ERR_MODE_HANKAKUALPHANUM_MSG,
                                   caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
               return;
            } else {
               setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }
        //半角英数記号指定の場合
        }else if (checkMode == "MODE_HANKAKUALPHANUMMARK") {
            if (bIsNarrowESKigouString(checkValue) == false) {
                 setNameCheckResult(msgArea, ERR_MODE_HANKAKUALPHANUMMARK_MSG,
                                     caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
                 return;
            } else {
                setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }
        //全角指定の場合
        } else if (checkMode == "MODE_WIDE") {
        	if (!bIsWideString(checkValue)) {
                 setNameCheckResult(msgArea, ERR_MODE_WIDE,
                                     caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
                 return;
            } else {
                setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
            }
        }

        // 半角カナ入力不可のチェック
	    var kana = document.getElementById(seiId).attributes["hankana"].nodeValue;
	    if (kana == "false") {
	    	if (!checkHankakuKana(checkValue)) {
	    		setNameCheckResult(msgArea, ERR_HANKANA_MSG,
                                     caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
	    		return;
	    	}
	    }

        // 文字列のバイト数がmaxLength内であるかどうかチェックする
	    var stringLength = getByteCount(checkValue);
	    var max = document.getElementById(seiId).maxLength;
	    if (stringLength > max-getByteCount(splitFlg)) {
	        setNameCheckResult(msgArea, ERR_LENGTH_OVER_MSG,
                                     caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
	        return ;
	    } else {
	        setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
	    }

	    if (splitFlg == "@") {

	    	if (!checkEmail(document.getElementById(nameId).value)) {
	    		setNameCheckResult(msgArea, ERR_TELNUMBER_MSG,
                                     caption, ERR_RED_COLOR, document.getElementById(seiId), document.getElementById(meiId));
	    	} else {
	    		setNameCheckResult(msgArea, OK_MSG, caption, OK_COLOR, document.getElementById(seiId), document.getElementById(meiId));
	    	}
	    }

    }

}

//==============================================================
// 機能 ：コントロールチェック結果を設定する
// 引数1：メッセージ表示エリアのコントロールID`
// 引数2：メッセージ表示エリアの表示用メッセージ
// 引数3：チェックしたコントロールの背景色
// 戻り ：なし
//==============================================================
function setNameCheckResult(msgAreaCtrlId, messageId, strCaption, actionCtrlColor,obj1, obj2) {

	var msgAreaMessage = getMessageById(messageId, strCaption);

    if (msgAreaCtrlId != null && msgAreaCtrlId != "" &&
        msgAreaMessage != null) {
        if (msgAreaMessage != "") {
        	document.getElementById(msgAreaCtrlId).innerHTML = "&nbsp;&nbsp;&nbsp;" + msgAreaMessage + "<br/>";
        } else {
        	document.getElementById(msgAreaCtrlId).innerHTML = msgAreaMessage;
        }
        doCssControl(document.getElementById(msgAreaCtrlId));
    }

    if (actionCtrlColor != null) {
        obj1.style.backgroundColor = actionCtrlColor;
        obj2.style.backgroundColor = actionCtrlColor;
    }

}

/***************************************************************************************************
 *　END：姓名のチェック
 **************************************************************************************************/

 /***************************************************************************************************
 *　BEGIN：日付選択カレンダーのチェック
 **************************************************************************************************/

//==============================================================
// 機能：イベント発生のコントロール背景色をクリア(カレンダー用)
// 引数：openCalenderId
// 戻り：なし
//==============================================================
var openFlag = false;
var selfClick = false;
var isMouseOn = false;
var myHashtable;
var thisYearMonth;
function clearCanlenderBackgroundColor(openCalenderId){
	selfClick = true;
	var tmp = document.getElementById("openCalenderId").value;
	if (tmp != null && tmp != "" && tmp != openCalenderId) {
		eval(tmp).hide();
	}
    var e = getEvent();
    var obj = e.srcElement || e.target;
    //obj.style.backgroundColor = "";
}

//==============================================================
// 機能：日付選択カレンダーのチェック
// 引数：なし
// 戻り：なし
//==============================================================
function subFmtDate() {

	var calFocus = document.getElementById("openCalenderIdFocus");
	if (calFocus != null) {
		if (calFocus.value != "") {
			return;
		}
	}
    //イベント発生のコントロール場所
    var e = getEvent();
    var actionCtrl = e.srcElement || e.target;
    actionCtrl.value = trim(actionCtrl.value);
    var valueArr = actionCtrl.value.split("/");
    if (valueArr.length == 3) {
    	if (valueArr[0].length == 4
    			&& valueArr[1].length > 0 && valueArr[1].length <= 2
    			&& valueArr[2].length > 0 && valueArr[2].length <= 2) {
    		var month = valueArr[1].length == 1 ? "0"+valueArr[1]:valueArr[1];
   		    var day = valueArr[2].length == 1 ? "0"+valueArr[2]:valueArr[2];
    		actionCtrl.value = valueArr[0] + "/" + month + "/" + day;
    	}
    }
    actionCtrl.value = actionCtrl.value.replace(/-/g, "");
    actionCtrl.value = actionCtrl.value.replace(/\//g, "");
    var pattern = /^[/0-9]+$/;
    if (actionCtrl.value.length == 8 && pattern.test(actionCtrl.value)) {
    	var tYear = actionCtrl.value.substr(0,4);
    	var tMonth = actionCtrl.value.substr(4,2);
    	var tDay = actionCtrl.value.substr(6,2);
    	actionCtrl.value = tYear + "/" + tMonth + "/" + tDay;
    }
    var tmp = actionCtrl.value.split("/");
    if (tmp.length == 3) {
    	actionCtrl.value = tmp[0] + "/" + appendZero(2,tmp[1]) + "/" + appendZero(2,tmp[2]);
    }
    var requireValue = getCtrlAttribute("require");
    var msgAreaValue = getCtrlAttribute("msgArea");
    var caption  = getCtrlAttribute("caption");
    var RegDateLine = /\d{4}\/{1}\d{1,2}\/{1}\d{1,2}/;

    if (requireValue.toLowerCase() == "true") {
        if (actionCtrl.value == "") {
            setChkResultByMsgId(msgAreaValue, REQUIRE_MSG, caption, ERR_RED_COLOR);
            return;
        } else {
            if ((!pattern.test(actionCtrl.value)) || (!RegDateLine.test(actionCtrl.value)) || (actionCtrl.value.length > 10)) {
                 setChkResultByMsgId(msgAreaValue, ERR_DATE_MSG, caption, ERR_RED_COLOR);
                return;
            }
            var sDate = actionCtrl.value.toString();
            var MonthDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
            mYear = sDate.substr(0,4) ;
            mMonth = sDate.substr(5,2) ;
            mDay = sDate.substr(8,2);

            if (mYear <= 0 || mYear > 9999 || mMonth <= 0 || mMonth > 12) {
                setChkResultByMsgId(msgAreaValue, ERR_DATE_MSG, caption, ERR_RED_COLOR);
                return;
            }

            var RightDay = 0 ;
            if (mMonth == 2) {
                RightDay = ((((mYear%4 == 0) && (mYear%100 != 0)) || (mYear%400 == 0))? 29: 28);
            } else {
                mMonth = mMonth - 1;
                RightDay = MonthDays[mMonth] ;
            }

            if (mDay <= 0 || mDay > RightDay) {
                setChkResultByMsgId(msgAreaValue, ERR_DATE_MSG, caption, ERR_RED_COLOR);
                return;
            }
            setChkResultByMsgId(msgAreaValue, OK_DATE_MSG, caption, OK_COLOR);
            return;
        }
    } else if (actionCtrl.value == "") {
         setChkResultByMsgId(msgAreaValue, OK_DATE_MSG, caption, OK_COLOR);
        return;
    } else {
        if ((!pattern.test(actionCtrl.value)) || (!RegDateLine.test(actionCtrl.value)) || (actionCtrl.value.length > 10)) {
            setChkResultByMsgId(msgAreaValue, ERR_DATE_MSG, caption, ERR_RED_COLOR);
            return;
        }
        var sDate = actionCtrl.value.toString();
        var MonthDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
        mYear = sDate.substr(0,4) ;
        mMonth = sDate.substr(5,2) ;
        mDay = sDate.substr(8,2);

        if (mYear <= 0 || mYear > 9999 || mMonth <= 0 || mMonth > 12) {
            setChkResultByMsgId(msgAreaValue, ERR_DATE_MSG, caption, ERR_RED_COLOR);
            return;
        }

        var RightDay = 0 ;
        if (mMonth == 2) {
            RightDay = ((((mYear%4 == 0) && (mYear%100 != 0)) || (mYear%400 == 0))? 29: 28);
        } else {
            mMonth = mMonth - 1;
            RightDay = MonthDays[mMonth] ;
        }

        if (mDay <= 0 || mDay > RightDay) {
            setChkResultByMsgId(msgAreaValue, ERR_DATE_MSG, caption, ERR_RED_COLOR);
            return;
        }
        setChkResultByMsgId(msgAreaValue, OK_DATE_MSG, caption, OK_COLOR);
        return;
    }
}

// カレンダー表示欄を即座に隠す
addEventSimple(window,'load',init);

function init(){
	addEventSimple(document,'click',clickFunc);
}

function addEventSimple(obj,evt,fn){
	if (obj.addEventListener) {
		obj.addEventListener(evt,fn,false);
	} else if (obj.attachEvent) {
		obj.attachEvent('on'+evt,fn);
	}
}

function clickFunc(e){
	var evt = e || window.event
	if (!selfClick && !isMouseOn && document.getElementById("openCalenderId").value != "") {
		eval(document.getElementById("openCalenderId").value).hide();
	}
	selfClick = false;
}

function HashTable() {
	this.__hash = {};
	// 追加
	this.add = function(key,value) {
		if(typeof(key) != "undefined") {
			if(! this.contains(key)) {
				this.__hash[key] = typeof(value) == "undefined" ? null : value;
				return true;
			} else {
				return false;
			}
		}
	};
	// 削除
	this.remove = function(key) {
		delete this.__hash[key];
	};
	// 合計カウント
	this.count = function()	{
		var i = 0;
		for(var obj in this.__hash) {
			i++;
		}
		return i;
	};
	// アイテム取得
	this.items = function(key) {
		return this.__hash[key];
	};
	// アイテム存在
	this.contains = function(key) {
		return typeof(this.__hash[key]) != "undefined";
	};
	// クリア
	this.clear = function() {
		for(var obj in this.__hash) {
			delete this.__hash[k];
		}
	};
}
/***************************************************************************************************
 *　END：日付選択カレンダーのチェック
 **************************************************************************************************/


function comboBoxChange() {

	var e = getEvent();
    var obj = e.srcElement || e.target;
    var msgArea = obj.attributes["msgArea"].nodeValue;
    var require  = obj.attributes["require"].nodeValue;
    var caption = obj.attributes["caption"].nodeValue;
	if (require.toLowerCase() == "true" && obj.value == "") {
		setChkResultByMsgId(msgArea, REQUIRE_MSG, caption, ERR_RED_COLOR);
	} else {
		setChkResultByMsgId(msgArea, OK_MSG, caption, OK_COLOR);
	}
}

/**
 * ProgessBarの呼び出す
 **/
function callFilter() {

    var filterObj = document.getElementById("filter");
    var waitingObj = document.getElementById("waiting");
    if (filterObj != null && waitingObj != null) {

    	//try{
		//document.getElementById("noReSubmit").focus();
    	//filterObj.focus();
    	//}catch(e){}

    	var height;
    	filterObj.style.width = document.documentElement.scrollWidth + "px";
		filterObj.style.height = document.documentElement.scrollHeight + "px";
		height = document.documentElement.scrollHeight;
		filterObj.style.top = "0px";
		filterObj.style.left = "0px";
		if (document.documentElement.scrollHeight == 0) {
			filterObj.style.width = document.body.scrollWidth + "px";
			filterObj.style.height = document.body.scrollHeight + "px";
			height = document.body.scrollHeight;
		}
		if (document.documentElement.clientHeight > height) {
			filterObj.style.height = document.documentElement.clientHeight + "px";
		}
		filterObj.style.display="block";

		waitingObj.style.width = document.documentElement.clientWidth + "px";
		waitingObj.style.height = document.documentElement.clientHeight + "px";
		waitingObj.style.top = document.documentElement.scrollTop + "px";
		waitingObj.style.left = document.documentElement.scrollLeft + "px";
		if (document.documentElement.scrollTop == 0) {
			waitingObj.style.top = document.body.scrollTop + "px";
			waitingObj.style.left = document.body.scrollLeft + "px";
		}
		waitingObj.style.display="block";

    }

}
var submitflg = false;
/**
 * SUBMIT
 **/
function formSubmit(formName, actionName) {

	if (formName == null || actionName == null || actionName == "" || submitflg) {
		return;
	}
	submitflg = true;
	callFilter();
	if (formName == "") {
		if (document.forms[0]) {
			document.forms[0].action = actionName;
			document.forms[0].target = "_self";
        	document.forms[0].submit();
		} else {
			location.href = actionName;
		}
	} else {
		document.forms[formName].action = actionName;
		document.forms[formName].target = "_self";
        document.forms[formName].submit();
	}
}

function openMailNewsSample(sample) {
    window.open("mailNewsSample.do?sample=" + sample,
        "msg","scrollbars=yes, width=600, menubar=no, toolbar=no, locaction=no");
}

/* 2011/10/20 HT00006 MODIFY START */
/**
 * 商品検索画面時に数量入力がされた場合、自動的に選択チェックを入れる
 */
function doViewChk(obj) {
	var numObj = $(obj).closest('tr').find("[name='num']").get(0);
	var chkObj = $(obj).closest('tr').find("[name='selectPartID']").get(0);
	var chkHid = $(obj).closest('tr').find("[name='chkValue']").get(0);
	if(!isEmptyObject(numObj) && !isEmptyObject(chkObj) && !isEmptyObject(chkHid)){
		if (numObj.value != "") {
			chkObj.checked = true;
		}
	}
}

/**
 * 商品比較画面時に数量入力がされた場合、自動的に選択チェックを入れる
 */
function doViewChkByIndex(index) {
	var numObj = $("[name='num']").get(index);
	var chkObj = $("[name='selectPartID']").get(index);
	if(!isEmptyObject(numObj) && !isEmptyObject(chkObj)){
		if (numObj.value != "") {
			chkObj.checked = true;
		}
	}
}

/**
 * 条件入力がされた場合、自動的に選択チェックを入れる
 */
function doViewChkCondition(obj) {
	var numObj = $(obj).closest('tr').find("[name='jyouken']").get(0);
	var chkObj = $(obj).closest('tr').find("[name='selectPartID']").get(0);
	var chkHid = $(obj).closest('tr').find("[name='chkValue']").get(0);
	if(!isEmptyObject(numObj) && !isEmptyObject(chkObj) && !isEmptyObject(chkHid)){
		if (numObj.value != "") {
			chkObj.checked = true;
			chkHid.value = "1";
		}
	}
}
/* 2011/10/20 HT00006 MODIFY END */

// 会員要素変更画面
function youso_change(strActionDo) {

	var langCdRadio = document.getElementsByName("langCdRadio");
	var kunicdRadio = document.getElementsByName("kunicdRadio");
	var tuukaCdRadio = document.getElementsByName("tuukaCdRadio");
	var langCdVal;
	var kunicdVal;
	var tuukaCdVal;
	for (i = 0; i < langCdRadio.length; i++) {
		if (langCdRadio[i].checked) {
			langCdVal = langCdRadio[i].value;
			break;
		}
	}
	for (i = 0; i < kunicdRadio.length; i++) {
		if (kunicdRadio[i].checked) {
			kunicdVal = kunicdRadio[i].value;
			break;
		}
	}
	for (i = 0; i < tuukaCdRadio.length; i++) {
		if (tuukaCdRadio[i].checked) {
			tuukaCdVal = tuukaCdRadio[i].value;
			break;
		}
	}

	document.getElementsByName("element_langCd")[0].value = langCdVal;
	document.getElementsByName("element_tuukaCd")[0].value = tuukaCdVal;
	document.getElementsByName("element_countryCd")[0].value = kunicdVal;
	document.getElementsByName("element_actionDo")[0].value = strActionDo;
	var submitAction = document.getElementsByName("OverseasForm")[0].action;
	formSubmit("OverseasForm", submitAction);


	//dojo.xhrGet({
    //    url: "overseasChange.do",
    //    content:{langCd:langCdVal,countryCd:kunicdVal,tuukaCd:tuukaCdVal,strActionDo:strActionDo},
    //    handleAs: "text",
    //    load: youso_change_back,
    //    error: function(response){}
    //});
}

function tuuka_change(strActionDo,tuuka) {

	document.getElementsByName("element_tuukaCd")[0].value = tuuka;
	document.getElementsByName("element_actionDo")[0].value = strActionDo;
	var submitAction = document.getElementsByName("OverseasForm")[0].action;
	formSubmit("OverseasForm", submitAction);

	//dojo.xhrGet({
    //    url: "overseasChange.do",
    //    content:{tuukaCd:tuuka,strActionDo:strActionDo},
    //    handleAs: "text",
    //    load: youso_change_back,
    //    error: function(response){}
    //});
}

function lang_change(strActionDo,lang) {


	document.getElementsByName("element_langCd")[0].value = lang;
	document.getElementsByName("element_actionDo")[0].value = strActionDo;
	var submitAction = document.getElementsByName("OverseasForm")[0].action;
	formSubmit("OverseasForm", submitAction);

	//dojo.xhrGet({
    //    url: "overseasChange.do",
    //    content:{langCd:lang,strActionDo:strActionDo},
    //    handleAs: "text",
    //    load: youso_change_back,
    //    error: function(response){}
    //});
}

//function youso_change_back(responseText) {

//	if (responseText != "") {
//		formSubmit('', responseText);
//	}

//}

function top_lang_click() {
	var langRdo = document.getElementsByName("lang");
	var kuniRdo = document.getElementsByName("cout");
	var langCd = "";
	for (i = 0; i < langRdo.length; i++) {
		if (langRdo[i].checked) {
			langCd = langRdo[i].value;
			break;
		}
	}
	if (langCd == "ja") {
		for (i = 0; i < kuniRdo.length; i++) {
			if (kuniRdo[i].value == "JPN") {
				kuniRdo[i].checked = "true";
			} else {
				kuniRdo[i].checked = "";
				kuniRdo[i].disabled = "disabled";
			}
		}
	} else {
		for (i = 0; i < kuniRdo.length; i++) {
			kuniRdo[i].disabled = "";
		}
	}
}

function lang_click() {
	var langRdo = document.getElementsByName("langCdRadio");
	var kuniRdo = document.getElementsByName("kunicdRadio");
	var langCd = "";
	for (i = 0; i < langRdo.length; i++) {
		if (langRdo[i].checked) {
			langCd = langRdo[i].value;
			break;
		}
	}
	if (langCd == "ja") {
		for (i = 0; i < kuniRdo.length; i++) {
			if (kuniRdo[i].value == "JPN") {
				kuniRdo[i].checked = "true";
			} else {
				kuniRdo[i].checked = "";
				kuniRdo[i].disabled = "disabled";
			}
		}
	} else {
		for (i = 0; i < kuniRdo.length; i++) {
			kuniRdo[i].disabled = "";
		}
	}
}



