/********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：住所変更情報共通ヘッダ(出力部)
 *	ソースファイル名：JKKAdChgInfoCommonHeader.java
 *	作成者			：FJ
 *	日付			：2011年08月01日
 *＜機能概要＞
 *	各住所変更画面にて必要な共通情報の出力を行う部品。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/08/01	FJ			新規作成
 *	v3.00.00	2012/04/13	FJ			巻取り@案件対応
 *
 ********************************************************************/
package eo.web.webview.common;

import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;

import com.fujitsu.futurity.web.x33.X33VCustomTagBase;

import eo.web.webview.KKW04202SF.KKW04202SFConst;

/**
 * 住所変更情報共通ヘッダの出力内容をHTML形式で書き出します。
 * <br>
 * @author FJ
 */
@SuppressWarnings("serial")
public class JKKAdChgInfoCommonHeader extends X33VCustomTagBase {

	/** 住所変更選択情報の表示内容 */
	private String chgDivPrint = "";

	/** 住所変更選択情報の設定値: ON */
	public static final String CHG_DIV_PULLDOWN = "PULLDOWN";

	/** 住所変更選択情報の設定値: ON */
	public static final String CHG_DIV_LABEL = "LABEL";

	/** 共有フォームビーンへの接続情報: テンプレートID */
	public static final String TEMPLATE_ID = "TagTemplate001";

	/** 共有フォームビーンへの接続情報: 遷移先画面ID */
	public static final String SCREEN_ID = "NEXT_SCREEN_ID";

	/**
	 * 住所変更選択情報の表示判定を設定する
	 * <br>
	 * @param chgDivPrint
	 */
	public void setChgDivPrint( String chgDivPrint ) {
		this.chgDivPrint = chgDivPrint;
	}

	/**
	 * 住所変更情報共通ヘッダの出力内容をHTML形式で書き出します。
	 * <br>
	 * @return	SKIP_BODY	ボディ部の生成をスキップする
	 * @throws	Exception	例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public int doStartTag() throws JspException {

		// セッション情報へ接続する為のキー項目を生成
		StringBuffer keyBuf = new StringBuffer();
		// キー項目: 共有フォームビーン.遷移先画面ID + "_Adress_Chg_Info"
		keyBuf.append( this.getSFBeanData_String(TEMPLATE_ID , SCREEN_ID) );
		keyBuf.append( "_Adress_Chg_Info" );

		// セッション情報の取得
		HttpSession sessionInfo = super.pageContext.getSession();

		// セッション領域へキー項目の内容で接続
		HashMap<String, Object> adressChgCommonInfo = (HashMap<String, Object>) sessionInfo.getAttribute( keyBuf.toString() );

		// 接続情報が存在しない場合: ヘッダ部の出力を行わない
		if ( adressChgCommonInfo == null ) {
			return SKIP_BODY;
		}

		// ヘッダの出力内容をHTML形式で書き出す
		StringBuffer htmlBuf = new StringBuffer();

		htmlBuf.append("<div style='width:770px;height:150px;overflow:auto;'>");
		htmlBuf.append("<table width='750' class='noline'>");
			htmlBuf.append("<colgroup>");
				htmlBuf.append("<col width='15%'>");
				htmlBuf.append("<col width='15%'>");
				htmlBuf.append("<col width='15%'>");
				htmlBuf.append("<col width='15%'>");
				htmlBuf.append("<col width='12%'>");
				htmlBuf.append("<col width='16%'>");
				htmlBuf.append("<col width='12%'>");
			htmlBuf.append("</colgroup>");
			htmlBuf.append("<tr>");
				htmlBuf.append("<td class='label'>異動区分</td>");
				htmlBuf.append("<td class='data'>");
				if (adressChgCommonInfo.get("IDO_DIV") != null) {
					htmlBuf.append(adressChgCommonInfo.get("IDO_DIV").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
//●● TAI-2012-0000081 ADD 2012.08.08 Y.MORIMOTO START
//				htmlBuf.append("<td class='label'>M-ID</td>");// ●●● v3.00.00 マンション → M-ID
				htmlBuf.append("<td class='label'>Ｍ−ＩＤ</td>");
//●● TAI-2012-0000081 ADD 2012.08.08 Y.MORIMOTO END
				htmlBuf.append("<td class='data'>");
				if (adressChgCommonInfo.get("MANS_ID_P_ID") != null) {
					htmlBuf.append(adressChgCommonInfo.get("MANS_ID_P_ID").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
				htmlBuf.append("<td class='data' colspan='3'>");
				if (adressChgCommonInfo.get("MANS_NM_MEZON_NM") != null) {
					htmlBuf.append(adressChgCommonInfo.get("MANS_NM_MEZON_NM").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
			htmlBuf.append("</tr>");
			htmlBuf.append("<tr>");
				htmlBuf.append("<td class='label'>ＳＹＳＩＤ</td>");
				htmlBuf.append("<td class='data'>");
				if (adressChgCommonInfo.get("SYSID") != null) {
					htmlBuf.append(adressChgCommonInfo.get("SYSID").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
				htmlBuf.append("<td class='label'>ｅｏＩＤ</td>");
				htmlBuf.append("<td class='data' colspan='4'>");
				if (adressChgCommonInfo.get("EOID") != null) {
					htmlBuf.append(adressChgCommonInfo.get("EOID").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
			htmlBuf.append("</tr>");
			htmlBuf.append("<tr>");
				htmlBuf.append("<td class='label'>契約者名</td>");
				htmlBuf.append("<td class='data' colspan='2'>");
				if (adressChgCommonInfo.get("KEISHA_NM") != null) {
					htmlBuf.append(adressChgCommonInfo.get("KEISHA_NM").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
				htmlBuf.append("<td class='label'>契約者電話番号</td>");
				htmlBuf.append("<td class='data'>");
				if (adressChgCommonInfo.get("KEISHA_TEL") != null) {
					htmlBuf.append(adressChgCommonInfo.get("KEISHA_TEL").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
				htmlBuf.append("<td class='label'>利用場所電話番号</td>");
				htmlBuf.append("<td class='data'>");
				if (adressChgCommonInfo.get("USE_PLC_TEL") != null) {
					htmlBuf.append(adressChgCommonInfo.get("USE_PLC_TEL").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
			htmlBuf.append("</tr>");
			htmlBuf.append("<tr>");
				htmlBuf.append("<td class='label'>契約者住所</td>");
				htmlBuf.append("<td class='data' colspan='6'>");
				if (adressChgCommonInfo.get("KEISHA_AD") != null) {
					htmlBuf.append(adressChgCommonInfo.get("KEISHA_AD").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
			htmlBuf.append("</tr>");
			htmlBuf.append("<tr>");
				htmlBuf.append("<td class='label'>利用場所住所</td>");
				htmlBuf.append("<td class='data' colspan='6'>");
				if (adressChgCommonInfo.get("USE_PLC_AD") != null) {
					htmlBuf.append(adressChgCommonInfo.get("USE_PLC_AD").toString());
				} else {
					htmlBuf.append("&nbsp;");
				}
				htmlBuf.append("</td>");
			htmlBuf.append("</tr>");
		htmlBuf.append("</table>");

		// 住所変更選択情報の表示内容が存在する: 住所切替・工事依頼再選択を出力しない
		if ( !((this.chgDivPrint == null) || (this.chgDivPrint.length() == 0) || ("".equals(this.chgDivPrint))) ) {
			htmlBuf.append("<br>");
			htmlBuf.append("<table width='750' class='noline'>");
				htmlBuf.append("<colgroup>");
					htmlBuf.append("<col width='15%'>");
					htmlBuf.append("<col width='15%'>");
					htmlBuf.append("<col width='5%'>");
					htmlBuf.append("<col width='25%'>");
					htmlBuf.append("<col width='25%'>"); // ●●● v3.00.00 20% → 25%
					htmlBuf.append("<col width='15%'>"); // ●●● v3.00.00 20% → 15%
				htmlBuf.append("</colgroup>");
				htmlBuf.append("<tr>");
					if (CHG_DIV_PULLDOWN.equals(this.chgDivPrint)) {
						htmlBuf.append("<td class='label'>住所切替</td>");
						htmlBuf.append("<td class='data'>");
							if (adressChgCommonInfo.get("AD_CHG_DIV_PDN") != null) {
								HashMap<String, Object> cmnAdSwchPdn = (HashMap<String, Object>) adressChgCommonInfo.get("AD_CHG_DIV_PDN");
								String tmpSel = cmnAdSwchPdn.get(KKW04202SFConst.INDEX_01).toString();
								List<String> tmpCdList = (List<String>) cmnAdSwchPdn.get(KKW04202SFConst.CD_LIST_01);
								List<String> tmpNmList = (List<String>) cmnAdSwchPdn.get(KKW04202SFConst.CD_NM_LIST_01);
//◎◎IT障害(No.73) START
//								htmlBuf.append("<select id='cmn_ad_swch_pdn' name='cmn_ad_swch_pdn' class='clsInput' size='1'>");
								htmlBuf.append("<select id='cmn_ad_swch_pdn' name='cmn_ad_swch_pdn' class='clsInput' size='1' ");
								htmlBuf.append("onchange='chgSelectedEvent();' >");
//◎◎IT障害(No.73) END
									for (int i = 0; i < tmpCdList.size(); i ++) {
										htmlBuf.append("<option value='" + tmpCdList.get(i) + "'");
										if (String.valueOf(i).equals(tmpSel)) {
											htmlBuf.append(" selected ");
										}
										htmlBuf.append(">" + tmpNmList.get(i) + "</option>");
									}
								htmlBuf.append("</select>");
							} else {
								htmlBuf.append("&nbsp;");
							}
						htmlBuf.append("</td>");
						htmlBuf.append("<td class='noline'></td>");
						// ▼▼▼ v3.00.00 CHG ▼▼▼
//						htmlBuf.append("<td class='label'>工事再依頼選択</td>");
						htmlBuf.append("<td class='label' rowspan = '2'>工事再依頼選択</td>");
						htmlBuf.append("<td class='label'>eo光ネット・電話</td>");
						// ▲▲▲ v3.00.00 CHG ▲▲▲
						htmlBuf.append("<td class='data'>");
							if (adressChgCommonInfo.get("KOJI_RE_REQ_DIV_PDN") != null) {
								HashMap<String, Object> cmnKjReReqChocePdn = (HashMap<String, Object>) adressChgCommonInfo.get("KOJI_RE_REQ_DIV_PDN");
								String tmpSel = cmnKjReReqChocePdn.get(KKW04202SFConst.INDEX_01).toString();
								List<String> tmpCdList = (List<String>) cmnKjReReqChocePdn.get(KKW04202SFConst.CD_LIST_01);
								List<String> tmpNmList = (List<String>) cmnKjReReqChocePdn.get(KKW04202SFConst.CD_NM_LIST_01);
//◎◎IT障害(No.73) START
//								htmlBuf.append("<select id='cmn_kj_re_req_choice_pdn' name='cmn_kj_re_req_choice_pdn' class='clsInput' size='1'>");
								htmlBuf.append("<select id='cmn_kj_re_req_choice_pdn' name='cmn_kj_re_req_choice_pdn' class='clsInput' size='1' ");
								htmlBuf.append("onchange='chgSelectedEvent();' >");
//◎◎IT障害(No.73) END
									for (int i = 0; i < tmpCdList.size(); i ++) {
										htmlBuf.append("<option value='" + tmpCdList.get(i) + "'");
										if (String.valueOf(i).equals(tmpSel)) {
											htmlBuf.append(" selected ");
										}
										htmlBuf.append(">" + tmpNmList.get(i) + "</option>");
									}
								htmlBuf.append("</select>");
							} else {
								htmlBuf.append("&nbsp;");
							}
						htmlBuf.append("</td>");
						// ▼▼▼ v3.00.00 ADD ▼▼▼
						htmlBuf.append("</tr>");
						htmlBuf.append("<tr>");
						htmlBuf.append("<td class='noline' colspan = '3'></td>");
						htmlBuf.append("<td class='label'>eo光テレビ</td>");
						htmlBuf.append("<td class='data'>");
							if (adressChgCommonInfo.get("TV_KOJI_RE_REQ_DIV_PDN") != null) {
								HashMap<String, Object> cmnTvKjReReqChocePdn = (HashMap<String, Object>) adressChgCommonInfo.get("TV_KOJI_RE_REQ_DIV_PDN");
								String tmpSel = cmnTvKjReReqChocePdn.get(KKW04202SFConst.INDEX_01).toString();
								List<String> tmpCdList = (List<String>) cmnTvKjReReqChocePdn.get(KKW04202SFConst.CD_LIST_01);
								List<String> tmpNmList = (List<String>) cmnTvKjReReqChocePdn.get(KKW04202SFConst.CD_NM_LIST_01);
								htmlBuf.append("<select id='cmn_tv_kj_re_req_choice_pdn' name='cmn_tv_kj_re_req_choice_pdn' class='clsInput' size='1' ");
								htmlBuf.append("onchange='chgSelectedEvent();' >");
								for (int i = 0; i < tmpCdList.size(); i ++) {
									htmlBuf.append("<option value='" + tmpCdList.get(i) + "'");
									if (String.valueOf(i).equals(tmpSel)) {
										htmlBuf.append(" selected ");
									}
									htmlBuf.append(">" + tmpNmList.get(i) + "</option>");
								}
								htmlBuf.append("</select>");
							} else {
								htmlBuf.append("&nbsp;");
							}
						htmlBuf.append("</td>");
						// ▲▲▲ v3.00.00 ADD ▲▲▲
					} else {
						htmlBuf.append("<td class='label'>住所切替</td>");
						htmlBuf.append("<td class='data'>");
						if (adressChgCommonInfo.get("AD_CHG_DIV") != null) {
							htmlBuf.append(adressChgCommonInfo.get("AD_CHG_DIV").toString());
						} else {
							htmlBuf.append("&nbsp;");
						}
						htmlBuf.append("</td>");
						htmlBuf.append("<td class='noline'></td>");
						// ▼▼▼ v3.00.00 CHG ▼▼▼
//						htmlBuf.append("<td class='label'>工事再依頼選択</td>");
						htmlBuf.append("<td class='label' rowspan = '2'>工事再依頼選択</td>");
						htmlBuf.append("<td class='label'>eo光ネット・電話</td>");
						// ▲▲▲ v3.00.00 CHG ▲▲▲
						htmlBuf.append("<td class='data'>");
						if (adressChgCommonInfo.get("KOJI_RE_REQ_DIV") != null) {
							htmlBuf.append(adressChgCommonInfo.get("KOJI_RE_REQ_DIV").toString());
						} else {
							htmlBuf.append("&nbsp;");
						}
						htmlBuf.append("</td>");
						// ▼▼▼ v3.00.00 ADD ▼▼▼
						htmlBuf.append("<tr>");
						htmlBuf.append("<td class='noline' colspan = '3'></td>");
						htmlBuf.append("<td class='label'>eo光テレビ</td>");
						htmlBuf.append("<td class='data'>");
						if (adressChgCommonInfo.get("TV_KOJI_RE_REQ_DIV") != null) {
							htmlBuf.append(adressChgCommonInfo.get("TV_KOJI_RE_REQ_DIV").toString());
						} else {
							htmlBuf.append("&nbsp;");
						}
						htmlBuf.append("</td>");
						// ▲▲▲ v3.00.00 ADD ▲▲▲
					}
				htmlBuf.append("</tr>");
			htmlBuf.append("</table>");
			
//			htmlBuf.append("<br>");
		}
		htmlBuf.append("</div>");
		// HTML出力を行う
		this.outputHtml( htmlBuf.toString() );

		// セッション情報の破棄
		sessionInfo.removeAttribute( keyBuf.toString() );

		return SKIP_BODY;
	}
}

