/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUTabletInfoUtil
*   ソースファイル名：JFUTabletInfoUtil.java
*   作成者          ：富士通
*   日付            ：2019年04月24日
*＜機能概要＞
*   フロント用タブレット情報部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v42.00.00   2019/04/24   FJ）大島    新規作成
*
**********************************************************************/
package eo.web.webview.common;

import java.util.HashMap;
import java.util.Map;

import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import eo.common.constant.JFUStrConst;


/**
 * フロント用タブレット情報部品です。
 * <br>
 * @author 富士通
 */
public class JFUTabletInfoUtil
{
	/** 端末情報定義取得パス  */
	private static final String QUERY_PATH_ITEM_COMMON = "DISPSETTING/COMMONSETTING";
	private static final String QUERY_PATH_ITEM_PERSONAL = "DISPSETTING/SETTING[@screenId='%1%']";
	private static final String QUERY_PATH_KIKIINFO = "/KIKIINFO[@id='%1%']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** 置き換え文字列1 */
	private static final String RE_1 = "%1%";
	/** FUTabletDifinitionInfo.xml用定義情報  */


	/**
	 * 引数のクエリを使用し指定した要素を文字列として取得し返却します。
	 * <br>
	 * @param query クエリ
	 * @return アイテム
	 * @throws Exception XML解析時に発生する例外
	 */
	public static String getTabletInfoItem(String query) throws Exception
	{
		return JFUTabletDifinitionCache.getInstance().getItem(query);
	}

	/**
	 * 引数のクエリを使い取得したNodeListの属性値をキーに、要素をバリューとして保持したMapを返却します。
	 * <br>
	 * @param query クエリ
	 * @param attrName 属性名
	 * @return Mapオブジェクト
	 * @throws Exception XML解析時に発生する例外
	 */
	public static Map<String, String> getTabletInfoItemsAsMap(String query, String attrName) throws Exception
	{
		return JFUTabletDifinitionCache.getInstance().getItemsAsMap(query, attrName);
	}

	/**
	 * エレメント取得処理
	 * <br/>
	 * エレメント取得処理を行ないます。
	 *
	 * @param root エレメント
	 * @param tagName 要素
	 * @param attr 属性
	 * @param attrName 属性の値
	 * @return 取得したエレメント
	 */
	public static Element getElement(Element root, String tagName, String attr, String attrName)
	{
		if (JFUWebCommon.isNull(root))
		{
			return null;
		}
		NodeList repairRootList = root.getElementsByTagName(tagName);
		Element repairRoot = null;

		for (int i = 0; i < repairRootList.getLength(); i++)
		{
			repairRoot = (Element)repairRootList.item(i);

			if (JFUWebCommon.isNull(attr))
			{
				break;
			}

			if (attrName.equals(repairRoot.getAttribute(attr)))
			{
				break;
			}

			// 一致する定義がない場合、NULLを設定
			repairRoot = null;
		}

		return repairRoot;
	}

	/**
	 * エレメントより値を取得
	 * <br/>
	 * エレメントより値を取得します。取得できない場合は空を返します。
	 *
	 * @param tempElement エレメント
	 * @return 取得した値
	 */
	public static String getItemContent(Element tempElement)
	{
		if (tempElement == null)
		{
			return JFUStrConst.EMPTY;
		}

		return tempElement.getTextContent();
	}

	/**
	 * 引数のクエリを使用し指定した要素を文字列として取得し返却します。
	 * <br>
	 * @param query クエリ
	 * @return アイテム
	 * @throws Exception XML解析時に発生する例外
	 */
	public static String getDispItem(String query) throws Exception
	{
		return JFUTabletDifinitionCache.getInstance().getItem(query);
	}

	/**
	 * JFUTabletDifinition, FULinkDefinitionから必要な情報を取得し、ワークマップに設定する。
	 * @param workMap ワークマップ
	 * @throws Exception XML解析例外
	 */
	public static void setTabletPropertyValueToWorkMap(String screenId, HashMap<String, String> workMap) throws Exception
	{
		// 表示対象の機器かチェック
		if (!checkShowTablet(screenId, workMap))
		{
			return;
		}
		// 端末情報取得
		String kikiInfoQuery = QUERY_PATH_KIKIINFO.replace(RE_1, (String)workMap.get("taknkikiModelCd"));
		// 共通情報クエリ
		String commonQuery = QUERY_PATH_ITEM_COMMON + kikiInfoQuery;
		// 個別情報クエリ
		String personalQuery = QUERY_PATH_ITEM_PERSONAL.replace(RE_1, screenId) + kikiInfoQuery;
		NodeList tempNodeList = null;
		Element commonElement = null;
		Element personalElement = null;
		Element tempElement = null;
		// プロパティファイルから情報取得
		String paramOpeDate = workMap.get(JFUStrConst.TABLET_DSP_DISPSTART_YMD);
		if (JFUWebCommon.isNull(paramOpeDate))
		{
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(commonQuery);
			commonElement = (Element)tempNodeList.item(0);
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(personalQuery);
			personalElement = (Element)tempNodeList.item(0);
		}
		else
		{
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(commonQuery);
			commonElement = kikancheck(paramOpeDate, tempNodeList);
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(personalQuery);
			personalElement = kikancheck(paramOpeDate, tempNodeList);
		}
		// 表示対象の機器である
		workMap.put(JFUStrConst.TABLET_DSP_TARGET_FLG, "1");
		// 宅内機器型式コード 
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_TAKNKIKI_MODEL_CD, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_TAKNKIKI_MODEL_CD, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_TAKNKIKI_MODEL_CD, (String)getItemContent(tempElement));
		// 宅内機器型式名
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_TAKNKIKI_MODEL_NM, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_TAKNKIKI_MODEL_NM, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_TAKNKIKI_MODEL_NM, (String)getItemContent(tempElement));
		// タブレット画像タイトル
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_IMG_TITLE, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_IMG_TITLE, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_IMG_TITLE, (String)getItemContent(tempElement));
		// タブレット画像クラス
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_IMG_CLASS, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_IMG_CLASS, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_IMG_CLASS, (String)getItemContent(tempElement));
		// 選択ボタン画像タイトル
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_SELECT_BUTTON_TITLE, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_SELECT_BUTTON_TITLE, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_SELECT_BUTTON_TITLE, (String)getItemContent(tempElement));
		// 選択ボタン画像クラス
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_SELECT_BUTTON_CLASS, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_SELECT_BUTTON_CLASS, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_SELECT_BUTTON_CLASS, (String)getItemContent(tempElement));
		// 端末説明
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_INFOMATION, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_INFOMATION, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_INFOMATION, (String)getItemContent(tempElement));
		// 端末詳細仕様
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_INFO_LINK, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_INFO_LINK, null, null);
		}
		workMap.put(JFUStrConst.TABLET_DSP_INFO_LINK, (String)getItemContent(tempElement));

		// 割賦プラン情報
		HashMap<String, String> paywayMap = new HashMap<String, String>();
		// 一括
		paywayMap = getPaywayInfo(JFUStrConst.CD01467_01, personalElement, commonElement);
		if (!JFUWebCommon.isNull(paywayMap))
		{
			workMap.putAll(paywayMap);
		}
		// 24回
		paywayMap = getPaywayInfo(JFUStrConst.CD01467_02, personalElement, commonElement);
		if (!JFUWebCommon.isNull(paywayMap))
		{
			workMap.putAll(paywayMap);
		}
		// 36回
		paywayMap = getPaywayInfo(JFUStrConst.CD01467_03, personalElement, commonElement);
		if (!JFUWebCommon.isNull(paywayMap))
		{
			workMap.putAll(paywayMap);
		}
	}

	/**
	 * 支払情報の取得
	 * @param kapHambaiFormCd
	 * @param personalElement
	 * @param commonElement
	 * @return
	 */
	private static HashMap<String, String> getPaywayInfo(String kapHambaiFormCd, Element personalElement, Element commonElement)
	{
		// 支払方法返却HashMap
		HashMap<String, String> paywayMap = new HashMap<String, String>();
		Element tempElement = null;
		// 割賦プランコード
		Element parsonalPaywayElement = getElement(personalElement, JFUStrConst.TABLET_DSP_PAYWAY, QUERY_ATTR_NAME, kapHambaiFormCd);
		Element commonPaywayElement = getElement(commonElement, JFUStrConst.TABLET_DSP_PAYWAY, QUERY_ATTR_NAME, kapHambaiFormCd);
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_CD, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_CD, null, null);
		}
		if (JFUWebCommon.isNull(tempElement))
		{
			return null;
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_KAP_PLAN_CD + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		// 割賦プラン文言
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_INFO, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_INFO, null, null);
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_KAP_PLAN_INFO + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		// 割引サービスコード
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_WRIB_SVC_CD, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_WRIB_SVC_CD, null, null);
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_WRIB_SVC_CD + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		// 支払詳細タイトル
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_TITLE, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_TITLE, null, null);
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_KAP_PLAN_TITLE + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		// 支払詳細
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_MNGN, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_KAP_PLAN_MNGN, null, null);
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_KAP_PLAN_MNGN + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		// キャンペーン名
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_CAMPAIGN_NM, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_CAMPAIGN_NM, null, null);
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_CAMPAIGN_NM + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		// キャンペーン説明文言
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_CAMPAIGN_INFO, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_CAMPAIGN_INFO, null, null);
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_CAMPAIGN_INFO + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		// キャンペーン説明URL
		tempElement = getElement(parsonalPaywayElement, JFUStrConst.TABLET_DSP_CAMPAIGN_INFO_LINK, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonPaywayElement, JFUStrConst.TABLET_DSP_CAMPAIGN_INFO_LINK, null, null);
		}
		paywayMap.put(JFUStrConst.TABLET_DSP_CAMPAIGN_INFO_LINK + "_" + kapHambaiFormCd, getItemContent(tempElement)) ;
		return paywayMap;
	}

	/**
	 * 表示対象のタブレットかチェックする
	 * @return ture:表示対象、false:表示対象ではない
	 * @throws Exception 
	 */
	public static boolean checkShowTablet(String screenId, HashMap<String, String> workMap) throws Exception
	{
		// 端末情報取得
		String kikiInfoQuery = QUERY_PATH_KIKIINFO.replace(RE_1, (String)workMap.get("taknkikiModelCd"));
		// 共通情報クエリ
		String commonQuery = QUERY_PATH_ITEM_COMMON + kikiInfoQuery;
		// 個別情報クエリ
		String personalQuery = QUERY_PATH_ITEM_PERSONAL.replace(RE_1, screenId) + kikiInfoQuery;
		NodeList tempNodeList = null;
		Element commonElement = null;
		Element personalElement = null;
		Element tempElement = null;
		// プロパティファイルから情報取得
		String paramOpeDate = workMap.get(JFUStrConst.TABLET_DSP_DISPSTART_YMD);
		if (JFUWebCommon.isNull(paramOpeDate))
		{
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(commonQuery);
			commonElement = (Element)tempNodeList.item(0);
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(personalQuery);
			personalElement = (Element)tempNodeList.item(0);
		}
		else
		{
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(commonQuery);
			commonElement = kikancheck(paramOpeDate, tempNodeList);
			tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(personalQuery);
			personalElement = kikancheck(paramOpeDate, tempNodeList);
		}
		// 機種情報なし
		if (JFUWebCommon.isNull(commonElement) && JFUWebCommon.isNull(personalElement))
		{
			return false;
		}
		// 機器種別
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_SYUBETSU, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_SYUBETSU, null, null);
		}
		String syubetsu = getItemContent(tempElement);
		workMap.put(JFUStrConst.TABLET_DSP_SYUBETSU, syubetsu);

		// 販売タイプ
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_HANBAI_TYPE, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_HANBAI_TYPE, null, null);
		}
		String hanbayType = getItemContent(tempElement);
		String paramHanbayType = workMap.get(JFUStrConst.TABLET_DSP_HANBAI_TYPE);
		if (!JFUWebCommon.isNull(hanbayType))
		{
			if (!hanbayType.contains(paramHanbayType))
			{
				return false;
			}
		}
		// 申込区分
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_MSKM_KBN, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_MSKM_KBN, null, null);
		}
		String mskmKbn = getItemContent(tempElement);
		String paramMskmKbn = workMap.get(JFUStrConst.TABLET_DSP_MSKM_KBN);
		if (!JFUWebCommon.isNull(mskmKbn))
		{
			if (!mskmKbn.contains(paramMskmKbn))
			{
				return false;
			}
		}
		// サービスタイプ識別コード
		tempElement = getElement(personalElement, JFUStrConst.TABLET_DSP_SERVICE_TYPE, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, JFUStrConst.TABLET_DSP_SERVICE_TYPE, null, null);
		}
		String serviceType = getItemContent(tempElement);
		String paramServiceType = workMap.get(JFUStrConst.TABLET_DSP_SERVICE_TYPE);
		if (!JFUWebCommon.isNull(serviceType))
		{
			if (!serviceType.contains(paramServiceType))
			{
				return false;
			}
		}
		return true;
	}
	
	/**
	 * キャンペーン情報を取得する
	 * @param taknkikiModelCd
	 * @param hanbaiKeitaiCd
	 * @param opeDate
	 * @return
	 * @throws Exception 
	 */
	public static HashMap<String, String> getCampignInfo(String taknkikiModelCd, String hanbaiKeitaiCd, String screenId, String opeDate) throws Exception
	{
		HashMap<String, String> retMap = new HashMap<String, String>();
		if (JFUWebCommon.isNull(taknkikiModelCd) || JFUWebCommon.isNull(hanbaiKeitaiCd) || JFUWebCommon.isNull(opeDate))
		{
			return retMap;
		}
		// 端末情報取得
		String kikiInfoQuery = QUERY_PATH_KIKIINFO.replace(RE_1, taknkikiModelCd);
		// 共通情報クエリ
		String commonQuery = QUERY_PATH_ITEM_COMMON + kikiInfoQuery;
		// 個別情報クエリ
		String personalQuery = QUERY_PATH_ITEM_PERSONAL.replace(RE_1, screenId) + kikiInfoQuery;
		NodeList tempNodeList = null;
		Element commonElement = null;
		Element personalElement = null;
		// プロパティファイルから情報取得
		tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(commonQuery);
		commonElement = kikancheck(opeDate, tempNodeList);
		tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(personalQuery);
		personalElement = kikancheck(opeDate, tempNodeList);
		// 機種情報なし
		if (JFUWebCommon.isNull(commonElement) && JFUWebCommon.isNull(personalElement))
		{
			return retMap;
		}
		// 割賦プラン情報
		HashMap<String, String> paywayMap = new HashMap<String, String>();
		// 一括
		paywayMap = getPaywayInfo(hanbaiKeitaiCd, personalElement, commonElement);
		if (!JFUWebCommon.isNull(paywayMap))
		{
			retMap.put("waribikiSvcCd", paywayMap.get(JFUStrConst.TABLET_DSP_WRIB_SVC_CD + "_" + hanbaiKeitaiCd));
			retMap.put("waribikiSvcName", paywayMap.get(JFUStrConst.TABLET_DSP_CAMPAIGN_NM + "_" + hanbaiKeitaiCd));
			retMap.put("waribikiSvcInfo", paywayMap.get(JFUStrConst.TABLET_DSP_CAMPAIGN_INFO + "_" + hanbaiKeitaiCd));
			retMap.put("waribikiSvcLink", paywayMap.get(JFUStrConst.TABLET_DSP_CAMPAIGN_INFO_LINK + "_" + hanbaiKeitaiCd));
		}
		return retMap;
	}
	
	/**
	 * 指定アイテムを取得する
	 * @param taknkikiModelCd
	 * @param itemName
	 * @param opeDate
	 * @return
	 * @throws Exception 
	 */
	public static String getItemInfo(String taknkikiModelCd, String itemName,String screenId, String opeDate) throws Exception
	{
		String ret = JFUStrConst.EMPTY;
		if (JFUWebCommon.isNull(taknkikiModelCd) || JFUWebCommon.isNull(itemName) || JFUWebCommon.isNull(opeDate))
		{
			return ret;
		}
		// 端末情報取得
		String kikiInfoQuery = QUERY_PATH_KIKIINFO.replace(RE_1, taknkikiModelCd);
		// 共通情報クエリ
		String commonQuery = QUERY_PATH_ITEM_COMMON + kikiInfoQuery;
		// 個別情報クエリ
		String personalQuery = QUERY_PATH_ITEM_PERSONAL.replace(RE_1, screenId) + kikiInfoQuery;
		NodeList tempNodeList = null;
		Element commonElement = null;
		Element personalElement = null;
		// プロパティファイルから情報取得
		tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(commonQuery);
		commonElement = kikancheck(opeDate, tempNodeList);
		tempNodeList = JFUTabletDifinitionCache.getInstance().getItemAsNodeList(personalQuery);
		personalElement = kikancheck(opeDate, tempNodeList);
		// 機種情報なし
		if (JFUWebCommon.isNull(commonElement) && JFUWebCommon.isNull(personalElement))
		{
			return ret;
		}
		Element tempElement = null;
		tempElement = getElement(personalElement, itemName, null, null);
		if (JFUWebCommon.isNull(tempElement))
		{
			tempElement = getElement(commonElement, itemName, null, null);
		}
		ret = getItemContent(tempElement);
		return ret;
	}
	
	/**
	 * 対象機器で有効期間内の情報を取得する。
	 * @param opeDate
	 * @param tempNodeList
	 * @return
	 */
	private static Element kikancheck(String opeDate, NodeList tempNodeList)
	{
		Element commonElement = null;
		if (!JFUWebCommon.isNull(opeDate))
		{
			Element tmpRoot = null;
			for (int i = 0; i < tempNodeList.getLength(); i++)
			{
				tmpRoot = (Element)tempNodeList.item(i);
				// 表示開始日
				String dispStartYmd = getItemContent(getElement(tmpRoot, JFUStrConst.TABLET_DSP_DISPSTART_YMD, null, null));
				// 表示終了日
				String dispEndYmd = getItemContent(getElement(tmpRoot, JFUStrConst.TABLET_DSP_DISPEND_YMD, null, null));
				if (JFUWebCommon.isNull(dispStartYmd))
				{
					// 開始日が設定されていないので表示対象外
					continue;
				}
				else
				{
					// 開始日以降
					if (dispStartYmd.compareTo(opeDate) <= 0)
					{
						if (!JFUWebCommon.isNull(dispEndYmd))
						{
							if (dispEndYmd.compareTo(opeDate) < 0)
							{
								// 期間終了
								continue;
							}
						}
					}
					else
					{
						// 期間前
						continue;
					}
				}
				commonElement = tmpRoot;
			}
		}
		return commonElement;
	}
	
}
