//******************************************************************************************
// ファイル名：wcg_common.js
// 概　　　要：共通関数JavaScriptファイル
// 作　成　者：倉林昭和
// 作　成　日：2003/08/06
// 最終更新者：
// 最終更新日：
// All Rights Reserved, Copyright (C) FUJITSU SOCIAL SCIENCE LABORATORY LIMITED 2006
//******************************************************************************************

//******************************************************************************************
// グローバル変数宣言
//******************************************************************************************
var subWin;					        //サブウィンドウ用
var GB_SYSCGI = "";				    //<#SYSCGI>取得用
var GB_WC_OWNERID = "";				//<#WC_OWNERID>取得用
var GB_PAGE_NO = "";				//<#PAGE_NO>取得用
var GB_StatusMessage = "";			//登録画面CGIエラー用

var GB_ErrMsg = "";				            //alertメッセージ
var GB_RadioID = "";				        //選択されたラジオボタンのID格納用
var GB_RadioKind = "";				        //選択されたラジオボタンの種別格納用
var GB_OptionID = "";				        //選択されたオプションのID格納用
var GB_OptionName = "";				        //選択されたオプションの名前格納用
var GB_BtnLockFlg = new Boolean(false);		//ボタンロックフラグ

var GB_Id = new Array();					//ID文字列分解用
var GB_Name = new Array();					//リンク元、キーワード分解用


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_JumpPage
// 概　要：ページ遷移
// 引　数：
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_JumpPage(filename)
{
  curPath = location.pathname;
  curPath = curPath.substring(0,curPath.lastIndexOf("\\",curPath.length)+1);
  openURL = curPath + filename;
  parent.location = openURL;
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_JumpFrame
// 概　要：フレーム遷移
// 引　数：
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_JumpFrame(filename)
{
  curPath = location.pathname;
  curPath = curPath.substring(0,curPath.lastIndexOf("\\",curPath.length)+1);
  openURL = curPath + filename;
  location = openURL;
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_subWindowOpen
// 概　要：サブウィンドウオープン
// 引　数：
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_subWindowOpen(winname,winx,winy)
{
	if (subWin) subWin.close();
	curPath = location.pathname;
	curPath = curPath.substring(0,curPath.lastIndexOf("\\",curPath.length)+1);
	openURL = curPath + winname;
	subWin = window.open(openURL,"","width="+winx+",height="+winy+",status=yes,scrollbars=yes,resizable=yes");
	subWin.focus();
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_SetButtonLockFlg
// 概　要：ボタンロックフラグを設定する
// 引　数：true/false
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_SetButtonLockFlg(val){
	if (GB_BtnLockFlg != val) GB_BtnLockFlg = val;
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_GetButtonLockFlg
// 概　要：ボタンロックフラグを取得する
// 引　数：true/false
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_GetButtonLockFlg(){
	return GB_BtnLockFlg;
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_SetAffixFileClientPath
// 概　要：添付ファイルのクライアントパスをHiddenフィールドにセットする
// 引　数：fieldname フィールド名, num　何番目の添付ファイルか
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_SetAffixFileClientPath(fieldname,num)
{
	document.forms[0].item(fieldname+"["+num+"].clientpath").value=document.forms[0].item(fieldname+"["+num+"].affix_file").value;
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_SetAffixDelflg
// 概　要：添付ファイル削除チェックボックスを削除フラグ用フィールドにセット
// 引　数：fieldname フィールド名, num　何番目の添付ファイルか
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_SetAffixDelflg(fieldname,num)
{
	if(document.forms[0].item("delflg"+num).checked == true)
	{
		document.forms[0].item(fieldname+"["+num+"].af_delflg").value=1;
	}
	else
	{
		document.forms[0].item(fieldname+"["+num+"].af_delflg").value=0;
	}		
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_SetInitAffixDelflg
// 概　要：表示時の添付ファイル削除フラグのセット
// 引　数：fieldname フィールド名, num　何番目の添付ファイルか
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_SetInitAffixDelflg(fieldname)
{
	var counter = document.forms[0].filecount.value;
	for(i=0;i<counter;i++)
	{
		if(document.forms[0].item(fieldname+"["+i+"].af_delflg").value== 1)
		{
			document.forms[0].item("delflg"+i).checked = true;
		}
	}
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_CheckAll
// 概　要：チェックボックスの全選択／全解除
// 引　数：flag 全選択／全解除フラグ(true/false)
// 　　　　formname フォーム名
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_CheckAll(flag, formname){
	//alert(formname.length);
    for(n = 0;n <= formname.length - 1;n ++){
		if(formname.elements[n].type == "checkbox"){
	    	formname.elements[n].checked = flag;
		}
    }
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_DeptSelectOpen
// 概　要：課選択サブウィンドウを開く
// 引　数：action アクション
//	 	：formname サブミットするフォーム
//		：id 課ID入力域名
//		：name 課名入力域名
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_DeptSelectOpen(action, formname, id, name)
{
	if (subWin) subWin.close();
    if (formname==""){
      formname=window.document.forms[0].name;
    }
	var openURL;
    openURL = action+"&frm="+formname+"&id="+id+"&nm="+name;
	subWin = window.open(openURL,"","left=0,top=0,width="+CM030_x+",height="+CM030_y+",status=yes,scrollbars=yes,resizable=yes");
	//subWin = window.open(openURL);
	subWin.focus();
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_subWindowclose();
// 概　要：親ウィンドウを閉じる場合に、サブウィンドウも閉じる
//         親ウィンドウの<BODY onUnload=>に設定
// 引　数：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_subWindowclose()
{
	if (subWin) subWin.close();
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_WindowClose
// 概　要：ウィンドウをクローズする
// 引　数：
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_WindowClose()
{
  window.close();
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_TopWindowClose
// 概　要：トップウィンドウをクローズする
// 引　数：
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_TopWindowClose()
{
    window.top.close();
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_subWindowclose();
// 概　要：サブウィンドウを常に前面に表示する
//         親ウィンドウの<BODY onclick=>に設定
// 引　数：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_subWinfocus()
{
	if (subWin){
		if (!subWin.closed) subWin.focus();
	}
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_SelectItem_div
// 概　要：プルダウンのvalue値を分解し、変数に代入する
// 引　数：obj(ラジオボタンオブジェクト)
// 　　　　type value値の形式を指定(1-IDのみ 2-ID+名前)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_SelectItem_div(obj,type)
{
	if (type == 1){
		//IDを取得
		GB_OptionID = obj.value;
	} else if (type == 2){
		str = obj.value;
		//IDを取得
		GB_OptionID = str.substr(0,12);
		//名前を取得
		GB_OptionName = str.substr(12,str.length+1);
	}
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_ValueClear
// 概　要：INPUT部品のvalueをクリアする
// 引　数：name1(部品名１)
//         name2(部品名２)
// 戻り値：なし
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_ValueClear(name1,name2)
{
	document.forms[0].elements[name1].value="";
	document.forms[0].elements[name2].value="";
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_CalendarOpen
// 概　要：カレンダーをサブウィンドウで表示
// 引　数：datearea 日付フィールド名
// 　　　　formname フォーム名(省略可)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_CalendarOpen(datearea,formname)
{
	if (subWin) subWin.close();
    if (formname==""){
      formname=window.document.forms[0].name;
    }
	var curPath;
	var openURL;
	curPath = location.pathname;
    curPath = curPath.substring(0,curPath.lastIndexOf("\\",curPath.length)+1);
    openURL = curPath + "WEBCCGJ_CL010.jsp?OpenElement"+"&FORMNAME="+formname+"&DATE="+datearea;
	subWin = window.open(openURL,"CL010","width=300,height=280,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1");
	subWin.focus();
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_SetChk
// 概　要：選択されている項目のチェックボックスにチェックを入れる
// 引　数：operner_name  ウィンドウ開き元のフォーム名
//　　　　 field_id      ウィンドウ開き元のIDリストフィールド名(torimodoshi_id,tantou_idなど）
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_SetChk(opener_name,field_id)
{
  var i;
  var num =0;
  var dept_id ="";
  var dept_list="";
  var dept_chk="";
  var formname;
  formname=window.document.forms[0].name;
  num = eval("document."+formname+".count.value");
  dept_list = eval("window.opener.document."+opener_name+"."+field_id+".value");
  for(i = 0;i <= num;i++){
    dept_id = eval("document."+formname+".depid"+i+".value");
    if(eval(dept_list.match(dept_id)) != null){
	  dept_chk = "document."+formname+".chk"+i+".checked = true";
      eval(dept_chk);
    }else{
	  dept_chk = "document."+formname+".chk"+i+".checked = false";
	  eval(dept_chk);
    }
  }
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_SetBtn
// 概　要：チェックボックスでチェックされた項目を親画面に表示する
// 引　数：operner_name  ウィンドウ開き元のフォーム名
//　　　　 field_id      ウィンドウ開き元のIDリストフィールド名(torimodoshi_id,tantou_idなど）
//　　　　 field_name    ウィンドウ開き元の名前リストフィールド名(torimodoshi_name,tantou_nameなど）
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_SetBtn(opener_name,field_id,field_name)
{
	var i,num;
	var idlist,namelist;
	var title,maintext;
	var disflg;	  // 使用不可フラグ
	var deptid;	  // DEPT_ID
	var deptnm;	  // DEPT_NAME
	var formname; // FORM名

	//-------------------------------------------------------------
	// checkされている行のDEPTID,DEPTNAMEを集計する。
	//-------------------------------------------------------------
	formname=window.document.forms[0].name;
	num = eval("document."+formname+".count.value");
	idlist = "";
	namelist = "";
	for(i = 0;i <= num;i++){
		if (eval("document."+formname+".chk"+i+".checked") == true){
			//-------------------------------------------------------------
			// チェックされている行の情報をhidden部品から取得
			//-------------------------------------------------------------
			disflg = eval("document."+formname+".disp"+i+".value");
			//-------------------------------------------------------------
			// 先頭の１バイトが使用不能フラグ(送信済なので選択リストに加えない）
			//-------------------------------------------------------------
			if (disflg == '0'){
				//-------------------------------------------------------------
				// 選択リストに加える部課の情報を編集
				//-------------------------------------------------------------
			    deptid = eval("document."+formname+".depid"+i+".value");
			    deptnm = eval("document."+formname+".depnm"+i+".value");
				idlist = idlist + ',' + deptid;
				namelist = namelist + ',' + deptnm;
			}
		}	
	}
	//-------------------------------------------------------------
	// 先頭の,は削る
	//-------------------------------------------------------------
	if (idlist.length > 0 ){
		idlist = idlist.substr(1,idlist.length);
		namelist = namelist.substr(1,namelist.length);
	}
	//-------------------------------------------------------------
	// 設定
	//-------------------------------------------------------------

//	alert(CM_CheckWindowOpener());
	if (CM_CheckWindowOpener()) {
		eval("window.opener.document."+opener_name+"."+field_id+".value=idlist");
		eval("window.opener.document."+opener_name+"."+field_name+".value=namelist");
	}

	// ウィンドウを閉じる
	eval("document."+formname+".submit()");
    window.close();
}


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_BrowserCheck
// 概　要：ブラウザーチェック
// 引　数：
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_BrowserCheck(myDOC)
{
	//moveTo(100,10);//2002.12.13 親ウィンドウ位置決めサンプル
	if (navigator.appName != 'Microsoft Internet Explorer'){
		alert(CM010Msg[3]);					// 	ブラウザはInternetExplorer(TM)をお使い下さい'
		location.href= "about:blank";// ブランク画面表示
	} else {
			myDOC.LoginForm.usloginid.focus();
	}
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_UserSelectOpen
// 概　要：職員選択サブウィンドウを開く
// 引　数：action アクション
//	 	：dispatch呼び出し先入力域名
//		：deptid課ID入力域名
//		：deptnm課名入力域名
//	 	：formname サブミットするフォーム
//		：id 職員ID入力域名
//		：nm 職員名入力域名
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_UserSelectOpen(dispatch, deptid, deptnm, frm, id, nm)
{
	if (subWin) subWin.close();
    if (frm==""){
      frm=window.document.forms[0].name;
    }
	var openURL;
    openURL = dispatch+"dptid="+deptid+"&dptnm="+deptnm+"&frm="+frm+"&id="+id+"&nm="+nm;
	subWin = window.open(openURL,"","left=0,top=0,width="+CM030_x+",height="+CM030_y+",status=yes,scrollbars=yes,resizable=yes");
	subWin.focus();
}

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 関数名：CM_CheckWindowOpener
// 概　要：親ウィンドウの生存チェック
// 引　数：なし
// 戻り値：true/false
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
function CM_CheckWindowOpener() {
	var ua = navigator.userAgent
	if( !!window.opener )
		if( ua.indexOf('MSIE 4')!=-1 && ua.indexOf('Win')!=-1 ) 
			return !window.opener.closed
		else return typeof window.opener.document == 'object'
	else return false
}
