public static function start()
 {
     // Include model
     incFile('modules/profile/system/Model.php');
     incFile('../mail/class.phpmailer.php');
     // Connect to DB
     $model = new ProfileModel();
     if (getSession('user')) {
         $id = getSession('user');
     } else {
         $id = getCookie('user');
         setSession('user', $id, false);
     }
     //  $id = (getSession('user')) ? getSession('user') : getCookie('user') ;
     if ($id) {
         $uData = array();
         // Update user
         $uData['controller'] = CONTROLLER;
         $uData['action'] = ACTION;
         $uData['dateLast'] = time();
         $model->updateUserByID($uData, $id);
         // Get data user
         Request::setParam('user', $model->getUserByID($id));
         // Count new message
         Request::setParam('countMsg', $model->countMsg($id));
         // Count new message
         Request::setParam('countRequests', $model->countRequests($id));
         // Count challenges
         Request::setParam('countChallenges', $model->countChallengesList($id));
     } else {
         $gip = ip2long($_SERVER['REMOTE_ADDR']);
         // Null
         Request::setParam('user', null);
         // Guest
         Request::setParam('guest', $model->getGuestByIP($gip));
         // Role
         Request::setRole('guest');
         /*
         // Language
         if (CONTROLLER == 'page' && ACTION == 'lang') {
             if (Request::getUri(0) == 'ru' OR Request::getUri(0) == 'en')
                 setMyCookie('lang', Request::getUri(0), time() + 365 * 86400);
         }
         
         $lang = getCookie('lang');
         
         if ($lang == 'ru' OR $lang == 'en')
             Lang::setLanguage($lang);
         else
             Lang::setLanguage();
         */
         if (Request::getParam('guest')->id) {
             $gData['count'] = Request::getParam('guest')->count + 1;
             $gData['time'] = time();
             $model->update('guests', $gData, "`id` = '" . Request::getParam('guest')->id . "' LIMIT 1");
         } else {
             $gData['ip'] = $gip;
             $gData['browser'] = $_SERVER['HTTP_USER_AGENT'];
             $gData['referer'] = $_SERVER['HTTP_REFERER'];
             $gData['count'] = 1;
             $gData['time'] = time();
             $model->insert('guests', $gData);
         }
     }
     // Count users online
     Request::setParam('countUsersOnline', $model->countUsersOnline());
     // Count guests online
     Request::setParam('countGuestsOnline', $model->countGuestsOnline());
 }
 public function setLoseAction()
 {
     $response['error'] = 0;
     if (isPost()) {
         $post = allPost();
         $model = new ProfileModel();
         if ($post['mid']) {
             $match = $model->getMatchByID($post['mid']);
             if ($match->blocked && !($match->pwin == "1" && $match->uwin == "2") && !($match->pwin == "2" && $match->uwin == "1")) {
                 if (Request::getParam('user')->id == $match->uid) {
                     $data['uwin'] = '2';
                     if ($match->pwin == "1") {
                         $data['status'] = 2;
                         $winner = $match->pid;
                         $loser = $match->uid;
                     }
                 } elseif (Request::getParam('user')->id == $match->pid) {
                     $data['pwin'] = '2';
                     if ($match->uwin == "1") {
                         $data['status'] = 2;
                         $winner = $match->uid;
                         $loser = $match->pid;
                     }
                 }
                 if ($data && $model->updateMatchWL($post['mid'], $data)) {
                     if ($winner && $loser) {
                         if ($winner == Request::getParam('user')->id) {
                             $userW = Request::getParam('user');
                             $userL = $model->getUserByID($loser);
                         } else {
                             $userW = $model->getUserByID($winner);
                             $userL = Request::getParam('user');
                         }
                         $countGamesW = $userW->wins + $userW->losses + 1;
                         $countGamesL = $userL->wins + $userL->losses + 1;
                         $eloW = elo($userW->elo, $userL->elo, $countGamesW, 1);
                         $eloL = elo($userL->elo, $userW->elo, $countGamesL, 0);
                         $model->updateWLStat($winner, $loser, $eloW, $eloL);
                     }
                 } else {
                     $response['error'] = Lang::translate("MATCH_DB_ERROR");
                 }
             } else {
                 $response['error'] = Lang::translate("MATCH_ENDED");
             }
         }
     } else {
         $response['error'] = Lang::translate("MATCH_EMPTY_DATA");
     }
     echo json_encode($response);
     exit;
 }