//==============================================================================
//  System name    : IDEC株式会社殿向け　メンバーサイトシステム
//  Subsystem name : システム共通
//  Source file    : membersite.js
//  Purpose        : 共通JavaScriptファイル
//  Created day    : 2006-11-28(火)
//  Updated day    : 2006-11-28(火)
//  Copyright(C) 2006 Sumisho Computer Systems Corporation, All rights reserved.
//==============================================================================

//==============================================================================
//  Function : doButtonDisable()
//  Purpose  : ボタンの無効化
//  Argument : obj   :: 無効化するボタンオブジェクト
//  Returned : none
//==============================================================================
var clickState=false;
function doButtonDisable(obj) {
}

//==============================================================================
//  Function : doSubmit()
//  Purpose  : フォームデータの送信
//  Argument : form_name   :: フォームデータを送信するフォーム名
//           : form_target :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action :: 実行時の動作
//  Returned : none
//==============================================================================
function doSubmit(form_name, form_target, form_action) {

	if (!clickState) {
		clickState = true;
	} else {
		alert("It is processing it now.");
		return false;
	}

	document.forms[form_name].target = form_target;
	document.forms[form_name].action = form_action;
	document.forms[form_name].submit();
}

//==============================================================================
//  Function : doSubmitSelf()
//  Purpose  : フォームデータの送信  ※画面遷移しないアクション用
//  Argument : form_name   :: フォームデータを送信するフォーム名
//           : form_target :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action :: 実行時の動作
//  Returned : none
//==============================================================================
function doSubmitSelf(form_name, form_target, form_action) {
	document.forms[form_name].target = form_target;
	document.forms[form_name].action = form_action;
	document.forms[form_name].submit();
}

//==============================================================================
//  Function : doSubmitWithConfirm()
//  Purpose  : フォームデータの送信  ※確認メッセージ有り
//  Argument : form_name   :: フォームデータを送信するフォーム名
//           : form_target :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action :: 実行時の動作
//           : confirm_msg :: 確認用メッセージ
//  Returned : none
//==============================================================================
function doSubmitWithConfirm(form_name, form_target, form_action, confirm_msg) {

	if (confirm(confirm_msg)) {
		if (!clickState) {
			clickState = true;
		} else {
			alert("It is processing it now.");
			return false;
		}
		document.forms[form_name].target = form_target;
		document.forms[form_name].action = form_action;
		document.forms[form_name].submit();
	}
}

//==============================================================================
//  Function : doSubmitNewWindow()
//  Purpose  : フォームデータの送信
//  Argument : form_name   :: フォームデータを送信するフォーム名
//           : form_target :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action :: 実行時の動作
//  Returned : none
//==============================================================================
function doSubmitNewWindow(form_name, form_target, form_action) {

	if (!clickState) {
		clickState = true;
	} else {
		alert("It is processing it now.");
		return false;
	}

	window.open("about:blank", "newOpenWindow", "left=387,top=304,width=250,height=160,menubar=no,toolbar=no,location=no,status=no,titlebar=no");
	document.forms[form_name].target = "newOpenWindow";
	document.forms[form_name].action = form_action;
	document.forms[form_name].submit();
}

//==============================================================================
//  Function : checkEmail()
//  Purpose  : メールアドレスのチェック
//  Argument : email :: メールアドレス
//  Returned : none
//==============================================================================
function checkEmail(email, message) {

	checkFlag = email.match(/^\S+@\S+\.\S+$/);
	if (!checkFlag) {
		alert(message);
		return false;
	}
	return true;
}

//==============================================================================
//  Function : downloadNextSearch()
//  Purpose  : ダウンロード検索で絞込み検索を行う【カテゴリ名称リンク】クリック時
//  Argument : form_name   :: フォームデータを送信するフォーム名
//           : form_target :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action :: 実行時の動作
//           : param :: categoryId(ListBoxMST)
//  Returned : none
//==============================================================================
function downloadNextSearch(form_name, form_target, form_action, param) {
	document.forms[form_name].param.value = param;
	doSubmit(form_name, form_target, form_action);
}

//==============================================================================
//  Function : downloadChangeLanguage()
//  Purpose  : ダウンロード検索で出力言語の変更を行う【言語名称】クリック時
//  Argument : form_name   :: フォームデータを送信するフォーム名
//           : form_target :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action :: 実行時の動作
//           : param :: languageCode(ListBoxMST)
//  Returned : none
//==============================================================================
function downloadChangeLanguage(form_name, form_target, form_action, param) {
	document.forms[form_name].fileLanguage.value = param;
	doSubmit(form_name, form_target, form_action);
}

//==============================================================================
//  Function : displayPopup()
//  Purpose  : ダウンロード詳細検索画面で補足説明のポップアップを表示する
//  Argument : url   :: ポップアップで表示するページのURL
//  Returned : none
//==============================================================================
function displayPopup(url) {
	window.open(url,"","width=400,height=550,scrollbars=no,titlebar=no,resizable=yes,status=no,toolbar=no");
}

//==============================================================================
//  Function : normalPopup()
//  Purpose  : 新規ウィンドウで表示する
//  Argument : url   :: 新規ウィンドウで表示するページのURL
//  Returned : none
//==============================================================================
function normalPopup(url) {
	window.open(url,"","scrollbars=yes,titlebar=yes,resizable=yes,status=yes,toolbar=yes");
}

//==============================================================================
//  Function : uploadModify()
//  Purpose  : アップロードで変更を行う【ファイルIDリンク】クリック時
//  Argument : form_name   :: フォームデータを送信するフォーム名
//           : form_target :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action :: 実行時の動作
//           : param :: categoryId(ListBoxMST)
//  Returned : none
//==============================================================================
function uploadModify(form_name, form_target, form_action, param) {
	document.forms[form_name].uploadParam.value = param;
	doSubmit(form_name, form_target, form_action);
}

//==============================================================================
//  Function : confirmDialog()
//  Purpose  : 確認用ダイアログ
//  Argument : confirm_msg       :: 確認用メッセージ
//           : ng_msg :: 否定した場合のメッセージ
//  Returned : none
//==============================================================================
function confirmDialog(confirm_message, ng_msg) {
	if (!confirm(confirm_message)) {
		alert(ng_msg);
		return false;
	}
	return true;
}

//==============================================================================
//  Function : confirmUploadDelete()
//  Purpose  : 確認用ダイアログ
//  Argument : confirm_message :: 確認用メッセージ
//           : form_name       :: フォームデータを送信するフォーム名
//           : form_target     :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action     :: 実行時の動作
//  Returned : none
//==============================================================================
function confirmUploadDelete(confirm_message, form_name, form_target, form_action) {
	if (confirm(confirm_message)) {
		doSubmit(form_name, form_target, form_action);
	}
	return false;
}

//==============================================================================
//  Function : webcssDetail()
//  Purpose  : WebCSSスレッド一覧のリンク押下時
//  Argument : form_name     :: フォームデータを送信するフォーム名
//           : form_target   :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action   :: 実行時の動作
//           : userId        :: パラメータ（ユーザ識別番号）
//           : earlyPostDate :: パラメータ（初期投稿日時）
//           : formCode      :: パラメータ（フォームコード）
//           : caseNumber    :: パラメータ（ケース番号）
//  Returned : none
//==============================================================================
function webcssDetail(form_name, form_target, form_action, userId, earlyPostDate, formCode, caseNumber) {
	document.forms[form_name].userId.value = userId;
	document.forms[form_name].earlyPostDateLong.value = earlyPostDate;
	document.forms[form_name].formCode.value = formCode;
	document.forms[form_name].caseNumber.value = caseNumber;
	doSubmit(form_name, form_target, form_action);
}

//==============================================================================
//  Function : webcssAttachedFileClick()
//  Purpose  : WebCSSスレッド詳細の添付ファイル押下時
//  Argument : form_name     :: フォームデータを送信するフォーム名
//           : form_target   :: 表示ターゲット (_blank, _self, _top, _parent, etc.)
//           : form_action   :: 実行時の動作
//           : clickFile     :: パラメータ（選択添付ファイル）
//  Returned : none
//==============================================================================
function webcssAttachedFileClick(form_name, form_target, form_action, clickFile) {
	document.forms[form_name].clickFile.value = clickFile;
	doSubmitSelf(form_name, form_target, form_action);
}

//==============================================================================
//  Function : loadHTMLFile()
//  Purpose  : HTMLファイルを動的に読み込んで表示する
//  Argument : fName     :: 
//  Returned : none
//==============================================================================
function loadHTMLFile(fName){
	if (fName == "") {
		return;
	}
	httpObj = createXMLHttpRequest(displayData);
	if (httpObj){
		httpObj.open("GET", fName, true);
		httpObj.send(null);
	}
}

//==============================================================================
//  Function : displayData()
//  Purpose  : XMLhttpObjectに読み込んだHTMLデータを出力する
//  Returned : none
//==============================================================================
function displayData(){
	if ((httpObj.readyState == 4) && (httpObj.status == 200)){
		document.all.resultData.innerHTML = httpObj.responseText;
	}else{
		document.all.resultData.innerHTML = "<b>Loading...</b>";
	}
}

//==============================================================================
//  Function : createXMLHttpRequest()
//  Purpose  : HTTP通信用、共通関数
//  Argument : cbFunc     :: 
//  Returned : none
//==============================================================================
function createXMLHttpRequest(cbFunc){
	var XMLhttpObject = null;
	try{
		XMLhttpObject = new XMLHttpRequest();
	}catch(e){
		try{
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	if (XMLhttpObject) {
		XMLhttpObject.onreadystatechange = cbFunc;
	}
	return XMLhttpObject;
}

//==============================================================================
//  Function : setFocusFirstElement()
//  Purpose  : 指定フォームの最初の入力項目にフォーカスを移動する
//  Argument : form_name   :: フォーム名
//  Returned : none
//==============================================================================
function setFocusFirstElement(form_name) {
	var elementTypeName = "";

	for (idx=0; idx<document.forms[form_name].length; idx++) {

		/* エレメントの種類を取得する */
		elementTypeName = document.forms[form_name].elements[idx].type;

		/* 最初の入力項目にフォーカスを移動する */
		if (elementTypeName == "checkbox" || elementTypeName == "options" ||
		    elementTypeName == "password" || elementTypeName == "radio" ||
		    elementTypeName == "select" || elementTypeName == "text" ||
		    elementTypeName == "textarea") {

			/* disabled が設定されていない場合のみフォーカスを移動する */
			if (!document.forms[form_name].elements[idx].disabled) {
				document.forms[form_name].elements[idx].focus();
				break;
			}
		}
	}
}

//==============================================================================
//  Function : setEnterKeyAction()
//  Purpose  : Enterキー押下時のアクションを設定する
//  Argument : command         :: Enterキー押下時に実行するコマンド
//           : confirm_message :: 確認用メッセージ  ※空文字の場合は確認表示無し
//  Returned : none
//==============================================================================
function setEnterKeyAction(command, confirm_message) {

	document.write('<script type="text/javascript">\n');
	document.write('document.onkeydown = KeyEvent;\n');
	document.write('function KeyEvent(e){\n');
	document.write('var pressKey = event.keyCode;\n');
	document.write('var msg_len = "' + confirm_message + '".length;\n');
	document.write('if (pressKey == 13) {\n');
	document.write('if (msg_len > 0) {\n');
	document.write('if (!confirm("' + confirm_message + '")) {\n');
	document.write('return false;\n');
	document.write('}\n');
	document.write('}\n');
	document.write(command + ';\n');
	document.write('return false;\n');
	document.write('}\n');
	document.write('}\n');
	document.write('</script>\n');
}

