<?php
/**
 * IMPORTANT NOTE
 * The code of this system is closed and a private proprietary of Flex Solutions.
 * A written authorization/license from Flex Solutions is required before using or modifying this code.
 * Email: sales@flexsolution.biz, Phone: +962795342585, Website: http://www.flexsolutions.biz
 */

 class SiteController extends Controller
     {


     /**
      * Declares class-based actions.
      */
     public function actions()
     {
         return array(
             // captcha action renders the CAPTCHA image displayed on the contact page
             'captcha' => array(
                 'class' => 'CCaptchaAction',
                 'backColor' => 0xFFFFFF,
             ),
             // page action renders "static" pages stored under 'protected/views/site/pages'
             // They can be accessed via: index.php?r=site/page&view=FileName
             'page' => array(
                 'class' => 'CViewAction',
             ),
         );
     }


     /**
      * This action will be used to switch between Arabic and English languages
      */
     public function actionLanguage()
     {
         Yii::app()->session['lang'] = Yii::app()->session['lang'] == "" ? "en" : Yii::app()->session['lang'];
         Yii::app()->session['lang'] = (Yii::app()->session['lang'] == "en" ? "ar" : "en");
         $this->redirect(Yii::app()->homeUrl);
     }


     /**
      * This is the default 'index' action that is invoked
      * when an action is not explicitly requested by users.
      */
     public function actionIndex()
     {
         // renders the view file 'protected/views/site/index.php'
         // using the default layout 'protected/views/layouts/main.php'
         $this->render('index');
     }


     /**
      * This is the action to handle external exceptions.
      */
     public function actionError()
     {
         if ($error = Yii::app()->errorHandler->error)
         {
             if (Yii::app()->request->isAjaxRequest)
             {
                 echo $error['message'];
             }
             else
             {
                 Yii::app()->session['file'] = $error['file'];
                 Yii::app()->session['message'] = $error['message'];
                 Yii::app()->session['trace'] = $error['trace'];
                 $this->render('error', $error);
             }
         }
     }


     /**
      * This is the action to send the error to the support.
      */
     public function actionSendError()
     {
         $message = Yii::app()->session['message'];
         $trace = Yii::app()->session['trace'];
         $file = Yii::app()->session['file'];
         LSMSMail::sendMail("LSMS Error (" . date("Y-m-d") . ")",
                         "The File: " . $file . "<br />" .
                         "The Message: " . $message . "<br />" . "The Trace: " . $trace,
                         Yii::app()->params["support_email"]);
         $this->redirect(Yii::app()->homeUrl);
     }


     /**
      * Displays the contact page
      */
     public function actionContact()
     {
         $model = new ContactForm;
         if (isset($_POST['ContactForm']))
         {
             $model->attributes = $_POST['ContactForm'];
             if ($model->validate())
             {
                 $name = '=?UTF-8?B?' . base64_encode($model->name) . '?=';
                 $subject = '=?UTF-8?B?' . base64_encode($model->subject) . '?=';
                 $headers = "From: $name <{$model->email}>\r\n" .
                         "Reply-To: {$model->email}\r\n" .
                         "MIME-Version: 1.0\r\n" .
                         "Content-type: text/plain; charset=UTF-8";

                 mail(Yii::app()->params['adminEmail'], $subject, $model->body, $headers);
                 Yii::app()->user->setFlash('contact', 'Thank you for contacting us. We will respond to you as soon as possible.');
                 $this->refresh();
             }
         }
         $this->render('contact', array('model' => $model));
     }


     /**
      * Displays the login page
      */
     public function actionLogin()
     {
         $model = new LoginForm;
         // if it is ajax validation request
         if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form')
         {
             echo CActiveForm::validate($model);
             Yii::app()->end();
         }
         // collect user input data
         if (isset($_POST['LoginForm']))
         {
             $model->attributes = $_POST['LoginForm'];
             // validate user input and redirect to the previous page if valid
             if ($model->validate() && $model->login())
                 $this->redirect(Yii::app()->user->returnUrl);
         }
         // display the login form

         $this->renderPartial('login', array('model' => $model));
     }

     
     /**
      * Logs out the current user and redirect to homepage.
      */
     public function actionLogout()
     {
         //Add log for the log in operation
//         $log = new Log;
//         $log->user_id = Yii::app()->user->id;
//         $log->date_time = date("Y-m-d H:i:s");
//         $log->action = 'Log Out';
//         $log->save();
         Yii::app()->user->logout();
         $this->redirect(Yii::app()->createUrl('/site/login'));
     }


     public function actionUnauthorizedError()
     {
         $this->render('unauthorizedError');
     }
     }