public function run()
 {
     $this->auth = new Auth();
     $this->auth->set_authname(_SYSTEM_AUTHINFO);
     $this->auth->set_sessname(_SYSTEM_SESSNAME);
     $this->auth->start();
     //ログイン状態になく、かつ typeがauthenticate でない
     if (!$this->auth->check_system() && $this->type != 'authenticate') {
         $this->type = 'login';
     }
     $this->is_system = true;
     $MemberController = new MemberController($this->is_system);
     $MemberMyPageController = new MemberMyPageController($this->is_system);
     $CustomerController = new CustomerController($this->is_system);
     switch ($this->type) {
         //認証
         case "authenticate":
             $this->do_authenticate();
             break;
             //ログイン
         //ログイン
         case "login":
             $this->screen_login();
             break;
             //ログアウト
         //ログアウト
         case "logout":
             $this->auth->logout();
             $this->screen_login();
             break;
             //・・・・・・・member・・・・・・・・・・・・・・・・・
             //登録会員の一覧
         //・・・・・・・member・・・・・・・・・・・・・・・・・
         //登録会員の一覧
         case "member_list":
             $this->screen_member_list();
             break;
             //会員情報の詳細
         //会員情報の詳細
         case "member_detail":
             $MemberMyPageController->screen_member_modify($this->auth);
             break;
             //新規会員の発行
         //新規会員の発行
         case "regist":
             $MemberController->screen_regist($this->auth);
             break;
             //新規会員の追加情報の登録
         //新規会員の追加情報の登録
         case "regist_add":
             $MemberController->screen_regist_add($this->auth);
             break;
             //会員情報の更新・削除の振り分け
         //会員情報の更新・削除の振り分け
         case "modify_or_delete":
             $this->screen_member_modify_or_delete();
             break;
             //会員情報の更新
         //会員情報の更新
         case "modify":
             $MemberMyPageController->screen_member_modify($this->auth);
             break;
             //会員情報の削除
         //会員情報の削除
         case "delete":
             $MemberMyPageController->screen_delete();
             break;
             //・・・・・・・・customer・・・・・・・・・・・・・・・・・・
             //顧客の一覧
         //・・・・・・・・customer・・・・・・・・・・・・・・・・・・
         //顧客の一覧
         case "customer_list":
             $this->screen_customer_list();
             break;
             //新規顧客の発行
         //新規顧客の発行
         case "customer_regist":
             $this->screen_customer_regist();
             break;
             //顧客情報の詳細
         //顧客情報の詳細
         case "customer_detail":
             $CustomerController->screen_company($this->auth);
             break;
             //顧客情報の更新・削除の振り分け
         //顧客情報の更新・削除の振り分け
         case "modify_or_delete_customer":
             $this->screen_customer_modify_or_delete();
             break;
             //顧客情報の更新
         //顧客情報の更新
         case "company":
             $CustomerController->screen_company($this->auth);
             break;
             //顧客情報の削除
         //顧客情報の削除
         case "delete_customer":
             $this->screen_customer_delete();
             break;
             //・・・・・・・・customerの案件・・・・・・・・・・・・・・・・・
             //案件一覧   ok
         //・・・・・・・・customerの案件・・・・・・・・・・・・・・・・・
         //案件一覧   ok
         case "list_project":
             $CustomerController->screen_list_project();
             break;
             //案件登録
         //案件登録
         case "regist_project":
             $CustomerController->screen_regist_project();
             break;
             //更新・削除、動作定義
         //更新・削除、動作定義
         case "modify_or_delete_project":
             $CustomerController->screen_modify_or_delete_project();
             break;
             //案件更新
         //案件更新
         case "modify_project":
             $CustomerController->screen_modify_project();
             break;
             //案件削除
         //案件削除
         case "delete_project":
             $CustomerController->screen_delete_project();
             break;
             //案件の詳細 顧客一覧より使用
         //案件の詳細 顧客一覧より使用
         case "detail_project":
             $MemberController->screen_detail_project();
             break;
             //・・・・・・・・メッセージ・・・・・・・・・・・・・・・・・・・・・・・・
             //メッセージ
         //・・・・・・・・メッセージ・・・・・・・・・・・・・・・・・・・・・・・・
         //メッセージ
         case "message_box":
             $this->screen_message_box();
             break;
             //メールの詳細を確認
         //メールの詳細を確認
         case "detail_message":
             $this->screen_detail_message();
             break;
             //・・・・・・・・応募履歴・・・・・・・・・・・・・・・・・・・・・・・・・
             //応募者一覧
         //・・・・・・・・応募履歴・・・・・・・・・・・・・・・・・・・・・・・・・
         //応募者一覧
         case "applicant_list":
             $this->screen_applicant_list();
             break;
             //・・・・・・・トップ画面・・・・・・・・・・・・・・・・・・・・・・・・・
         //・・・・・・・トップ画面・・・・・・・・・・・・・・・・・・・・・・・・・
         default:
             $this->screen_top();
     }
 }