Index: /branches/feature-module-update/data/class/pages/error/LC_Page_Error.php
===================================================================
--- /branches/feature-module-update/data/class/pages/error/LC_Page_Error.php	(revision 16401)
+++ /branches/feature-module-update/data/class/pages/error/LC_Page_Error.php	(revision 16425)
@@ -17,4 +17,21 @@
  */
 class LC_Page_Error extends LC_Page {
+
+    // {{{ properties
+
+    /** エラー種別 */
+    var $type;
+
+    /** SC_SiteSession インスタンス */
+    var $objSiteSess;
+
+    /** TOPへ戻るフラグ */
+    var $return_top = false;
+
+    /** エラーメッセージ */
+    var $err_msg = "";
+
+    /** モバイルサイトの場合 true */
+    var $is_mobile = false
 
     // }}}
@@ -40,4 +57,98 @@
     function process() {
         parent::process();
+
+        if ($this->objSiteSess != "") {
+            $this->objSiteSess->setNowPage('error');
+        }
+
+        if($this->is_mobile === true) {
+            $objView = new SC_MobileView();
+        } else {
+            $objView = new SC_SiteView();
+        }
+
+        switch ($this->type) {
+            case PRODUCT_NOT_FOUND:
+                $this->tpl_error="ご指定のページはございません。";
+                break;
+            case PAGE_ERROR:
+                $this->tpl_error="不正なページ移動です。";
+                break;
+            case CART_EMPTY:
+                $this->tpl_error="カートに商品ががありません。";
+                break;
+            case CART_ADD_ERROR:
+                $this->tpl_error="購入処理中は、カートに商品を追加することはできません。";
+                break;
+            case CANCEL_PURCHASE:
+                $this->tpl_error="この手続きは無効となりました。以下の要因が考えられます。<br />・セッション情報の有効期限が切れてる場合<br />・購入手続き中に新しい購入手続きを実行した場合<br />・すでに購入手続きを完了している場合";
+                break;
+            case CATEGORY_NOT_FOUND:
+                $this->tpl_error="ご指定のカテゴリは存在しません。";
+                break;
+            case SITE_LOGIN_ERROR:
+                $this->tpl_error="メールアドレスもしくはパスワードが正しくありません。";
+                break;
+            case TEMP_LOGIN_ERROR:
+                $this->tpl_error="メールアドレスもしくはパスワードが正しくありません。<br />本登録がお済みでない場合は、仮登録メールに記載されている<br />URLより本登録を行ってください。";
+                break;
+            case CUSTOMER_ERROR:
+                $this->tpl_error="不正なアクセスです。";
+                break;
+            case SOLD_OUT:
+                $this->tpl_error="申し訳ございませんが、ご購入の直前で売り切れた商品があります。この手続きは無効となりました。";
+                break;
+            case CART_NOT_FOUND:
+                $this->tpl_error="申し訳ございませんが、カート内の商品情報の取得に失敗しました。この手続きは無効となりました。";
+                break;
+            case LACK_POINT:
+                $this->tpl_error="申し訳ございませんが、ポイントが不足しております。この手続きは無効となりました。";
+                break;
+            case FAVORITE_ERROR:
+                $this->tpl_error="既にお気に入りに追加されている商品です。";
+                break;
+            case EXTRACT_ERROR:
+                $this->tpl_error="ファイルの解凍に失敗しました。\n指定のディレクトリに書き込み権限が与えられていない可能性があります。";
+                break;
+            case FTP_DOWNLOAD_ERROR:
+                $this->tpl_error="ファイルのFTPダウンロードに失敗しました。";
+                break;
+            case FTP_LOGIN_ERROR:
+                $this->tpl_error="FTPログインに失敗しました。";
+                break;
+            case FTP_CONNECT_ERROR:
+                $this->tpl_error="FTPログインに失敗しました。";
+                break;
+            case CREATE_DB_ERROR:
+                $this->tpl_error="DBの作成に失敗しました。\n指定のユーザーには、DB作成の権限が与えられていない可能性があります。";
+                break;
+            case DB_IMPORT_ERROR:
+                $this->tpl_error="データベース構造のインポートに失敗しました。\nsqlファイルが壊れている可能性があります。";
+                break;
+            case FILE_NOT_FOUND:
+                $this->tpl_error="指定のパスに、設定ファイルが存在しません。";
+                break;
+            case WRITE_FILE_ERROR:
+                $this->tpl_error="設定ファイルに書き込めません。\n設定ファイルに書き込み権限を与えてください。";
+                break;
+            case FREE_ERROR_MSG:
+                $this->tpl_error=$this->err_msg;
+                break;
+             default:
+                $this->tpl_error="エラーが発生しました。";
+                break;
+        }
+
+        $objView->assignobj($this);
+
+        // FIXME
+        global $objCampaignSess;
+
+        if(is_object($objCampaignSess)) {
+            // フレームを選択(キャンペーンページから遷移なら変更)
+            $objCampaignSess->pageView($objView);
+        } else {
+            $objView->display(SITE_FRAME);
+        }
     }
 
