//**********************************************
//確認メッセージを表示しOKが押下で画面遷移submitさせる
//**********************************************
function checkConfirm(msg, url) {
	if(window.confirm(msg)) {
		//submitの処理
		if (url == undefined || url == '') {
			document.forms[0].submit();
		} else {
			changeSubmit(url);
		}
	} else {
		return false;
	}
}




//指定したコントロールの入力が正しいか確認し
//入力がただしければ、メッセージが指定されていた場合
//指定した確認メッセージで確認し
//指定したURLへ遷移させる
//メッセージが指定されていなければサブミットします。
//
//@param string check_type 
//							'select' 選択されているがかどうか
//							'text'　入力されているか
//							'mail'　emailアドレスとして正しいか
//@param string or integer value
//@param string error_msg　入力エラーがあった場合に表示されるエラーメッセージ
//@param string confirm_msg 
//						画面遷移の確認メッセージ
//						空文字列であった場合は確認を行わずに画面遷移する
//@param string action 確認メッセージでOKを選択された場合の遷移先URL
//						空文字列の場合はactionの変更を行わずにsubmitを行う
//@param string lang デフォルトで'ja'となる、現在は'ja'以外の場合はen(英語)でエラーメッセージ出力します。
//使用例：onclick="checkInputAndConfirm('mail', 'mail', '確認のメールを送信します。よろしいですか？', '/regist/mail/mail_send');"
function checkInputAndConfirm(check_type, get_value_id, error_msg, confirm_msg, action, lang) {
	if (lang == undefined) {
		lang = 'ja';
	}
	var value = getValue(get_value_id);

	//入力チェック
	result = false;
	if (check_type=='select') {
		if (value == '' || value == '0') {
			alert(error_msg);
			result = false;
		} else {
			result = true;
		}
	}
	if (check_type=='text') {
		if (value!='') {
			result=true;
		} else {
			alert(error_msg);
		}
	}
	if (check_type=='mail' || check_type=='email') {
		result = checkEmail(value, error_msg, lang);
	}

	//入力が正しかったら
	if (result) {
		//実行確認後、画面遷移する
		if (confirm_msg != '') {
			checkConfirm(confirm_msg, action);
		} else {
			//確認メッセージがなければサブミットする
			changeSubmit(action);
		}
	}
}



//指定したコントロールの入力が正しいか確認し
//入力が正しければ、指定した確認メッセージで確認し
//指定したURLをPOPUPさせる
//
//@param string check_type 
//							'select' 選択されているがかどうか
//							'text'　入力されているか
//							'mail'　emailアドレスとして正しいか
//@param string or integer check_tag_id
//							checkするコントロールのIDを指定する
//@param string error_msg
//							入力エラーがあった場合に表示されるエラーメッセージ
//@param string confirm_msg 
//						画面遷移の確認メッセージ
//						空文字列であった場合は確認を行わずに画面遷移する
//@param string action 確認メッセージでOKを選択された場合の遷移先URL
//@param string request_tag_id
//						popup画面に親画面の値を渡し、popup画面から親画面に表示させたりする
//						場合に使用する
//@param string window_params javascriptのwindow.openに渡されるパラメータを指定する
//								例：'width=765,height=600,menubar=no,resizable=yes,scrollbars=yes'
///// 例：CenterView内 >> /////
//				<tr>
//					<td class="item">部署SQ <span class="inq_aster">*</span></td>
//					<td style="text-align:left;">
//						<button onclick="checkInputAndWindowOpen('select', 'COMPANY_SQ', '会社を選択してください。', '', '/admin/section/popup_list/index/staff_sq/{$STAFF_SQ}/return/SECTION_SQS=SECTION_SQ,SECTION_NAMES=SECTION_NAME/company_sq/', 'SECTION_SQS', 'width=850,height=600,menubar=no,resizable=yes,scrollbars=yes');return false;">
//							部署名選択</button>
//						<input type="hidden" id="SECTION_SQS" name="SECTION_SQS" value="{$SECTION_SQS}" />
//						<input type="text" class="read_only" readonly="readonly" id="SECTION_NAMES" name="SECTION_NAMES" value="{$SECTION_NAMES}" size="40" />
//					</td>
//				</tr>
///// 例：CenterViewt内 << /////
//
//結果表示されるURL例
//		http://aixp/admin/section/popup_list/index/staff_sq//return/SECTION_SQS=SECTION_SQ,SECTION_NAMES=SECTION_NAME/company_sq/1?request_tag_id=SECTION_SQS&SECTION_SQS=1
//
function checkInputAndWindowOpen(check_type, check_tag_id, error_msg, confirm_msg, action, request_tag_id, window_params) {
	///// 入力チェック >> /////
	var result_value = false;
	
	var check_value = getValue(check_tag_id);

	if (check_type=='select') {
		if (check_value == '' || check_value == '0') {
			alert(error_msg);
			result_value = false;
		} else {
			result_value = true;
		}
	}
	if (check_type=='text' || check_type == 'required') {
		if (check_value != '') {
			result_value = true;
		} else {
			alert(error_msg);
		}
	}
	///// 日付形式 >> /////
	if (check_type=='date') {
		result_value = checkDate(check_value);
	}
	if (check_type=='required_date') {
		if (check_value == '') {
			alert(error_msg);
		} else {
			result_value = checkDate(check_value);
		}
	}
	///// 日付形式 << /////
	if (check_type=='mail') {
		result_value = checkEmail(check_value, error_msg);
	}
	///// 入力チェック << /////

	//入力が正しかったら
	if (result_value) {
		var query_string='';
		if (request_tag_id != '') {
			query_string = '?request_tag_id=' + request_tag_id + '&' + request_tag_id + '=' + getValue(request_tag_id);
		}
		//実行確認後、画面遷移する
		if (confirm_msg != '') {
			if(window.confirm(confirm_msg)) {
				WindowOpenWithTagValue(action, check_tag_id, '_blank', query_string, window_params);
			}
		} else {
			WindowOpenWithTagValue(action, check_tag_id, '_blank', query_string, window_params);
		}
	}
}




//************************************************
//ログインチェックを行う
//ログイン可能で画面遷移する
//************************************************
function CheckLogin(id_name, passwd_name, tool_url, redirect_url, lang, get_id) {
	if (lang == undefined) {
		lang = 'ja';
	}
	//入力チェック
	var id = document.getElementById(id_name);
	
	var passwd = document.getElementById(passwd_name);
	var passwd_alt = passwd.alt;
	var message = '';
	if (id.value == '') {
		var id_alt = id.alt;
		//jaは日本語jpは日本
		if (lang == 'jp' || lang == 'ja') { 
			message += id_alt + 'に入力がありません。';
		} else {
			message += id_alt + ' is no input.';
		}
	}
	if (passwd.value == '') {
		var passwd_alt = passwd.alt;
		if (lang=='jp' || lang == 'ja') {
			message += passwd_alt + 'に入力がありません。';
		} else {
			message += passwd_alt + ' is no input.';
		}
	}
	var params = '';

	if (message != '') {
		alert(message);
		return false;
	} else {
		var get_value = '';
		if (get_id != undefined) {
			get_value = getValue(get_id);
		}
		if (get_value == '') {
			params = 'id=' + id.value + '&passwd=' + passwd.value;
		} else {
			params = 'id=' + id.value + '&passwd=' + passwd.value + '&' + get_id + '=' + get_value;
		}

		var xmlhttp = new createXmlhttp();

		if(xmlhttp) {
			xmlhttp.open('POST', tool_url);
			xmlhttp.onreadystatechange = function() {
				if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					//RESPONSE
					var res = xmlhttp.responseText;
					if (res == true) {
						//alert('ログインに成功しました。');
						window.location.href = redirect_url;
						return true;
					} else {
						if (res != false) {
							//何かのエラーメッセージかもしてない
							alert(res);
						}
						if (lang== 'jp' || lang=='ja') {
							alert('ログインできません。');
						} else {
							alert('Unable to login.');
						}
						return false;
					}
				} else if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					alert('404エラーが発生しました。' + tool_url + 'が見つかりません。');
					return false;
				}
			}
			//入力の送信
			xmlhttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
			xmlhttp.send(params);
		}
	}
}



//指定したコントロールの入力が正しいか確認し
//指定された入力が正しい場合のメッセージと正しくない場合のメッセージを
//指定した場所に表示する。
//
//@param string check_type 
//							'select' 選択されているがかどうか
//							'text'　入力されているか
//							'mail'　emailアドレスとして正しいか
//@param string or integer value
//@param string disp_id 表示するコントロールのID
//@param string error_msg　入力エラーがあった場合に表示されるエラーメッセージ
//@param string right_msg 画面遷移の確認メッセージ
//@param string action 確認メッセージでOKを選択された場合の遷移先URL
//使用例：onclick="checkInputAndMessage('mail', getValue('mail'), 'valid_msg', '使用できます。', '利用できません。');"
function checkInputAndMessage(check_type, value, disp_id, error_msg, right_msg) {
	//入力チェック
	result = false;
	if (check_type=='select') {
		if (value == '' || value == '0') {
			alert(error_msg);
			result = false;
		} else {
			result = true;
		}
	}
	if (check_type=='text') {
		if (value!='') {
			result=true;
		} else {
			setValue(disp_id, error_msg);
		}
	}
	if (check_type=='mail') {
		result = checkEmail(value, error_msg);
	}

	//入力が正しかったら
	if (result) {
		//実行確認後、画面遷移する
		setValue(disp_id, right_msg);
	}
} 




/**
 * [関数名] checkEmail
 * [機　能] 正規表現によるメールアドレス（E-mail）チェック
 * [引　数]
 * @param str 入力された文字列
 * [返り値]
 * @return true(E-mail形式である場合) | false(E-mail形式でない場合)
 * 使用例：<input type='button' value='メールアドレスチェック' onClick='checkEmail(this.form.email.value)'>
*/
function checkEmail(check_value, error_msg, lang){
	if (lang == undefined) {
		lang = 'ja';
	}
	/* E-mail形式の正規表現パターン */
	/* @が含まれていて、最後が .(ドット)でないなら正しいとする */
	var pattern=/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i;
	/* 入力された値がパターンにマッチするか調べる */
	if(check_value != ''){
		if(check_value.match(pattern)){
			return true;
		}else{
			if (error_msg != '') {
				//エラーメッセージが指定された
				alert(error_msg);
			} else {
				if (lang=='jp' || lang=='ja') {
					alert('メールアドレスの形式に誤りがあります。');
				} else {
					alert('There are errors in the e-mail address format.');
				}
			}
			return false;
		}
	}else{
		/* 何も入力されていない場合はアラート表示 */
		if (error_msg != '') {
			//エラーメッセージが指定された
			alert(error_msg);
		} else {
			if (lang=='jp' || lang=='ja') {
				alert('メールアドレスを入力してください。');
			} else {
				alert('Please enter your email address.');
			}
		}
		return false;
	}
}



////////////////////////////////////////////////
//起動時にメッセージが設定されていたらPopUpする
//main_form内にinput type= "hidden" name="popup_message" value="<?=$POPUP_MESSAGE?>" で
//PopUpしたいメッセージを設定すると起動時にwindow.confirmで表示される
////////////////////////////////////////////////
function CheckMessage() {
	if (document.main_form == null || document.main_form == undefined) {
	//main_formなし
	} else {
		if (document.main_form.popup_message == null || document.main_form.popup_message == undefined) {
			//messageなし
		} else {
			//popup_messageの取得
			var popup_message = document.main_form.popup_message.value;
			//popup_messageが空でなければ
			if (popup_message != "") { 
				//message_typeの存在確認
				if (document.main_form.message_type == null || document.main_form.message_type == undefined) {
					//message_type存在しない
					//popup_messageが設定されていてmessage_typeが設定されていないのはおかしい
					alert("popup_messageは存在するがmessage_typeが存在しません。");
				} else {
					//message_type存在
					//message_typeの取得
					var message_type = document.main_form.message_type.value;
					//確認メッセージを表示する
					if (window.confirm(popup_message)) {
						//OKボタン押下
						//typeの振り分け
						//コメント編集
						if (message_type == 'comment_passwd_check') {
							changeSubmit('exec_comment_delete');
							//記事編集
						} else if (message_type == 'item_passwd_check') {
							changeSubmit('exec_item_delete');
							//ブログタイトル編集
						} else if (message_type == 'blog_title_passwd_check') {
							changeSubmit('exec_blog_title_delete');
						} else {
							alert('システムエラー:CheckMessageポップアップメッセージOK後のTypeが設定されていません。');
						}
					} else {
						//キャンセル押下
						//typeの振り分け
						//コメント編集
						if (message_type == 'comment_passwd_check') {
							changeSubmit('not_delete');
							//記事編集
						} else if (message_type == 'item_passwd_check') {
							changeSubmit('not_delete');
							//ブログタイトル編集
						} else if (message_type == 'blog_title_passwd_check') {
							changeSubmit('blog_title_not_delete');
						} else {
							alert('システムエラー:CheckMessageポップアップメッセージキャンセル後のTypeが設定されていません。');
						}
					}
				}
			}
		}
	}
}

//************************************************
//Ajaxを利用し各種チェックを行う
//
//
//@param string value_id 送信する値が入力されているコントロールのID
//@param integer min_length value_idのコントロールに入力されている文字列の最低文字数を指定する
//									7文字以上であれば7を指定する
//@param string paras_id Ajaxを呼び出す際のクエリ文字列が入力されているコントロールIDを入力する
//@param tool_url
//
function checkResponseAndDispMsg(value_id, min_length, param_id, tool_url, disp_id, right_msg, error_msg, redirect_url) {
	//入力チェック
	var value = getValue(value_id);
	var param_value = '';
	if (param_id != '') {
		param_value = getValue(param_id);
	}
	var message = '';
	if (value == '') {
		message = '入力がありません。';
	} else {
		if (min_length != 0 && value.length < min_length) {
			message = min_length + '文字以上で入力してください。';
		}
	}
	var params = '';
	if (message != '') {
		alert(message);
		return false;
	} else {
		if (param_value == '') {
			params = 'id=' + value
		} else {
			params = 'id=' + value + '&param=' + param_value;
		}
	}
	var xmlhttp = new createXmlhttp();

	if(xmlhttp) {
		xmlhttp.open('POST', tool_url);
		xmlhttp.onreadystatechange = function() {
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				//RESPONSE
				var res = xmlhttp.responseText;
				if (res == true) {
					//ログインに成功しました。
					if (disp_id != '') {
						setValue(disp_id, right_msg);
					}
					if (redirect_url != '') {
						window.location.href = redirect_url;
					}
					return true;
				} else {
					if (res != false) {
						//何かのエラーメッセージかもしてない
						alert(res);
						setValue(disp_id, res);
					} else {
						setValue(disp_id, error_msg);
					}
					return false;
				}
			}
		}
		//入力の送信
		xmlhttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
		xmlhttp.send(params);
	}
}




