public function challengeAction()
 {
     if (empty($_SERVER['HTTP_X_REQUESTED_WITH'])) {
         error404();
     }
     $model = new ProfileModel();
     $data['uid'] = Request::getParam('user')->id;
     $role = Request::getParam('user')->role;
     $model->checkStamina($data['uid']);
     $data['pid'] = post('pid', 'int');
     $data['startTime'] = time();
     if ($model->getStamina($data['uid']) - 1 >= 0 or $role == 'admin') {
         if ($data['uid'] != $data['pid']) {
             if ($model->getUserByID($data['pid'])->id && !$model->getMatchesByUP($data['uid'], $data['pid'])->id) {
                 $result = $model->insert('matches', $data);
                 if ($result) {
                     if ($role != 'admin') {
                         $model->updateStamina($data['uid'], "-1");
                     }
                     $response['target_h']['#challenge'] = 'Challenge sent';
                     $response['target_h']['#challenge' . $data['pid']] = 'Challenge sent';
                 } else {
                     $response['target_h']['#challenge'] = 'Error challenge!';
                     $response['target_h']['#challenge' . $data['pid']] = 'Error challenge!';
                 }
             } else {
                 $response['target_h']['#challenge'] = 'You have already challenged this profile!';
                 $response['target_h']['#challenge' . $data['pid']] = 'You have already challenged this profile!';
             }
         } else {
             $response['target_h']['#challenge'] = 'You can not challenge for yourself!';
             $response['target_h']['#challenge' . $data['pid']] = 'You can not challenge for yourself!';
         }
     } else {
         $response['target_h']['#challenge'] = 'Not enough stamina, recover your stamina points or try again tomorrow.';
         $response['target_h']['#challenge' . $data['pid']] = 'Not enough stamina, recover your stamina points or try again tomorrow.';
     }
     $response['error'] = 0;
     echo json_encode($response);
     exit;
 }