/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUFrontUserInfoHeader
*   ソースファイル名：JFUFrontUserInfoHeader.java
*   作成者          ：富士通
*   日付            ：2011年06月02日
*＜機能概要＞
*   フロント画面ユーザー情報領域出力部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/06/02   FJ）和田    新規作成
*   v3.00       2012/03/14   FJ) 文元   【ANK-0024-01-00】 お客さまID非通知対応（フロント）
*   v4.00       2012/06/26   FJ) 文元   【ANK-0529-00-00】 POPID表記削除対応
*   v5.00       2013/03/26   FJ) 井口   【ST7-2013-0000005】 セキュリティ脆弱性修正対応
*   v5.00       2013/04/03   FJ) 大村    障害No.204 AxM連携でのPMP画像読み込み対応(シングルサインオン)
*   v5.00       2013/04/08   FJ) 大塚    文言修正対応
*   v5.00       2013/04/30   FJ) 大村    No324_Js利用不可メッセージ
*   v5.00       2015/02/24   FJ) 土井    ANK-2433-00-00_【ＮＯ．１６３２】ID登録証再発行業務の改善
*   v23.00      2016/03/07   FJ) 中西   【ANK-2656-00-00】 フロントS：共通エラー画面のメッセージレイアウト変更
*   v28.00      2016/10/05   FJ) 横山   【ANK-3032-00-00】AxM再構築対応
*   v29.00      2017/02/02   FJ）張本    ANK-3112-00-00_訪販タブレット
*   v37.00      2018/05/08   FJ）岡井   【ANK-3119-00-00】開通前でもＷｅｂから支払方法を変更可能とする
*   v39.00.00   2018/10/31   FJ）謝     【ANK-3518-00-00】量販・訪販Webのサービス追加
*   v57.00      2021/12/28   FJ）張本   【ANK-4170-00-00】eフロントの改善要望に関するeo顧客基幹SのAPI・画面連携変更対応(2022年1月下旬リリース)
**********************************************************************/
package eo.web.webview.common;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.List;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;

import com.fujitsu.futurity.web.x33.DispatchContext;
import com.fujitsu.futurity.web.x33.DispatchContextFactory;
import com.fujitsu.futurity.web.x33.HttpDispatchContext;
import com.fujitsu.futurity.web.x33.X33VCustomTagBase;

import eo.common.constant.JFUStrConst;
import eo.common.util.JFUCommonUtil;

/**
 * フロント画面ユーザー情報領域出力部品です。
 * <br>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class JFUFrontUserInfoHeader extends X33VCustomTagBase
{

	/** 拡張タグテンプレートファイルのテンプレートID */
	private static final String TAG_TEMPLATE = "TagTemplate002";

	/** 共有フォームビーン識別子 */
	public static final String COMMONBEAN = "共有フォーム/";

	/** ユーザ情報に表示させるパターン属性 */
	private String pattern = "";

	// ANK-2433 パスワード入力用ヘッダ N3追加
	/** ユーザ情報に表示させるパターン */
	private static final List<String> PATTERNS = Arrays.asList("00", "01", "02", "03", "04", "05", "06", "07", "E", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "N8", "N9");

	/** 画像パスのアプリケーションプロパティファイルキー */
	private static final String APL_CONST_KEY_SSO_LOGIN_IMG_SRC = "SSO_LOGIN_IMG_SRC";

	/** ログイン時間延長用画像パスのアプリケーションプロパティファイルキー */
	private static final String SSO_LOGIN_TIME_UPD_IMG_SRC = "SSO_LOGIN_TIME_UPD_IMG_SRC";

	/** フロント区分のアプリケーションプロパティファイルキー */
	private static final String APL_CONST_DEFAULT_TARGET_SYSTEM = "TARGET_SYSTEM";
	/** フロント区分（量販訪販） */
	private static final String TARGET_SYSTEM_RYOHAN_HOHAN = "RYOHAN";

	//** 2016/10/05 ANK-3032-00-00 mod start */
	/** セッションキー：SMSESSION */
	private static final String SESSION_KEY_SMSESSION = "SMSESSION";

	//** 2016/10/05 ANK-3032-00-00 mod end */

	/**
	 * カスタムタグ開始処理を行います。
	 * <br>
	 * @throws	JspException JSPで発生する例外
	 * @return 処理結果
	 * @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
	 */
	@Override
	public int doStartTag() throws JspException
	{

		// ログインの有効期限の延長処理
		extendExpiredLogin();

		// パターンに含まれていない場合はタグを作成しない
		if (!PATTERNS.contains(pattern))
		{
			return SKIP_BODY;
		}

		if (pattern.startsWith("N"))
		{
			// Web新規申込の場合
			this.makeNewInfoBar();
		}
		else if (pattern.startsWith("E"))
		{
			// 共通エラーの場合
			this.makeErrorInfo();
		}
		else
		{
			// Web変更申込の場合
			this.makeChangeUserInfo();
		}

		// JavaScript無効時メッセージ出力
		this.outputNoScript();

		return SKIP_BODY;
	}

	/**
	 * エラー画面用情報エリアを出力します。
	 * <br>
	 * @throws JspException JSPで発生する例外
	 */
	private void makeErrorInfo() throws JspException
	{
		//【ANK-2656-00-00】 フロントS：共通エラー画面のメッセージレイアウト変更 2016.03.07 FJ)中西 mod start
		outputHtml("					<div id=\"windowSlectorArea\">" + JFUStrConst.RETURN_CODE);
		outputHtml("						<div id=\"breadcrumbs\" class=\"breadCrumbs errorBreadCrumbs\">" + JFUStrConst.RETURN_CODE);
		outputHtml("							<ul>" + JFUStrConst.RETURN_CODE);
		outputHtml("								<li class=\"errorBreadCrumbsTitle\" id=\"errorUserHeaderTitleText\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>" + JFUStrConst.RETURN_CODE);
		outputHtml("								<li class=\"breadCrumbsScreenId errorBreadCrumbsScreenId\">画面ID:FUW09901</li>" + JFUStrConst.RETURN_CODE);
		outputHtml("							</ul>" + JFUStrConst.RETURN_CODE);
		outputHtml("						</div>" + JFUStrConst.RETURN_CODE);
		outputHtml("					</div>" + JFUStrConst.RETURN_CODE);
		//【ANK-2656-00-00】 フロントS：共通エラー画面のメッセージレイアウト変更 2016.03.07 FJ)中西 mod end
	}

	/**
	 * JavaScript無効時メッセージを出力します。
	 * <br>
	 * @throws JspException JSPで発生する例外
	 */
	private void outputNoScript() throws JspException
	{
		outputHtml("		<noscript>" + JFUStrConst.RETURN_CODE);
		outputHtml("			<div id=\"message-area\">" + JFUStrConst.RETURN_CODE);
		outputHtml("				<div class=\"message\">" + JFUStrConst.RETURN_CODE);
		outputHtml("					<span>本ページでは、Javascriptの機能を利用した処理を行っております。" + JFUStrConst.RETURN_CODE);
		outputHtml("							<br />恐れ入りますが、お使いのブラウザーを『Javascriptを有効にする』に設定してください。" + JFUStrConst.RETURN_CODE);
		outputHtml("					</span>" + JFUStrConst.RETURN_CODE);
		outputHtml("				</div>" + JFUStrConst.RETURN_CODE);
		outputHtml("			</div>" + JFUStrConst.RETURN_CODE);
		outputHtml("		</noscript>" + JFUStrConst.RETURN_CODE);
	}

	/**
	 * Web新規申込用情報エリアを出力します。
	 * <br>
	 * @throws JspException JSPで発生する例外
	 */
	private void makeNewInfoBar() throws JspException
	{
		// 画面ID
		String screenId = getDataString("next_screen_id");
		// フロント区分の取得
		String frontKbn = JCCWebCommon.getApplicationConst(APL_CONST_DEFAULT_TARGET_SYSTEM);

		if("N1".equals(pattern))
		{
			outputHtml("					<div id=\"windowSelectorArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("						<div id=\"breadcrumbs\" class=\"breadCrumbs\">" + JFUStrConst.RETURN_CODE);
			outputHtml("							<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li>eoお申し込み受付</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li class=\"breadCrumbsScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("							</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("						</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("					</div>" + JFUStrConst.RETURN_CODE);
			

			// 量販・訪販の場合
			if (TARGET_SYSTEM_RYOHAN_HOHAN.equals(frontKbn))
			{
				if("1".equals(getDataString("action_flg", 0)))
				{
					outputHtml("					<div id=\"login-mode\" class=\"nodisp\">0</div>" + JFUStrConst.RETURN_CODE);
				}
			}
		}
		else if("N2".equals(pattern))
		{
			// ユーザ情報エリアの出力
			outputHtml("<div id=\"user-info-area\" class=\"UserInfoArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("	<div id=\"user-info\" class=\"UserInfo\">" + JFUStrConst.RETURN_CODE);
			outputHtml("		<div id=\"user-nav\" class=\"UserNav\">" + JFUStrConst.RETURN_CODE);
			outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"UserName\">工事進捗確認</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfoLabel1\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfo1\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfoLabel2\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfo2\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("	</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("</div>" + JFUStrConst.RETURN_CODE);
		}
		// ANK-2433 パスワード入力用ヘッダ N3追加
		else if("N3".equals(pattern))
		{
			outputHtml("					<div id=\"windowSelectorArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("						<div id=\"breadcrumbs\" class=\"breadCrumbs\">" + JFUStrConst.RETURN_CODE);
			outputHtml("							<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li>パスワード入力</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li class=\"breadCrumbsScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("							</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("						</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("					</div>" + JFUStrConst.RETURN_CODE);
		}
		// ANK-2433 ID照会画面用ヘッダ N4追加
		else if("N4".equals(pattern))
		{
			outputHtml("					<div id=\"windowSelectorArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("						<div id=\"breadcrumbs\" class=\"breadCrumbs\">" + JFUStrConst.RETURN_CODE);
			outputHtml("							<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li>eoIDの照会</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li class=\"breadCrumbsScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("							</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("						</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("					</div>" + JFUStrConst.RETURN_CODE);
		}
		// ANK-2433 スマホパスワード入力用ヘッダ N5追加
		else if("N5".equals(pattern))
		{
			// ユーザ情報エリアの出力
			outputHtml("<div id=\"user-info-area\" class=\"UserInfoArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("	<div id=\"user-info\" class=\"UserInfo\">" + JFUStrConst.RETURN_CODE);
			outputHtml("		<div id=\"user-nav\" class=\"UserNav\">" + JFUStrConst.RETURN_CODE);
			outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("					<li>パスワード入力</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("		<div id=\"user-nav-right\" class=\"UserNavRight\">" + JFUStrConst.RETURN_CODE);
			outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("					<li class=\"breadCrumbsScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("	</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("</div>" + JFUStrConst.RETURN_CODE);
		}
		// ANK-2433 スマホID照会画面用ヘッダ N6追加
		else if("N6".equals(pattern))
		{
			// ユーザ情報エリアの出力
			outputHtml("<div id=\"user-info-area\" class=\"UserInfoArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("	<div id=\"user-info\" class=\"UserInfo\">" + JFUStrConst.RETURN_CODE);
			outputHtml("		<div id=\"user-nav\" class=\"UserNav\">" + JFUStrConst.RETURN_CODE);
			outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li>eoIDの照会</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("		<div id=\"user-nav-right\" class=\"UserNavRight\">" + JFUStrConst.RETURN_CODE);
			outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"breadCrumbsScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("	</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("</div>" + JFUStrConst.RETURN_CODE);
		}

		else if("N7".equals(pattern))
		{
			outputHtml("					<div id=\"windowSelectorArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("						<div id=\"breadcrumbs\" class=\"breadCrumbs\">" + JFUStrConst.RETURN_CODE);
			outputHtml("							<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li>ご署名登録</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("								<li class=\"breadCrumbsScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("							</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("						</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("					</div>" + JFUStrConst.RETURN_CODE);
		}

		else if("N8".equals(pattern))
		{
			// 開通前支払方法変更専用(他の画面で使用しないこと)
			// ユーザ情報エリアの出力
			String custNm = getDataString("cust_nm", 0);

			if(JFUWebCommon.isNull(custNm))
			{
				custNm = "お支払い方法変更受付";
			}
			else
			{
				custNm = custNm + "&nbsp;様";
			}

			outputHtml("<div id=\"user-info-area\" class=\"UserInfoArea\">" + JFUStrConst.RETURN_CODE);
			outputHtml("	<div id=\"user-info\" class=\"UserInfo\">" + JFUStrConst.RETURN_CODE);
			outputHtml("		<div id=\"user-nav\" class=\"UserNav\">" + JFUStrConst.RETURN_CODE);
			outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"UserName\">" + custNm + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfoLabel1 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfo1 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfoLabel2 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfo2 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ScreenId\">画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("	</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("</div>" + JFUStrConst.RETURN_CODE);
		}

		//障害No.204 AxM連携でのPMP画像読み込み対応(シングルサインオン) >>>
		setImgPath();
		//障害No.204 AxM連携でのPMP画像読み込み対応(シングルサインオン) <<<E
	}

	/**
	 * ログインの有効期限の延長処理です。
	 * 
	 * @throws JspException
	 */
	private void extendExpiredLogin() throws JspException
	{

		// アプリケーションプロパティファイルからSSOログインテストモードを取得
		String ssoLoginTestMode = JFUWebCommon.getApplicationConst(JFUStrConst.SSO_LOGIN_TEST_MODE);

		// SSOログインテストモードの場合
		if ("ON".equals(ssoLoginTestMode))
		{
			// 処理を終了する
			return;
		}

		DispatchContext context = DispatchContextFactory.getInstance().getHttpDispatchContext();
		HttpServletRequest request = ((HttpDispatchContext)context).getServletRequest();
		Cookie[] cookies = request.getCookies();
		if (null == cookies || cookies.length == 0)
		{
			return;
		}
		for (Cookie cookie : cookies)
		{
			//** 2016/10/05 ANK-3032-00-00 mod start */
			if (cookie != null && SESSION_KEY_SMSESSION.equals(cookie.getName()))
			{
				String loginImgSrc = JFUWebCommon.getApplicationConst(SSO_LOGIN_TIME_UPD_IMG_SRC);
// ANK-3518-00-00 ADD START
				// アプリケーションプロパティファイルから値を取得できない場合
				if (JFUCommonUtil.isNull(loginImgSrc))
				{
					// 処理を終了する
					return;
				}
// ANK-3518-00-00 ADD END
				// img_src部分を生成
				StringBuilder sb = new StringBuilder();
				sb.append(loginImgSrc);
				sb.append(JFUStrConst.HALF_QUESTION);
				sb.append(JFUWebCommon.getSysDateTime());

				outputHtml("<img id=\"masterLogo\" width=\"0\" height=\"0\" src=\"" + sb.toString() + "\"/>" + JFUStrConst.RETURN_CODE);
				break;
			}
			//** 2016/10/05 ANK-3032-00-00 mod end */
		}
	}

	/**
	 * Web変更申込用ユーザ情報エリアを出力します。
	 * <br>
	 * @return
	 * @throws JspException JSPで発生する例外
	 */
	private void makeChangeUserInfo() throws JspException
	{
		// お客様名
		String userName = getDataString("cust_nm", 0);

		// 電話番号
		String telNo = getDataString("telno", 0);

		// メールアドレス
		String mlad = getDataString("mlad", 0);

		// WEBID
		String webId = getDataString("web_id", 0);

		// 認証ＩＤ
		String ninsho_Id = getDataString("ninsho_id", 0);

		// 画面ID
		String screenId = getDataString("next_screen_id");

		// 整理番号
		String seiriNo = getDataString("seiri_no", 0);
		String dispSeiriNo = JFUStrConst.EMPTY;

		// ユーザ情報エリアの出力
		outputHtml("<div id=\"user-info-area\" class=\"UserInfoArea\">" + JFUStrConst.RETURN_CODE);
		outputHtml("	<div id=\"user-info\" class=\"UserInfo\">" + JFUStrConst.RETURN_CODE);
		outputHtml("		<div id=\"user-nav\" class=\"UserNav\">" + JFUStrConst.RETURN_CODE);
		outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);

		if (!"06".equals(pattern))
		{
			outputHtml("				<li class=\"UserName\">" + userName + "&nbsp;様</li>" + JFUStrConst.RETURN_CODE);

			if ("00".equals(pattern))
			{
				outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfoLabel1 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfo1 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			}
			else if ("01".equals(pattern))
			{
				outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfoLabel1 respNoDisp\">(電話番号)</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfo1\"><span class=\"respDispNoneToInline\">(電話番号)&nbsp;</span>" + telNo + "</li>" + JFUStrConst.RETURN_CODE);
			}
			else if ("02".equals(pattern))
			{
				outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfoLabel1 respNoDisp\">(メールアドレス)</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfo1\"><span class=\"respDispNoneToInline\">(メールアドレス)&nbsp;</span>" + mlad + "</li>" + JFUStrConst.RETURN_CODE);
			}
			else if ("03".equals(pattern))
			{
				outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfoLabel1 respNoDisp\">(Ｗｅｂ ＩＤ)</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfo1\"><span class=\"respDispNoneToInline\">(Ｗｅｂ ＩＤ)&nbsp;</span>" + webId + "</li>" + JFUStrConst.RETURN_CODE);
			}
			else if ("04".equals(pattern))
			{
				outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfoLabel1 respNoDisp\">(認証ＩＤ)</li>" + JFUStrConst.RETURN_CODE);
				outputHtml("				<li class=\"ServiceInfo1\"><span class=\"respDispNoneToInline\">(認証ＩＤ)&nbsp;</span>" + ninsho_Id + "</li>" + JFUStrConst.RETURN_CODE);
			}

			if (!"05".equals(pattern) && !"07".equals(pattern))
			{
				if ("".equals(seiriNo))
				{
					outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
					outputHtml("				<li class=\"ServiceInfoLabel2 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
					outputHtml("				<li class=\"ServiceInfo2 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
				}
				else
				{
					outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
					outputHtml("				<li class=\"ServiceInfoLabel2 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
					outputHtml("				<li class=\"ServiceInfo2 respNoDisp\">" + formatSeriNo(seiriNo) + "</li>" + JFUStrConst.RETURN_CODE);
					dispSeiriNo = formatSeriNo(seiriNo);
				}
			}
		}
		else
		{
			outputHtml("				<li class=\"UserName respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
		}

		if ("05".equals(pattern) || "06".equals(pattern))
		{
			outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfoLabel1 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfo1 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"Sep novisible\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfoLabel2 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ServiceInfo2 respNoDisp\"></li>" + JFUStrConst.RETURN_CODE);
		}

		if ("07".equals(pattern))
		{
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
			outputHtml("		<div id=\"user-nav-right\" class=\"UserNavRight\">" + JFUStrConst.RETURN_CODE);
			outputHtml("			<ul>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ScreenId\"><span class=\"respDispNoneToInline\">" + dispSeiriNo + "&nbsp;&nbsp;</span>画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
		}
		else
		{
			outputHtml("				<li class=\"Sep\">&nbsp;</li>" + JFUStrConst.RETURN_CODE);
			outputHtml("				<li class=\"ScreenId\"><span class=\"respDispNoneToInline\">" + dispSeiriNo + "&nbsp;&nbsp;</span>画面ID:" + screenId + "</li>" + JFUStrConst.RETURN_CODE);

			outputHtml("			</ul>" + JFUStrConst.RETURN_CODE);
		}
		outputHtml("		</div>" + JFUStrConst.RETURN_CODE);
		outputHtml("	</div>" + JFUStrConst.RETURN_CODE);
		outputHtml("</div>" + JFUStrConst.RETURN_CODE);
	}

	//障害No.204 AxM連携でのPMP画像読み込み対応(シングルサインオン) >>>
	/**
	 * imgタグのパスを設定する。
	 */
	private void setImgPath()  throws JspException
	{
		// 画面ID
		String before_screenId = getDataString("before_screen_id");

		// セッションから値を取得できなかった場合 もしくは　遷移元画面がeoID認証画面以外の場合
		if (before_screenId == null || "".equals(before_screenId) || !before_screenId.equals(JFUScreenConst.SCREEN_ID_FUW00127))
		{
			// 処理を終了する
			return;
		}

		// 画面ID
		String next_screen_id = getDataString("next_screen_id");
		// セッションから値を取得できなかった場合 もしくは　遷移先画面が指定画面以外の場合
		if (next_screen_id == null || "".equals(next_screen_id) || 
			!(
				next_screen_id.equals(JFUScreenConst.SCREEN_ID_FUW00103)	//手続内容確認
				|| next_screen_id.equals(JFUScreenConst.SCREEN_ID_FUW00123) //eoモバイル入力
				|| next_screen_id.equals(JFUScreenConst.SCREEN_ID_FUW00128) //eoID会員種別変更承諾
		//不要			||	next_screen_id.equals(JFUScreenConst.SCREEN_ID_FUW00158)	//契約状態確認ファミリー会員
				//不要			||	next_screen_id.equals(JFUScreenConst.SCREEN_ID_FUW00159)	//契約状態確認マスター会員
				|| next_screen_id.equals(JFUScreenConst.SCREEN_ID_FUW00161) //eoモバイルWiMAX申込
				))
		{
			// 処理を終了する
			return;
		}

		// アプリケーションプロパティファイルからSSOログインテストモードを取得
		String ssoLoginTestMode = JFUWebCommon.getApplicationConst(JFUStrConst.SSO_LOGIN_TEST_MODE);

		// SSOログインテストモードの場合
		if ("ON".equals(ssoLoginTestMode))
		{
			// 処理を終了する
			return;
		}

		// アプリケーションプロパティファイルから画像パスを取得
		String img_path = JFUWebCommon.getApplicationConst(APL_CONST_KEY_SSO_LOGIN_IMG_SRC);

		// アプリケーションプロパティファイルから画像パスが取得できなかった場合
		if (img_path == null || "".equals(img_path))
		{
			// 処理を終了する
			return;
		}

		// セッションからSMSESSIONを取得
		String smsession = getDataString("smsession_key");

		// セッションから値を取得できなかった場合
		if (JFUCommonUtil.isNull(smsession))
		{
			// 処理を終了する
			return;
		}
		//** 2016/10/05 ANK-3032-00-00 add start */
		try
		{
			smsession = URLEncoder.encode(smsession, "UTF-8");
		}
		catch (UnsupportedEncodingException ue)
		{
			// 処理を終了する
			return;
		}
		//** 2016/10/05 ANK-3032-00-00 add end */

		// img_src部分を生成
		StringBuilder sb = new StringBuilder();
		sb.append(img_path);
		sb.append(smsession);

		outputHtml("<img id=\"ssoLoginImg\" name=\"ssoLoginImg\" width=\"0\" height=\"0\" src=\"" + sb.toString() + "\"/>" + JFUStrConst.RETURN_CODE);
	}

	//障害No.204 AxM連携でのPMP画像読み込み対応(シングルサインオン) <<<E

	/**
	 * 共有フォームBeanより項目を取得します。
	 * <br>
	 * @param arg0
	 * @param idx
	 * @return 項目
	 */
	private String getDataString(String arg0)
	{
		String str = null;
		try
		{
			str = getSFBeanData_String(TAG_TEMPLATE, arg0);
			if (str == null || "null".equals(str))
			{
				str = "";
			}
		}
		catch (Exception e)
		{
			str = "";
		}
		return str;
	}

	/**
	 * 共有フォームBeanより項目を取得します。(階層構造型)
	 * <br>
	 * @param arg0
	 * @param idx
	 * @return 項目
	 */
	private String getDataString(String arg0, int idx)
	{
		String str = null;
		try
		{
			str = getSFBeanData_String(TAG_TEMPLATE, arg0, idx);
			if (str == null || "null".equals(str))
			{
				str = "";
			}
		}
		catch (Exception e)
		{
			str = "";
		}
		return str;
	}

	/**
	 * パターンを設定します。
	 * <br>
	 * @param arg0 パターン
	 */
	public void setPattern(String arg0)
	{
		this.pattern = arg0;
	}

	/**
	 * 整理番号を画面表示用にフォーマットします。
	 *
	 * @param seiriNo 整理番号
	 * @return フォーマットした整理番号
	 */
	private static String formatSeriNo(String seiriNo)
	{
		StringBuffer sb = new StringBuffer();
		sb.append(JFUStrConst.KIGOU_KAKKO_STA_HALF);
		if (!JFUWebCommon.isNull(seiriNo) && seiriNo.length() >= 10)
		{
			String seiriNoPre = seiriNo.substring(0, 10);
			String seiriNoSuf = seiriNo.substring(10);

			int seiriNoSufNum = Integer.parseInt(seiriNoSuf);
			sb.append(seiriNoPre).append(JFUStrConst.HALF_HAIHUN).append(seiriNoSufNum).append(JFUStrConst.KIGOU_KAKKO_END_HALF);
		}
		else
		{
			sb.append(seiriNo).append(JFUStrConst.KIGOU_KAKKO_END_HALF);
		}
		return sb.toString();
	}
}
