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/12/--　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/12/--　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/12/--　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;

}



/***************************************************************************************************
 機　能　：単位を選択するウィンドウ（=/scripts/Sel_Unit.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrUnitCodeField - 選択した単位コードを設定する <input> Name 属性値
 　　　　　3. [I  ] - string pstrUnitNameField - 選択した単位名を設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrWindowWidth - オープンするウィンドウの幅サイズ
 　　　　　5. [I  ] - string pstrWindowHeight - オープンするウィンドウの縦サイズ
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/12/--　H,Fukuda      新規
***************************************************************************************************/
function gfOpenSelectUnit(pstrForm
                        , pstrUnitCodeField
                        , pstrUnitNameField
                        , pstrWindowWidth
                        , pstrWindowHeight
                         ) {

    var wstrUrl = '';

    // eval 関数にて実態を作成
    var wobjControl = eval('document.' + pstrForm + '.' + pstrUnitCodeField);
    var wstrCodeData = wobjControl.value;


    wstrUrl = '/scripts/Sel_Unit.asp'
            + '?fnm=' + pstrForm
            + '&inmcd=' + pstrUnitCodeField
            + '&inmnm=' + pstrUnitNameField
            + '&cddata=' + wstrCodeData
    ;

    gfOpenWindow(wstrUrl
               , 'SelectUnit'
               , pstrWindowWidth
               , pstrWindowHeight
                );

    wstrCodeData = null;
    wobjControl = null;

    return;

}



/***************************************************************************************************
 機　能　：グループ会員名を選択するウィンドウ（=/scripts/Sel_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/12/--　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 属性値
 　　　　　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_member.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrChildMemberNameField - 選択したグループ会員名を設定する <input> Name 属性値
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2004/11/16　Y,Chiba       新規
***************************************************************************************************/
function gfOpenSelectChildMemberInvoice(pstrForm
                               , pstrChildMemberNameField
                               , pstrInvoice
                               , pstrSelBuy
                                ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_member.asp'
            + '?fnm=' + pstrForm
            + '&inm_1=' + pstrChildMemberNameField
            + '&invoice=' + pstrInvoice
            + '&selbuy=' + pstrSelBuy
    ;

    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/12/--　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;

}



/***************************************************************************************************
 機　能　：日付を選択するウィンドウ（=/scripts/Sel_Calendar.asp）をオープンします．
 引　数　：1. [I  ] - string pstrForm - <form> Name 属性値
 　　　　　2. [I  ] - string pstrDateField - 選択した日付を設定する <input> Name 属性値
 　　　　　4. [I  ] - string pstrAddParameter - 追加パラメータ
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2005/08/31　S.Kataoka     新規
***************************************************************************************************/
function gfOpenSelectCalendarEtc(pstrForm
                               , pstrDateField
                               , pstrAddParameter
                             ) {

    var wstrUrl = '';

    wstrUrl = '/scripts/Sel_Calendar.asp'
            + '?i_date=' + eval(pstrForm + '.' + pstrDateField).value
            + '&fnm=' + pstrForm
            + '&inm=' + pstrDateField
            + pstrAddParameter
    ;

    gfOpenWindow(wstrUrl
               , 'DaySelect'
               , 300
               , 384
                );
    return;

}



/***************************************************************************************************
 機　能　：引数値を変数へ保持する．
 引　数　：1. [I  ] - object pobjObject - オブジェクト参照値
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2003/12/--　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/12/--　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/12/--　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/12/--　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/12/--　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/12/--　H,Fukuda      新規
***************************************************************************************************/
function gfPaging(pstrForm
                , pstrPageNoField
                , pintPageNoValue
                 ) {

    // eval 関数にて実態を作成
    var wobjControl = eval(pstrForm + '.' + pstrPageNoField);

    wobjControl.value = pintPageNoValue;
    document[pstrForm].submit();


    // インスタンスを破棄
    wobjControl = null;

}

/***************************************************************************************************
 機　能　：マウスオーバーで色を変える
 引　数　：1. [I  ] - int      pObjId     - 色を変えるオブジェクトID
 　　　    2. [I  ] - string   pstrColor  - 変える色
 　　　    3. [I  ] - string   pObjRow    - マウスオーバーした行と連動する行（CSV形式も可）
 返り値　：none
 備　考　：

 変更日______担当者________変更内容_________________________________________________________________
 2006/06/--　M.Sato      新規
 2010/04/27  T.Toya      連動する行を複数でも対応出来るように変更
***************************************************************************************************/
function rollOnOff(pObjId
                , pstrColor
                , pObjRow
                 ) {
    var waryRow;
    var wintIdx;

    if ( pstrColor=="" ){
    	pstrColor = "#90EE90";
    }

    eval( String(pObjId) + ".style.backgroundColor = '" + pstrColor + "'");
    
    if ( pObjRow != "" ) {
        waryRow = pObjRow.split(",");
        for(wintIdx = 0; wintIdx < waryRow.length; wintIdx++) {
            if(waryRow[wintIdx] != "") {
                eval( String(waryRow[wintIdx]) + ".style.backgroundColor = '" + pstrColor + "'");
            }
        }
    }
    
}

/***************************************************************************************
名　称：gfKeepScrollXY
機　能：現在のX、Y座標を取得して保持する
引　数：1.[I  ] - pstrScrollX As String - X座標を保持するためのinput name属性
　　　　2.[I  ] - pstrScrollY As String - Y座標を保持するためのinput name属性
戻り値：なし
備　考：

変更日______担当者________変更内容_________________________________________________________________
2010/05/21　T.Toya        新規
***************************************************************************************/
function gfKeepScrollXY(pstrScrollX, pstrScrollY) {
	eval("document.getElementById('" + pstrScrollX + "')").value = document.documentElement.scrollLeft || document.body.scrollLeft;
	eval("document.getElementById('" + pstrScrollY + "')").value = document.documentElement.scrollTop || document.body.scrollTop;
}

/***************************************************************************************
名　称：gfSetKeepScroll
機　能：指定した座標位置へスクロール移動する
引　数：1.[I  ] - pintScrollX As String - X座標の値
　　　　2.[I  ] - pintScrollY As String - Y座標の値
　　　　3.[I  ] - pintSubmitScroll As Integer - submit後スクロール移動させるフラグ（1：移動させる その他：移動しない）
戻り値：なし
備　考：

変更日______担当者________変更内容_________________________________________________________________
2010/05/21　T.Toya        新規
***************************************************************************************/
function gfSetKeepScroll(pintScrollX, pintScrollY, pintSubmitScroll) {
	if(pintScrollX.length == 0 || pintScrollY.length == 0) {
		return void(0);
	}
	if(pintSubmitScroll == 1) {
		window.scrollTo(pintScrollX, pintScrollY);
	}
}

/***************************************************************************************
名　称：gfScrollSubmit
機　能：画面遷移後にスクロール移動させるフラグをセット
引　数：1.[I  ] - pstrSubmitScroll As String- スクロール移動させるフラグを保持する input name属性
戻り値：なし
備　考：

変更日______担当者________変更内容_________________________________________________________________
2010/05/21　T.Toya        新規
***************************************************************************************/
function gfScrollSubmit(pstrSubmitScroll) {
	eval("document.getElementById('" + pstrSubmitScroll + "')").value = 1;
}

// ----------------------------------
// CSS
// ----------------------------------
var os = navigator.platform.substr(0,3);
var cl = navigator.appName;
var fn = "";

if (os=="Win"){
  if (cl=="Microsoft Internet Explorer"){
    fn = "win_ie.css";
  }
  if (cl=="Netscape"){
    fn = "win_nn.css";
  }
}

if (os=="Mac"){
  if (cl=="Microsoft Internet Explorer"){
    fn = "mac_ie.css";
  }
  if (cl=="Netscape"){
    fn = "mac_nn.css";
  }
}

if (fn != ""){
  document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"/trade/css/" + fn + "\" title=\"css\">");
}

// ----------------------------------
// Top Munu Rollover
// ----------------------------------
function imgChange01(menu01){
  document.menu01.src = menu01;
}

function imgChange02(menu02){
  document.menu02.src = menu02;
}

function imgChange03(menu03){
  document.menu03.src = menu03;
}

function imgChange04(menu04){
  document.menu04.src = menu04;
}

function imgChange05(menu05){
  document.menu05.src = menu05;
}

function imgChange06(menu06){
  document.menu06.src = menu06;
}

function imgChange07(menu07){
  document.menu07.src = menu07;
}

function imgChange08(menu08){
  document.menu08.src = menu08;
}