var mobjWindowHandle;
var mblnWiondowOpen = false;
var mstrSaveFieldValue;

/***************************************************************************************************
 機　能　：ブラウザをオープンします．
 引　数　：1. [I  ] - string pstrUrl - オープンする URL
 　　　　　2. [I  ] - string pstrWindowName - オープンするウィンドウ名
 　　　　　3. [I  ] - string pstrWindowWidth - オープンするウィンドウの幅サイズ
 　　　　　4. [I  ] - string pstrWindowHeight - オープンするウィンドウの縦サイズ
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfOpenWindow(pstrUrl
                    , pstrWindowName
                    , pstrWindowWidth
                    , pstrWindowHeight
                     ) {

    var wstrWindowOption = '';

    wstrWindowOption = 'width=' + pstrWindowWidth
                     + ',height=' + pstrWindowHeight
                     + ',scrollbars=yes'
                     + ',resizable=yes'
    ;

    mobjWindowHandle = window.open(pstrUrl
                                 , pstrWindowName
                                 , wstrWindowOption
                                  );
    mblnWiondowOpen = true;

}



/***************************************************************************************************
 機　能　：ブラウザをクローズします．
 引　数　：none
 返り値　：none
 備　考　：gfOpenWindow でオープンしたウィンドウが対象です．

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfCloseWindow() {

    if (!mblnWiondowOpen) return;

    if (mobjWindowHandle.closed == false){
        mobjWindowHandle.close();
    }

}



/***************************************************************************************************
 機　能　：取引先名を選択するウィンドウ（=/scripts/Sel_Customer.asp）をオープンします．
 引　数　：1. [I  ] - string pstrSelBuy - Request("selbuy") 値
 　　　　　2. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　3. [I  ] - string pstrCustomerNameField - 選択した取引先名を設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrWindowWidth - オープンするウィンドウの幅サイズ
 　　　　　5. [I  ] - string pstrWindowHeight - オープンするウィンドウの縦サイズ
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfOpenSelectCustomer(pstrSelBuy
                            , pstrForm
                            , pstrCustomerNameField
                            , pstrWindowWidth
                            , pstrWindowHeight
                             ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_Customer.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrCustomerNameField
            + '&selbuy=' + pstrSelBuy
    ;

    gfOpenWindow(wstrUrl
               , 'select_customer_member'
               , pstrWindowWidth
               , pstrWindowHeight
                );
    return;

}
/***************************************************************************************************
 機　能　：取引先名を選択するウィンドウ2（=/scripts/Sel_Customer.asp）をオープンします．発送予定一覧等の機能用
 引　数　：1. [I  ] - string pstrSelBuy - Request("selbuy") 値
 　　　　　2. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　3. [I  ] - string pstrCustomerNameField - 選択した取引先名を設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrWindowWidth - オープンするウィンドウの幅サイズ
 　　　　　5. [I  ] - string pstrWindowHeight - オープンするウィンドウの縦サイズ
 　　　　　6. [I  ] - integer pintRDflg - 直送先名を編集する必要があるか　0:なし　1:あり
 　　　　　6. [I  ] - string pstrinm_2 - 直送先名設定テキスト pintRDflg = 1の場合のみ引数とする
        7. [I  ] - integer pintsmt submitが必要か　1:あり  以外:なし
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 
***************************************************************************************************/
function gfOpenSelectCustomer2(pstrSelBuy
                                        , pstrForm
                                        , pstrCustomerNameField
                                        , pstrWindowWidth
                                        , pstrWindowHeight
                                        , pstrinm_2
                                        , pintRDflg
                                        , pintsmt
                                         ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_Customer.asp'
        + '?fnm=' + pstrForm
        + '&selbuy=' + pstrSelBuy
        + '&mcdflg=1'
        + '&inm_1=' + pstrCustomerNameField
        + '&return_direct=' + pintRDflg 
        + '&smt=' + pintsmt;
    if (pintRDflg == 1){
        wstrUrl = wstrUrl + '&inm_2=' + pstrinm_2 
    }

    gfOpenWindow(wstrUrl
               , 'select_customer_member'
               , pstrWindowWidth
               , pstrWindowHeight
                );
    return;

}


/***************************************************************************************************
機　能　：取引先名を選択するウィンドウ（=/scripts/Sel_Customer.asp）をオープンします。
引　数　：1. [I  ] - pstrSelBuy - Request("selbuy") 値
　　　　　2. [I  ] - pstrForm - <form> Name 属性値
　　　　　3. [I  ] - pstrCustomerNameField - 選択した取引先名を設定する <input> Name 属性値
　　　　　4. [I  ] - pstrViewGuide - 親画面にガイドを出力する <div> id 属性
　　　　　5. [I  ] - pstrWindowWidth - オープンするウィンドウの幅サイズ
　　　　　6. [I  ] - pstrWindowHeight - オープンするウィンドウの縦サイズ
　　　　　7. [I  ] - string pstrinm_2 - 直送先名設定テキスト pintRDflg = 1の場合のみ引数とする
　　　　　8. [I  ] - integer pintRDflg - 直送先名を編集する必要があるか　0:なし　1:あり
　　　　　9. [I  ] - integer pintsmt submitが必要か　1:あり  以外:なし
返り値　：なし
備　考　：

変更日______担当者________変更内容_________________________________________________________________
2007/01/19　T.Toya        新規
***************************************************************************************************/
function gfEmpOpenSelectCustomer(pstrSelBuy, pstrForm, pstrCustomerNameField, pstrViewGuide, pstrWindowWidth, pstrWindowHeight, pstrinm_2, pintRDflg, pintsmt) {

	var wstrUrl;

	wstrUrl = "";
	wstrUrl = wstrUrl + "/scripts/Sel_Customer.asp";
	wstrUrl = wstrUrl + "?fnm=" + pstrForm;
	wstrUrl = wstrUrl + "&inm_1=" + pstrCustomerNameField;
	wstrUrl = wstrUrl + "&selbuy=" + pstrSelBuy;
	wstrUrl = wstrUrl + "&mcdflg=1";
	wstrUrl = wstrUrl + "&view_guide=" + pstrViewGuide;
	wstrUrl = wstrUrl + "&return_direct=" + pintRDflg 
	wstrUrl = wstrUrl + "&smt=" + pintsmt;
	if (pintRDflg == 1) {
		wstrUrl = wstrUrl + "&inm_2=" + pstrinm_2
	}

	gfOpenWindow(wstrUrl, "select_customer_member", pstrWindowWidth, pstrWindowHeight);
	return;

}


/***************************************************************************************************
 機　能　：直送先名を選択するウィンドウ（=/scripts/Sel_Customer.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　 2. [I  ] - string pstrCustomerNameField - 選択した取引先名を設定する <input> Name 属性値
 　　　　　 3. [I  ] - string pstrWindowWidth - オープンするウィンドウの幅サイズ
 　　　　　 4. [I  ] - string pstrWindowHeight - オープンするウィンドウの縦サイズ
 　　　　　 5. [I  ] - string pmcd loginuser
 　　　　　 6. [I  ] - pmcd_b 取引先の検索で取得した買い手ユーザ
 　　　　　 7. [I  ] - pintsmt submitが必要か否か
 返り値　：none
 備　考　：
    
 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfOpenSelectDeriveryDirect(pstrForm, pstrCustomerNameField, w, h,pmcd,pmcd_b,pintsmt) {

    var url
    url = ''
    url = url + '/scripts/Sel_Customer.asp'
    url = url + '?fnm=' + pstrForm
    url = url + '&inm_1=' + pstrCustomerNameField
    url = url + '&direct_delivery=2'
    url = url + '&chk_mcd_s=' + pmcd
    url = url + '&ctrflg=BS'
    url = url + '&ctr_mcd_b=' +pmcd_b
    url = url + '&mcdflg=1'
    url = url + '&smt=' +pintsmt

    gfOpenWindow(url, 'select_customer_member', w, h)
    return;
}
/***************************************************************************************************
 機　能　：共有情報を設定するウィンドウ（=/trade/change_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrMode        - モード
 　　　　　2. [I  ] - string pstrCid         - Catalog_Id
 　　　　　3. [I  ] - string pstrTid         - Trade_Id
 　　　　　4. [I  ] - string pstrWindowName  - Window Name
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2004/11/08　Y.Chiba       新規
***************************************************************************************************/
function gfOpenChangeMember( pstrMode, pstrCid, pstrTid, pstrWindowName ) {

    var wstrUrl = '';

    wstrUrl += '/trade/change_member.asp';
    wstrUrl += '?mode=' + pstrMode;
    wstrUrl += '&cid='  + pstrCid;
    wstrUrl += '&tid='  + pstrTid;

    gfOpenWindow(wstrUrl
               , pstrWindowName
               , 660
               , 500
                );
    return;
}

/***************************************************************************************************
 機　能　：共有情報を設定するウィンドウ（=/trade/change_member.aspx）をオープンします．
 引　数　：1. [I  ] - string pstrMode        - モード
 　　　　　2. [I  ] - string pstrCid         - Catalog_Id
 　　　　　3. [I  ] - string pstrTid         - Trade_Id
 　　　　　4. [I  ] - string pstrWindowName  - Window Name
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2008/12/25 NET化対応 井上
***************************************************************************************************/
function gfOpenChangeMemberNET( pstrMode, pstrCid, pstrTid, pstrWindowName ) {

    var wstrUrl = '';

    wstrUrl += '/trade/change_member.aspx';
    wstrUrl += '?mode=' + pstrMode;
    wstrUrl += '&cid='  + pstrCid;
    wstrUrl += '&tid='  + pstrTid;

    gfOpenWindow(wstrUrl
               , pstrWindowName
               , 660
               , 500
                );
    return;
}


/***************************************************************************************************
 機　能　：グループ会員名を選択するウィンドウ（=/scripts/Sel_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
 2004/07/14　H.Ohmura      引数pstrMode追加
***************************************************************************************************/
function gfOpenSelectChildMember(pstrForm
                               , pstrChildMemberNameField
                               , pstrMode
                                ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
    ;

    if (pstrMode != null) wstrUrl += '&mode=' + pstrMode;

    gfOpenWindow(wstrUrl
               , 'select_child_member'
               , 450
               , 350
                );
    return;

}



/***************************************************************************************************
 機　能　：グループ会員名を選択するウィンドウ（=/scripts/Sel_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 　　　　　3. [I  ] - string pstrChildMemberCodeField - 選択したグループ会員コードを設定する <input> Name 属性値
 返り値　：none
 備　考　：この関数では、呼び出し元にmember_codeもセットします。
 　　　　　また、会員名の返り値は、グループ親名　＞　グループ名　となります。

 変更日______担当者________変更内容_________________________________________________________________
 2004/02/23　K.Yamato      新規
***************************************************************************************************/
function gfOpenSelectGroupMemberCode(pstrForm
                               , pstrChildMemberNameField
                               , pstrChildMemberCodeField   
                                ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_group_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
            + '&icd_1=' + pstrChildMemberCodeField
    ;

    gfOpenWindow(wstrUrl
               , 'select_child_member'
               , 700
               , 350
                );
    return;

}


/***************************************************************************************************
 機　能　：グループ会員名を選択するウィンドウ（=/scripts/Sel_group_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 　　　　　3. [I  ] - string pstrChildMemberCodeField - 選択したグループ会員コードを設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrAddParameter         - 追加パラメータ
 返り値　：none
 備　考　：この関数では、呼び出し元にmember_codeもセットします。
 　　　　　また、会員名の返り値は、グループ親名　＞　グループ名　となります。

 変更日______担当者________変更内容_________________________________________________________________
 2005/07/01　S.Kataoka     新規
***************************************************************************************************/
function gfOpenSelectGroupMemberCodeEtc(pstrForm
                                        , pstrChildMemberNameField
                                        , pstrChildMemberCodeField
                                        , pstrAddParameter
                                        ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_group_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
            + '&icd_1=' + pstrChildMemberCodeField
            + pstrAddParameter
    ;

    gfOpenWindow(wstrUrl
                , 'select_child_member'
                , 700
                , 350
    );
    return;

}



/***************************************************************************************************
 機　能　：グループ会員を選択するウィンドウ（=/scripts/Sel_group_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 　　　　　3. [I  ] - string pstrChildMemberCodeField - 選択したグループ会員コードを設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrDisappearEmpOnlyFlg  - E のみのグループ会員を一覧に出さない場合に "1" を指定
 返り値　：none
 備　考　：この関数では、呼び出し元にmember_codeもセットします。

 変更日______担当者________変更内容_________________________________________________________________
 2003/12/19　Y.Nakai      新規
***************************************************************************************************/
function gfOpenSelectChildMemberCode(pstrForm
                               , pstrChildMemberNameField
                               , pstrChildMemberCodeField
                               , pstrDisappearEmpOnlyFlg
                                ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
            + '&inm_2=' + pstrChildMemberCodeField
            + '&emp='   + pstrDisappearEmpOnlyFlg
    ;

    gfOpenWindow(wstrUrl
               , 'select_child_member'
               , 450
               , 350
                );
    return;

}


/***************************************************************************************************
 機　能　：グループ会員を選択するウィンドウ（=/scripts/Sel_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 　　　　　3. [I  ] - string pstrChildMemberCodeField - 選択したグループ会員コードを設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrKbnMember - 処理選択(0:本部のみ 1:グループ会員のみ 2:グループ全体 空:なし)
 返り値　：none
 備　考　：この関数では、呼び出し元にmember_codeもセットします。

 変更日______担当者________変更内容_________________________________________________________________
 2003/12/19　Y.Nakai      新規
***************************************************************************************************/
function gfOpenSelectChildMemberCodeSel(pstrForm
                                ,    pstrChildMemberNameField
                                ,    pstrChildMemberCodeField
                                ,    pstrKbnMember
                                    ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
            + '&inm_2=' + pstrChildMemberCodeField
            + '&membersel=' + pstrKbnMember
    ;

    gfOpenWindow(wstrUrl
                , 'select_child_member'
                , 450
                , 350
                );
    return;

}


/***************************************************************************************************
 機　能　：グループ会員を選択するウィンドウ（=/scripts/Sel_group_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 　　　　　3. [I  ] - string pstrChildMemberCodeField - 選択したグループ会員コードを設定する <input> Name 属性値
 返り値　：none
 備　考　：この関数では、呼び出し元にmember_codeもセットします。

 変更日______担当者________変更内容_________________________________________________________________
 2003/12/19　Y.Nakai      新規
***************************************************************************************************/
function gfOpenSelectChildMemberCodeProd(pstrForm
                                       , pstrChildMemberNameField
                                       , pstrChildMemberCodeField
                                       , pstrSubmit
                                ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
            + '&inm_2=' + pstrChildMemberCodeField
            + '&Submit=' + pstrSubmit;
    ;

    gfOpenWindow(wstrUrl
               , 'select_child_member'
               , 450
               , 350
                );
    return;

}


/***************************************************************************************************
 機　能　：グループ会員を選択するウィンドウ（=/scripts/Sel_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 　　　　　3. [I  ] - string pstrChildMemberCodeField - 選択したグループ会員コードを設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrAddParameter         - 追加パラメータ
 返り値　：none
 備　考　：この関数では、呼び出し元にmember_codeもセットします。
 　　　　：上記[gfOpenSelectChildMemberCodeProd][gfOpenSelectChildMemberCodeSel]もこの関数に置き換えられる？

 変更日______担当者________変更内容_________________________________________________________________
 2005/07/01　S.Kataoka     新規
***************************************************************************************************/
function gfOpenSelectChildMemberCodeEtc(pstrForm
                                        , pstrChildMemberNameField
                                        , pstrChildMemberCodeField
                                        , pstrAddParameter
                                        ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
            + '&inm_2=' + pstrChildMemberCodeField
            + pstrAddParameter
    ;

    gfOpenWindow(wstrUrl
                , 'select_child_member'
                , 450
                , 350
    );
    return;

}



/***************************************************************************************************
 機　能　：日付を選択するウィンドウ（=/scripts/Sel_Calendar.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrDateField - 選択した日付を設定する <input> Name 属性値
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfOpenSelectCalendar(pstrForm
                            , pstrDateField
                             ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_Calendar.asp'
            + '?i_date=' + eval(pstrForm + '.' + pstrDateField).value
            + '&fnm=' + pstrForm
            + '&inm=' + pstrDateField
    ;

    gfOpenWindow(wstrUrl
               , 'DaySelect'
               , 300
               , 384
                );
    return;

}



/***************************************************************************************************
 機　能　：引数値を変数へ保持する．
 引　数　：1. [I  ] - object pobjObject - オブジェクト参照値
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfSaveFieldValue(pobjObject) {

    mstrSaveFieldValue = pobjObject.value;

}



/***************************************************************************************************
 機　能　：指定フィールドの日付項目値を編集する
 引　数　：1. [I  ] - object pobjObject - オブジェクト参照値
 　　　　　2. [I  ] - int pintMode - 編集モード（1=文字列長チェック／2=yyyy/mm/dd 編集）
 　　　　　3. [I  ] - int pintLength - 文字列長数
 返り値　：none（指定オブジェクトへ直接返します）
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfFormatDate(pobjObject
                    , pintMode
                    , pintLength
                     ) {

    var wstrWork = '';
    var wobjWork = null;

    wobjWork = eval(pobjObject);
    wstrWork = gfTrim(wobjWork.value);


    wobjWork.value = wstrWork;
    if (wstrWork == "") return;

    switch (pintMode){
    case 1:
        if (gfStrLen(wstrWork) > pintLength){
            wobjWork.value = mstrSaveFieldValue;
        }
        break;

    case 2:
        var wstrYear, wstrMonth, wstrDay;
        var wstrNewYear, wstrNewMonth, wstrNewDay;
        var wblnCheck = false;

        if (wstrWork.match(/^(([0-9]{4})\/|)([0-9]{1,2})\/([0-9]{1,2})$/)){
            wstrYear = RegExp.$2;
            wstrMonth = RegExp.$3;
            wstrDay = RegExp.$4;
            if (wstrYear.length == 0){
                wstrYear = (new Date()).getYear();
            }
            if (gfIsDate(wstrYear, RegExp.$3, RegExp.$4)){
                wstrNewYear = ('0000' + wstrYear);
                wstrNewYear = wstrNewYear.substring(wstrNewYear.length - 4);

                wstrNewMonth = ('00' + wstrMonth);
                wstrNewMonth = wstrNewMonth.substring(wstrNewMonth.length - 2);

                wstrNewDay = ('00' + wstrDay);
                wstrNewDay = wstrNewDay.substring(wstrNewDay.length - 2);

                wobjWork.value = wstrNewYear + '/' + wstrNewMonth + '/' + wstrNewDay;
                return;

            }else{
                wblnCheck = true;
            }
        }else{
            wblnCheck = true;
        }

        if (wblnCheck){
            wobjWork.value = mstrSaveFieldValue;
        }
        break;
    }

    wobjWork = null;
    wstrWork = null;

}



/***************************************************************************************************
 機　能　：日付として評価できるかブール型で返します．
 引　数　：1. [I  ] - string pstrYear - 年
 　　　　　2. [I  ] - string pstrMonth - 月
 　　　　　3. [I  ] - string pstrDay - 日
 返り値　：true  = 評価
 　　　　　false = 非評価
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfIsDate(pstrYear,pstrMonth,pstrDay) {

    var waryLastDays = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
    var wblnTemp = false;

    if ((pstrYear % 100 == 0) && (pstrYear % 400 != 0)) {
        wblnTemp = false;
    } else if (pstrYear % 4 == 0){
        wblnTemp = true;
    }
    if (wblnTemp) waryLastDays[1] = 29;

    if ((pstrYear < 1) || (pstrYear > 9999)) return false;
    if ((pstrMonth < 1) || (pstrMonth > 12)) return false;
    if ((pstrDay < 1) || (pstrDay > waryLastDays[pstrMonth - 1])) return false;


    waryLastDays = null
    return true;

}



/***************************************************************************************************
 機　能　：文字列長のチェック？
 引　数　：1. [I  ] - string pstrExpression - 式
 　　　　　2. [I  ] - int pintLength - 文字列長数？
 　　　　　3. [I  ] - int I - ？
 返り値　：
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfStrLen(pstrExpression
                , pintLength
                , I
                 ) {

    pintLength = 0;
    wstrWork = escape(pstrExpression);
    for (I = 0; I < pstrExpression.length; I++, pintLength++) {
        if (pstrExpression.charAt(I) == '%') {
            if (pstrExpression.charAt(++I) == 'u') {
                I += 3;
                pintLength++;
            }
            I++;
        }
    }
    return pintLength;

}



/***************************************************************************************************
 機　能　：JavaScript 版 Trim 関数
 引　数　：1. [I  ] - string pstrExpression - 式
 返り値　：string 編集文字列
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfTrim(pstrExpression) {

    var wstrRtn = '';

    wstrRtn = pstrExpression;
    wstrRtn = wstrRtn.replace(/^[ 　]+/, '');
    wstrRtn = wstrRtn.replace(/[ 　]+$/, '');

    return(wstrRtn);

}



/***************************************************************************************************
 機　能　：ページ移動を提供します．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrPageNoField - ページ番号を設定する <input> Name 属性値
 　　　　　3. [I  ] - int pintPageNoValue - ページ番号
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/10/--　H,Fukuda      新規
***************************************************************************************************/
function gfPaging(pstrForm
                , pstrPageNoField
                , pintPageNoValue
                 ) {

    // eval 関数にて実態を作成
    var wobjControl = eval(pstrForm + '.' + pstrPageNoField);

    wobjControl.value = pintPageNoValue;
    document[pstrForm].submit();


    // インスタンスを破棄
    wobjControl = null;

}

/***************************************************************************************************
 機　能　：オブジェクトを有効／無効にします。
 引　数　：1. [I  ] - object pobjObject -   オブジェクト参照値
 　　　　　2. [I  ] - int pintSetFlg -      有効:1   無効:0
 　　　　　3. [I  ] - int pintMode -        背景色を変更するか否か
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2004/09/10　S,Kumagai      新規
***************************************************************************************************/
function gfDisabledTarget(pobjObject
                        , pintSetFlg
                        , pintMode
                        ) {

    pobjObject.disabled = pintSetFlg;
    if (pintMode) {
        if (pintSetFlg) {
            pobjObject.style.backgroundColor ="#dddddd";
        }else{
            pobjObject.style.backgroundColor ="#FFFFFF";
        }
    }

}

/***************************************************************************************************
 機　能　：期間の入力値が正しいかチェックします。
 引　数　：1. [I  ] - pobjFrom      As Object       - 開始期間入力用テキストボックス
 　　　　　2. [I  ] - pobjTo        As Object       - 終了期間入力用テキストボックス
 　　　　　3. [I  ] - pintTarget    As Integer      - 正しくない場合に元のデータを設定するテキストボックス
 　　　　　4. [I  ] - pstrValue     As String       - 正しくない場合に設定する元データ
 返り値　：none
 備　考　：

 変更日______担当者_________変更内容_________________________________________________________________
 2004/10/05　Y.Nakai        新規
***************************************************************************************************/
function gfCheckPeriod( pobjFrom, pobjTo, pintTarget, pstrValue ) {

    var wstrFrom    = pobjFrom.value;
    var wstrTo      = pobjTo.value;

    if (wstrFrom > wstrTo ) {
        if (pintTarget == 1) {
            pobjFrom.value = pstrValue;
        }
        else {
            pobjTo.value = pstrValue;
        }
    }
    return;
}


/***************************************************************************************************
名　称：gfEmpChkInputValue
機　能：入力値のチェック
引　数：1. [I  ] - pobjVal     As Object - 入力値
　　　　2. [  O] - pobjTarget  As Object - 処理対象オブジェクト
　　　　3. [I  ] - pstrResult  As String - 入力値
　　　　4. [I  ] - pstrTarget2 As String - 処理対象 <input> name 属性値
　　　　5. [I  ] - pstrResult2 As String - 入力値
戻り値：なし
備　考：このメソッドでgfEmpCheckValue、gfEmpCheckValueChangeDivを使用します。
　　　　JavaScriptはオーバーロードが出来ない為、この方法を採用しています。
　　　　同様の機能で他のメソッドを宣言する必要がある場合は、このメソッドにパラメータを追加し、
　　　　この中で新規メソッドを呼ぶようにしてください。

変更日______担当者_________変更内容_________________________________________________________________
2007/01/19　T.Toya         新規
***************************************************************************************************/
function gfEmpChkInputValue(pobjVal, pobjTarget, pstrResult, pstrTarget2, pstrResult2) {

	//パラメータの数によって呼び出すメソッドを変更
	switch(arguments.length) {
	case 3:
		gfEmpCheckValue(pobjVal, pobjTarget, pstrResult);
		break;

	case 5:
		gfEmpCheckValueChangeDiv(pobjVal, pobjTarget, pstrResult, pstrTarget2, pstrResult2);
		break;

	default:
		gfEmpCheckValue(pobjVal, pobjTarget, pstrResult);
		break;
	}

}


/***************************************************************************************************
名　称：gfEmpCheckValue
機　能：入力値のチェック
引　数：1. [I  ] - pobjVal    As Object - 入力値
　　　　2. [  O] - pobjTarget As Object - 処理対象オブジェクト
　　　　3. [I  ] - pstrResult As String - 入力値
戻り値：なし
備　考：mstrSaveFieldValue は同ファイル内で宣言
***************************************************************************************************/
function gfEmpCheckValue(pobjVal, pobjTarget, pstrResult) {

    if(gfEmpTrim(pobjVal.value) != gfEmpTrim(mstrSaveFieldValue)) {
        pobjTarget.value = pstrResult;
    }

}


/***************************************************************************************************
名　称：gfEmpCheckValueChangeDiv
機　能：入力値のチェック(gfEmpCheckValue の拡張版)
引　数：1. [I  ] - pobjVal     As Object - 入力値
　　　　2. [  O] - pobjTarget  As Object - 処理対象オブジェクト
　　　　3. [I  ] - pstrResult  As String - 入力値
　　　　4. [I  ] - pstrTarget2 As String - 処理対象 <div> id 属性値
　　　　5. [I  ] - pstrResult2 As String - 入力値
戻り値：なし
備　考：mstrSaveFieldValue は同ファイル内で宣言
　　　　このメソッドはgfEmpChkInputValue内でのみ使用します。（Javaのオーバーロードと同様の機能）

変更日______担当者_________変更内容_________________________________________________________________
2007/01/19　T.Toya         新規
***************************************************************************************************/
function gfEmpCheckValueChangeDiv(pobjVal, pobjTarget, pstrResult, pstrTarget2, pstrResult2) {

	if (gfEmpTrim(pobjVal.value) != gfEmpTrim(mstrSaveFieldValue)) {
		pobjTarget.value = pstrResult;

		if (gfEmpTrim(pobjVal.value) != "" && gfEmpTrim(pstrTarget2) != "") {
			if (gfEmpTrim(pstrResult2) != "") {
				document.getElementById(pstrTarget2).style.display = "none";
				document.getElementById(pstrTarget2).innerHTML = pstrResult2;
				document.getElementById(pstrTarget2).style.display = "block";

			} else {
				document.getElementById(pstrTarget2).style.display = "none";

			}

		} else {
			document.getElementById(pstrTarget2).innerHTML = "";
			document.getElementById(pstrTarget2).style.display = "none";

		}
	}

}


/***************************************************************************************************
名　称：gfEmpTrim
機　能：値の空白を削除
引　数：1. [I  ] - pobjVal As Object - 入力値
戻り値：なし
備　考：編集後のpstrVal値
***************************************************************************************************/
function gfEmpTrim(pstrVal) {
    pstrVal = pstrVal.replace(/^[ 　]+/, "");
    pstrVal = pstrVal.replace(/[ 　]+$/, "");
    return(pstrVal);
}


/***************************************************************************************************
名　称：gfEmpCheckNumericText
機　能：数値型のチェックをおこない、数値型でない場合は入力前の値を返す。
引　数：1. [I  ] - pobjValue As Object - 入力値
戻り値：なし
備　考：入力前の値mstrSaveFieldValue（関数:gfSaveFieldValue）は同ファイル内で宣言

変更日______担当者_________変更内容_________________________________________________________________
2007/04/25  E.Mori         新規
***************************************************************************************************/
function gfEmpCheckNumericText(pobjValue){

	var wstrValue = Trim(pobjValue.value);

	//空チェック
	if (wstrValue == "") {
		return;
	}

	//数値型チェック
	if (isNaN(wstrValue)) {
		pobjValue.value = mstrSaveFieldValue;
		return;
	}

}


