/**
  * Login a profile.
  *
  * @return	bool
  * @param	int $profileId				Login the profile with this id in.
  * @param	bool[optional] $remember	Should we set a cookie for later?
  */
 public static function login($profileId, $remember = false)
 {
     // redefine vars
     $profileId = (int) $profileId;
     $remember = (bool) $remember;
     $secretKey = null;
     // cleanup old sessions
     self::cleanupOldSessions();
     // set profile_logged_in to true
     SpoonSession::set('frontend_profile_logged_in', true);
     // should we remember the user?
     if ($remember) {
         // generate secret key
         $secretKey = FrontendProfilesModel::getEncryptedString(SpoonSession::getSessionId(), FrontendProfilesModel::getRandomString());
         // set cookie
         SpoonCookie::set('frontend_profile_secret_key', $secretKey, 60 * 60 * 24 * 31);
     }
     // delete all records for this session to prevent duplicate keys (this should never happen)
     FrontendModel::getDB(true)->delete('profiles_sessions', 'session_id = ?', SpoonSession::getSessionId());
     // insert new session record
     FrontendModel::getDB(true)->insert('profiles_sessions', array('profile_id' => $profileId, 'session_id' => SpoonSession::getSessionId(), 'secret_key' => $secretKey, 'date' => FrontendModel::getUTCDate()));
     // update last login
     FrontendProfilesModel::update($profileId, array('last_login' => FrontendModel::getUTCDate()));
     // load the profile object
     self::$profile = new FrontendProfilesProfile($profileId);
 }