<%--
  デフォルト後処理スクリプト処理
--%>
<%@ page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%>
<%@ page import="java.util.Enumeration"%>
<%@ page import="jp.co.ntt.lms.imode.common.MobConst"%>
<%@ page import="jp.co.ntt.lms.imode.lo.scorm.engine.MobSCORMBean"%>

<%
    // SCORMBeanを取得
    MobSCORMBean scormBean = (MobSCORMBean) session.getAttribute(MobConst.S_SCORM_BEAN);
    if (scormBean == null) {
        // タイムアウト画面へ移動
        pageContext.forward(MobConst.C_TIMEOUT_URI);
        return;
    }


    // 入力パラメータから前処理スクリプトＵＲＬ取得
    String dispUrl = request.getParameter("disp_url");

    // 前処理スクリプト指定有無判定
    if (dispUrl == null || dispUrl.equals("")) {
        // 前処理スクリプト指定無
        String Command = null;
        // 全ての入力パラメータ名取得
        Enumeration nameEnumeration = request.getParameterNames();

        while (nameEnumeration.hasMoreElements()) {
            // パラメータ名
            String parameterName = (String) nameEnumeration.nextElement();
            // submit時押下ボタン名判定
            if (parameterName.equals("cont_btn")) {
                // 次頁押下
                Command = "continue";
                break;
            } else if (parameterName.equals("prev_btn")) {
                // 前頁押下
                Command = "previous";
                break;
            } else if (parameterName.equals("susp_btn")) {
                // 中断押下
                Command = "suspendAll";
                break;
            } else if (parameterName.equals("exit_btn")) {
                // 終了押下
                Command = "exitAll";
                break;
            }
        }
        if (Command != null) {
            // 次頁、前頁、中断、終了のいずれかのボタンが押下された場合エンジンにナビゲーション要求する
            // APIステータス状態取得
            String api_status = scormBean.getApi_status();

            // APIステータス状態イニシャライズ前か判定
            if (api_status != null && api_status.equals("NotInitialize")) {
               // イニシャライズ前の場合、イニシャライズ処理を行なう。
               scormBean.Initialize();
            }
            scormBean.SetValue("adl.nav.request", Command);
            scormBean.Terminate();
            if (!"0".equals(scormBean.GetLastError())) {
                // Terminate時エラー
                pageContext.forward(MobConst.C_SYS_ERR_URI);
            }
        } else {
            // 次URLが設定されていない
            pageContext.forward(MobConst.C_SYS_ERR_URI);
        }
    } else {
        // 前処理スクリプト指定が有る場合、前処理スクリプトＵＲＬを設定
        scormBean.setDispUrl(dispUrl);
    }
%>
