public static function registerUser($data)
 {
     $errmsg = '';
     $user = new self();
     if ($data['data']['mail'] == '') {
         $user->errmsg = Texter::get('user|registrationNoMailFail');
     }
     if (!filter_var($data['data']['mail'], FILTER_VALIDATE_EMAIL)) {
         $user->errmsg = Texter::get('user|registrationNoValidMail');
     }
     database::Query('SELECT * FROM users WHERE mail=:var1', array('var1' => $data['data']['mail']), $stats);
     if ($stats > 0) {
         $user->errmsg = Texter::get('user|registrationMailFail');
     }
     $loginCredentials = $user->createPassword($data['password']);
     if ($loginCredentials['success'] == 0) {
         $user->errmsg = $loginCredentials['errmsg'];
     }
     if ($data['password'] != $data['password2']) {
         $user->errmsg = Texter::get('user|passwordNotEqualFail');
     }
     if ($user->errmsg == '') {
         foreach ($data['data'] as $key => $val) {
             $user->set($key, $val);
         }
         $user->set('accesscode', $user->getAccessCode());
         $user->set('salt', $loginCredentials['salt']);
         $user->set('password', $loginCredentials['password']);
         $user->save();
         logging::log(1, $user);
     }
     return $user;
 }