/*------------------------------------------------------------------------------
 * ホテル会員管理システム　共通JavaScriptファイル
 *
 * @author  T.Tokumoto
 * @version $Revision$ $Date$
 *-----------------------------------------------------------------------------*/

// 二重送信回避フラグ
submit_flg = true;

/***********************************************************
 *  リクエスト送信関数
 *
 *  引数1: フォームオブジェクト
 *  引数2: 画面ID
 *  引数3: UCハンドラID
 *  引数4: イベントID
 ***********************************************************/
function sendRequest(formObj, screenId, ucHandlerId, eventId) {

	formObj.SCREEN.value    = screenId;
	formObj.UCHANDLER.value = ucHandlerId;
	formObj.EVENT.value     = eventId;

	if (submit_flg == true) {
		formObj.submit();
	}
	if (eventId != "EV_TERMINAL_DOWNLOAD" && eventId != "EV_DOWNLOAD") {
		submit_flg = false;
	}
}

/***********************************************************
 *  会員情報検索 (詳細表示)管理者用
 *
 *  [注1] この関数を呼び出す JSP 内で、"MEMBER_ID_4_SEARCH_DETAIL"
 *       という Hidden 項目を埋め込んでおく必要がある。
 *  [注2]お客様画面においてはsendRequest()関数で通常通りに呼び出すため
 *       この関数は使用しない
 *
 *  引数1: フォームオブジェクト
 *  引数2: 会員ID
 *  引数3: 画面ID
 *  引数4: 排他チェック用更新日時(ログイン認証マスタ)
 *  引数5: 排他チェック用更新日時(会員ポイントマスタ)
 *  引数6: 排他チェック用更新日時(会員情報マスタ)
 *  引数7: 適用開始日付
 *  引数8: 適用終了日付
 ***********************************************************/
function searchMemberInfoDetail(formObj, memberId, screenId, date1, date2, date3, date4, date5) {

	formObj.MEMBER_ID_4_SEARCH_DETAIL.value = memberId;
	formObj.updateDatetimeOfLoginCert.value = date1;
	formObj.updateDatetimeOfMemberPoint.value = date2;
	formObj.updateDatetimeOfMemberInfo.value = date3;
	formObj.applStartDate.value = date4;
	formObj.applEndDate.value = date5;

	// UC ハンドラ ID とイベント ID は固定
	sendRequest(formObj, screenId, 'UC_MEMBER_DISPLAY', 'EV_DISPLAY_MEMBER_INFO_DETAIL');
}

/***********************************************************
 *  社員情報関連
 *
 *  [注] この関数を呼び出す JSP 内で、"empTarget"
 *       という Hidden 項目を埋め込んでおく必要がある。
 *
 *  引数1: フォームオブジェクト
 *  引数2: 社員ID
 *  引数3: 画面ID
 *  引数4: 
 ***********************************************************/
function sendEmpRequest(formObj, screenId, uchandler, event, target) {

	formObj.empTarget.value = target;

	// UC ハンドラ ID とイベント ID は固定
	sendRequest(formObj, screenId, uchandler, event);
}

/***********************************************************
 *  イベント登録選択画面へ
 *
 *  引数1: フォームオブジェクト
 *  引数2:
 *  引数3:
 ***********************************************************/
function registEvent(formObj) {
	// 作成途中
}

/************************************************************
 *  ページセレクタ -- ページ選択
 *
 *  引数:次ページ番号
 ************************************************************/
function funcNextPage(nextPage) {
	document.frm1.selectedPageNo.value = nextPage;
	document.frm1.submit();
}

/***********************************************************
 *  各種承認 (詳細表示)
 *
 *  [注] この関数を呼び出す JSP 内で、"KIND_REC""RECORD_KEY1""RECORD_KEY2""RECORD_KEY3"
 *       という Hidden 項目を埋め込んでおく必要がある。
 *
 *  引数1: フォームオブジェクト
 *  引数2: 会員ID
 *  引数3: 画面ID
 ***********************************************************/
function searchRecognizeDetail(formObj, kindRec, recordKey1, recordKey2, recordKey3, screenId) {

	// キーのセット
	formObj.KIND_REC.value = kindRec;
	formObj.RECORD_KEY1.value = recordKey1;
	formObj.RECORD_KEY2.value = recordKey2;
	formObj.RECORD_KEY3.value = recordKey3;

	// UC ハンドラ ID とイベント ID は固定
	sendRequest(formObj, screenId, 'UC_RECOGNIZE', 'EV_DETAIL_LOOKUP');
}

/***********************************************************
 *  イベント参加申込関数
 *	管理者とお客様でUCハンドラIDが変わるため、切り分けを行う
 *  引数1: フォームオブジェクト
 *  引数2: 画面ID
 *  引数3: 参加イベントID
 ***********************************************************/
function applyEvent(formObj, screenId, eventId) {

	formObj.eventId.value = eventId;

	if (screenId.indexOf("SC_CP_") != -1 || screenId.indexOf("SC_CM_") != -1) {
		// お客様
		return sendRequest(formObj, screenId, 'UC_CP_EVENT', 'EV_APPLY_EVENT');
	} else {
		// 管理者
		return sendRequest(formObj, screenId, 'UC_EVENT', 'EV_APPLY_EVENT');
	}

}

/***********************************************************
 *  会員詳細画面から「戻る」ボタン押下時の処理
 *  前画面が会員検索画面または会員詳細検索画面のため、
 *  それに合わせて戻り先を変更する
 *
 *  引数1: フォームオブジェクト
 *  引数2: 画面ID
 *  引数3: 前画面ID
 ***********************************************************/
function backFromMemberDetail(formObj, screenId, prevScreenId) {

	var uchandlerId = "";

	// 会員検索画面 or 会員詳細検索画面へ
	if (prevScreenId == "SC_MEMBER_SEARCH") {
		uchandlerId = "UC_MEMBER_SEARCH";
	} else if (prevScreenId == "SC_MEMBER_DETAIL_SEARCH") {
		uchandlerId = "UC_MEMBER_DETAIL_SEARCH";
	}

	return sendRequest(formObj, screenId, uchandlerId, 'EV_SEARCH');
}

/***********************************************************
 *  お客様サイト共通ヘッダーの画像の処理
 *  マウスの移動に応じて各ボタンの画像が変わる
 ***********************************************************/
function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		menu_over = newImage("img/menu-over.gif");
		point_over = newImage("img/point-over.gif");
		info_over = newImage("img/info-over.gif");
		pass_over = newImage("img/pass-over.gif");
		logout_over = newImage("img/logout-over.gif");
		preloadFlag = true;
	}
}
/***********************************************************
 *  削除確認ダイアログ
 *
 *  引数1: フォームオブジェクト
 *  引数2: 画面ID
 *  引数3: UCハンドラID
 *	引数4: イベントID
 ***********************************************************/
function deleteConfirm(formObj, screenId, uchandlerId, eventId) {

	var returnValue = window.showModalDialog("./jsp/common/dialog/deleteConfirm.jsp", "", "dialogWidth:250px; dialogHeight:135px; center:on; dialogHide:yes; edge:raised; help:off; resizable:off; scroll:off; status:0; unadorned:on;");
	if (returnValue == "OK") {
		return sendRequest(formObj, screenId, uchandlerId, eventId);
	} else {
		return;
	}

}
/***********************************************************
 *  onKeyDown制御
 *  画面に入力項目が1つしかない場合、Enterキー押下で
 *  自動的にsubmitされるためそれを防止する。
 *  [使用方法]
 *  jspのテキストボックスのkeydownイベントにて以下の関数呼び出し
 *
 *  <html:text name="modifyPoint" property="workPoint"
 *		onkeydown="return funcKeyDown(event.keyCode);" />
 *
 *  [注] onkeydownのつづり
 *   ・<input type="text"> のときは onKeyDown
 *   ・<html:text>         のときは onkeydown
 *
 *  引数1: KeyCode
 ***********************************************************/
function funcKeyDown(e){
	// Enterキー(KeyCode=13)が押された場合は何もしない
	if(e == "13"){
	
		return false ;
	}
}
