aboutsummaryrefslogtreecommitdiffstats
path: root/library/ajaxchat/chat/lib
diff options
context:
space:
mode:
authormarijus <mario@localhost.localdomain>2014-01-30 00:08:40 +0100
committermarijus <mario@localhost.localdomain>2014-01-30 00:08:40 +0100
commita58239b9a8d8c35fa0e0b916617fa53d1014da58 (patch)
tree4ebaf732d319efb80d9edebd941fb0be9e35cc06 /library/ajaxchat/chat/lib
parentb39475db86eca7b5e5615d377d8adc64e6a33056 (diff)
parentfe2b6f3dfb4a9473905dde49b7741a6c03699c23 (diff)
downloadvolse-hubzilla-a58239b9a8d8c35fa0e0b916617fa53d1014da58.tar.gz
volse-hubzilla-a58239b9a8d8c35fa0e0b916617fa53d1014da58.tar.bz2
volse-hubzilla-a58239b9a8d8c35fa0e0b916617fa53d1014da58.zip
Merge branch 'upstream'
Diffstat (limited to 'library/ajaxchat/chat/lib')
-rw-r--r--library/ajaxchat/chat/lib/.htaccess4
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChat.php3326
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatDataBase.php81
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatEncoding.php138
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatFileSystem.php22
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatHTTPHeader.php56
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatLanguage.php102
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatMySQLDataBase.php92
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatMySQLQuery.php89
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatMySQLiDataBase.php91
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatMySQLiQuery.php81
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatString.php37
-rw-r--r--library/ajaxchat/chat/lib/class/AJAXChatTemplate.php329
-rw-r--r--library/ajaxchat/chat/lib/class/CustomAJAXChat.php124
-rw-r--r--library/ajaxchat/chat/lib/class/CustomAJAXChatInterface.php21
-rw-r--r--library/ajaxchat/chat/lib/class/CustomAJAXChatShoutBox.php25
-rw-r--r--library/ajaxchat/chat/lib/classes.php26
-rw-r--r--library/ajaxchat/chat/lib/config.php.example209
-rw-r--r--library/ajaxchat/chat/lib/custom.php11
-rw-r--r--library/ajaxchat/chat/lib/data/channels.php16
-rw-r--r--library/ajaxchat/chat/lib/data/users.php40
-rw-r--r--library/ajaxchat/chat/lib/lang/ar.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/bg.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/ca.php125
-rw-r--r--library/ajaxchat/chat/lib/lang/cy.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/cz.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/da.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/de.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/el.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/en.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/es.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/et.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/fa.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/fi.php125
-rw-r--r--library/ajaxchat/chat/lib/lang/fr.php125
-rw-r--r--library/ajaxchat/chat/lib/lang/gl.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/he.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/hr.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/hu.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/in.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/it.php125
-rw-r--r--library/ajaxchat/chat/lib/lang/ja.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/ka.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/kr.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/mk.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/nl-be.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/nl.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/no.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/pl.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/pt-br.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/pt-pt.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/ro.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/ru.php125
-rw-r--r--library/ajaxchat/chat/lib/lang/sk.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/sl.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/sr.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/sv.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/th.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/tr.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/uk.php124
-rw-r--r--library/ajaxchat/chat/lib/lang/zh-tw.php123
-rw-r--r--library/ajaxchat/chat/lib/lang/zh.php124
-rw-r--r--library/ajaxchat/chat/lib/template/loggedIn.html387
-rw-r--r--library/ajaxchat/chat/lib/template/loggedOut.html78
-rw-r--r--library/ajaxchat/chat/lib/template/logs.html276
-rw-r--r--library/ajaxchat/chat/lib/template/shoutbox.html60
66 files changed, 0 insertions, 10798 deletions
diff --git a/library/ajaxchat/chat/lib/.htaccess b/library/ajaxchat/chat/lib/.htaccess
deleted file mode 100644
index 91e386dc9..000000000
--- a/library/ajaxchat/chat/lib/.htaccess
+++ /dev/null
@@ -1,4 +0,0 @@
-AuthType Basic
-AuthName "Forbidden"
-AuthUserFile /dev/null
-require user nobody \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChat.php b/library/ajaxchat/chat/lib/class/AJAXChat.php
deleted file mode 100644
index 2cf7aa11f..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChat.php
+++ /dev/null
@@ -1,3326 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Ajax Chat backend logic:
-class AJAXChat {
-
- var $db;
- var $_config;
- var $_requestVars;
- var $_infoMessages;
- var $_channels;
- var $_allChannels;
- var $_view;
- var $_lang;
- var $_invitations;
- var $_customVars;
- var $_sessionNew;
- var $_onlineUsersData;
- var $_bannedUsersData;
-
- function __construct() {
- $this->initialize();
- }
-
- function initialize() {
- // Initialize configuration settings:
- $this->initConfig();
-
- // Initialize the DataBase connection:
- $this->initDataBaseConnection();
-
- // Initialize request variables:
- $this->initRequestVars();
-
- // Initialize the chat session:
- $this->initSession();
-
- // Handle the browser request and send the response content:
- $this->handleRequest();
- }
-
- function initConfig() {
- $config = null;
- if (!include(AJAX_CHAT_PATH.'lib/config.php')) {
- echo('<strong>Error:</strong> Could not find a config.php file in "'.AJAX_CHAT_PATH.'"lib/". Check to make sure the file exists.');
- die();
- }
- $this->_config = &$config;
-
- // Initialize custom configuration settings:
- $this->initCustomConfig();
- }
-
- function initRequestVars() {
- $this->_requestVars = array();
- $this->_requestVars['ajax'] = isset($_REQUEST['ajax']) ? true : false;
- $this->_requestVars['userID'] = isset($_REQUEST['userID']) ? (int)$_REQUEST['userID'] : null;
- $this->_requestVars['userName'] = isset($_REQUEST['userName']) ? $_REQUEST['userName'] : null;
- $this->_requestVars['channelID'] = isset($_REQUEST['channelID']) ? (int)$_REQUEST['channelID'] : null;
- $this->_requestVars['channelName'] = isset($_REQUEST['channelName']) ? $_REQUEST['channelName'] : null;
- $this->_requestVars['text'] = isset($_POST['text']) ? $_POST['text'] : null;
- $this->_requestVars['lastID'] = isset($_REQUEST['lastID']) ? (int)$_REQUEST['lastID'] : 0;
- $this->_requestVars['login'] = isset($_REQUEST['login']) ? true : false;
- $this->_requestVars['logout'] = isset($_REQUEST['logout']) ? true : false;
- $this->_requestVars['password'] = isset($_REQUEST['password']) ? $_REQUEST['password'] : null;
- $this->_requestVars['view'] = isset($_REQUEST['view']) ? $_REQUEST['view'] : null;
- $this->_requestVars['year'] = isset($_REQUEST['year']) ? (int)$_REQUEST['year'] : null;
- $this->_requestVars['month'] = isset($_REQUEST['month']) ? (int)$_REQUEST['month'] : null;
- $this->_requestVars['day'] = isset($_REQUEST['day']) ? (int)$_REQUEST['day'] : null;
- $this->_requestVars['hour'] = isset($_REQUEST['hour']) ? (int)$_REQUEST['hour'] : null;
- $this->_requestVars['search'] = isset($_REQUEST['search']) ? $_REQUEST['search'] : null;
- $this->_requestVars['shoutbox'] = isset($_REQUEST['shoutbox']) ? true : false;
- $this->_requestVars['getInfos'] = isset($_REQUEST['getInfos']) ? $_REQUEST['getInfos'] : null;
- $this->_requestVars['lang'] = isset($_REQUEST['lang']) ? $_REQUEST['lang'] : null;
- $this->_requestVars['delete'] = isset($_REQUEST['delete']) ? (int)$_REQUEST['delete'] : null;
-
- // Initialize custom request variables:
- $this->initCustomRequestVars();
-
- // Remove slashes which have been added to user input strings if magic_quotes_gpc is On:
- if(get_magic_quotes_gpc()) {
- // It is safe to remove the slashes as we escape user data ourself
- array_walk(
- $this->_requestVars,
- create_function(
- '&$value, $key',
- 'if(is_string($value)) $value = stripslashes($value);'
- )
- );
- }
- }
-
- function initDataBaseConnection() {
- // Create a new database object:
- $this->db = new AJAXChatDataBase(
- $this->_config['dbConnection']
- );
- // Use a new database connection if no existing is given:
- if(!$this->_config['dbConnection']['link']) {
- // Connect to the database server:
- $this->db->connect($this->_config['dbConnection']);
- if($this->db->error()) {
- echo $this->db->getError();
- die();
- }
- // Select the database:
- $this->db->select($this->_config['dbConnection']['name']);
- if($this->db->error()) {
- echo $this->db->getError();
- die();
- }
- }
- // Unset the dbConnection array for safety purposes:
- unset($this->_config['dbConnection']);
- }
-
- function getDataBaseTable($table) {
- return ($this->db->getName() ? '`'.$this->db->getName().'`.'.$this->getConfig('dbTableNames',$table) : $this->getConfig('dbTableNames',$table));
- }
-
- function initSession() {
- // Start the PHP session (if not already started):
- $this->startSession();
-
- if($this->isLoggedIn()) {
- // Logout if we receive a logout request, the chat has been closed or the userID could not be revalidated:
- if($this->getRequestVar('logout') || !$this->isChatOpen() || !$this->revalidateUserID()) {
- $this->logout();
- return;
- }
- // Logout if the Session IP is not the same when logged in and ipCheck is enabled:
- if($this->getConfig('ipCheck') && ($this->getSessionIP() === null || $this->getSessionIP() != $_SERVER['REMOTE_ADDR'])) {
- $this->logout('IP');
- return;
- }
- } else if(
- // Login if auto-login enabled or a login, userName or shoutbox parameter is given:
- $this->getConfig('forceAutoLogin') ||
- $this->getRequestVar('login') ||
- $this->getRequestVar('userName') ||
- $this->getRequestVar('shoutbox')
- ) {
- $this->login();
- }
-
- // Initialize the view:
- $this->initView();
-
- if($this->getView() == 'chat') {
- $this->initChatViewSession();
- } else if($this->getView() == 'logs') {
- $this->initLogsViewSession();
- }
-
- if(!$this->getRequestVar('ajax') && !headers_sent()) {
- // Set style cookie:
- $this->setStyle();
- // Set langCode cookie:
- $this->setLangCodeCookie();
- }
-
- $this->initCustomSession();
- }
-
- function initLogsViewSession() {
- if($this->getConfig('socketServerEnabled')) {
- if(!$this->getSessionVar('logsViewSocketAuthenticated')) {
- $this->updateLogsViewSocketAuthentication();
- $this->setSessionVar('logsViewSocketAuthenticated', true);
- }
- }
- }
-
- function updateLogsViewSocketAuthentication() {
- if($this->getUserRole() != AJAX_CHAT_ADMIN) {
- $channels = array();
- foreach($this->getChannels() as $channel) {
- if($this->getConfig('logsUserAccessChannelList') && !in_array($channel, $this->getConfig('logsUserAccessChannelList'))) {
- continue;
- }
- array_push($channels, $channel);
- }
- array_push($channels, $this->getPrivateMessageID());
- array_push($channels, $this->getPrivateChannelID());
- } else {
- // The channelID "ALL" authenticates for all channels:
- $channels = array('ALL');
- }
- $this->updateSocketAuthentication(
- $this->getUserID(),
- $this->getSocketRegistrationID(),
- $channels
- );
- }
-
- function initChatViewSession() {
- // If channel is not null we are logged in to the chat view:
- if($this->getChannel() !== null) {
- // Check if the current user has been logged out due to inactivity:
- if(!$this->isUserOnline()) {
- $this->logout();
- return;
- }
- if($this->getRequestVar('ajax')) {
- $this->initChannel();
- $this->updateOnlineStatus();
- $this->checkAndRemoveInactive();
- }
- } else {
- if($this->getRequestVar('ajax')) {
- // Set channel, insert login messages and add to online list on first ajax request in chat view:
- $this->chatViewLogin();
- }
- }
- }
-
- function isChatOpen() {
- if($this->getUserRole() == AJAX_CHAT_ADMIN)
- return true;
- if($this->getConfig('chatClosed'))
- return false;
- $time = time();
- if($this->getConfig('timeZoneOffset') !== null) {
- // Subtract the server timezone offset and add the config timezone offset:
- $time -= date('Z', $time);
- $time += $this->getConfig('timeZoneOffset');
- }
- // Check the opening hours:
- if($this->getConfig('openingHour') < $this->getConfig('closingHour'))
- {
- if(($this->getConfig('openingHour') > date('G', $time)) || ($this->getConfig('closingHour') <= date('G', $time)))
- return false;
- }
- else
- {
- if(($this->getConfig('openingHour') > date('G', $time)) && ($this->getConfig('closingHour') <= date('G', $time)))
- return false;
- }
- // Check the opening weekdays:
- if(!in_array(date('w', $time), $this->getConfig('openingWeekDays')))
- return false;
- return true;
- }
-
- function handleRequest() {
- if($this->getRequestVar('ajax')) {
- if($this->isLoggedIn()) {
- // Parse info requests (for current userName, etc.):
- $this->parseInfoRequests();
-
- // Parse command requests (e.g. message deletion):
- $this->parseCommandRequests();
-
- // Parse message requests:
- $this->initMessageHandling();
- }
- // Send chat messages and online user list in XML format:
- $this->sendXMLMessages();
- } else {
- // Display XHTML content for non-ajax requests:
- $this->sendXHTMLContent();
- }
- }
-
- function parseCommandRequests() {
- if($this->getRequestVar('delete') !== null) {
- $this->deleteMessage($this->getRequestVar('delete'));
- }
- }
-
- function parseInfoRequests() {
- if($this->getRequestVar('getInfos')) {
- $infoRequests = explode(',', $this->getRequestVar('getInfos'));
- foreach($infoRequests as $infoRequest) {
- $this->parseInfoRequest($infoRequest);
- }
- }
- }
-
- function parseInfoRequest($infoRequest) {
- switch($infoRequest) {
- case 'userID':
- $this->addInfoMessage($this->getUserID(), 'userID');
- break;
- case 'userName':
- $this->addInfoMessage($this->getUserName(), 'userName');
- break;
- case 'userRole':
- $this->addInfoMessage($this->getUserRole(), 'userRole');
- break;
- case 'channelID':
- $this->addInfoMessage($this->getChannel(), 'channelID');
- break;
- case 'channelName':
- $this->addInfoMessage($this->getChannelName(), 'channelName');
- break;
- case 'socketRegistrationID':
- $this->addInfoMessage($this->getSocketRegistrationID(), 'socketRegistrationID');
- break;
- default:
- $this->parseCustomInfoRequest($infoRequest);
- }
- }
-
- function sendXHTMLContent() {
- $httpHeader = new AJAXChatHTTPHeader($this->getConfig('contentEncoding'), $this->getConfig('contentType'));
-
- $template = new AJAXChatTemplate($this, $this->getTemplateFileName(), $httpHeader->getContentType());
-
- // Send HTTP header:
- $httpHeader->send();
-
- // Send parsed template content:
- echo $template->getParsedContent();
- }
-
- function getTemplateFileName() {
- switch($this->getView()) {
- case 'chat':
- return AJAX_CHAT_PATH.'lib/template/loggedIn.html';
- case 'logs':
- return AJAX_CHAT_PATH.'lib/template/logs.html';
- default:
- return AJAX_CHAT_PATH.'lib/template/loggedOut.html';
- }
- }
-
- function initView() {
- $this->_view = null;
- // "chat" is the default view:
- $view = ($this->getRequestVar('view') === null) ? 'chat' : $this->getRequestVar('view');
- if($this->hasAccessTo($view)) {
- $this->_view = $view;
- }
- }
-
- function getView() {
- return $this->_view;
- }
-
- function hasAccessTo($view) {
- switch($view) {
- case 'chat':
- case 'teaser':
- if($this->isLoggedIn()) {
- return true;
- }
- return false;
- case 'logs':
- if($this->isLoggedIn() && ($this->getUserRole() == AJAX_CHAT_ADMIN ||
- ($this->getConfig('logsUserAccess') &&
- ($this->getUserRole() == AJAX_CHAT_MODERATOR || $this->getUserRole() == AJAX_CHAT_USER))
- )) {
- return true;
- }
- return false;
- default:
- return false;
- }
- }
-
- function login() {
- // Retrieve valid login user data (from request variables or session data):
- $userData = $this->getValidLoginUserData();
-
- if(!$userData) {
- $this->addInfoMessage('errorInvalidUser');
- return false;
- }
-
- // If the chat is closed, only the admin may login:
- if(!$this->isChatOpen() && $userData['userRole'] != AJAX_CHAT_ADMIN) {
- $this->addInfoMessage('errorChatClosed');
- return false;
- }
-
- if(!$this->getConfig('allowGuestLogins') && $userData['userRole'] == AJAX_CHAT_GUEST) {
- return false;
- }
-
- // Check if userID or userName are already listed online:
- if($this->isUserOnline($userData['userID']) || $this->isUserNameInUse($userData['userName'])) {
- if($userData['userRole'] == AJAX_CHAT_USER || $userData['userRole'] == AJAX_CHAT_MODERATOR || $userData['userRole'] == AJAX_CHAT_ADMIN) {
- // Set the registered user inactive and remove the inactive users so the user can be logged in again:
- $this->setInactive($userData['userID'], $userData['userName']);
- $this->removeInactive();
- } else {
- $this->addInfoMessage('errorUserInUse');
- return false;
- }
- }
-
- // Check if user is banned:
- if($userData['userRole'] != AJAX_CHAT_ADMIN && $this->isUserBanned($userData['userName'], $userData['userID'], $_SERVER['REMOTE_ADDR'])) {
- $this->addInfoMessage('errorBanned');
- return false;
- }
-
- // Check if the max number of users is logged in (not affecting moderators or admins):
- if(!($userData['userRole'] == AJAX_CHAT_MODERATOR || $userData['userRole'] == AJAX_CHAT_ADMIN) && $this->isMaxUsersLoggedIn()) {
- $this->addInfoMessage('errorMaxUsersLoggedIn');
- return false;
- }
-
- // Use a new session id (if session has been started by the chat):
- $this->regenerateSessionID();
-
- // Log in:
- $this->setUserID($userData['userID']);
- $this->setUserName($userData['userName']);
- $this->setLoginUserName($userData['userName']);
- $this->setUserRole($userData['userRole']);
- $this->setLoggedIn(true);
- $this->setLoginTimeStamp(time());
-
- // IP Security check variable:
- $this->setSessionIP($_SERVER['REMOTE_ADDR']);
-
- // The client authenticates to the socket server using a socketRegistrationID:
- if($this->getConfig('socketServerEnabled')) {
- $this->setSocketRegistrationID(
- md5(uniqid(rand(), true))
- );
- }
-
- // Add userID, userName and userRole to info messages:
- $this->addInfoMessage($this->getUserID(), 'userID');
- $this->addInfoMessage($this->getUserName(), 'userName');
- $this->addInfoMessage($this->getUserRole(), 'userRole');
-
- // Purge logs:
- if($this->getConfig('logsPurgeLogs')) {
- $this->purgeLogs();
- }
-
- return true;
- }
-
- function chatViewLogin() {
- $this->setChannel($this->getValidRequestChannelID());
- $this->addToOnlineList();
-
- // Add channelID and channelName to info messages:
- $this->addInfoMessage($this->getChannel(), 'channelID');
- $this->addInfoMessage($this->getChannelName(), 'channelName');
-
- // Login message:
- $text = '/login '.$this->getUserName();
- $this->insertChatBotMessage(
- $this->getChannel(),
- $text,
- null,
- 1
- );
- }
-
- function getValidRequestChannelID() {
- $channelID = $this->getRequestVar('channelID');
- $channelName = $this->getRequestVar('channelName');
- // Check the given channelID, or get channelID from channelName:
- if($channelID === null) {
- if($channelName !== null) {
- $channelID = $this->getChannelIDFromChannelName($channelName);
- // channelName might need encoding conversion:
- if($channelID === null) {
- $channelID = $this->getChannelIDFromChannelName(
- $this->trimChannelName($channelName, $this->getConfig('contentEncoding'))
- );
- }
- }
- }
- // Validate the resulting channelID:
- if(!$this->validateChannel($channelID)) {
- if($this->getChannel() !== null) {
- return $this->getChannel();
- }
- return $this->getConfig('defaultChannelID');
- }
- return $channelID;
- }
-
- function initChannel() {
- $channelID = $this->getRequestVar('channelID');
- $channelName = $this->getRequestVar('channelName');
- if($channelID !== null) {
- $this->switchChannel($this->getChannelNameFromChannelID($channelID));
- } else if($channelName !== null) {
- if($this->getChannelIDFromChannelName($channelName) === null) {
- // channelName might need encoding conversion:
- $channelName = $this->trimChannelName($channelName, $this->getConfig('contentEncoding'));
- }
- $this->switchChannel($channelName);
- }
- }
-
- function logout($type=null) {
- // Update the socket server authentication for the user:
- if($this->getConfig('socketServerEnabled')) {
- $this->updateSocketAuthentication($this->getUserID());
- }
- if($this->isUserOnline()) {
- $this->chatViewLogout($type);
- }
- $this->setLoggedIn(false);
- $this->destroySession();
-
- // Re-initialize the view:
- $this->initView();
- }
-
- function chatViewLogout($type) {
- $this->removeFromOnlineList();
- if($type !== null) {
- $type = ' '.$type;
- }
- // Logout message
- $text = '/logout '.$this->getUserName().$type;
- $this->insertChatBotMessage(
- $this->getChannel(),
- $text,
- null,
- 1
- );
- }
-
- function switchChannel($channelName) {
- $channelID = $this->getChannelIDFromChannelName($channelName);
-
- if($channelID !== null && $this->getChannel() == $channelID) {
- // User is already in the given channel, return:
- return;
- }
-
- // Check if we have a valid channel:
- if(!$this->validateChannel($channelID)) {
- // Invalid channel:
- $text = '/error InvalidChannelName '.$channelName;
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- $text
- );
- return;
- }
-
- $oldChannel = $this->getChannel();
-
- $this->setChannel($channelID);
- $this->updateOnlineList();
-
- // Channel leave message
- $text = '/channelLeave '.$this->getUserName();
- $this->insertChatBotMessage(
- $oldChannel,
- $text,
- null,
- 1
- );
-
- // Channel enter message
- $text = '/channelEnter '.$this->getUserName();
- $this->insertChatBotMessage(
- $this->getChannel(),
- $text,
- null,
- 1
- );
-
- $this->addInfoMessage($channelName, 'channelSwitch');
- $this->addInfoMessage($channelID, 'channelID');
- $this->_requestVars['lastID'] = 0;
- }
-
- function addToOnlineList() {
- $sql = 'INSERT INTO '.$this->getDataBaseTable('online').'(
- userID,
- userName,
- userRole,
- channel,
- dateTime,
- ip
- )
- VALUES (
- '.$this->db->makeSafe($this->getUserID()).',
- '.$this->db->makeSafe($this->getUserName()).',
- '.$this->db->makeSafe($this->getUserRole()).',
- '.$this->db->makeSafe($this->getChannel()).',
- NOW(),
- '.$this->db->makeSafe($this->ipToStorageFormat($_SERVER['REMOTE_ADDR'])).'
- );';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $this->resetOnlineUsersData();
- }
-
- function removeFromOnlineList() {
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('online').'
- WHERE
- userID = '.$this->db->makeSafe($this->getUserID()).';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $this->removeUserFromOnlineUsersData();
- }
-
- function updateOnlineList() {
- $sql = 'UPDATE
- '.$this->getDataBaseTable('online').'
- SET
- userName = '.$this->db->makeSafe($this->getUserName()).',
- channel = '.$this->db->makeSafe($this->getChannel()).',
- dateTime = NOW(),
- ip = '.$this->db->makeSafe($this->ipToStorageFormat($_SERVER['REMOTE_ADDR'])).'
- WHERE
- userID = '.$this->db->makeSafe($this->getUserID()).';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $this->resetOnlineUsersData();
- }
-
- function initMessageHandling() {
- // Don't handle messages if we are not in chat view:
- if($this->getView() != 'chat') {
- return;
- }
-
- // Check if we have been uninvited from a private or restricted channel:
- if(!$this->validateChannel($this->getChannel())) {
- // Switch to the default channel:
- $this->switchChannel($this->getChannelNameFromChannelID($this->getConfig('defaultChannelID')));
- return;
- }
-
- if($this->getRequestVar('text') !== null) {
- $this->insertMessage($this->getRequestVar('text'));
- }
- }
-
- function insertParsedMessage($text) {
-
- // If a queryUserName is set, sent all messages as private messages to this userName:
- if($this->getQueryUserName() !== null && strpos($text, '/') !== 0) {
- $text = '/msg '.$this->getQueryUserName().' '.$text;
- }
-
- // Parse IRC-style commands:
- if(strpos($text, '/') === 0) {
- $textParts = explode(' ', $text);
-
- switch($textParts[0]) {
-
- // Channel switch:
- case '/join':
- $this->insertParsedMessageJoin($textParts);
- break;
-
- // Logout:
- case '/quit':
- $this->logout();
- break;
-
- // Private message:
- case '/msg':
- case '/describe':
- $this->insertParsedMessagePrivMsg($textParts);
- break;
-
- // Invitation:
- case '/invite':
- $this->insertParsedMessageInvite($textParts);
- break;
-
- // Uninvitation:
- case '/uninvite':
- $this->insertParsedMessageUninvite($textParts);
- break;
-
- // Private messaging:
- case '/query':
- $this->insertParsedMessageQuery($textParts);
- break;
-
- // Kicking offending users from the chat:
- case '/kick':
- $this->insertParsedMessageKick($textParts);
- break;
-
- // Listing banned users:
- case '/bans':
- $this->insertParsedMessageBans($textParts);
- break;
-
- // Unban user (remove from ban list):
- case '/unban':
- $this->insertParsedMessageUnban($textParts);
- break;
-
- // Describing actions:
- case '/me':
- case '/action':
- $this->insertParsedMessageAction($textParts);
- break;
-
-
- // Listing online Users:
- case '/who':
- $this->insertParsedMessageWho($textParts);
- break;
-
- // Listing available channels:
- case '/list':
- $this->insertParsedMessageList($textParts);
- break;
-
- // Retrieving the channel of a User:
- case '/whereis':
- $this->insertParsedMessageWhereis($textParts);
- break;
-
- // Listing information about a User:
- case '/whois':
- $this->insertParsedMessageWhois($textParts);
- break;
-
- // Rolling dice:
- case '/roll':
- $this->insertParsedMessageRoll($textParts);
- break;
-
- // Switching userName:
- case '/nick':
- $this->insertParsedMessageNick($textParts);
- break;
-
- // Custom or unknown command:
- default:
- if(!$this->parseCustomCommands($text, $textParts)) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UnknownCommand '.$textParts[0]
- );
- }
- }
-
- } else {
- // No command found, just insert the plain message:
- $this->insertCustomMessage(
- $this->getUserID(),
- $this->getUserName(),
- $this->getUserRole(),
- $this->getChannel(),
- $text
- );
- }
- }
-
- function insertParsedMessageJoin($textParts) {
- if(count($textParts) == 1) {
- // join with no arguments is the own private channel, if allowed:
- if($this->isAllowedToCreatePrivateChannel()) {
- // Private channels are identified by square brackets:
- $this->switchChannel($this->getChannelNameFromChannelID($this->getPrivateChannelID()));
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingChannelName'
- );
- }
- } else {
- $this->switchChannel($textParts[1]);
- }
- }
-
- function insertParsedMessagePrivMsg($textParts) {
- if($this->isAllowedToSendPrivateMessage()) {
- if(count($textParts) < 3) {
- if(count($textParts) == 2) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingText'
- );
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- }
- } else {
- // Get UserID from UserName:
- $toUserID = $this->getIDFromName($textParts[1]);
- if($toUserID === null) {
- if($this->getQueryUserName() !== null) {
- // Close the current query:
- $this->insertMessage('/query');
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- }
- } else {
- // Insert /privaction command if /describe is used:
- $command = ($textParts[0] == '/describe') ? '/privaction' : '/privmsg';
- // Copy of private message to current User:
- $this->insertCustomMessage(
- $this->getUserID(),
- $this->getUserName(),
- $this->getUserRole(),
- $this->getPrivateMessageID(),
- $command.'to '.$textParts[1].' '.implode(' ', array_slice($textParts, 2))
- );
- // Private message to requested User:
- $this->insertCustomMessage(
- $this->getUserID(),
- $this->getUserName(),
- $this->getUserRole(),
- $this->getPrivateMessageID($toUserID),
- $command.' '.implode(' ', array_slice($textParts, 2))
- );
- }
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error PrivateMessageNotAllowed'
- );
- }
- }
-
- function insertParsedMessageInvite($textParts) {
- if($this->getChannel() == $this->getPrivateChannelID() || in_array($this->getChannel(), $this->getChannels())) {
- if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- } else {
- $toUserID = $this->getIDFromName($textParts[1]);
- if($toUserID === null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- // Add the invitation to the database:
- $this->addInvitation($toUserID);
- $invitationChannelName = $this->getChannelNameFromChannelID($this->getChannel());
- // Copy of invitation to current User:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/inviteto '.$textParts[1].' '.$invitationChannelName
- );
- // Invitation to requested User:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID($toUserID),
- '/invite '.$this->getUserName().' '.$invitationChannelName
- );
- }
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error InviteNotAllowed'
- );
- }
- }
-
- function insertParsedMessageUninvite($textParts) {
- if($this->getChannel() == $this->getPrivateChannelID() || in_array($this->getChannel(), $this->getChannels())) {
- if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- } else {
- $toUserID = $this->getIDFromName($textParts[1]);
- if($toUserID === null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- // Remove the invitation from the database:
- $this->removeInvitation($toUserID);
- $invitationChannelName = $this->getChannelNameFromChannelID($this->getChannel());
- // Copy of uninvitation to current User:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/uninviteto '.$textParts[1].' '.$invitationChannelName
- );
- // Uninvitation to requested User:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID($toUserID),
- '/uninvite '.$this->getUserName().' '.$invitationChannelName
- );
- }
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UninviteNotAllowed'
- );
- }
- }
-
- function insertParsedMessageQuery($textParts) {
- if($this->isAllowedToSendPrivateMessage()) {
- if(count($textParts) == 1) {
- if($this->getQueryUserName() !== null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/queryClose '.$this->getQueryUserName()
- );
- // Close the current query:
- $this->setQueryUserName(null);
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error NoOpenQuery'
- );
- }
- } else {
- if($this->getIDFromName($textParts[1]) === null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- if($this->getQueryUserName() !== null) {
- // Close the current query:
- $this->insertMessage('/query');
- }
- // Open a query to the requested user:
- $this->setQueryUserName($textParts[1]);
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/queryOpen '.$textParts[1]
- );
- }
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error PrivateMessageNotAllowed'
- );
- }
- }
-
- function insertParsedMessageKick($textParts) {
- // Only moderators/admins may kick users:
- if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) {
- if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- } else {
- // Get UserID from UserName:
- $kickUserID = $this->getIDFromName($textParts[1]);
- if($kickUserID === null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- // Check the role of the user to kick:
- $kickUserRole = $this->getRoleFromID($kickUserID);
- if($kickUserRole == AJAX_CHAT_ADMIN || ($kickUserRole == AJAX_CHAT_MODERATOR && $this->getUserRole() != AJAX_CHAT_ADMIN)) {
- // Admins and moderators may not be kicked:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error KickNotAllowed '.$textParts[1]
- );
- } else {
- // Kick user and insert message:
- $channel = $this->getChannelFromID($kickUserID);
- $banMinutes = (count($textParts) > 2) ? $textParts[2] : null;
- $this->kickUser($textParts[1], $banMinutes, $kickUserID);
- // If no channel found, user logged out before he could be kicked
- if($channel !== null) {
- $this->insertChatBotMessage(
- $channel,
- '/kick '.$textParts[1],
- null,
- 1
- );
- // Send a copy of the message to the current user, if not in the channel:
- if($channel != $this->getChannel()) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/kick '.$textParts[1],
- null,
- 1
- );
- }
- }
- }
- }
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error CommandNotAllowed '.$textParts[0]
- );
- }
- }
-
- function insertParsedMessageBans($textParts) {
- // Only moderators/admins may see the list of banned users:
- if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) {
- $this->removeExpiredBans();
- $bannedUsers = $this->getBannedUsers();
- if(count($bannedUsers) > 0) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/bans '.implode(' ', $bannedUsers)
- );
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/bansEmpty -'
- );
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error CommandNotAllowed '.$textParts[0]
- );
- }
- }
-
- function insertParsedMessageUnban($textParts) {
- // Only moderators/admins may unban users:
- if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) {
- $this->removeExpiredBans();
- if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- } else {
- if(!in_array($textParts[1], $this->getBannedUsers())) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- // Unban user and insert message:
- $this->unbanUser($textParts[1]);
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/unban '.$textParts[1]
- );
- }
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error CommandNotAllowed '.$textParts[0]
- );
- }
- }
-
- function insertParsedMessageAction($textParts) {
- if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingText'
- );
- } else {
- if($this->getQueryUserName() !== null) {
- // If we are in query mode, sent the action to the query user:
- $this->insertMessage('/describe '.$this->getQueryUserName().' '.implode(' ', array_slice($textParts, 1)));
- } else {
- $this->insertCustomMessage(
- $this->getUserID(),
- $this->getUserName(),
- $this->getUserRole(),
- $this->getChannel(),
- implode(' ', $textParts)
- );
- }
- }
- }
-
- function insertParsedMessageWho($textParts) {
- if(count($textParts) == 1) {
- if($this->isAllowedToListHiddenUsers()) {
- // List online users from any channel:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/who '.implode(' ', $this->getOnlineUsers())
- );
- } else {
- // Get online users for all accessible channels:
- $channels = $this->getChannels();
- // Add the own private channel if allowed:
- if($this->isAllowedToCreatePrivateChannel()) {
- array_push($channels, $this->getPrivateChannelID());
- }
- // Add the invitation channels:
- foreach($this->getInvitations() as $channelID) {
- if(!in_array($channelID, $channels)) {
- array_push($channels, $channelID);
- }
- }
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/who '.implode(' ', $this->getOnlineUsers($channels))
- );
- }
- } else {
- $channelName = $textParts[1];
- $channelID = $this->getChannelIDFromChannelName($channelName);
- if(!$this->validateChannel($channelID)) {
- // Invalid channel:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error InvalidChannelName '.$channelName
- );
- } else {
- // Get online users for the given channel:
- $onlineUsers = $this->getOnlineUsers(array($channelID));
- if(count($onlineUsers) > 0) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/whoChannel '.$channelName.' '.implode(' ', $onlineUsers)
- );
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/whoEmpty -'
- );
- }
- }
- }
- }
-
- function insertParsedMessageList($textParts) {
- // Get the names of all accessible channels:
- $channelNames = $this->getChannelNames();
- // Add the own private channel, if allowed:
- if($this->isAllowedToCreatePrivateChannel()) {
- array_push($channelNames, $this->getPrivateChannelName());
- }
- // Add the invitation channels:
- foreach($this->getInvitations() as $channelID) {
- $channelName = $this->getChannelNameFromChannelID($channelID);
- if($channelName !== null && !in_array($channelName, $channelNames)) {
- array_push($channelNames, $channelName);
- }
- }
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/list '.implode(' ', $channelNames)
- );
- }
-
- function insertParsedMessageWhereis($textParts) {
- if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- } else {
- // Get UserID from UserName:
- $whereisUserID = $this->getIDFromName($textParts[1]);
- if($whereisUserID === null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- $channelID = $this->getChannelFromID($whereisUserID);
- if($this->validateChannel($channelID)) {
- $channelName = $this->getChannelNameFromChannelID($channelID);
- } else {
- $channelName = null;
- }
- if($channelName === null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- // List user information:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/whereis '.$textParts[1].' '.$channelName
- );
- }
- }
- }
- }
-
- function insertParsedMessageWhois($textParts) {
- // Only moderators/admins:
- if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) {
- if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- } else {
- // Get UserID from UserName:
- $whoisUserID = $this->getIDFromName($textParts[1]);
- if($whoisUserID === null) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameNotFound '.$textParts[1]
- );
- } else {
- // List user information:
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/whois '.$textParts[1].' '.$this->getIPFromID($whoisUserID)
- );
- }
- }
- } else {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error CommandNotAllowed '.$textParts[0]
- );
- }
- }
-
- function insertParsedMessageRoll($textParts) {
- if(count($textParts) == 1) {
- // default is one d6:
- $text = '/roll '.$this->getUserName().' 1d6 '.$this->rollDice(6);
- } else {
- $diceParts = explode('d', $textParts[1]);
- if(count($diceParts) == 2) {
- $number = (int)$diceParts[0];
- $sides = (int)$diceParts[1];
-
- // Dice number must be an integer between 1 and 100, else roll only one:
- $number = ($number > 0 && $number <= 100) ? $number : 1;
-
- // Sides must be an integer between 1 and 100, else take 6:
- $sides = ($sides > 0 && $sides <= 100) ? $sides : 6;
-
- $text = '/roll '.$this->getUserName().' '.$number.'d'.$sides.' ';
- for($i=0; $i<$number; $i++) {
- if($i != 0)
- $text .= ',';
- $text .= $this->rollDice($sides);
- }
- } else {
- // if dice syntax is invalid, roll one d6:
- $text = '/roll '.$this->getUserName().' 1d6 '.$this->rollDice(6);
- }
- }
- $this->insertChatBotMessage(
- $this->getChannel(),
- $text
- );
- }
-
- function insertParsedMessageNick($textParts) {
- if(!$this->getConfig('allowNickChange') ||
- (!$this->getConfig('allowGuestUserName') && $this->getUserRole() == AJAX_CHAT_GUEST)) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error CommandNotAllowed '.$textParts[0]
- );
- } else if(count($textParts) == 1) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MissingUserName'
- );
- } else {
- $newUserName = implode(' ', array_slice($textParts, 1));
- if($newUserName == $this->getLoginUserName()) {
- // Allow the user to regain the original login userName:
- $prefix = '';
- $suffix = '';
- } else if($this->getUserRole() == AJAX_CHAT_GUEST) {
- $prefix = $this->getConfig('guestUserPrefix');
- $suffix = $this->getConfig('guestUserSuffix');
- } else {
- $prefix = $this->getConfig('changedNickPrefix');
- $suffix = $this->getConfig('changedNickSuffix');
- }
- $maxLength = $this->getConfig('userNameMaxLength')
- - $this->stringLength($prefix)
- - $this->stringLength($suffix);
- $newUserName = $this->trimString($newUserName, 'UTF-8', $maxLength, true);
- if(!$newUserName) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error InvalidUserName'
- );
- } else {
- $newUserName = $prefix.$newUserName.$suffix;
- if($this->isUserNameInUse($newUserName)) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error UserNameInUse'
- );
- } else {
- $oldUserName = $this->getUserName();
- $this->setUserName($newUserName);
- $this->updateOnlineList();
- // Add info message to update the client-side stored userName:
- $this->addInfoMessage($this->getUserName(), 'userName');
- $this->insertChatBotMessage(
- $this->getChannel(),
- '/nick '.$oldUserName.' '.$newUserName,
- null,
- 2
- );
- }
- }
- }
- }
-
- function insertMessage($text) {
- if(!$this->isAllowedToWriteMessage())
- return;
-
- if(!$this->floodControl())
- return;
-
- $text = $this->trimMessageText($text);
- if($text == '')
- return;
-
- if(!$this->onNewMessage($text))
- return;
-
- $text = $this->replaceCustomText($text);
-
- $this->insertParsedMessage($text);
- }
-
- function deleteMessage($messageID) {
- // Retrieve the channel of the given message:
- $sql = 'SELECT
- channel
- FROM
- '.$this->getDataBaseTable('messages').'
- WHERE
- id='.$this->db->makeSafe($messageID).';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $row = $result->fetch();
-
- if($row['channel'] !== null) {
- $channel = $row['channel'];
-
- if($this->getUserRole() == AJAX_CHAT_ADMIN) {
- $condition = '';
- } else if($this->getUserRole() == AJAX_CHAT_MODERATOR) {
- $condition = ' AND
- NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_ADMIN).')
- AND
- NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_CHATBOT).')';
- } else if($this->getUserRole() == AJAX_CHAT_USER && $this->getConfig('allowUserMessageDelete')) {
- $condition = 'AND
- (
- userID='.$this->db->makeSafe($this->getUserID()).'
- OR
- (
- channel = '.$this->db->makeSafe($this->getPrivateMessageID()).'
- OR
- channel = '.$this->db->makeSafe($this->getPrivateChannelID()).'
- )
- AND
- NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_ADMIN).')
- AND
- NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_CHATBOT).')
- )';
- } else {
- return false;
- }
-
- // Remove given message from the database:
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('messages').'
- WHERE
- id='.$this->db->makeSafe($messageID).'
- '.$condition.';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- if($result->affectedRows() == 1) {
- // Insert a deletion command to remove the message from the clients chatlists:
- $this->insertChatBotMessage($channel, '/delete '.$messageID);
- return true;
- }
- }
- return false;
- }
-
- function floodControl() {
- // Moderators and Admins need no flood control:
- if($this->getUserRole() == AJAX_CHAT_MODERATOR || $this->getUserRole() == AJAX_CHAT_ADMIN) {
- return true;
- }
- $time = time();
- // Check the time of the last inserted message:
- if($this->getInsertedMessagesRateTimeStamp()+60 < $time) {
- $this->setInsertedMessagesRateTimeStamp($time);
- $this->setInsertedMessagesRate(1);
- } else {
- // Increase the inserted messages rate:
- $rate = $this->getInsertedMessagesRate()+1;
- $this->setInsertedMessagesRate($rate);
- // Check if message rate is too high:
- if($rate > $this->getConfig('maxMessageRate')) {
- $this->insertChatBotMessage(
- $this->getPrivateMessageID(),
- '/error MaxMessageRate'
- );
- // Return false so the message is not inserted:
- return false;
- }
- }
- return true;
- }
-
- function isAllowedToWriteMessage() {
- if($this->getUserRole() != AJAX_CHAT_GUEST)
- return true;
- if($this->getConfig('allowGuestWrite'))
- return true;
- return false;
- }
-
- function insertChatBotMessage($channelID, $messageText, $ip=null, $mode=0) {
- $this->insertCustomMessage(
- $this->getConfig('chatBotID'),
- $this->getConfig('chatBotName'),
- AJAX_CHAT_CHATBOT,
- $channelID,
- $messageText,
- $ip,
- $mode
- );
- }
-
- function insertCustomMessage($userID, $userName, $userRole, $channelID, $text, $ip=null, $mode=0) {
- // The $mode parameter is used for socket updates:
- // 0 = normal messages
- // 1 = channel messages (e.g. login/logout, channel enter/leave, kick)
- // 2 = messages with online user updates (nick)
-
- $ip = $ip ? $ip : $_SERVER['REMOTE_ADDR'];
-
- $sql = 'INSERT INTO '.$this->getDataBaseTable('messages').'(
- userID,
- userName,
- userRole,
- channel,
- dateTime,
- ip,
- text
- )
- VALUES (
- '.$this->db->makeSafe($userID).',
- '.$this->db->makeSafe($userName).',
- '.$this->db->makeSafe($userRole).',
- '.$this->db->makeSafe($channelID).',
- NOW(),
- '.$this->db->makeSafe($this->ipToStorageFormat($ip)).',
- '.$this->db->makeSafe($text).'
- );';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- if($this->getConfig('socketServerEnabled')) {
- $this->sendSocketMessage(
- $this->getSocketBroadcastMessage(
- $this->db->getLastInsertedID(),
- time(),
- $userID,
- $userName,
- $userRole,
- $channelID,
- $text,
- $mode
- )
- );
- }
- }
-
- function getSocketBroadcastMessage(
- $messageID,
- $timeStamp,
- $userID,
- $userName,
- $userRole,
- $channelID,
- $text,
- $mode
- ) {
- // The $mode parameter:
- // 0 = normal messages
- // 1 = channel messages (e.g. login/logout, channel enter/leave, kick)
- // 2 = messages with online user updates (nick)
-
- // Get the message XML content:
- $xml = '<root chatID="'.$this->getConfig('socketServerChatID').'" channelID="'.$channelID.'" mode="'.$mode.'">';
- if($mode) {
- // Add the list of online users if the user list has been updated ($mode > 0):
- $xml .= $this->getChatViewOnlineUsersXML(array($channelID));
- }
- if($mode != 1 || $this->getConfig('showChannelMessages')) {
- $xml .= '<messages>';
- $xml .= $this->getChatViewMessageXML(
- $messageID,
- $timeStamp,
- $userID,
- $userName,
- $userRole,
- $channelID,
- $text
- );
- $xml .= '</messages>';
- }
- $xml .= '</root>';
- return $xml;
- }
-
- function sendSocketMessage($message) {
- // Open a TCP socket connection to the socket server:
- if($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) {
- if(@socket_connect($socket, $this->getConfig('socketServerIP'), $this->getConfig('socketServerPort'))) {
- // Append a null-byte to the string as EOL (End Of Line) character
- // which is required by Flash XML socket communication:
- $message .= "\0";
- @socket_write(
- $socket,
- $message,
- strlen($message) // Using strlen to count the bytes instead of the number of UTF-8 characters
- );
- }
- @socket_close($socket);
- }
- }
-
- function updateSocketAuthentication($userID, $socketRegistrationID=null, $channels=null) {
- // If no $socketRegistrationID or no $channels are given the authentication is removed for the given user:
- $authentication = '<authenticate chatID="'.$this->getConfig('socketServerChatID').'" userID="'.$userID.'" regID="'.$socketRegistrationID.'">';
- if($channels) {
- foreach($channels as $channelID) {
- $authentication .= '<channel id="'.$channelID.'"/>';
- }
- }
- $authentication .= '</authenticate>';
- $this->sendSocketMessage($authentication);
- }
-
- function setSocketRegistrationID($value) {
- $this->setSessionVar('SocketRegistrationID', $value);
- }
-
- function getSocketRegistrationID() {
- return $this->getSessionVar('SocketRegistrationID');
- }
-
- function rollDice($sides) {
- // seed with microseconds since last "whole" second:
- mt_srand((double)microtime()*1000000);
-
- return mt_rand(1, $sides);
- }
-
- function kickUser($userName, $banMinutes=null, $userID=null) {
- if($userID === null) {
- $userID = $this->getIDFromName($userName);
- }
- if($userID === null) {
- return;
- }
-
- $banMinutes = $banMinutes ? $banMinutes : $this->getConfig('defaultBanTime');
-
- if($banMinutes) {
- // Ban User for the given time in minutes:
- $this->banUser($userName, $banMinutes, $userID);
- }
-
- // Remove given User from online list:
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('online').'
- WHERE
- userID = '.$this->db->makeSafe($userID).';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- // Update the socket server authentication for the kicked user:
- if($this->getConfig('socketServerEnabled')) {
- $this->updateSocketAuthentication($userID);
- }
-
- $this->removeUserFromOnlineUsersData($userID);
- }
-
- function getBannedUsersData($key=null, $value=null) {
- if($this->_bannedUsersData === null) {
- $this->_bannedUsersData = array();
-
- $sql = 'SELECT
- userID,
- userName,
- ip
- FROM
- '.$this->getDataBaseTable('bans').'
- WHERE
- NOW() < dateTime;';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- while($row = $result->fetch()) {
- $row['ip'] = $this->ipFromStorageFormat($row['ip']);
- array_push($this->_bannedUsersData, $row);
- }
-
- $result->free();
- }
-
- if($key) {
- $bannedUsersData = array();
- foreach($this->_bannedUsersData as $bannedUserData) {
- if(!isset($bannedUserData[$key])) {
- return $bannedUsersData;
- }
- if($value) {
- if($bannedUserData[$key] == $value) {
- array_push($bannedUsersData, $bannedUserData);
- } else {
- continue;
- }
- } else {
- array_push($bannedUsersData, $bannedUserData[$key]);
- }
- }
- return $bannedUsersData;
- }
-
- return $this->_bannedUsersData;
- }
-
- function getBannedUsers() {
- return $this->getBannedUsersData('userName');
- }
-
- function banUser($userName, $banMinutes=null, $userID=null) {
- if($userID === null) {
- $userID = $this->getIDFromName($userName);
- }
- $ip = $this->getIPFromID($userID);
- if(!$ip || $userID === null) {
- return;
- }
-
- // Remove expired bans:
- $this->removeExpiredBans();
-
- $banMinutes = (int)$banMinutes;
- if(!$banMinutes) {
- // If banMinutes is not a valid integer, use the defaultBanTime:
- $banMinutes = $this->getConfig('defaultBanTime');
- }
-
- $sql = 'INSERT INTO '.$this->getDataBaseTable('bans').'(
- userID,
- userName,
- dateTime,
- ip
- )
- VALUES (
- '.$this->db->makeSafe($userID).',
- '.$this->db->makeSafe($userName).',
- DATE_ADD(NOW(), interval '.$this->db->makeSafe($banMinutes).' MINUTE),
- '.$this->db->makeSafe($this->ipToStorageFormat($ip)).'
- );';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
-
- function unbanUser($userName) {
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('bans').'
- WHERE
- userName = '.$this->db->makeSafe($userName).';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
-
- function removeExpiredBans() {
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('bans').'
- WHERE
- dateTime < NOW();';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
-
- function setInactive($userID, $userName=null) {
- $condition = 'userID='.$this->db->makeSafe($userID);
- if($userName !== null) {
- $condition .= ' OR userName='.$this->db->makeSafe($userName);
- }
- $sql = 'UPDATE
- '.$this->getDataBaseTable('online').'
- SET
- dateTime = DATE_SUB(NOW(), interval '.(intval($this->getConfig('inactiveTimeout'))+1).' MINUTE)
- WHERE
- '.$condition.';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $this->resetOnlineUsersData();
- }
-
- function removeInactive() {
- $sql = 'SELECT
- userID,
- userName,
- channel
- FROM
- '.$this->getDataBaseTable('online').'
- WHERE
- NOW() > DATE_ADD(dateTime, interval '.$this->getConfig('inactiveTimeout').' MINUTE);';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- if($result->numRows() > 0) {
- $condition = '';
- while($row = $result->fetch()) {
- if(!empty($condition))
- $condition .= ' OR ';
- // Add userID to condition for removal:
- $condition .= 'userID='.$this->db->makeSafe($row['userID']);
-
- // Update the socket server authentication for the kicked user:
- if($this->getConfig('socketServerEnabled')) {
- $this->updateSocketAuthentication($row['userID']);
- }
-
- $this->removeUserFromOnlineUsersData($row['userID']);
-
- // Insert logout timeout message:
- $text = '/logout '.$row['userName'].' Timeout';
- $this->insertChatBotMessage(
- $row['channel'],
- $text,
- null,
- 1
- );
- }
-
- $result->free();
-
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('online').'
- WHERE
- '.$condition.';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
- }
-
- function updateOnlineStatus() {
- // Update online status every 50 seconds (this allows update requests to be in time):
- if(!$this->getStatusUpdateTimeStamp() || ((time() - $this->getStatusUpdateTimeStamp()) > 50)) {
- $this->updateOnlineList();
- $this->setStatusUpdateTimeStamp(time());
- }
- }
-
- function checkAndRemoveInactive() {
- // Remove inactive users every inactiveCheckInterval:
- if(!$this->getInactiveCheckTimeStamp() || ((time() - $this->getInactiveCheckTimeStamp()) > $this->getConfig('inactiveCheckInterval')*60)) {
- $this->removeInactive();
- $this->setInactiveCheckTimeStamp(time());
- }
- }
-
- function sendXMLMessages() {
- $httpHeader = new AJAXChatHTTPHeader('UTF-8', 'text/xml');
-
- // Send HTTP header:
- $httpHeader->send();
-
- // Output XML messages:
- echo $this->getXMLMessages();
- }
-
- function getXMLMessages() {
- switch($this->getView()) {
- case 'chat':
- return $this->getChatViewXMLMessages();
- case 'teaser':
- return $this->getTeaserViewXMLMessages();
- case 'logs':
- return $this->getLogsViewXMLMessages();
- default:
- return $this->getLogoutXMLMessage();
- }
- }
-
- function getMessageCondition() {
- $condition = 'id > '.$this->db->makeSafe($this->getRequestVar('lastID')).'
- AND (
- channel = '.$this->db->makeSafe($this->getChannel()).'
- OR
- channel = '.$this->db->makeSafe($this->getPrivateMessageID()).'
- )
- AND
- ';
- if($this->getConfig('requestMessagesPriorChannelEnter') ||
- ($this->getConfig('requestMessagesPriorChannelEnterList') && in_array($this->getChannel(), $this->getConfig('requestMessagesPriorChannelEnterList')))) {
- $condition .= 'NOW() < DATE_ADD(dateTime, interval '.$this->getConfig('requestMessagesTimeDiff').' HOUR)';
- } else {
- $condition .= 'dateTime >= FROM_UNIXTIME(' . $this->getChannelEnterTimeStamp() . ')';
- }
- return $condition;
- }
-
- function getMessageFilter() {
- $filterChannelMessages = '';
- if(!$this->getConfig('showChannelMessages') || $this->getRequestVar('shoutbox')) {
- $filterChannelMessages = ' AND NOT (
- text LIKE (\'/login%\')
- OR
- text LIKE (\'/logout%\')
- OR
- text LIKE (\'/channelEnter%\')
- OR
- text LIKE (\'/channelLeave%\')
- OR
- text LIKE (\'/kick%\')
- )';
- }
- return $filterChannelMessages;
- }
-
- function getInfoMessagesXML() {
- $xml = '<infos>';
- // Go through the info messages:
- foreach($this->getInfoMessages() as $type=>$infoArray) {
- foreach($infoArray as $info) {
- $xml .= '<info type="'.$type.'">';
- $xml .= '<![CDATA['.$this->encodeSpecialChars($info).']]>';
- $xml .= '</info>';
- }
- }
- $xml .= '</infos>';
- return $xml;
- }
-
- function getChatViewOnlineUsersXML($channelIDs) {
- // Get the online users for the given channels:
- $onlineUsersData = $this->getOnlineUsersData($channelIDs);
- $xml = '<users>';
- foreach($onlineUsersData as $onlineUserData) {
- $xml .= '<user';
- $xml .= ' userID="'.$onlineUserData['userID'].'"';
- $xml .= ' userRole="'.$onlineUserData['userRole'].'"';
- $xml .= ' channelID="'.$onlineUserData['channel'].'"';
- $xml .= '>';
- $xml .= '<![CDATA['.$this->encodeSpecialChars($onlineUserData['userName']).']]>';
- $xml .= '</user>';
- }
- $xml .= '</users>';
- return $xml;
- }
-
- function getLogoutXMLMessage() {
- $xml = '<?xml version="1.0" encoding="UTF-8"?>';
- $xml .= '<root>';
- $xml .= '<infos>';
- $xml .= '<info type="logout">';
- $xml .= '<![CDATA['.$this->encodeSpecialChars($this->getConfig('logoutData')).']]>';
- $xml .= '</info>';
- $xml .= '</infos>';
- $xml .= '</root>';
- return $xml;
- }
-
- function getChatViewMessageXML(
- $messageID,
- $timeStamp,
- $userID,
- $userName,
- $userRole,
- $channelID,
- $text
- ) {
- $message = '<message';
- $message .= ' id="'.$messageID.'"';
- $message .= ' dateTime="'.date('r', $timeStamp).'"';
- $message .= ' userID="'.$userID.'"';
- $message .= ' userRole="'.$userRole.'"';
- $message .= ' channelID="'.$channelID.'"';
- $message .= '>';
- $message .= '<username><![CDATA['.$this->encodeSpecialChars($userName).']]></username>';
- $message .= '<text><![CDATA['.$this->encodeSpecialChars($text).']]></text>';
- $message .= '</message>';
- return $message;
- }
-
- function getChatViewMessagesXML() {
- // Get the last messages in descending order (this optimises the LIMIT usage):
- $sql = 'SELECT
- id,
- userID,
- userName,
- userRole,
- channel AS channelID,
- UNIX_TIMESTAMP(dateTime) AS timeStamp,
- text
- FROM
- '.$this->getDataBaseTable('messages').'
- WHERE
- '.$this->getMessageCondition().'
- '.$this->getMessageFilter().'
- ORDER BY
- id
- DESC
- LIMIT '.$this->getConfig('requestMessagesLimit').';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $messages = '';
-
- // Add the messages in reverse order so it is ascending again:
- while($row = $result->fetch()) {
- $message = $this->getChatViewMessageXML(
- $row['id'],
- $row['timeStamp'],
- $row['userID'],
- $row['userName'],
- $row['userRole'],
- $row['channelID'],
- $row['text']
- );
- $messages = $message.$messages;
- }
- $result->free();
-
- $messages = '<messages>'.$messages.'</messages>';
- return $messages;
- }
-
- function getChatViewXMLMessages() {
- $xml = '<?xml version="1.0" encoding="UTF-8"?>';
- $xml .= '<root>';
- $xml .= $this->getInfoMessagesXML();
- $xml .= $this->getChatViewOnlineUsersXML(array($this->getChannel()));
- $xml .= $this->getChatViewMessagesXML();
- $xml .= '</root>';
- return $xml;
- }
-
- function getTeaserMessageCondition() {
- $channelID = $this->getValidRequestChannelID();
- $condition = 'channel = '.$this->db->makeSafe($channelID).'
- AND
- ';
- if($this->getConfig('requestMessagesPriorChannelEnter') ||
- ($this->getConfig('requestMessagesPriorChannelEnterList') && in_array($channelID, $this->getConfig('requestMessagesPriorChannelEnterList')))) {
- $condition .= 'NOW() < DATE_ADD(dateTime, interval '.$this->getConfig('requestMessagesTimeDiff').' HOUR)';
- } else {
- // Teaser content may not be shown for this channel:
- $condition .= '0 = 1';
- }
- return $condition;
- }
-
- function getTeaserViewMessagesXML() {
- // Get the last messages in descending order (this optimises the LIMIT usage):
- $sql = 'SELECT
- id,
- userID,
- userName,
- userRole,
- channel AS channelID,
- UNIX_TIMESTAMP(dateTime) AS timeStamp,
- text
- FROM
- '.$this->getDataBaseTable('messages').'
- WHERE
- '.$this->getTeaserMessageCondition().'
- '.$this->getMessageFilter().'
- ORDER BY
- id
- DESC
- LIMIT '.$this->getConfig('requestMessagesLimit').';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $messages = '';
-
- // Add the messages in reverse order so it is ascending again:
- while($row = $result->fetch()) {
- $message = '';
- $message .= '<message';
- $message .= ' id="'.$row['id'].'"';
- $message .= ' dateTime="'.date('r', $row['timeStamp']).'"';
- $message .= ' userID="'.$row['userID'].'"';
- $message .= ' userRole="'.$row['userRole'].'"';
- $message .= ' channelID="'.$row['channelID'].'"';
- $message .= '>';
- $message .= '<username><![CDATA['.$this->encodeSpecialChars($row['userName']).']]></username>';
- $message .= '<text><![CDATA['.$this->encodeSpecialChars($row['text']).']]></text>';
- $message .= '</message>';
- $messages = $message.$messages;
- }
- $result->free();
-
- $messages = '<messages>'.$messages.'</messages>';
- return $messages;
- }
-
- function getTeaserViewXMLMessages() {
- $xml = '<?xml version="1.0" encoding="UTF-8"?>';
- $xml .= '<root>';
- $xml .= $this->getInfoMessagesXML();
- $xml .= $this->getTeaserViewMessagesXML();
- $xml .= '</root>';
- return $xml;
- }
-
- function getLogsViewCondition() {
- $condition = 'id > '.$this->db->makeSafe($this->getRequestVar('lastID'));
-
- // Check the channel condition:
- switch($this->getRequestVar('channelID')) {
- case '-3':
- // Just display messages from all accessible channels
- if($this->getUserRole() != AJAX_CHAT_ADMIN) {
- $condition .= ' AND (channel = '.$this->db->makeSafe($this->getPrivateMessageID());
- $condition .= ' OR channel = '.$this->db->makeSafe($this->getPrivateChannelID());
- foreach($this->getChannels() as $channel) {
- if($this->getConfig('logsUserAccessChannelList') && !in_array($channel, $this->getConfig('logsUserAccessChannelList'))) {
- continue;
- }
- $condition .= ' OR channel = '.$this->db->makeSafe($channel);
- }
- $condition .= ')';
- }
- break;
- case '-2':
- if($this->getUserRole() != AJAX_CHAT_ADMIN) {
- $condition .= ' AND channel = '.($this->getPrivateMessageID());
- } else {
- $condition .= ' AND channel > '.($this->getConfig('privateMessageDiff')-1);
- }
- break;
- case '-1':
- if($this->getUserRole() != AJAX_CHAT_ADMIN) {
- $condition .= ' AND channel = '.($this->getPrivateChannelID());
- } else {
- $condition .= ' AND (channel > '.($this->getConfig('privateChannelDiff')-1).' AND channel < '.($this->getConfig('privateMessageDiff')).')';
- }
- break;
- default:
- if(($this->getUserRole() == AJAX_CHAT_ADMIN || !$this->getConfig('logsUserAccessChannelList') || in_array($this->getRequestVar('channelID'), $this->getConfig('logsUserAccessChannelList')))
- && $this->validateChannel($this->getRequestVar('channelID'))) {
- $condition .= ' AND channel = '.$this->db->makeSafe($this->getRequestVar('channelID'));
- } else {
- // No valid channel:
- $condition .= ' AND 0 = 1';
- }
- }
-
- // Check the period condition:
- $hour = ($this->getRequestVar('hour') === null || $this->getRequestVar('hour') > 23 || $this->getRequestVar('hour') < 0) ? null : $this->getRequestVar('hour');
- $day = ($this->getRequestVar('day') === null || $this->getRequestVar('day') > 31 || $this->getRequestVar('day') < 1) ? null : $this->getRequestVar('day');
- $month = ($this->getRequestVar('month') === null || $this->getRequestVar('month') > 12 || $this->getRequestVar('month') < 1) ? null : $this->getRequestVar('month');
- $year = ($this->getRequestVar('year') === null || $this->getRequestVar('year') > date('Y') || $this->getRequestVar('year') < $this->getConfig('logsFirstYear')) ? null : $this->getRequestVar('year');
-
- // If a time (hour) is given but no date (year, month, day), use the current date:
- if($hour !== null) {
- if($day === null)
- $day = date('j');
- if($month === null)
- $month = date('n');
- if($year === null)
- $year = date('Y');
- }
-
- if($year === null) {
- // No year given, so no period condition
- } else if($month === null) {
- // Define the given year as period:
- $periodStart = mktime(0, 0, 0, 1, 1, $year);
- // The last day in a month can be expressed by using 0 for the day of the next month:
- $periodEnd = mktime(23, 59, 59, 13, 0, $year);
- } else if($day === null) {
- // Define the given month as period:
- $periodStart = mktime(0, 0, 0, $month, 1, $year);
- // The last day in a month can be expressed by using 0 for the day of the next month:
- $periodEnd = mktime(23, 59, 59, $month+1, 0, $year);
- } else if($hour === null){
- // Define the given day as period:
- $periodStart = mktime(0, 0, 0, $month, $day, $year);
- $periodEnd = mktime(23, 59, 59, $month, $day, $year);
- } else {
- // Define the given hour as period:
- $periodStart = mktime($hour, 0, 0, $month, $day, $year);
- $periodEnd = mktime($hour, 59, 59, $month, $day, $year);
- }
-
- if(isset($periodStart))
- $condition .= ' AND dateTime > \''.date('Y-m-d H:i:s', $periodStart).'\' AND dateTime <= \''.date('Y-m-d H:i:s', $periodEnd).'\'';
-
- // Check the search condition:
- if($this->getRequestVar('search')) {
- if(($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) && strpos($this->getRequestVar('search'), 'ip=') === 0) {
- // Search for messages with the given IP:
- $ip = substr($this->getRequestVar('search'), 3);
- $condition .= ' AND (ip = '.$this->db->makeSafe($this->ipToStorageFormat($ip)).')';
- } else if(strpos($this->getRequestVar('search'), 'userID=') === 0) {
- // Search for messages with the given userID:
- $userID = substr($this->getRequestVar('search'), 7);
- $condition .= ' AND (userID = '.$this->db->makeSafe($userID).')';
- } else {
- // Use the search value as regular expression on message text and username:
- $condition .= ' AND (userName REGEXP '.$this->db->makeSafe($this->getRequestVar('search')).' OR text REGEXP '.$this->db->makeSafe($this->getRequestVar('search')).')';
- }
- }
-
- // If no period or search condition is given, just monitor the last messages on the given channel:
- if(!isset($periodStart) && !$this->getRequestVar('search')) {
- $condition .= ' AND NOW() < DATE_ADD(dateTime, interval '.$this->getConfig('logsRequestMessagesTimeDiff').' HOUR)';
- }
-
- return $condition;
- }
-
- function getLogsViewMessagesXML() {
- $sql = 'SELECT
- id,
- userID,
- userName,
- userRole,
- channel AS channelID,
- UNIX_TIMESTAMP(dateTime) AS timeStamp,
- ip,
- text
- FROM
- '.$this->getDataBaseTable('messages').'
- WHERE
- '.$this->getLogsViewCondition().'
- ORDER BY
- id
- LIMIT '.$this->getConfig('logsRequestMessagesLimit').';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- $xml = '<messages>';
- while($row = $result->fetch()) {
- $xml .= '<message';
- $xml .= ' id="'.$row['id'].'"';
- $xml .= ' dateTime="'.date('r', $row['timeStamp']).'"';
- $xml .= ' userID="'.$row['userID'].'"';
- $xml .= ' userRole="'.$row['userRole'].'"';
- $xml .= ' channelID="'.$row['channelID'].'"';
- if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) {
- $xml .= ' ip="'.$this->ipFromStorageFormat($row['ip']).'"';
- }
- $xml .= '>';
- $xml .= '<username><![CDATA['.$this->encodeSpecialChars($row['userName']).']]></username>';
- $xml .= '<text><![CDATA['.$this->encodeSpecialChars($row['text']).']]></text>';
- $xml .= '</message>';
- }
- $result->free();
-
- $xml .= '</messages>';
-
- return $xml;
- }
-
- function getLogsViewXMLMessages() {
- $xml = '<?xml version="1.0" encoding="UTF-8"?>';
- $xml .= '<root>';
- $xml .= $this->getInfoMessagesXML();
- $xml .= $this->getLogsViewMessagesXML();
- $xml .= '</root>';
- return $xml;
- }
-
- function purgeLogs() {
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('messages').'
- WHERE
- dateTime < DATE_SUB(NOW(), interval '.$this->getConfig('logsPurgeTimeDiff').' DAY);';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
-
- function getInfoMessages($type=null) {
- if(!isset($this->_infoMessages)) {
- $this->_infoMessages = array();
- }
- if($type) {
- if(!isset($this->_infoMessages[$type])) {
- $this->_infoMessages[$type] = array();
- }
- return $this->_infoMessages[$type];
- } else {
- return $this->_infoMessages;
- }
- }
-
- function addInfoMessage($info, $type='error') {
- if(!isset($this->_infoMessages)) {
- $this->_infoMessages = array();
- }
- if(!isset($this->_infoMessages[$type])) {
- $this->_infoMessages[$type] = array();
- }
- if(!in_array($info, $this->_infoMessages[$type])) {
- array_push($this->_infoMessages[$type], $info);
- }
- }
-
- function getRequestVars() {
- return $this->_requestVars;
- }
-
- function getRequestVar($key) {
- if($this->_requestVars && isset($this->_requestVars[$key])) {
- return $this->_requestVars[$key];
- }
- return null;
- }
-
- function setRequestVar($key, $value) {
- if(!$this->_requestVars) {
- $this->_requestVars = array();
- }
- $this->_requestVars[$key] = $value;
- }
-
- function getOnlineUsersData($channelIDs=null, $key=null, $value=null) {
- if($this->_onlineUsersData === null) {
- $this->_onlineUsersData = array();
-
- $sql = 'SELECT
- userID,
- userName,
- userRole,
- channel,
- UNIX_TIMESTAMP(dateTime) AS timeStamp,
- ip
- FROM
- '.$this->getDataBaseTable('online').'
- ORDER BY
- userName;';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- while($row = $result->fetch()) {
- $row['ip'] = $this->ipFromStorageFormat($row['ip']);
- array_push($this->_onlineUsersData, $row);
- }
-
- $result->free();
- }
-
- if($channelIDs || $key) {
- $onlineUsersData = array();
- foreach($this->_onlineUsersData as $userData) {
- if($channelIDs && !in_array($userData['channel'], $channelIDs)) {
- continue;
- }
- if($key) {
- if(!isset($userData[$key])) {
- return $onlineUsersData;
- }
- if($value !== null) {
- if($userData[$key] == $value) {
- array_push($onlineUsersData, $userData);
- } else {
- continue;
- }
- } else {
- array_push($onlineUsersData, $userData[$key]);
- }
- } else {
- array_push($onlineUsersData, $userData);
- }
- }
- return $onlineUsersData;
- }
-
- return $this->_onlineUsersData;
- }
-
- function removeUserFromOnlineUsersData($userID=null) {
- if(!$this->_onlineUsersData) {
- return;
- }
- $userID = ($userID === null) ? $this->getUserID() : $userID;
- for($i=0; $i<count($this->_onlineUsersData); $i++) {
- if($this->_onlineUsersData[$i]['userID'] == $userID) {
- array_splice($this->_onlineUsersData, $i, 1);
- break;
- }
- }
- }
-
- function resetOnlineUsersData() {
- $this->_onlineUsersData = null;
- }
-
- function getOnlineUsers($channelIDs=null) {
- return $this->getOnlineUsersData($channelIDs, 'userName');
- }
-
- function getOnlineUserIDs($channelIDs=null) {
- return $this->getOnlineUsersData($channelIDs, 'userID');
- }
-
- function startSession() {
- if(!session_id()) {
- // Set the session name:
- session_name($this->getConfig('sessionName'));
-
- // Set session cookie parameters:
- session_set_cookie_params(
- 0, // The session is destroyed on logout anyway, so no use to set this
- $this->getConfig('sessionCookiePath'),
- $this->getConfig('sessionCookieDomain'),
- $this->getConfig('sessionCookieSecure')
- );
-
- // Start the session:
- session_start();
-
- // We started a new session:
- $this->_sessionNew = true;
- }
- }
-
- function destroySession() {
- if($this->_sessionNew) {
- // Delete all session variables:
- $_SESSION = array();
-
- // Delete the session cookie:
- if (isset($_COOKIE[session_name()])) {
- setcookie(
- session_name(),
- '',
- time()-42000,
- $this->getConfig('sessionCookiePath'),
- $this->getConfig('sessionCookieDomain'),
- $this->getConfig('sessionCookieSecure')
- );
- }
-
- // Destroy the session:
- session_destroy();
- } else {
- // Unset all session variables starting with the sessionKeyPrefix:
- foreach($_SESSION as $key=>$value) {
- if(strpos($key, $this->getConfig('sessionKeyPrefix')) === 0) {
- unset($_SESSION[$key]);
- }
- }
- }
- }
-
- function regenerateSessionID() {
- if($this->_sessionNew) {
- // Regenerate session id:
- @session_regenerate_id(true);
- }
- }
-
- function getSessionVar($key, $prefix=null) {
- if($prefix === null)
- $prefix = $this->getConfig('sessionKeyPrefix');
-
- // Return the session value if existing:
- if(isset($_SESSION[$prefix.$key]))
- return $_SESSION[$prefix.$key];
- else
- return null;
- }
-
- function setSessionVar($key, $value, $prefix=null) {
- if($prefix === null)
- $prefix = $this->getConfig('sessionKeyPrefix');
-
- // Set the session value:
- $_SESSION[$prefix.$key] = $value;
- }
-
- function getSessionIP() {
- return $this->getSessionVar('IP');
- }
-
- function setSessionIP($ip) {
- $this->setSessionVar('IP', $ip);
- }
-
- function getQueryUserName() {
- return $this->getSessionVar('QueryUserName');
- }
-
- function setQueryUserName($userName) {
- $this->setSessionVar('QueryUserName', $userName);
- }
-
- function getInvitations() {
- if($this->_invitations === null) {
- $this->_invitations = array();
-
- $sql = 'SELECT
- channel
- FROM
- '.$this->getDataBaseTable('invitations').'
- WHERE
- userID='.$this->db->makeSafe($this->getUserID()).'
- AND
- DATE_SUB(NOW(), interval 1 DAY) < dateTime;';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
-
- while($row = $result->fetch()) {
- array_push($this->_invitations, $row['channel']);
- }
-
- $result->free();
- }
- return $this->_invitations;
- }
-
- function removeExpiredInvitations() {
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('invitations').'
- WHERE
- DATE_SUB(NOW(), interval 1 DAY) > dateTime;';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
-
- function addInvitation($userID, $channelID=null) {
- $this->removeExpiredInvitations();
-
- $channelID = ($channelID === null) ? $this->getChannel() : $channelID;
-
- $sql = 'INSERT INTO '.$this->getDataBaseTable('invitations').'(
- userID,
- channel,
- dateTime
- )
- VALUES (
- '.$this->db->makeSafe($userID).',
- '.$this->db->makeSafe($channelID).',
- NOW()
- );';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
-
- function removeInvitation($userID, $channelID=null) {
- $channelID = ($channelID === null) ? $this->getChannel() : $channelID;
-
- $sql = 'DELETE FROM
- '.$this->getDataBaseTable('invitations').'
- WHERE
- userID='.$this->db->makeSafe($userID).'
- AND
- channel='.$this->db->makeSafe($channelID).';';
-
- // Create a new SQL query:
- $result = $this->db->sqlQuery($sql);
-
- // Stop if an error occurs:
- if($result->error()) {
- echo $result->getError();
- die();
- }
- }
-
- function getUserID() {
- return $this->getSessionVar('UserID');
- }
-
- function setUserID($id) {
- $this->setSessionVar('UserID', $id);
- }
-
- function getUserName() {
- return $this->getSessionVar('UserName');
- }
-
- function setUserName($name) {
- $this->setSessionVar('UserName', $name);
- }
-
- function getLoginUserName() {
- return $this->getSessionVar('LoginUserName');
- }
-
- function setLoginUserName($name) {
- $this->setSessionVar('LoginUserName', $name);
- }
-
- function getUserRole() {
- $userRole = $this->getSessionVar('UserRole');
- if($userRole === null)
- return AJAX_CHAT_GUEST;
- return $userRole;
- }
-
- function setUserRole($role) {
- $this->setSessionVar('UserRole', $role);
- }
-
- function getChannel() {
- return $this->getSessionVar('Channel');
- }
-
- function setChannel($channel) {
- $this->setSessionVar('Channel', $channel);
-
- // Save the channel enter timestamp:
- $this->setChannelEnterTimeStamp(time());
-
- // Update the channel authentication for the socket server:
- if($this->getConfig('socketServerEnabled')) {
- $this->updateSocketAuthentication(
- $this->getUserID(),
- $this->getSocketRegistrationID(),
- array($channel,$this->getPrivateMessageID())
- );
- }
-
- // Reset the logs view socket authentication session var:
- if($this->getSessionVar('logsViewSocketAuthenticated')) {
- $this->setSessionVar('logsViewSocketAuthenticated', false);
- }
- }
-
- function isLoggedIn() {
- return (bool)$this->getSessionVar('LoggedIn');
- }
-
- function setLoggedIn($bool) {
- $this->setSessionVar('LoggedIn', $bool);
- }
-
- function getLoginTimeStamp() {
- return $this->getSessionVar('LoginTimeStamp');
- }
-
- function setLoginTimeStamp($time) {
- $this->setSessionVar('LoginTimeStamp', $time);
- }
-
- function getChannelEnterTimeStamp() {
- return $this->getSessionVar('ChannelEnterTimeStamp');
- }
-
- function setChannelEnterTimeStamp($time) {
- $this->setSessionVar('ChannelEnterTimeStamp', $time);
- }
-
- function getStatusUpdateTimeStamp() {
- return $this->getSessionVar('StatusUpdateTimeStamp');
- }
-
- function setStatusUpdateTimeStamp($time) {
- $this->setSessionVar('StatusUpdateTimeStamp', $time);
- }
-
- function getInactiveCheckTimeStamp() {
- return $this->getSessionVar('InactiveCheckTimeStamp');
- }
-
- function setInactiveCheckTimeStamp($time) {
- $this->setSessionVar('InactiveCheckTimeStamp', $time);
- }
-
- function getInsertedMessagesRate() {
- return $this->getSessionVar('InsertedMessagesRate');
- }
-
- function setInsertedMessagesRate($rate) {
- $this->setSessionVar('InsertedMessagesRate', $rate);
- }
-
- function getInsertedMessagesRateTimeStamp() {
- return $this->getSessionVar('InsertedMessagesRateTimeStamp');
- }
-
- function setInsertedMessagesRateTimeStamp($time) {
- $this->setSessionVar('InsertedMessagesRateTimeStamp', $time);
- }
-
- function getLangCode() {
- // Get the langCode from request or cookie:
- $langCodeCookie = isset($_COOKIE[$this->getConfig('sessionName').'_lang']) ? $_COOKIE[$this->getConfig('sessionName').'_lang'] : null;
- $langCode = $this->getRequestVar('lang') ? $this->getRequestVar('lang') : $langCodeCookie;
- // Check if the langCode is valid:
- if(!in_array($langCode, $this->getConfig('langAvailable'))) {
- // Determine the user language:
- $language = new AJAXChatLanguage($this->getConfig('langAvailable'), $this->getConfig('langDefault'));
- $langCode = $language->getLangCode();
- }
- return $langCode;
- }
-
- function setLangCodeCookie() {
- setcookie(
- $this->getConfig('sessionName').'_lang',
- $this->getLangCode(),
- time()+60*60*24*$this->getConfig('sessionCookieLifeTime'),
- $this->getConfig('sessionCookiePath'),
- $this->getConfig('sessionCookieDomain'),
- $this->getConfig('sessionCookieSecure')
- );
- }
-
- function removeUnsafeCharacters($str) {
- // Remove NO-WS-CTL, non-whitespace control characters (RFC 2822), decimal 1–8, 11–12, 14–31, and 127:
- return AJAXChatEncoding::removeUnsafeCharacters($str);
- }
-
- function subString($str, $start=0, $length=null, $encoding='UTF-8') {
- return AJAXChatString::subString($str, $start, $length, $encoding);
- }
-
- function stringLength($str, $encoding='UTF-8') {
- return AJAXChatString::stringLength($str, $encoding);
- }
-
- function trimMessageText($text) {
- return $this->trimString($text, 'UTF-8', $this->getConfig('messageTextMaxLength'));
- }
-
- function trimUserName($userName) {
- return $this->trimString($userName, null, $this->getConfig('userNameMaxLength'), true, true);
- }
-
- function trimChannelName($channelName) {
- return $this->trimString($channelName, null, null, true, true);
- }
-
- function trimString($str, $sourceEncoding=null, $maxLength=null, $replaceWhitespace=false, $decodeEntities=false, $htmlEntitiesMap=null) {
- // Make sure the string contains valid unicode:
- $str = $this->convertToUnicode($str, $sourceEncoding);
-
- // Make sure the string contains no unsafe characters:
- $str = $this->removeUnsafeCharacters($str);
-
- // Strip whitespace from the beginning and end of the string:
- $str = trim($str);
-
- if($replaceWhitespace) {
- // Replace any whitespace in the userName with the underscore "_":
- $str = preg_replace('/\s/u', '_', $str);
- }
-
- if($decodeEntities) {
- // Decode entities:
- $str = $this->decodeEntities($str, 'UTF-8', $htmlEntitiesMap);
- }
-
- if($maxLength) {
- // Cut the string to the allowed length:
- $str = $this->subString($str, 0, $maxLength);
- }
-
- return $str;
- }
-
- function convertToUnicode($str, $sourceEncoding=null) {
- if($sourceEncoding === null) {
- $sourceEncoding = $this->getConfig('sourceEncoding');
- }
- return $this->convertEncoding($str, $sourceEncoding, 'UTF-8');
- }
-
- function convertFromUnicode($str, $contentEncoding=null) {
- if($contentEncoding === null) {
- $contentEncoding = $this->getConfig('contentEncoding');
- }
- return $this->convertEncoding($str, 'UTF-8', $contentEncoding);
- }
-
- function convertEncoding($str, $charsetFrom, $charsetTo) {
- return AJAXChatEncoding::convertEncoding($str, $charsetFrom, $charsetTo);
- }
-
- function encodeEntities($str, $encoding='UTF-8', $convmap=null) {
- return AJAXChatEncoding::encodeEntities($str, $encoding, $convmap);
- }
-
- function decodeEntities($str, $encoding='UTF-8', $htmlEntitiesMap=null) {
- return AJAXChatEncoding::decodeEntities($str, $encoding, $htmlEntitiesMap);
- }
-
- function htmlEncode($str) {
- return AJAXChatEncoding::htmlEncode($str, $this->getConfig('contentEncoding'));
- }
-
- function encodeSpecialChars($str) {
- return AJAXChatEncoding::encodeSpecialChars($str);
- }
-
- function decodeSpecialChars($str) {
- return AJAXChatEncoding::decodeSpecialChars($str);
- }
-
- function ipToStorageFormat($ip) {
- if(function_exists('inet_pton')) {
- // ipv4 & ipv6:
- return @inet_pton($ip);
- }
- // Only ipv4:
- return @pack('N',@ip2long($ip));
- }
-
- function ipFromStorageFormat($ip) {
- if(function_exists('inet_ntop')) {
- // ipv4 & ipv6:
- return @inet_ntop($ip);
- }
- // Only ipv4:
- $unpacked = @unpack('Nlong',$ip);
- if(isset($unpacked['long'])) {
- return @long2ip($unpacked['long']);
- }
- return null;
- }
-
- function getConfig($key, $subkey=null) {
- if($subkey)
- return $this->_config[$key][$subkey];
- else
- return $this->_config[$key];
- }
-
- function setConfig($key, $subkey, $value) {
- if($subkey) {
- if(!isset($this->_config[$key])) {
- $this->_config[$key] = array();
- }
- $this->_config[$key][$subkey] = $value;
- } else {
- $this->_config[$key] = $value;
- }
- }
-
- function getLang($key=null) {
- if(!$this->_lang) {
- // Include the language file:
- $lang = null;
- require(AJAX_CHAT_PATH.'lib/lang/'.$this->getLangCode().'.php');
- $this->_lang = &$lang;
- }
- if($key === null)
- return $this->_lang;
- if(isset($this->_lang[$key]))
- return $this->_lang[$key];
- return null;
- }
-
- function getChatURL() {
- if(defined('AJAX_CHAT_URL')) {
- return AJAX_CHAT_URL;
- }
-
- return
- (isset($_SERVER['HTTPS']) ? 'https://' : 'http://').
- (isset($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : '').
- (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].
- (isset($_SERVER['HTTPS']) && $_SERVER['SERVER_PORT'] == 443 || $_SERVER['SERVER_PORT'] == 80 ? '' : ':'.$_SERVER['SERVER_PORT']))).
- substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')+1);
- }
-
- function getIDFromName($userName) {
- $userDataArray = $this->getOnlineUsersData(null,'userName',$userName);
- if($userDataArray && isset($userDataArray[0])) {
- return $userDataArray[0]['userID'];
- }
- return null;
- }
-
- function getNameFromID($userID) {
- $userDataArray = $this->getOnlineUsersData(null,'userID',$userID);
- if($userDataArray && isset($userDataArray[0])) {
- return $userDataArray[0]['userName'];
- }
- return null;
- }
-
- function getChannelFromID($userID) {
- $userDataArray = $this->getOnlineUsersData(null,'userID',$userID);
- if($userDataArray && isset($userDataArray[0])) {
- return $userDataArray[0]['channel'];
- }
- return null;
- }
-
- function getIPFromID($userID) {
- $userDataArray = $this->getOnlineUsersData(null,'userID',$userID);
- if($userDataArray && isset($userDataArray[0])) {
- return $userDataArray[0]['ip'];
- }
- return null;
- }
-
- function getRoleFromID($userID) {
- $userDataArray = $this->getOnlineUsersData(null,'userID',$userID);
- if($userDataArray && isset($userDataArray[0])) {
- return $userDataArray[0]['userRole'];
- }
- return null;
- }
-
- function getChannelNames() {
- return array_flip($this->getChannels());
- }
-
- function getChannelIDFromChannelName($channelName) {
- if(!$channelName)
- return null;
- $channels = $this->getAllChannels();
- if(array_key_exists($channelName,$channels)) {
- return $channels[$channelName];
- }
- $channelID = null;
- // Check if the requested channel is the own private channel:
- if($channelName == $this->getPrivateChannelName()) {
- return $this->getPrivateChannelID();
- }
- // Try to retrieve a private room ID:
- $strlenChannelName = $this->stringLength($channelName);
- $strlenPrefix = $this->stringLength($this->getConfig('privateChannelPrefix'));
- $strlenSuffix = $this->stringLength($this->getConfig('privateChannelSuffix'));
- if($this->subString($channelName,0,$strlenPrefix) == $this->getConfig('privateChannelPrefix')
- && $this->subString($channelName,$strlenChannelName-$strlenSuffix) == $this->getConfig('privateChannelSuffix')) {
- $userName = $this->subString(
- $channelName,
- $strlenPrefix,
- $strlenChannelName-($strlenPrefix+$strlenSuffix)
- );
- $userID = $this->getIDFromName($userName);
- if($userID !== null) {
- $channelID = $this->getPrivateChannelID($userID);
- }
- }
- return $channelID;
- }
-
- function getChannelNameFromChannelID($channelID) {
- foreach($this->getAllChannels() as $key=>$value) {
- if($value == $channelID) {
- return $key;
- }
- }
- // Try to retrieve a private room name:
- if($channelID == $this->getPrivateChannelID()) {
- return $this->getPrivateChannelName();
- }
- $userName = $this->getNameFromID($channelID-$this->getConfig('privateChannelDiff'));
- if($userName === null) {
- return null;
- }
- return $this->getPrivateChannelName($userName);
- }
-
- function getChannelName() {
- return $this->getChannelNameFromChannelID($this->getChannel());
- }
-
- function getPrivateChannelName($userName=null) {
- if($userName === null) {
- $userName = $this->getUserName();
- }
- return $this->getConfig('privateChannelPrefix').$userName.$this->getConfig('privateChannelSuffix');
- }
-
- function getPrivateChannelID($userID=null) {
- if($userID === null) {
- $userID = $this->getUserID();
- }
- return $userID + $this->getConfig('privateChannelDiff');
- }
-
- function getPrivateMessageID($userID=null) {
- if($userID === null) {
- $userID = $this->getUserID();
- }
- return $userID + $this->getConfig('privateMessageDiff');
- }
-
- function isAllowedToSendPrivateMessage() {
- if($this->getConfig('allowPrivateMessages') || $this->getUserRole() == AJAX_CHAT_ADMIN) {
- return true;
- }
- return false;
- }
-
- function isAllowedToCreatePrivateChannel() {
- if($this->getConfig('allowPrivateChannels')) {
- switch($this->getUserRole()) {
- case AJAX_CHAT_USER:
- return true;
- case AJAX_CHAT_MODERATOR:
- return true;
- case AJAX_CHAT_ADMIN:
- return true;
- default:
- return false;
- }
- }
- return false;
- }
-
- function isAllowedToListHiddenUsers() {
- // Hidden users are users within private or restricted channels:
- switch($this->getUserRole()) {
- case AJAX_CHAT_MODERATOR:
- return true;
- case AJAX_CHAT_ADMIN:
- return true;
- default:
- return false;
- }
- }
-
- function isUserOnline($userID=null) {
- $userID = ($userID === null) ? $this->getUserID() : $userID;
- $userDataArray = $this->getOnlineUsersData(null,'userID',$userID);
- if($userDataArray && count($userDataArray) > 0) {
- return true;
- }
- return false;
- }
-
- function isUserNameInUse($userName=null) {
- $userName = ($userName === null) ? $this->getUserName() : $userName;
- $userDataArray = $this->getOnlineUsersData(null,'userName',$userName);
- if($userDataArray && count($userDataArray) > 0) {
- return true;
- }
- return false;
- }
-
- function isUserBanned($userName, $userID=null, $ip=null) {
- if($userID !== null) {
- $bannedUserDataArray = $this->getBannedUsersData('userID',$userID);
- if($bannedUserDataArray && isset($bannedUserDataArray[0])) {
- return true;
- }
- }
- if($ip !== null) {
- $bannedUserDataArray = $this->getBannedUsersData('ip',$ip);
- if($bannedUserDataArray && isset($bannedUserDataArray[0])) {
- return true;
- }
- }
- $bannedUserDataArray = $this->getBannedUsersData('userName',$userName);
- if($bannedUserDataArray && isset($bannedUserDataArray[0])) {
- return true;
- }
- return false;
- }
-
- function isMaxUsersLoggedIn() {
- if(count($this->getOnlineUsersData()) >= $this->getConfig('maxUsersLoggedIn')) {
- return true;
- }
- return false;
- }
-
- function validateChannel($channelID) {
- if($channelID === null) {
- return false;
- }
- // Return true for normal channels the user has acces to:
- if(in_array($channelID, $this->getChannels())) {
- return true;
- }
- // Return true if the user is allowed to join his own private channel:
- if($channelID == $this->getPrivateChannelID() && $this->isAllowedToCreatePrivateChannel()) {
- return true;
- }
- // Return true if the user has been invited to a restricted or private channel:
- if(in_array($channelID, $this->getInvitations())) {
- return true;
- }
- // No valid channel, return false:
- return false;
- }
-
- function createGuestUserName() {
- $maxLength = $this->getConfig('userNameMaxLength')
- - $this->stringLength($this->getConfig('guestUserPrefix'))
- - $this->stringLength($this->getConfig('guestUserSuffix'));
-
- // seed with microseconds since last "whole" second:
- mt_srand((double)microtime()*1000000);
-
- // Create a random userName using numbers between 100000 and 999999:
- $userName = substr(mt_rand(100000, 999999), 0, $maxLength);
-
- return $this->getConfig('guestUserPrefix').$userName.$this->getConfig('guestUserSuffix');
- }
-
- // Guest userIDs must not interfere with existing userIDs and must be lower than privateChannelDiff:
- function createGuestUserID() {
- // seed with microseconds since last "whole" second:
- mt_srand((double)microtime()*1000000);
-
- return mt_rand($this->getConfig('minGuestUserID'), $this->getConfig('privateChannelDiff')-1);
- }
-
- function getGuestUser() {
- if(!$this->getConfig('allowGuestLogins'))
- return null;
-
- if($this->getConfig('allowGuestUserName')) {
- $maxLength = $this->getConfig('userNameMaxLength')
- - $this->stringLength($this->getConfig('guestUserPrefix'))
- - $this->stringLength($this->getConfig('guestUserSuffix'));
-
- // Trim guest userName:
- $userName = $this->trimString($this->getRequestVar('userName'), null, $maxLength, true, true);
-
- // If given userName is invalid, create one:
- if(!$userName) {
- $userName = $this->createGuestUserName();
- } else {
- // Add the guest users prefix and suffix to the given userName:
- $userName = $this->getConfig('guestUserPrefix').$userName.$this->getConfig('guestUserSuffix');
- }
- } else {
- $userName = $this->createGuestUserName();
- }
-
- $userData = array();
- $userData['userID'] = $this->createGuestUserID();
- $userData['userName'] = $userName;
- $userData['userRole'] = AJAX_CHAT_GUEST;
- return $userData;
- }
-
- function getCustomVar($key) {
- if(!isset($this->_customVars))
- $this->_customVars = array();
- if(!isset($this->_customVars[$key]))
- return null;
- return $this->_customVars[$key];
- }
-
- function setCustomVar($key, $value) {
- if(!isset($this->_customVars))
- $this->_customVars = array();
- $this->_customVars[$key] = $value;
- }
-
- // Override to replace custom template tags:
- // Return the replacement for the given tag (and given tagContent)
- function replaceCustomTemplateTags($tag, $tagContent) {
- return null;
- }
-
- // Override to initialize custom configuration settings:
- function initCustomConfig() {
- }
-
- // Override to add custom request variables:
- // Add values to the request variables array: $this->_requestVars['customVariable'] = null;
- function initCustomRequestVars() {
- }
-
- // Override to add custom session code right after the session has been started:
- function initCustomSession() {
- }
-
- // Override, to parse custom info requests:
- // $infoRequest contains the current info request
- // Add info responses using the method addInfoMessage($info, $type)
- function parseCustomInfoRequest($infoRequest) {
- }
-
- // Override to replace custom text:
- // Return replaced text
- // $text contains the whole message
- function replaceCustomText(&$text) {
- return $text;
- }
-
- // Override to add custom commands:
- // Return true if a custom command has been successfully parsed, else false
- // $text contains the whole message, $textParts the message split up as words array
- function parseCustomCommands($text, $textParts) {
- return false;
- }
-
- // Override to perform custom actions on new messages:
- // Return true if message may be inserted, else false
- // $text contains the whole message
- function onNewMessage($text) {
- return true;
- }
-
- // Override to perform custom actions on new messages:
- // Method to set the style cookie depending on user data
- function setStyle() {
- }
-
- // Override:
- // Returns true if the userID of the logged in user is identical to the userID of the authentication system
- // or the user is authenticated as guest in the chat and the authentication system
- function revalidateUserID() {
- return true;
- }
-
- // Override:
- // Returns an associative array containing userName, userID and userRole
- // Returns null if login is invalid
- function getValidLoginUserData() {
- // Check if we have a valid registered user:
- if(false) {
- // Here is the place to check user authentication
- } else {
- // Guest users:
- return $this->getGuestUser();
- }
- }
-
- // Override:
- // Store the channels the current user has access to
- // Make sure channel names don't contain any whitespace
- function &getChannels() {
- if($this->_channels === null) {
- $this->_channels = $this->getAllChannels();
- }
- return $this->_channels;
- }
-
- // Override:
- // Store all existing channels
- // Make sure channel names don't contain any whitespace
- function &getAllChannels() {
- if($this->_allChannels === null) {
- $this->_allChannels = array();
-
- // Default channel, public to everyone:
- $this->_allChannels[$this->trimChannelName($this->getConfig('defaultChannelName'))] = $this->getConfig('defaultChannelID');
- }
- return $this->_allChannels;
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatDataBase.php b/library/ajaxchat/chat/lib/class/AJAXChatDataBase.php
deleted file mode 100644
index 2143c5aa0..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatDataBase.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to initialize the DataBase connection:
-class AJAXChatDataBase {
-
- var $_db;
-
- function __construct(&$dbConnectionConfig) {
- switch($dbConnectionConfig['type']) {
- case 'mysqli':
- $this->_db = new AJAXChatDatabaseMySQLi($dbConnectionConfig);
- break;
- case 'mysql':
- $this->_db = new AJAXChatDatabaseMySQL($dbConnectionConfig);
- break;
- default:
- // Use MySQLi if available, else MySQL (and check the type of a given database connection object):
- if(function_exists('mysqli_connect') && (!$dbConnectionConfig['link'] || is_object($dbConnectionConfig['link']))) {
- $this->_db = new AJAXChatDatabaseMySQLi($dbConnectionConfig);
- } else {
- $this->_db = new AJAXChatDatabaseMySQL($dbConnectionConfig);
- }
- }
- }
-
- // Method to connect to the DataBase server:
- function connect(&$dbConnectionConfig) {
- return $this->_db->connect($dbConnectionConfig);
- }
-
- // Method to select the DataBase:
- function select($dbName) {
- return $this->_db->select($dbName);
- }
-
- // Method to determine if an error has occured:
- function error() {
- return $this->_db->error();
- }
-
- // Method to return the error report:
- function getError() {
- return $this->_db->getError();
- }
-
- // Method to return the connection identifier:
- function &getConnectionID() {
- return $this->_db->getConnectionID();
- }
-
- // Method to prevent SQL injections:
- function makeSafe($value) {
- return $this->_db->makeSafe($value);
- }
-
- // Method to perform SQL queries:
- function sqlQuery($sql) {
- return $this->_db->sqlQuery($sql);
- }
-
- // Method to retrieve the current DataBase name:
- function getName() {
- return $this->_db->getName();
- //If your database has hyphens ( - ) in it, try using this instead:
- //return '`'.$this->_db->getName().'`';
- }
-
- // Method to retrieve the last inserted ID:
- function getLastInsertedID() {
- return $this->_db->getLastInsertedID();
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatEncoding.php b/library/ajaxchat/chat/lib/class/AJAXChatEncoding.php
deleted file mode 100644
index 96b2482c7..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatEncoding.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to provide static encoding methods
-class AJAXChatEncoding {
-
- // Helper function to store special chars as we cannot use static class members in PHP4:
- public static function getSpecialChars() {
- static $specialChars;
- if(!$specialChars) {
- // As &apos; is not supported by IE, we use &#39; as replacement for "'":
- $specialChars = array('&'=>'&amp;', '<'=>'&lt;', '>'=>'&gt;', "'"=>'&#39;', '"'=>'&quot;');
- }
- return $specialChars;
- }
-
- // Helper function to store Regular expression for NO-WS-CTL as we cannot use static class members in PHP4:
- public static function getRegExp_NO_WS_CTL() {
- static $regExp_NO_WS_CTL;
- if(!$regExp_NO_WS_CTL) {
- // Regular expression for NO-WS-CTL, non-whitespace control characters (RFC 2822), decimal 1–8, 11–12, 14–31, and 127:
- $regExp_NO_WS_CTL = '/[\x0\x1\x2\x3\x4\x5\x6\x7\x8\xB\xC\xE\xF\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F\x7F]/';
- }
- return $regExp_NO_WS_CTL;
- }
-
- public static function convertEncoding($str, $charsetFrom, $charsetTo) {
- if(function_exists('mb_convert_encoding')) {
- return mb_convert_encoding($str, $charsetTo, $charsetFrom);
- }
- if(function_exists('iconv')) {
- return iconv($charsetFrom, $charsetTo, $str);
- }
- if(($charsetFrom == 'UTF-8') && ($charsetTo == 'ISO-8859-1')) {
- return utf8_decode($str);
- }
- if(($charsetFrom == 'ISO-8859-1') && ($charsetTo == 'UTF-8')) {
- return utf8_encode($str);
- }
- return $str;
- }
-
- public static function htmlEncode($str, $contentCharset='UTF-8') {
- switch($contentCharset) {
- case 'UTF-8':
- // Encode only special chars (&, <, >, ', ") as entities:
- return AJAXChatEncoding::encodeSpecialChars($str);
- break;
- case 'ISO-8859-1':
- case 'ISO-8859-15':
- // Encode special chars and all extended characters above ISO-8859-1 charset as entities, then convert to content charset:
- return AJAXChatEncoding::convertEncoding(AJAXChatEncoding::encodeEntities($str, 'UTF-8', array(
- 0x26, 0x26, 0, 0xFFFF, // &
- 0x3C, 0x3C, 0, 0xFFFF, // <
- 0x3E, 0x3E, 0, 0xFFFF, // >
- 0x27, 0x27, 0, 0xFFFF, // '
- 0x22, 0x22, 0, 0xFFFF, // "
- 0x100, 0x2FFFF, 0, 0xFFFF // above ISO-8859-1
- )), 'UTF-8', $contentCharset);
- break;
- default:
- // Encode special chars and all characters above ASCII charset as entities, then convert to content charset:
- return AJAXChatEncoding::convertEncoding(AJAXChatEncoding::encodeEntities($str, 'UTF-8', array(
- 0x26, 0x26, 0, 0xFFFF, // &
- 0x3C, 0x3C, 0, 0xFFFF, // <
- 0x3E, 0x3E, 0, 0xFFFF, // >
- 0x27, 0x27, 0, 0xFFFF, // '
- 0x22, 0x22, 0, 0xFFFF, // "
- 0x80, 0x2FFFF, 0, 0xFFFF // above ASCII
- )), 'UTF-8', $contentCharset);
- }
- }
-
- public static function encodeSpecialChars($str) {
- return strtr($str, AJAXChatEncoding::getSpecialChars());
- }
-
- public static function decodeSpecialChars($str) {
- return strtr($str, array_flip(AJAXChatEncoding::getSpecialChars()));
- }
-
- public static function encodeEntities($str, $encoding='UTF-8', $convmap=null) {
- if($convmap && function_exists('mb_encode_numericentity')) {
- return mb_encode_numericentity($str, $convmap, $encoding);
- }
- return htmlentities($str, ENT_QUOTES, $encoding);
- }
-
- public static function decodeEntities($str, $encoding='UTF-8', $htmlEntitiesMap=null) {
- // Due to PHP bug #25670, html_entity_decode does not work with UTF-8 for PHP versions < 5:
- if(function_exists('html_entity_decode') && version_compare(phpversion(), 5, '>=')) {
- // Replace numeric and literal entities:
- $str = html_entity_decode($str, ENT_QUOTES, $encoding);
- // Replace additional literal HTML entities if an HTML entities map is given:
- if($htmlEntitiesMap) {
- $str = strtr($str, $htmlEntitiesMap);
- }
- } else {
- // Replace numeric entities:
- $str = preg_replace('~&#([0-9]+);~e', 'AJAXChatEncoding::unicodeChar("\\1")', $str);
- $str = preg_replace('~&#x([0-9a-f]+);~ei', 'AJAXChatEncoding::unicodeChar(hexdec("\\1"))', $str);
- // Replace literal entities:
- $htmlEntitiesMap = $htmlEntitiesMap ? $htmlEntitiesMap : array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES));
- $str = strtr($str, $htmlEntitiesMap);
- }
- return $str;
- }
-
- public static function unicodeChar($c) {
- if($c <= 0x7F) {
- return chr($c);
- } else if($c <= 0x7FF) {
- return chr(0xC0 | $c >> 6) . chr(0x80 | $c & 0x3F);
- } else if($c <= 0xFFFF) {
- return chr(0xE0 | $c >> 12) . chr(0x80 | $c >> 6 & 0x3F)
- . chr(0x80 | $c & 0x3F);
- } else if($c <= 0x10FFFF) {
- return chr(0xF0 | $c >> 18) . chr(0x80 | $c >> 12 & 0x3F)
- . chr(0x80 | $c >> 6 & 0x3F)
- . chr(0x80 | $c & 0x3F);
- } else {
- return null;
- }
- }
-
- public static function removeUnsafeCharacters($str) {
- // Remove NO-WS-CTL, non-whitespace control characters (RFC 2822), decimal 1–8, 11–12, 14–31, and 127:
- return preg_replace(AJAXChatEncoding::getRegExp_NO_WS_CTL(), '', $str);
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatFileSystem.php b/library/ajaxchat/chat/lib/class/AJAXChatFileSystem.php
deleted file mode 100644
index c9626c36a..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatFileSystem.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to provide methods for file system access:
-class AJAXChatFileSystem {
-
- public static function getFileContents($file) {
- if(function_exists('file_get_contents')) {
- return file_get_contents($file);
- } else {
- return(implode('', file($file)));
- }
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatHTTPHeader.php b/library/ajaxchat/chat/lib/class/AJAXChatHTTPHeader.php
deleted file mode 100644
index 7340bfcf0..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatHTTPHeader.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to manage HTTP header
-class AJAXChatHTTPHeader {
-
- var $_contentType;
- var $_constant;
- var $_noCache;
-
- function __construct($encoding='UTF-8', $contentType=null, $noCache=true) {
- if($contentType) {
- $this->_contentType = $contentType.'; charset='.$encoding;
- $this->_constant = true;
- } else {
- if(isset($_SERVER['HTTP_ACCEPT']) && (strpos($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml') !== false)) {
- $this->_contentType = 'application/xhtml+xml; charset='.$encoding;
- } else {
- $this->_contentType = 'text/html; charset='.$encoding;
- }
- $this->_constant = false;
- }
- $this->_noCache = $noCache;
- }
-
- // Method to send the HTTP header:
- function send() {
- // Prevent caching:
- if($this->_noCache) {
- header('Cache-Control: no-cache, must-revalidate');
- header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
- }
-
- // Send the content-type-header:
- header('Content-Type: '.$this->_contentType);
-
- // Send vary header if content-type varies (important for proxy-caches):
- if(!$this->_constant) {
- header('Vary: Accept');
- }
- }
-
- // Method to return the content-type string:
- function getContentType() {
- // Return the content-type string:
- return $this->_contentType;
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatLanguage.php b/library/ajaxchat/chat/lib/class/AJAXChatLanguage.php
deleted file mode 100644
index b19724710..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatLanguage.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-class AJAXChatLanguage {
-
- var $_regExpAcceptLangCode;
- var $_availableLangCodes;
- var $_defaultLangCode;
- var $_strictMode;
- var $_langCode;
-
- function __construct($availableLangCodes, $defaultLangCode, $langCode=null, $strictMode=false) {
- $this->_regExpAcceptLangCode = '/^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i';
- $this->_availableLangCodes = $availableLangCodes;
- $this->_defaultLangCode = $defaultLangCode;
- if($langCode && in_array($langCode, $availableLangCodes)) {
- $this->_langCode = $langCode;
- }
- $this->_strictMode = $strictMode;
- }
-
- // Method to detect the language code from the HTTP_ACCEPT_LANGUAGE header:
- function detectLangCode() {
- // If HTTP_ACCEPT_LANGUAGE is empty use defaultLangCode:
- if(empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
- $this->_langCode = $this->_defaultLangCode;
- return;
- }
-
- // Split up the HTTP_ACCEPT_LANGUAGE header:
- $acceptedLanguages = preg_split('/,\s*/', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
-
- $currentLangCode = $this->_defaultLangCode;
- $currentLangQuality = 0.0;
-
- foreach($acceptedLanguages as $acceptedLanguage) {
- // Parse the language string:
- $match = preg_match($this->_regExpAcceptLangCode, $acceptedLanguage, $matches);
- // Check if the syntax is valid:
- if(!$match) {
- continue;
- }
-
- // Get and split the language code:
- $langCodeParts = explode ('-', $matches[1]);
-
- // Get the language quality given as float value:
- if(isset($matches[2])) {
- $langQuality = (float)$matches[2];
- } else {
- // Missing language quality value is maximum quality:
- $langQuality = 1.0;
- }
-
- // Go through it until the language code is empty:
- while(count($langCodeParts)) {
- // Join the current langCodeParts:
- $langCode = strtolower(join('-', $langCodeParts));
- // Check if the langCode is in the available list:
- if(in_array($langCode, $this->_availableLangCodes)) {
- // Check the quality setting:
- if ($langQuality > $currentLangQuality) {
- $currentLangCode = $langCode;
- $currentLangQuality = $langQuality;
- break;
- }
- }
- // If strict mode is set, don't minimalize the language code:
- if($this->_strictMode) {
- break;
- }
- // else chop off the right part:
- array_pop($langCodeParts);
- }
- }
-
- $this->_langCode = $currentLangCode;
- }
-
- function getLangCode() {
- if(!$this->_langCode) {
- $this->detectLangCode();
- }
- return $this->_langCode;
- }
-
- function setLangCode($langCode) {
- $this->_langCode = $langCode;
- }
-
- function getLangCodes() {
- return $this->_availableLangCodes;
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLDataBase.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLDataBase.php
deleted file mode 100644
index 6dca348d1..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLDataBase.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to initialize the MySQL DataBase connection:
-class AJAXChatDataBaseMySQL {
-
- var $_connectionID;
- var $_errno = 0;
- var $_error = '';
- var $_dbName;
-
- function __construct(&$dbConnectionConfig) {
- $this->_connectionID = $dbConnectionConfig['link'];
- $this->_dbName = $dbConnectionConfig['name'];
- }
-
- // Method to connect to the DataBase server:
- function connect(&$dbConnectionConfig) {
- $this->_connectionID = @mysql_connect(
- $dbConnectionConfig['host'],
- $dbConnectionConfig['user'],
- $dbConnectionConfig['pass'],
- true
- );
- if(!$this->_connectionID) {
- $this->_errno = null;
- $this->_error = 'Database connection failed.';
- return false;
- }
- return true;
- }
-
- // Method to select the DataBase:
- function select($dbName) {
- if(!@mysql_select_db($dbName, $this->_connectionID)) {
- $this->_errno = mysql_errno($this->_connectionID);
- $this->_error = mysql_error($this->_connectionID);
- return false;
- }
- $this->_dbName = $dbName;
- return true;
- }
-
- // Method to determine if an error has occured:
- function error() {
- return (bool)$this->_error;
- }
-
- // Method to return the error report:
- function getError() {
- if($this->error()) {
- $str = 'Error-Report: ' .$this->_error."\n";
- $str .= 'Error-Code: '.$this->_errno."\n";
- } else {
- $str = 'No errors.'."\n";
- }
- return $str;
- }
-
- // Method to return the connection identifier:
- function &getConnectionID() {
- return $this->_connectionID;
- }
-
- // Method to prevent SQL injections:
- function makeSafe($value) {
- return "'".mysql_real_escape_string($value, $this->_connectionID)."'";
- }
-
- // Method to perform SQL queries:
- function sqlQuery($sql) {
- return new AJAXChatMySQLQuery($sql, $this->_connectionID);
- }
-
- // Method to retrieve the current DataBase name:
- function getName() {
- return $this->_dbName;
- }
-
- // Method to retrieve the last inserted ID:
- function getLastInsertedID() {
- return mysql_insert_id($this->_connectionID);
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLQuery.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLQuery.php
deleted file mode 100644
index f2f3fd466..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLQuery.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to perform SQL (MySQL) queries:
-class AJAXChatMySQLQuery {
-
- var $_connectionID;
- var $_sql = '';
- var $_result = 0;
- var $_errno = 0;
- var $_error = '';
-
- // Constructor:
- function __construct($sql, $connectionID = null) {
- $this->_sql = trim($sql);
- $this->_connectionID = $connectionID;
- if($this->_connectionID) {
- $this->_result = mysql_query($this->_sql, $this->_connectionID);
- if(!$this->_result) {
- $this->_errno = mysql_errno($this->_connectionID);
- $this->_error = mysql_error($this->_connectionID);
- }
- } else {
- $this->_result = mysql_query($this->_sql);
- if(!$this->_result) {
- $this->_errno = mysql_errno();
- $this->_error = mysql_error();
- }
- }
- }
-
- // Returns true if an error occured:
- function error() {
- // Returns true if the Result-ID is valid:
- return !(bool)($this->_result);
- }
-
- // Returns an Error-String:
- function getError() {
- if($this->error()) {
- $str = 'Query: ' .$this->_sql ."\n";
- $str .= 'Error-Report: ' .$this->_error."\n";
- $str .= 'Error-Code: '.$this->_errno;
- } else {
- $str = "No errors.";
- }
- return $str;
- }
-
- // Returns the content:
- function fetch() {
- if($this->error()) {
- return null;
- } else {
- return mysql_fetch_assoc($this->_result);
- }
- }
-
- // Returns the number of rows (SELECT or SHOW):
- function numRows() {
- if($this->error()) {
- return null;
- } else {
- return mysql_num_rows($this->_result);
- }
- }
-
- // Returns the number of affected rows (INSERT, UPDATE, REPLACE or DELETE):
- function affectedRows() {
- if($this->error()) {
- return null;
- } else {
- return mysql_affected_rows($this->_connectionID);
- }
- }
-
- // Frees the memory:
- function free() {
- @mysql_free_result($this->_result);
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiDataBase.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLiDataBase.php
deleted file mode 100644
index 9bc611e2d..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiDataBase.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to initialize the MySQL DataBase connection:
-class AJAXChatDataBaseMySQLi {
-
- var $_connectionID;
- var $_errno = 0;
- var $_error = '';
- var $_dbName;
-
- function __construct(&$dbConnectionConfig) {
- $this->_connectionID = $dbConnectionConfig['link'];
- $this->_dbName = $dbConnectionConfig['name'];
- }
-
- // Method to connect to the DataBase server:
- function connect(&$dbConnectionConfig) {
- @$this->_connectionID = new mysqli(
- $dbConnectionConfig['host'],
- $dbConnectionConfig['user'],
- $dbConnectionConfig['pass']
- );
- if($this->_connectionID->connect_errno) {
- $this->_errno = mysqli_connect_errno();
- $this->_error = mysqli_connect_error();
- return false;
- }
- return true;
- }
-
- // Method to select the DataBase:
- function select($dbName) {
- if(!$this->_connectionID->select_db($dbName)) {
- $this->_errno = $this->_connectionID->errno;
- $this->_error = $this->_connectionID->error;
- return false;
- }
- $this->_dbName = $dbName;
- return true;
- }
-
- // Method to determine if an error has occured:
- function error() {
- return (bool)$this->_error;
- }
-
- // Method to return the error report:
- function getError() {
- if($this->error()) {
- $str = 'Error-Report: ' .$this->_error."\n";
- $str .= 'Error-Code: '.$this->_errno."\n";
- } else {
- $str = 'No errors.'."\n";
- }
- return $str;
- }
-
- // Method to return the connection identifier:
- function &getConnectionID() {
- return $this->_connectionID;
- }
-
- // Method to prevent SQL injections:
- function makeSafe($value) {
- return "'".$this->_connectionID->escape_string($value)."'";
- }
-
- // Method to perform SQL queries:
- function sqlQuery($sql) {
- return new AJAXChatMySQLiQuery($sql, $this->_connectionID);
- }
-
- // Method to retrieve the current DataBase name:
- function getName() {
- return $this->_dbName;
- }
-
- // Method to retrieve the last inserted ID:
- function getLastInsertedID() {
- return $this->_connectionID->insert_id;
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiQuery.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLiQuery.php
deleted file mode 100644
index f81afd886..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiQuery.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to perform SQL (MySQLi) queries:
-class AJAXChatMySQLiQuery {
-
- var $_connectionID;
- var $_sql = '';
- var $_result = 0;
- var $_errno = 0;
- var $_error = '';
-
- // Constructor:
- function __construct($sql, $connectionID) {
- $this->_sql = trim($sql);
- $this->_connectionID = $connectionID;
- $this->_result = $this->_connectionID->query($this->_sql);
- if(!$this->_result) {
- $this->_errno = $this->_connectionID->errno;
- $this->_error = $this->_connectionID->error;
- }
- }
-
- // Returns true if an error occured:
- function error() {
- // Returns true if the Result-ID is valid:
- return !(bool)($this->_result);
- }
-
- // Returns an Error-String:
- function getError() {
- if($this->error()) {
- $str = 'Query: ' .$this->_sql ."\n";
- $str .= 'Error-Report: ' .$this->_error."\n";
- $str .= 'Error-Code: '.$this->_errno;
- } else {
- $str = "No errors.";
- }
- return $str;
- }
-
- // Returns the content:
- function fetch() {
- if($this->error()) {
- return null;
- } else {
- return $this->_result->fetch_assoc();
- }
- }
-
- // Returns the number of rows (SELECT or SHOW):
- function numRows() {
- if($this->error()) {
- return null;
- } else {
- return $this->_result->num_rows;
- }
- }
-
- // Returns the number of affected rows (INSERT, UPDATE, REPLACE or DELETE):
- function affectedRows() {
- if($this->error()) {
- return null;
- } else {
- return $this->_connectionID->affected_rows;
- }
- }
-
- // Frees the memory:
- function free() {
- $this->_result->free();
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatString.php b/library/ajaxchat/chat/lib/class/AJAXChatString.php
deleted file mode 100644
index 8997da5ea..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatString.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to provide multibyte enabled string methods
-class AJAXChatString {
-
- public static function subString($str, $start=0, $length=null, $encoding='UTF-8') {
- if($length === null) {
- $length = AJAXChatString::stringLength($str);
- }
- if(function_exists('mb_substr')) {
- return mb_substr($str, $start, $length, $encoding);
- } else if(function_exists('iconv_substr')) {
- return iconv_substr($str, $start, $length, $encoding);
- } else {
- return substr($str, $start, $length);
- }
- }
-
- public static function stringLength($str, $encoding='UTF-8') {
- if(function_exists('mb_strlen')) {
- return mb_strlen($str, $encoding);
- } else if(function_exists('iconv_strlen')) {
- return iconv_strlen($str, $encoding);
- } else {
- return strlen($str);
- }
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/AJAXChatTemplate.php b/library/ajaxchat/chat/lib/class/AJAXChatTemplate.php
deleted file mode 100644
index 16e53a7e6..000000000
--- a/library/ajaxchat/chat/lib/class/AJAXChatTemplate.php
+++ /dev/null
@@ -1,329 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Class to handle HTML templates
-class AJAXChatTemplate {
-
- var $ajaxChat;
- var $_regExpTemplateTags;
- var $_templateFile;
- var $_contentType;
- var $_content;
- var $_parsedContent;
-
- // Constructor:
- function __construct(&$ajaxChat, $templateFile, $contentType=null) {
- $this->ajaxChat = $ajaxChat;
- $this->_regExpTemplateTags = '/\[(\w+?)(?:(?:\/)|(?:\](.+?)\[\/\1))\]/s';
- $this->_templateFile = $templateFile;
- $this->_contentType = $contentType;
- }
-
- function getParsedContent() {
- if(!$this->_parsedContent) {
- $this->parseContent();
- }
- return $this->_parsedContent;
- }
-
- function getContent() {
- if(!$this->_content) {
- $this->_content = AJAXChatFileSystem::getFileContents($this->_templateFile);
- }
- return $this->_content;
- }
-
- function parseContent() {
- $this->_parsedContent = $this->getContent();
-
- // Remove the XML declaration if the content-type is not xml:
- if($this->_contentType && (strpos($this->_contentType,'xml') === false)) {
- $doctypeStart = strpos($this->_parsedContent, '<!DOCTYPE ');
- if($doctypeStart !== false) {
- // Removing the XML declaration (in front of the document type) prevents IE<7 to go into "Quirks mode":
- $this->_parsedContent = substr($this->_parsedContent, $doctypeStart);
- }
- }
-
- // Replace template tags ([TAG/] and [TAG]content[/TAG]) and return parsed template content:
- $this->_parsedContent = preg_replace_callback($this->_regExpTemplateTags, array($this, 'replaceTemplateTags'), $this->_parsedContent);
- }
-
- function replaceTemplateTags($tagData) {
- switch($tagData[1]) {
- case 'AJAX_CHAT_URL':
- return $this->ajaxChat->htmlEncode($this->ajaxChat->getChatURL());
-
- case 'LANG':
- return $this->ajaxChat->htmlEncode($this->ajaxChat->getLang((isset($tagData[2]) ? $tagData[2] : null)));
- case 'LANG_CODE':
- return $this->ajaxChat->getLangCode();
-
- case 'BASE_DIRECTION':
- return $this->getBaseDirectionAttribute();
-
- case 'CONTENT_ENCODING':
- return $this->ajaxChat->getConfig('contentEncoding');
-
- case 'CONTENT_TYPE':
- return $this->_contentType;
-
- case 'LOGIN_URL':
- return ($this->ajaxChat->getRequestVar('view') == 'logs') ? './?view=logs' : './';
-
- case 'USER_NAME_MAX_LENGTH':
- return $this->ajaxChat->getConfig('userNameMaxLength');
- case 'MESSAGE_TEXT_MAX_LENGTH':
- return $this->ajaxChat->getConfig('messageTextMaxLength');
-
- case 'LOGIN_CHANNEL_ID':
- return $this->ajaxChat->getValidRequestChannelID();
-
- case 'SESSION_NAME':
- return $this->ajaxChat->getConfig('sessionName');
-
- case 'COOKIE_EXPIRATION':
- return $this->ajaxChat->getConfig('sessionCookieLifeTime');
- case 'COOKIE_PATH':
- return $this->ajaxChat->getConfig('sessionCookiePath');
- case 'COOKIE_DOMAIN':
- return $this->ajaxChat->getConfig('sessionCookieDomain');
- case 'COOKIE_SECURE':
- return $this->ajaxChat->getConfig('sessionCookieSecure');
-
- case 'CHAT_BOT_NAME':
- return rawurlencode($this->ajaxChat->getConfig('chatBotName'));
- case 'CHAT_BOT_ID':
- return $this->ajaxChat->getConfig('chatBotID');
-
- case 'ALLOW_USER_MESSAGE_DELETE':
- if($this->ajaxChat->getConfig('allowUserMessageDelete'))
- return 1;
- else
- return 0;
-
- case 'INACTIVE_TIMEOUT':
- return $this->ajaxChat->getConfig('inactiveTimeout');
-
- case 'PRIVATE_CHANNEL_DIFF':
- return $this->ajaxChat->getConfig('privateChannelDiff');
- case 'PRIVATE_MESSAGE_DIFF':
- return $this->ajaxChat->getConfig('privateMessageDiff');
-
- case 'SHOW_CHANNEL_MESSAGES':
- if($this->ajaxChat->getConfig('showChannelMessages'))
- return 1;
- else
- return 0;
-
- case 'SOCKET_SERVER_ENABLED':
- if($this->ajaxChat->getConfig('socketServerEnabled'))
- return 1;
- else
- return 0;
-
- case 'SOCKET_SERVER_HOST':
- if($this->ajaxChat->getConfig('socketServerHost')) {
- $socketServerHost = $this->ajaxChat->getConfig('socketServerHost');
- } else {
- $socketServerHost = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']);
- }
- return rawurlencode($socketServerHost);
-
- case 'SOCKET_SERVER_PORT':
- return $this->ajaxChat->getConfig('socketServerPort');
-
- case 'SOCKET_SERVER_CHAT_ID':
- return $this->ajaxChat->getConfig('socketServerChatID');
-
- case 'STYLE_SHEETS':
- return $this->getStyleSheetLinkTags();
-
- case 'CHANNEL_OPTIONS':
- return $this->getChannelOptionTags();
- case 'STYLE_OPTIONS':
- return $this->getStyleOptionTags();
- case 'LANGUAGE_OPTIONS':
- return $this->getLanguageOptionTags();
-
- case 'ERROR_MESSAGES':
- return $this->getErrorMessageTags();
-
- case 'LOGS_CHANNEL_OPTIONS':
- return $this->getLogsChannelOptionTags();
- case 'LOGS_YEAR_OPTIONS':
- return $this->getLogsYearOptionTags();
- case 'LOGS_MONTH_OPTIONS':
- return $this->getLogsMonthOptionTags();
- case 'LOGS_DAY_OPTIONS':
- return $this->getLogsDayOptionTags();
- case 'LOGS_HOUR_OPTIONS':
- return $this->getLogsHourOptionTags();
- case 'CLASS_WRITEABLE':
- $userdata = $this->ajaxChat->getValidLoginUserData();
- $guestwrite = $this->ajaxChat->getConfig('allowGuestWrite');
- if ($userdata['userRole'] === AJAX_CHAT_GUEST && $guestwrite === false)
- return 'write_forbidden';
- else
- return 'write_allowed';
-
- default:
- return $this->ajaxChat->replaceCustomTemplateTags($tagData[1], (isset($tagData[2]) ? $tagData[2] : null));
- }
- }
-
- // Function to display alternating table row colors:
- function alternateRow($rowOdd='rowOdd', $rowEven='rowEven') {
- static $i;
- $i += 1;
- if($i % 2 == 0) {
- return $rowEven;
- } else {
- return $rowOdd;
- }
- }
-
- function getBaseDirectionAttribute() {
- $langCodeParts = explode('-', $this->ajaxChat->getLangCode());
- switch($langCodeParts[0]) {
- case 'ar':
- case 'fa':
- case 'he':
- return 'rtl';
- default:
- return 'ltr';
- }
- }
-
- function getStyleSheetLinkTags() {
- $styleSheets = '';
- foreach($this->ajaxChat->getConfig('styleAvailable') as $style) {
- $alternate = ($style == $this->ajaxChat->getConfig('styleDefault')) ? '' : 'alternate ';
- $styleSheets .= '<link rel="'.$alternate.'stylesheet" type="text/css" href="css/'.rawurlencode($style).'.css" title="'.$this->ajaxChat->htmlEncode($style).'"/>';
- }
- return $styleSheets;
- }
-
- function getChannelOptionTags() {
- $channelOptions = '';
- $channelSelected = false;
- foreach($this->ajaxChat->getChannels() as $name=>$id) {
- if($this->ajaxChat->isLoggedIn() && $this->ajaxChat->getChannel()) {
- $selected = ($id == $this->ajaxChat->getChannel()) ? ' selected="selected"' : '';
- } else {
- $selected = ($id == $this->ajaxChat->getConfig('defaultChannelID')) ? ' selected="selected"' : '';
- }
- if($selected) {
- $channelSelected = true;
- }
- $channelOptions .= '<option value="'.$this->ajaxChat->htmlEncode($name).'"'.$selected.'>'.$this->ajaxChat->htmlEncode($name).'</option>';
- }
- if($this->ajaxChat->isLoggedIn() && $this->ajaxChat->isAllowedToCreatePrivateChannel()) {
- // Add the private channel of the user to the options list:
- if(!$channelSelected && $this->ajaxChat->getPrivateChannelID() == $this->ajaxChat->getChannel()) {
- $selected = ' selected="selected"';
- $channelSelected = true;
- } else {
- $selected = '';
- }
- $privateChannelName = $this->ajaxChat->getPrivateChannelName();
- $channelOptions .= '<option value="'.$this->ajaxChat->htmlEncode($privateChannelName).'"'.$selected.'>'.$this->ajaxChat->htmlEncode($privateChannelName).'</option>';
- }
- // If current channel is not in the list, try to retrieve the channelName:
- if(!$channelSelected) {
- $channelName = $this->ajaxChat->getChannelName();
- if($channelName !== null) {
- $channelOptions .= '<option value="'.$this->ajaxChat->htmlEncode($channelName).'" selected="selected">'.$this->ajaxChat->htmlEncode($channelName).'</option>';
- } else {
- // Show an empty selection:
- $channelOptions .= '<option value="" selected="selected">---</option>';
- }
- }
- return $channelOptions;
- }
-
- function getStyleOptionTags() {
- $styleOptions = '';
- foreach($this->ajaxChat->getConfig('styleAvailable') as $style) {
- $selected = ($style == $this->ajaxChat->getConfig('styleDefault')) ? ' selected="selected"' : '';
- $styleOptions .= '<option value="'.$this->ajaxChat->htmlEncode($style).'"'.$selected.'>'.$this->ajaxChat->htmlEncode($style).'</option>';
- }
- return $styleOptions;
- }
-
- function getLanguageOptionTags() {
- $languageOptions = '';
- $languageNames = $this->ajaxChat->getConfig('langNames');
- foreach($this->ajaxChat->getConfig('langAvailable') as $langCode) {
- $selected = ($langCode == $this->ajaxChat->getLangCode()) ? ' selected="selected"' : '';
- $languageOptions .= '<option value="'.$this->ajaxChat->htmlEncode($langCode).'"'.$selected.'>'.$languageNames[$langCode].'</option>';
- }
- return $languageOptions;
- }
-
- function getErrorMessageTags() {
- $errorMessages = '';
- foreach($this->ajaxChat->getInfoMessages('error') as $error) {
- $errorMessages .= '<div>'.$this->ajaxChat->htmlEncode($this->ajaxChat->getLang($error)).'</div>';
- }
- return $errorMessages;
- }
-
- function getLogsChannelOptionTags() {
- $channelOptions = '';
- $channelOptions .= '<option value="-3">------</option>';
- foreach($this->ajaxChat->getChannels() as $key=>$value) {
- if($this->ajaxChat->getUserRole() != AJAX_CHAT_ADMIN && $this->ajaxChat->getConfig('logsUserAccessChannelList') && !in_array($value, $this->ajaxChat->getConfig('logsUserAccessChannelList'))) {
- continue;
- }
- $channelOptions .= '<option value="'.$value.'">'.$this->ajaxChat->htmlEncode($key).'</option>';
- }
- $channelOptions .= '<option value="-1">'.$this->ajaxChat->htmlEncode($this->ajaxChat->getLang('logsPrivateChannels')).'</option>';
- $channelOptions .= '<option value="-2">'.$this->ajaxChat->htmlEncode($this->ajaxChat->getLang('logsPrivateMessages')).'</option>';
- return $channelOptions;
- }
-
- function getLogsYearOptionTags() {
- $yearOptions = '';
- $yearOptions .= '<option value="-1">----</option>';
- for($year=date('Y'); $year>=$this->ajaxChat->getConfig('logsFirstYear'); $year--) {
- $yearOptions .= '<option value="'.$year.'">'.$year.'</option>';
- }
- return $yearOptions;
- }
-
- function getLogsMonthOptionTags() {
- $monthOptions = '';
- $monthOptions .= '<option value="-1">--</option>';
- for($month=1; $month<=12; $month++) {
- $monthOptions .= '<option value="'.$month.'">'.sprintf("%02d", $month).'</option>';
- }
- return $monthOptions;
- }
-
- function getLogsDayOptionTags() {
- $dayOptions = '';
- $dayOptions .= '<option value="-1">--</option>';
- for($day=1; $day<=31; $day++) {
- $dayOptions .= '<option value="'.$day.'">'.sprintf("%02d", $day).'</option>';
- }
- return $dayOptions;
- }
-
- function getLogsHourOptionTags() {
- $hourOptions = '';
- $hourOptions .= '<option value="-1">-----</option>';
- for($hour=0; $hour<=23; $hour++) {
- $hourOptions .= '<option value="'.$hour.'">'.sprintf("%02d", $hour).':00</option>';
- }
- return $hourOptions;
- }
-
-}
-?>
diff --git a/library/ajaxchat/chat/lib/class/CustomAJAXChat.php b/library/ajaxchat/chat/lib/class/CustomAJAXChat.php
deleted file mode 100644
index a18e64069..000000000
--- a/library/ajaxchat/chat/lib/class/CustomAJAXChat.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-class CustomAJAXChat extends AJAXChat {
-
- // Returns an associative array containing userName, userID and userRole
- // Returns null if login is invalid
- function getValidLoginUserData() {
-
- $customUsers = $this->getCustomUsers();
-
- if($this->getRequestVar('password')) {
- // Check if we have a valid registered user:
-
- $userName = $this->getRequestVar('userName');
- $userName = $this->convertEncoding($userName, $this->getConfig('contentEncoding'), $this->getConfig('sourceEncoding'));
-
- $password = $this->getRequestVar('password');
- $password = $this->convertEncoding($password, $this->getConfig('contentEncoding'), $this->getConfig('sourceEncoding'));
-
- foreach($customUsers as $key=>$value) {
- if(($value['userName'] == $userName) && ($value['password'] == $password)) {
- $userData = array();
- $userData['userID'] = $key;
- $userData['userName'] = $this->trimUserName($value['userName']);
- $userData['userRole'] = $value['userRole'];
- return $userData;
- }
- }
-
- return null;
- } else {
- // Guest users:
- return $this->getGuestUser();
- }
- }
-
- // Store the channels the current user has access to
- // Make sure channel names don't contain any whitespace
- function &getChannels() {
- if($this->_channels === null) {
- $this->_channels = array();
-
- $customUsers = $this->getCustomUsers();
-
- // Get the channels, the user has access to:
- if($this->getUserRole() == AJAX_CHAT_GUEST) {
- $validChannels = $customUsers[0]['channels'];
- } else {
- $validChannels = $customUsers[$this->getUserID()]['channels'];
- }
-
- // Add the valid channels to the channel list (the defaultChannelID is always valid):
- foreach($this->getAllChannels() as $key=>$value) {
- if ($value == $this->getConfig('defaultChannelID')) {
- $this->_channels[$key] = $value;
- continue;
- }
- // Check if we have to limit the available channels:
- if($this->getConfig('limitChannelList') && !in_array($value, $this->getConfig('limitChannelList'))) {
- continue;
- }
- if(in_array($value, $validChannels)) {
- $this->_channels[$key] = $value;
- }
- }
- }
- return $this->_channels;
- }
-
- // Store all existing channels
- // Make sure channel names don't contain any whitespace
- function &getAllChannels() {
- if($this->_allChannels === null) {
- // Get all existing channels:
- $customChannels = $this->getCustomChannels();
-
- $defaultChannelFound = false;
-
- foreach($customChannels as $name=>$id) {
- $this->_allChannels[$this->trimChannelName($name)] = $id;
- if($id == $this->getConfig('defaultChannelID')) {
- $defaultChannelFound = true;
- }
- }
-
- if(!$defaultChannelFound) {
- // Add the default channel as first array element to the channel list
- // First remove it in case it appeard under a different ID
- unset($this->_allChannels[$this->getConfig('defaultChannelName')]);
- $this->_allChannels = array_merge(
- array(
- $this->trimChannelName($this->getConfig('defaultChannelName'))=>$this->getConfig('defaultChannelID')
- ),
- $this->_allChannels
- );
- }
- }
- return $this->_allChannels;
- }
-
- function &getCustomUsers() {
- // List containing the registered chat users:
- $users = null;
- require(AJAX_CHAT_PATH.'lib/data/users.php');
- return $users;
- }
-
- function getCustomChannels() {
- // List containing the custom channels:
- $channels = null;
- require(AJAX_CHAT_PATH.'lib/data/channels.php');
- // Channel array structure should be:
- // ChannelName => ChannelID
- return array_flip($channels);
- }
-
-} \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/CustomAJAXChatInterface.php b/library/ajaxchat/chat/lib/class/CustomAJAXChatInterface.php
deleted file mode 100644
index a950739c5..000000000
--- a/library/ajaxchat/chat/lib/class/CustomAJAXChatInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-class CustomAJAXChatInterface extends CustomAJAXChat {
-
- function initialize() {
- // Initialize configuration settings:
- $this->initConfig();
-
- // Initialize the DataBase connection:
- $this->initDataBaseConnection();
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/class/CustomAJAXChatShoutBox.php b/library/ajaxchat/chat/lib/class/CustomAJAXChatShoutBox.php
deleted file mode 100644
index c014d639e..000000000
--- a/library/ajaxchat/chat/lib/class/CustomAJAXChatShoutBox.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-class CustomAJAXChatShoutBox extends CustomAJAXChat {
-
- function initialize() {
- // Initialize configuration settings:
- $this->initConfig();
- }
-
- function getShoutBoxContent() {
- $template = new AJAXChatTemplate($this, AJAX_CHAT_PATH.'lib/template/shoutbox.html');
-
- // Return parsed template content:
- return $template->getParsedContent();
- }
-
-}
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/classes.php b/library/ajaxchat/chat/lib/classes.php
deleted file mode 100644
index ff1dee265..000000000
--- a/library/ajaxchat/chat/lib/classes.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Include Class libraries:
-require(AJAX_CHAT_PATH.'lib/class/AJAXChat.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatDataBase.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatMySQLDataBase.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatMySQLQuery.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatMySQLiDataBase.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatMySQLiQuery.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatEncoding.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatString.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatFileSystem.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatHTTPHeader.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatLanguage.php');
-require(AJAX_CHAT_PATH.'lib/class/AJAXChatTemplate.php');
-require(AJAX_CHAT_PATH.'lib/class/CustomAJAXChat.php');
-require(AJAX_CHAT_PATH.'lib/class/CustomAJAXChatShoutBox.php');
-require(AJAX_CHAT_PATH.'lib/class/CustomAJAXChatInterface.php');
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/config.php.example b/library/ajaxchat/chat/lib/config.php.example
deleted file mode 100644
index 023adcdbb..000000000
--- a/library/ajaxchat/chat/lib/config.php.example
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Define AJAX Chat user roles:
-define('AJAX_CHAT_CHATBOT', 4);
-define('AJAX_CHAT_ADMIN', 3);
-define('AJAX_CHAT_MODERATOR', 2);
-define('AJAX_CHAT_USER', 1);
-define('AJAX_CHAT_GUEST', 0);
-
-// AJAX Chat config parameters:
-$config = array();
-
-// Database connection values:
-$config['dbConnection'] = array();
-// Database hostname:
-$config['dbConnection']['host'] = 'localhost';
-// Database username:
-$config['dbConnection']['user'] = 'root';
-// Database password:
-$config['dbConnection']['pass'] = '';
-// Database name:
-$config['dbConnection']['name'] = 'chat';
-// Database type:
-$config['dbConnection']['type'] = null;
-// Database link:
-$config['dbConnection']['link'] = null;
-
-// Database table names:
-$config['dbTableNames'] = array();
-$config['dbTableNames']['online'] = 'ajax_chat_online';
-$config['dbTableNames']['messages'] = 'ajax_chat_messages';
-$config['dbTableNames']['bans'] = 'ajax_chat_bans';
-$config['dbTableNames']['invitations'] = 'ajax_chat_invitations';
-
-// Available languages:
-$config['langAvailable'] = array(
- 'ar','bg','ca','cy','cz','da','de','el','en','es','et','fa','fi','fr','gl','he','hr','hu','in','it','ja','ka','kr','mk','nl','nl-be','no','pl','pt-br','pt-pt','ro','ru','sk','sl','sr','sv','th','tr','uk','zh','zh-tw'
-);
-// Default language:
-$config['langDefault'] = 'en';
-// Language names (each languge code in available languages must have a display name assigned here):
-$config['langNames'] = array(
- 'ar'=>'عربي', 'bg'=>'Български', 'ca'=>'Català', 'cy'=>'Cymraeg', 'cz'=>'Česky', 'da'=>'Dansk', 'de'=>'Deutsch', 'el'=>'Ελληνικα', 'en'=>'English',
- 'es'=>'Español', 'et'=>'Eesti', 'fa'=>'فارسی', 'fi'=>'Suomi', 'fr'=>'Français', 'gl'=>'Galego', 'he'=>'עברית', 'hr' => 'Hrvatski', 'hu' => 'Magyar', 'in'=>'Bahasa Indonesia', 'it'=>'Italiano',
- 'ja'=>'日本語','ka'=>'ქართული','kr'=>'한 글','mk'=>'Македонски', 'nl'=>'Nederlands', 'nl-be'=>'Nederlands (België)', 'no'=>'Norsk', 'pl'=> 'Polski', 'pt-br'=>'Português (Brasil)', 'pt-pt'=>'Português (Portugal)',
- 'ro'=>'România', 'ru'=>'Русский', 'sk'=> 'Slovenčina', 'sl'=>'Slovensko', 'sr'=>'Srpski', 'sv'=> 'Svenska', 'th'=>'&#x0e20;&#x0e32;&#x0e29;&#x0e32;&#x0e44;&#x0e17;&#x0e22;',
- 'tr'=>'Türkçe', 'uk'=>'Українська', 'zh'=>'中文 (简体)', 'zh-tw'=>'中文 (繁體)'
-);
-
-// Available styles:
-$config['styleAvailable'] = array('beige','black','grey','Oxygen','Lithium','Sulfur','Cobalt','Mercury','Uranium','Plum','prosilver','subblack2','subSilver','Core','MyBB','vBulletin');
-// Default style:
-$config['styleDefault'] = 'prosilver';
-
-// The encoding used for the XHTML content:
-$config['contentEncoding'] = 'UTF-8';
-// The encoding of the data source, like userNames and channelNames:
-$config['sourceEncoding'] = 'UTF-8';
-// The content-type of the XHTML page (e.g. "text/html", will be set dependent on browser capabilities if set to null):
-$config['contentType'] = null;
-
-// Session name used to identify the session cookie:
-$config['sessionName'] = 'ajax_chat';
-// Prefix added to every session key:
-$config['sessionKeyPrefix'] = 'ajaxChat';
-// The lifetime of the language, style and setting cookies in days:
-$config['sessionCookieLifeTime'] = 365;
-// The path of the cookies, '/' allows to read the cookies from all directories:
-$config['sessionCookiePath'] = '/';
-// The domain of the cookies, defaults to the hostname of the server if set to null:
-$config['sessionCookieDomain'] = null;
-// If enabled, cookies must be sent over secure (SSL/TLS encrypted) connections:
-$config['sessionCookieSecure'] = null;
-
-// Default channelName used together with the defaultChannelID if no channel with this ID exists:
-$config['defaultChannelName'] = 'Public';
-// ChannelID used when no channel is given:
-$config['defaultChannelID'] = 0;
-// Defines an array of channelIDs (e.g. array(0, 1)) to limit the number of available channels, will be ignored if set to null:
-$config['limitChannelList'] = null;
-
-// UserID plus this value are private channels (this is also the max userID and max channelID):
-$config['privateChannelDiff'] = 500000000;
-// UserID plus this value are used for private messages:
-$config['privateMessageDiff'] = 1000000000;
-
-// Enable/Disable private Channels:
-$config['allowPrivateChannels'] = true;
-// Enable/Disable private Messages:
-$config['allowPrivateMessages'] = true;
-
-// Private channels should be distinguished by either a prefix or a suffix or both (no whitespace):
-$config['privateChannelPrefix'] = '[';
-// Private channels should be distinguished by either a prefix or a suffix or both (no whitespace):
-$config['privateChannelSuffix'] = ']';
-
-// If enabled, users will be logged in automatically as guest users (if allowed), if not authenticated:
-$config['forceAutoLogin'] = false;
-
-// Defines if login/logout and channel enter/leave are displayed:
-$config['showChannelMessages'] = true;
-
-// If enabled, the chat will only be accessible for the admin:
-$config['chatClosed'] = false;
-// Defines the timezone offset in seconds (-12*60*60 to 12*60*60) - if null, the server timezone is used:
-$config['timeZoneOffset'] = null;
-// Defines the hour of the day the chat is opened (0 - closingHour):
-$config['openingHour'] = 0;
-// Defines the hour of the day the chat is closed (openingHour - 24):
-$config['closingHour'] = 24;
-// Defines the weekdays the chat is opened (0=Sunday to 6=Saturday):
-$config['openingWeekDays'] = array(0,1,2,3,4,5,6);
-
-// Enable/Disable guest logins:
-$config['allowGuestLogins'] = true;
-// Enable/Disable write access for guest users - if disabled, guest users may not write messages:
-$config['allowGuestWrite'] = true;
-// Allow/Disallow guest users to choose their own userName:
-$config['allowGuestUserName'] = true;
-// Guest users should be distinguished by either a prefix or a suffix or both (no whitespace):
-$config['guestUserPrefix'] = '(';
-// Guest users should be distinguished by either a prefix or a suffix or both (no whitespace):
-$config['guestUserSuffix'] = ')';
-// Guest userIDs may not be lower than this value (and not higher than privateChannelDiff):
-$config['minGuestUserID'] = 400000000;
-
-// Allow/Disallow users to change their userName (Nickname):
-$config['allowNickChange'] = true;
-// Changed userNames should be distinguished by either a prefix or a suffix or both (no whitespace):
-$config['changedNickPrefix'] = '(';
-// Changed userNames should be distinguished by either a prefix or a suffix or both (no whitespace):
-$config['changedNickSuffix'] = ')';
-
-// Allow/Disallow registered users to delete their own messages:
-$config['allowUserMessageDelete'] = true;
-
-// The userID used for ChatBot messages:
-$config['chatBotID'] = 2147483647;
-// The userName used for ChatBot messages
-$config['chatBotName'] = 'ChatBot';
-
-// Minutes until a user is declared inactive (last status update) - the minimum is 2 minutes:
-$config['inactiveTimeout'] = 2;
-// Interval in minutes to check for inactive users:
-$config['inactiveCheckInterval'] = 5;
-
-// Defines if messages are shown which have been sent before the user entered the channel:
-$config['requestMessagesPriorChannelEnter'] = true;
-// Defines an array of channelIDs (e.g. array(0, 1)) for which the previous setting is always true (will be ignored if set to null):
-$config['requestMessagesPriorChannelEnterList'] = null;
-// Max time difference in hours for messages to display on each request:
-$config['requestMessagesTimeDiff'] = 24;
-// Max number of messages to display on each request:
-$config['requestMessagesLimit'] = 10;
-
-// Max users in chat (does not affect moderators or admins):
-$config['maxUsersLoggedIn'] = 100;
-// Max userName length:
-$config['userNameMaxLength'] = 16;
-// Max messageText length:
-$config['messageTextMaxLength'] = 1040;
-// Defines the max number of messages a user may send per minute:
-$config['maxMessageRate'] = 20;
-
-// Defines the default time in minutes a user gets banned if kicked from a moderator without ban minutes parameter:
-$config['defaultBanTime'] = 5;
-
-// Argument that is given to the handleLogout JavaScript method:
-$config['logoutData'] = './?logout=true';
-
-// If true, checks if the user IP is the same when logged in:
-$config['ipCheck'] = true;
-
-// Defines the max time difference in hours for logs when no period or search condition is given:
-$config['logsRequestMessagesTimeDiff'] = 1;
-// Defines how many logs are returned on each logs request:
-$config['logsRequestMessagesLimit'] = 10;
-
-// Defines the earliest year used for the logs selection:
-$config['logsFirstYear'] = 2007;
-
-// Defines if old messages are purged from the database:
-$config['logsPurgeLogs'] = false;
-// Max time difference in days for old messages before they are purged from the database:
-$config['logsPurgeTimeDiff'] = 365;
-
-// Defines if registered users (including moderators) have access to the logs (admins are always granted access):
-$config['logsUserAccess'] = false;
-// Defines a list of channels (e.g. array(0, 1)) to limit the logs access for registered users, includes all channels the user has access to if set to null:
-$config['logsUserAccessChannelList'] = null;
-
-// Defines if the socket server is enabled:
-$config['socketServerEnabled'] = false;
-// Defines the hostname of the socket server used to connect from client side (the server hostname is used if set to null):
-$config['socketServerHost'] = null;
-// Defines the IP of the socket server used to connect from server side to broadcast update messages:
-$config['socketServerIP'] = '127.0.0.1';
-// Defines the port of the socket server:
-$config['socketServerPort'] = 1935;
-// This ID can be used to distinguish between different chat installations using the same socket server:
-$config['socketServerChatID'] = 0;
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/custom.php b/library/ajaxchat/chat/lib/custom.php
deleted file mode 100644
index a9d08841b..000000000
--- a/library/ajaxchat/chat/lib/custom.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// Include custom libraries and initialization code here
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/data/channels.php b/library/ajaxchat/chat/lib/data/channels.php
deleted file mode 100644
index 8688e5e7b..000000000
--- a/library/ajaxchat/chat/lib/data/channels.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// List containing the custom channels:
-$channels = array();
-
-// Sample channel list:
-$channels[0] = 'Public';
-$channels[1] = 'Private';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/data/users.php b/library/ajaxchat/chat/lib/data/users.php
deleted file mode 100644
index 52ca77e50..000000000
--- a/library/ajaxchat/chat/lib/data/users.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-// List containing the registered chat users:
-$users = array();
-
-// Default guest user (don't delete this one):
-$users[0] = array();
-$users[0]['userRole'] = AJAX_CHAT_GUEST;
-$users[0]['userName'] = null;
-$users[0]['password'] = null;
-$users[0]['channels'] = array(0);
-
-// Sample admin user:
-$users[1] = array();
-$users[1]['userRole'] = AJAX_CHAT_ADMIN;
-$users[1]['userName'] = 'admin';
-$users[1]['password'] = 'admin';
-$users[1]['channels'] = array(0,1);
-
-// Sample moderator user:
-$users[2] = array();
-$users[2]['userRole'] = AJAX_CHAT_MODERATOR;
-$users[2]['userName'] = 'moderator';
-$users[2]['password'] = 'moderator';
-$users[2]['channels'] = array(0,1);
-
-// Sample registered user:
-$users[3] = array();
-$users[3]['userRole'] = AJAX_CHAT_USER;
-$users[3]['userName'] = 'user';
-$users[3]['password'] = 'user';
-$users[3]['channels'] = array(0,1);
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/ar.php b/library/ajaxchat/chat/lib/lang/ar.php
deleted file mode 100644
index af9c8305e..000000000
--- a/library/ajaxchat/chat/lib/lang/ar.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author pepotiger (www.dd4bb.com)
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'اسم المستخدم';
-$lang['password'] = 'كلمة المرور';
-$lang['login'] = 'دخول';
-$lang['logout'] = 'خروج';
-$lang['channel'] = 'الغرفة';
-$lang['style'] = 'الشكل';
-$lang['language'] = 'اللغة';
-$lang['inputLineBreak'] = 'Press SHIFT+ENTER to input a line break';
-$lang['messageSubmit'] = 'ارسل';
-$lang['registeredUsers'] = 'الأعضاء المسجلين';
-$lang['onlineUsers'] = 'الأعضاء المتواجدين';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sound on/off';
-$lang['toggleHelp'] = 'Show/hide help';
-$lang['toggleSettings'] = 'Show/hide settings';
-$lang['toggleOnlineList'] = 'Show/hide online list';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'اقتباس';
-$lang['bbCodeLabelCode'] = 'كود';
-$lang['bbCodeLabelURL'] = 'رابط';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'لون الخط';
-$lang['bbCodeTitleBold'] = 'نص عريض: [b]نص[/b]';
-$lang['bbCodeTitleItalic'] = 'نص مائل: [i]نص[/i]';
-$lang['bbCodeTitleUnderline'] = 'نص تحته خط: [u]نص[/u]';
-$lang['bbCodeTitleQuote'] = 'نص مقتبس: [quote]نص[/quote] او [quote=الكاتب]نص[/quote]';
-$lang['bbCodeTitleCode'] = 'عرض الكود: [code]كود[/code]';
-$lang['bbCodeTitleURL'] = 'ادحال رابط: [url]http://example.org[/url] او [url=http://example.org]نص[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'لون النص: [color=red]نص[/color]';
-$lang['help'] = 'مساعدة';
-$lang['helpItemDescJoin'] = 'دخول الغرفة:';
-$lang['helpItemCodeJoin'] = '/join اسم الغرفة';
-$lang['helpItemDescJoinCreate'] = 'انشاء غرفة خاصة (للمسجلين فقط):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'دعوة احد (لغرفة خاصة مثلا):';
-$lang['helpItemCodeInvite'] = '/invite username';
-$lang['helpItemDescUninvite'] = 'الغاء الدعوة:';
-$lang['helpItemCodeUninvite'] = '/uninvite Username';
-$lang['helpItemDescLogout'] = 'خروج:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'رسالة خاصة:';
-$lang['helpItemCodePrivateMessage'] = '/msg Username نص';
-$lang['helpItemDescQueryOpen'] = 'فتح نافذة خاصة:';
-$lang['helpItemCodeQueryOpen'] = '/query Username';
-$lang['helpItemDescQueryClose'] = 'غلق النافذة الخاصة:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'وصف الحدث:';
-$lang['helpItemCodeAction'] = '/action نص';
-$lang['helpItemDescDescribe'] = 'وصف حدث برسالة خاصة:';
-$lang['helpItemCodeDescribe'] = '/describe Username نص';
-$lang['helpItemDescIgnore'] = 'تجاهل/قبول رسائل خاصة من:';
-$lang['helpItemCodeIgnore'] = '/ignore Username';
-$lang['helpItemDescIgnoreList'] = 'الأعضاء المتجاهلين:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'حظر مستخدمين (للمديرين فقط):';
-$lang['helpItemCodeKick'] = '/kick Username [دقائق الحظر]';
-$lang['helpItemDescUnban'] = 'الغاء حظر عضو (للمديرين فقط):';
-$lang['helpItemCodeUnban'] = '/unban Username';
-$lang['helpItemDescBans'] = 'الأعضاء المحظورين (للمديرين فقط):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'عرض الأى بى للمستخدم (المديرين فقط):';
-$lang['helpItemCodeWhois'] = '/whois Username';
-$lang['helpItemDescWho'] = 'الأعضاء المتواجدين:';
-$lang['helpItemCodeWho'] = '/who [Channelname]';
-$lang['helpItemDescList'] = 'القنوات المتوافرة:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Roll dice:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Change username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Settings';
-$lang['settingsBBCode'] = 'Enable BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Enable hyperlinks:';
-$lang['settingsLineBreaks'] = 'Enable line breaks:';
-$lang['settingsEmoticons'] = 'Enable emoticons:';
-$lang['settingsAutoFocus'] = 'Automatically set the focus on the input field:';
-$lang['settingsMaxMessages'] = 'Maximum number of messages in the chatlist:';
-$lang['settingsWordWrap'] = 'Enable wrapping of long words:';
-$lang['settingsMaxWordLength'] = 'Maximum length of a word before it gets wrapped:';
-$lang['settingsDateFormat'] = 'Format of date and time display:';
-$lang['settingsPersistFontColor'] = 'Persist font color:';
-$lang['settingsAudioVolume'] = 'Sound Volume:';
-$lang['settingsSoundReceive'] = 'Sound for incoming messages:';
-$lang['settingsSoundSend'] = 'Sound for outgoing messages:';
-$lang['settingsSoundEnter'] = 'Sound for login and channel enter messages:';
-$lang['settingsSoundLeave'] = 'Sound for logout and channel leave messages:';
-$lang['settingsSoundChatBot'] = 'Sound for chatbot messages:';
-$lang['settingsSoundError'] = 'Sound for error messages:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'Play selected sound';
-$lang['requiresJavaScript'] = 'يجب دعم الجافة سكريبت لهذا الشات.';
-$lang['errorInvalidUser'] = 'اسم مستخدم خطأ.';
-$lang['errorUserInUse'] = 'اسم المستخدم مستخدم.';
-$lang['errorBanned'] = 'المستخدم او عنوان الأى بى محظور.';
-$lang['errorMaxUsersLoggedIn'] = 'الشات به الحد الأقصى من الأعضاء المسجلين.';
-$lang['errorChatClosed'] = 'الشات مغلق حاليا.';
-$lang['logsTitle'] = 'سحل الشات';
-$lang['logsDate'] = 'التاريخ';
-$lang['logsTime'] = 'الوقت';
-$lang['logsSearch'] = 'بحث';
-$lang['logsPrivateChannels'] = 'القنوات الخاصة';
-$lang['logsPrivateMessages'] = 'الرسائل الخاصة';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/bg.php b/library/ajaxchat/chat/lib/lang/bg.php
deleted file mode 100644
index 46d6af163..000000000
--- a/library/ajaxchat/chat/lib/lang/bg.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Borislav Manolov
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Потребителско име';
-$lang['password'] = 'Парола';
-$lang['login'] = 'Вход';
-$lang['logout'] = 'Изход';
-$lang['channel'] = 'Канал';
-$lang['style'] = 'Облик';
-$lang['language'] = 'Език';
-$lang['inputLineBreak'] = 'Натиснете SHIFT+ENTER, за да вмъкнете нов ред';
-$lang['messageSubmit'] = 'Пращане';
-$lang['registeredUsers'] = 'Регистрирани потребители';
-$lang['onlineUsers'] = 'Потребители на линия';
-$lang['toggleAutoScroll'] = 'Автопрелистване вкл/изкл';
-$lang['toggleAudio'] = 'Звук вкл/изкл';
-$lang['toggleHelp'] = 'Показване/скриване на помощта';
-$lang['toggleSettings'] = 'Показване/скриване на настройките';
-$lang['toggleOnlineList'] = 'Показване/скриване на списъка с потребителите';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Цитат';
-$lang['bbCodeLabelCode'] = 'Код';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Картинка';
-$lang['bbCodeLabelColor'] = 'Цвят на шрифта';
-$lang['bbCodeTitleBold'] = 'Получер текст: [b]текст[/b]';
-$lang['bbCodeTitleItalic'] = 'Курсивен текст: [i]текст[/i]';
-$lang['bbCodeTitleUnderline'] = 'Подчертан текст: [u]текст[/u]';
-$lang['bbCodeTitleQuote'] = 'Цитиран текст: [quote]текст[/quote] или [quote=Автор]текст[/quote]';
-$lang['bbCodeTitleCode'] = 'Показване на код: [code]код[/code]';
-$lang['bbCodeTitleURL'] = 'URL: [url]http://example.org[/url] или [url=http://example.org]текст[/url]';
-$lang['bbCodeTitleImg'] = 'Вмъкване на картинка: [img]http://primer.org/kartinka.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Цвят на шрифта: [color=red]текст[/color]';
-$lang['help'] = 'Помощ';
-$lang['helpItemDescJoin'] = 'Присъединяване към канал:';
-$lang['helpItemCodeJoin'] = '/join име_на_канал';
-$lang['helpItemDescJoinCreate'] = 'Създаване на лична стая (само за регистрирани потребители):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Покана на потребител (напр. в лична стая):';
-$lang['helpItemCodeInvite'] = '/invite Потребителско_име';
-$lang['helpItemDescUninvite'] = 'Отказване на покана:';
-$lang['helpItemCodeUninvite'] = '/uninvite Потребителско_име';
-$lang['helpItemDescLogout'] = 'Изход от чата:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Лично съобщение:';
-$lang['helpItemCodePrivateMessage'] = '/msg Потребителско_име Текст';
-$lang['helpItemDescQueryOpen'] = 'Отваряне на личен канал:';
-$lang['helpItemCodeQueryOpen'] = '/query Потребителско_име';
-$lang['helpItemDescQueryClose'] = 'Затваряне на личен канал:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Описание на действие:';
-$lang['helpItemCodeAction'] = '/action Текст';
-$lang['helpItemDescDescribe'] = 'Описание на действието в лично съобщение:';
-$lang['helpItemCodeDescribe'] = '/describe Потребителско_име Текст';
-$lang['helpItemDescIgnore'] = 'Пренебрегване/приемане на съобщения от потребител:';
-$lang['helpItemCodeIgnore'] = '/ignore Потребителско_име';
-$lang['helpItemDescIgnoreList'] = 'Преглед на пренебрегнатите потребители:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Показване на потребителския канал:';
-$lang['helpItemCodeWhereis'] = '/whereis Потребителско_име';
-$lang['helpItemDescKick'] = 'Изритване на потребител (само за модератори):';
-$lang['helpItemCodeKick'] = '/kick Потребителско_име [брой минути]';
-$lang['helpItemDescUnban'] = 'Изгонване на потребител (само за модератори):';
-$lang['helpItemCodeUnban'] = '/unban Потребителско_име';
-$lang['helpItemDescBans'] = 'Преглед на изгонените потребители (само за модератори):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Преглед на айпи адреса на потребител (само за модератори):';
-$lang['helpItemCodeWhois'] = '/whois Потребителско_име';
-$lang['helpItemDescWho'] = 'Преглед на потребителите на линия:';
-$lang['helpItemCodeWho'] = '/who [Име_на_канал]';
-$lang['helpItemDescList'] = 'Преглед на наличните канали:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Хвърляне на зар:';
-$lang['helpItemCodeRoll'] = '/roll [пъти]d[страни]';
-$lang['helpItemDescNick'] = 'Смяна на потребителско име:';
-$lang['helpItemCodeNick'] = '/nick Потребителско_име';
-$lang['settings'] = 'Настройки';
-$lang['settingsBBCode'] = 'Позволяване на BBCode:';
-$lang['settingsBBCodeImages'] = 'Позволяване на BBCode за картинки:';
-$lang['settingsBBCodeColors'] = 'Позволяване на BBCode за шрифтов цвят:';
-$lang['settingsHyperLinks'] = 'Позволяване на хипервръзки:';
-$lang['settingsLineBreaks'] = 'Позволяване на край на ред:';
-$lang['settingsEmoticons'] = 'Позволяване на усмивки:';
-$lang['settingsAutoFocus'] = 'Автоматично фокусиране на полето за въвеждане:';
-$lang['settingsMaxMessages'] = 'Максимален брой съобщения в прозореца на чата:';
-$lang['settingsWordWrap'] = 'Пренасяне на дълги думи:';
-$lang['settingsMaxWordLength'] = 'Максимална дължина на дума преди да бъде пренесена:';
-$lang['settingsDateFormat'] = 'Формат на датата и часа:';
-$lang['settingsPersistFontColor'] = 'Устойчив цвят на шрифта:';
-$lang['settingsAudioVolume'] = 'Височина на звука:';
-$lang['settingsSoundReceive'] = 'Звук за входящи съобщения:';
-$lang['settingsSoundSend'] = 'Звук за изходящи съобщения:';
-$lang['settingsSoundEnter'] = 'Звук за съобщенията за влизане в чата или в канала:';
-$lang['settingsSoundLeave'] = 'Звук за съобщенията за излизане от чата или от канала:';
-$lang['settingsSoundChatBot'] = 'Звук за съобщенията на чатбота:';
-$lang['settingsSoundError'] = 'Звук за съобщенията за грешки:';
-$lang['settingsBlink'] = 'Примигване на прозоречното заглавие при нови съобщения:';
-$lang['settingsBlinkInterval'] = 'Интервал на примигване в милисекунди:';
-$lang['settingsBlinkIntervalNumber'] = 'Брой пъти на примигване:';
-$lang['playSelectedSound'] = 'Прослушване на избрания звук';
-$lang['requiresJavaScript'] = 'За чата се изисква поддръжката на Джаваскрипт.';
-$lang['errorInvalidUser'] = 'Грешно потребителско име.';
-$lang['errorUserInUse'] = 'Потребителското име се използва.';
-$lang['errorBanned'] = 'Потребителят или айпи адресът е изгонен.';
-$lang['errorMaxUsersLoggedIn'] = 'Чатът достигна максималния брой на влезли потребители.';
-$lang['errorChatClosed'] = 'В момента чатът е затворен.';
-$lang['logsTitle'] = 'AJAX Chat — Логове';
-$lang['logsDate'] = 'Дата';
-$lang['logsTime'] = 'Време';
-$lang['logsSearch'] = 'Търсене';
-$lang['logsPrivateChannels'] = 'Лични канали';
-$lang['logsPrivateMessages'] = 'Лични съобщения';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/ca.php b/library/ajaxchat/chat/lib/lang/ca.php
deleted file mode 100644
index e45c376da..000000000
--- a/library/ajaxchat/chat/lib/lang/ca.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Manu Quintans
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Usuari';
-$lang['password'] = 'Contrasenya';
-$lang['login'] = 'Accedir';
-$lang['logout'] = 'Tancar sessió';
-$lang['channel'] = 'Canal';
-$lang['style'] = 'Estil';
-$lang['language'] = 'Idioma';
-$lang['inputLineBreak'] = 'Prem SHIFT+ENTER per introduir un salt de línia';
-$lang['messageSubmit'] = 'Enviar';
-$lang['registeredUsers'] = 'Usuaris registrats';
-$lang['onlineUsers'] = 'Usuaris Conectats';
-$lang['toggleAutoScroll'] = 'Desplaçament automàtic activat/desactivat';
-$lang['toggleAudio'] = 'So activat/desactivat';
-$lang['toggleHelp'] = 'mostra/amaga ajuda';
-$lang['toggleSettings'] = 'mostra/amaga propietats';
-$lang['toggleOnlineList'] = 'mostra/amaga usuaris conectats';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citar';
-$lang['bbCodeLabelCode'] = 'Codi';
-$lang['bbCodeLabelURL'] = 'Enllaç';
-$lang['bbCodeLabelImg'] = 'Imatge';
-$lang['bbCodeLabelColor'] = 'Color de la Font';
-$lang['bbCodeTitleBold'] = 'text en negreta: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'text en cursiva: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'text subratllat: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'text citat: [quote]text[/quote] o [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Mostrar codi: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Insertar enllaç: [url]http://example.org[/url] o [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insertar imatge: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Color de la font: [color=red]text[/color]';
-$lang['help'] = 'Ajuda';
-$lang['helpItemDescJoin'] = 'Entrar en canal:';
-$lang['helpItemCodeJoin'] = '/join nom del canal';
-$lang['helpItemDescJoinCreate'] = 'Crear una sala privada (només usuaris registrats):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Convidar algú (p.ex. a una sala privada):';
-$lang['helpItemCodeInvite'] = '/invite nom de l\'usuari';
-$lang['helpItemDescUninvite'] = 'Cancel·lar invitació:';
-$lang['helpItemCodeUninvite'] = '/uninvite nom d l\'usuari';
-$lang['helpItemDescLogout'] = 'Tancar sessió:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Missatge privat:';
-$lang['helpItemCodePrivateMessage'] = '/msg Usuari Text';
-$lang['helpItemDescQueryOpen'] = 'Obrir un canal privat:';
-$lang['helpItemCodeQueryOpen'] = '/query Usuari';
-$lang['helpItemDescQueryClose'] = 'Tancar canal privat:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Descriu acció:';
-$lang['helpItemCodeAction'] = '/action acció';
-$lang['helpItemDescDescribe'] = 'Descriu acció en un missatge privat:';
-$lang['helpItemCodeDescribe'] = '/describe NomUsuari acció';
-$lang['helpItemDescIgnore'] = 'Ignorar/Acceptar missatges d\'usuaris:';
-$lang['helpItemCodeIgnore'] = '/ignore nom de l\'usuari ';
-$lang['helpItemDescIgnoreList'] = 'Llista d\'usuaris ignorats:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Mostra canal de l\'usuari:';
-$lang['helpItemCodeWhereis'] = '/whereis nom de l\'usuari';
-$lang['helpItemDescKick'] = 'Patear usuari (només moderadors):';
-$lang['helpItemCodeKick'] = '/kick Usuari [Minuts banejat]';
-$lang['helpItemDescUnban'] = 'treure banejat usuari (només moderadors):';
-$lang['helpItemCodeUnban'] = '/unban nom de l\'usuari';
-$lang['helpItemDescBans'] = 'Llista d\'usuaris banejats (només moderadors):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Mostrar les IPs d\'usuaris (només moderadors):';
-$lang['helpItemCodeWhois'] = '/whois nom de l\'usuari';
-$lang['helpItemDescWho'] = 'Mostrar usuaris conectats:';
-$lang['helpItemCodeWho'] = '/who [nom del canal]';
-$lang['helpItemDescList'] = 'Llista de canals disponibles:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Tirar els daus:';
-$lang['helpItemCodeRoll'] = '/roll [nombre]d[cares]';
-$lang['helpItemDescNick'] = 'canviar nom d\'usuari:';
-$lang['helpItemCodeNick'] = '/nick nom d\'usuari';
-$lang['settings'] = 'Configuració';
-$lang['settingsBBCode'] = 'Habilitar BBCode:';
-$lang['settingsBBCodeImages'] = 'Habilitar imatge BBCode:';
-$lang['settingsBBCodeColors'] = 'habilitar color de font BBCode:';
-$lang['settingsHyperLinks'] = 'habilitar hipervincles:';
-$lang['settingsLineBreaks'] = 'Habilitar salts de línia:';
-$lang['settingsEmoticons'] = 'Habilitar emoticons:';
-$lang['settingsAutoFocus'] = 'Configurar automàticament el focus en el camp d\'entrada:';
-$lang['settingsMaxMessages'] = 'Màxim nombre de missatges en les llistes de Xat:';
-$lang['settingsWordWrap'] = 'Habilitar partir paraules llargues';
-$lang['settingsMaxWordLength'] = 'Màxima llargada d\'una paraula abns de ser tallada:';
-$lang['settingsDateFormat'] = 'Format de dia i hora:';
-$lang['settingsPersistFontColor'] = 'Color de font persistent:';
-$lang['settingsAudioVolume'] = 'So volum:';
-$lang['settingsSoundReceive'] = 'So per missatdes d\'entrada:';
-$lang['settingsSoundSend'] = 'So per missatges de sortida:';
-$lang['settingsSoundEnter'] = 'So per connectar i missatges d\'entrada del canal:';
-$lang['settingsSoundLeave'] = 'So per desconnectar i missatges de sortida del canal:';
-$lang['settingsSoundChatBot'] = 'So pels missatges del xat:';
-$lang['settingsSoundError'] = 'So per missatges d\'error:';
-$lang['settingsBlink'] = 'Notificació de finestra per als nous missatges:';
-$lang['settingsBlinkInterval'] = 'Interval de notificacions intermitents (milisegons):';
-$lang['settingsBlinkIntervalNumber'] = 'Nombre de notificacions intermitents:';
-$lang['playSelectedSound'] = 'Reproduir el so seleccionat';
-$lang['requiresJavaScript'] = 'Necesites tenir instal·lat Javascript al teu navegador';
-$lang['errorInvalidUser'] = 'Usuari no vàlid';
-$lang['errorUserInUse'] = 'Aquest nom d\'usuari està sent utilitzat en aquests moments';
-$lang['errorBanned'] = 'L\'usuari o IP està bannejat';
-$lang['errorMaxUsersLoggedIn'] = 'El xat ha arribat al màxim nombre d\'usuaris.';
-$lang['errorChatClosed'] = 'El xat està tancat en aquests moments.';
-$lang['logsTitle'] = 'AJAX Xat - Registre';
-$lang['logsDate'] = 'Data';
-$lang['logsTime'] = 'Hora';
-$lang['logsSearch'] = 'Buscar';
-$lang['logsPrivateChannels'] = 'Canals privats';
-$lang['logsPrivateMessages'] = 'Missatges privats';
-
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/cy.php b/library/ajaxchat/chat/lib/lang/cy.php
deleted file mode 100644
index dea446df5..000000000
--- a/library/ajaxchat/chat/lib/lang/cy.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Alan Davies
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Enw';
-$lang['password'] = 'Cyfrinair';
-$lang['login'] = 'Mewngofnodi';
-$lang['logout'] = 'Allgofnodi';
-$lang['channel'] = 'Sianel';
-$lang['style'] = 'Steil';
-$lang['language'] = 'Iaith';
-$lang['inputLineBreak'] = 'Gwasgwch SHIFT+ENTER i orfodi llinell newydd';
-$lang['messageSubmit'] = 'Anfon';
-$lang['registeredUsers'] = 'Defnyddwyr Cofrestredig';
-$lang['onlineUsers'] = 'Defnyddwyr ar-lein';
-$lang['toggleAutoScroll'] = 'Awtorhôl ymlaen/bant';
-$lang['toggleAudio'] = 'Sain ymlaen/bant';
-$lang['toggleHelp'] = 'Dangos/cuddio cymorth';
-$lang['toggleSettings'] = 'Dangos/cuddio gosodiadau';
-$lang['toggleOnlineList'] = 'Dangos/cuddio rhestr ar-lein';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Dyfyniad';
-$lang['bbCodeLabelCode'] = 'Cod';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Delwedd';
-$lang['bbCodeLabelColor'] = 'Lliw Ffont';
-$lang['bbCodeTitleBold'] = 'Testun bras: [b]testun[/b]';
-$lang['bbCodeTitleItalic'] = 'Testun italig: [i]testun[/i]';
-$lang['bbCodeTitleUnderline'] = 'Tanlinellu testun: [u]testun[/u]';
-$lang['bbCodeTitleQuote'] = 'Dyfynnu testun: [quote]testun[/quote] neu [quote=awdur]testun[/quote]';
-$lang['bbCodeTitleCode'] = 'Dangos cod: [code]cod[/code]';
-$lang['bbCodeTitleURL'] = 'Mewnosod URL: [url]http://example.org[/url] neu [url=http://example.org]testun[/url]';
-$lang['bbCodeTitleImg'] = 'Mewnosod delwedd: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Lliw Ffont: [color=red]testun[/color]';
-$lang['help'] = 'Cymorth';
-$lang['helpItemDescJoin'] = 'Ymunwch â sianel:';
-$lang['helpItemCodeJoin'] = '/join EnwSianel';
-$lang['helpItemDescJoinCreate'] = 'Crëwch ystafell breifat (Defnyddwyr cofrestredig yn unig):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Gwahodd rhywun (e.e. i ystafell breifat):';
-$lang['helpItemCodeInvite'] = '/invite Enw';
-$lang['helpItemDescUninvite'] = 'Tynnu gwahaoddiad yn ôl:';
-$lang['helpItemCodeUninvite'] = '/uninvite Enw';
-$lang['helpItemDescLogout'] = 'Allgofnodwch o Sgwrs:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Neges breifat:';
-$lang['helpItemCodePrivateMessage'] = '/msg Testun Enw';
-$lang['helpItemDescQueryOpen'] = 'Agorwch sianel breifat:';
-$lang['helpItemCodeQueryOpen'] = '/query Enw';
-$lang['helpItemDescQueryClose'] = 'Ceuwch sianel breifat:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Disgrifiwch weithred:';
-$lang['helpItemCodeAction'] = '/action Testun';
-$lang['helpItemDescDescribe'] = 'Disgrifiwch weithred mewn neges breifat:';
-$lang['helpItemCodeDescribe'] = '/describe Testun Enw';
-$lang['helpItemDescIgnore'] = 'Anwybyddu/derbyn negeseuon o ddefnyddiwr:';
-$lang['helpItemCodeIgnore'] = '/ignore Enw';
-$lang['helpItemDescIgnoreList'] = 'Rhestr anwybyddion:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Dangos sianel defnyddiwr:';
-$lang['helpItemCodeWhereis'] = '/whereis Enw';
-$lang['helpItemDescKick'] = 'Ciciwch ddefnyddiwr (Cymedrolwyr yn unig):';
-$lang['helpItemCodeKick'] = '/kick Enw [Gwahardd munudau]';
-$lang['helpItemDescUnban'] = 'Dadwahardd defnyddiwr (Cymedrolwyr yn unig):';
-$lang['helpItemCodeUnban'] = '/unban Enw';
-$lang['helpItemDescBans'] = 'Rhestr waharddogion (Cymedrolwyr yn unig):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Dangos IP defnyddiwr (Cymedrolwyr yn unig):';
-$lang['helpItemCodeWhois'] = '/whois Enw';
-$lang['helpItemDescWho'] = 'Rhestr ddefnyddwyr ar-lein:';
-$lang['helpItemCodeWho'] = '/who [EnwSianel]';
-$lang['helpItemDescList'] = 'Rhestr sianeli ar gael:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Rholio dis:';
-$lang['helpItemCodeRoll'] = '/roll [nifer]d[ochrau]'; //posib angen newid hwn
-$lang['helpItemDescNick'] = 'Newid enw:';
-$lang['helpItemCodeNick'] = '/nick Enw';
-$lang['settings'] = 'Gosodiadau';
-$lang['settingsBBCode'] = 'Galluogi BBCode:';
-$lang['settingsBBCodeImages'] = 'Galluogi delweddau BBCode:';
-$lang['settingsBBCodeColors'] = 'Galluogi lliwiau ffont BBCode:';
-$lang['settingsHyperLinks'] = 'Galluogi dolenni:';
-$lang['settingsLineBreaks'] = 'Galluogi toriadau llinell:';
-$lang['settingsEmoticons'] = 'Galluogi gwenogluniau:';
-$lang['settingsAutoFocus'] = 'Gosod y ffocws ar y maes mewnbwn yn awtomatig:';
-$lang['settingsMaxMessages'] = 'Uchafswm y negeseuon yn y rhestr sgwrs:';
-$lang['settingsWordWrap'] = 'Galluogi lapio geiriau hir:';
-$lang['settingsMaxWordLength'] = 'Hyd mwyaf y gair cyn iddo gael ei lapio:';
-$lang['settingsDateFormat'] = 'Fformat y dyddiad a\'r amser:';
-$lang['settingsPersistFontColor'] = 'Lliw ffont parhaus:';
-$lang['settingsAudioVolume'] = 'Uchder Sain:';
-$lang['settingsSoundReceive'] = 'Sain am negeseuon yn dyfod i mewn:';
-$lang['settingsSoundSend'] = 'Sain am negeseuon yn mynd allan:';
-$lang['settingsSoundEnter'] = 'Sain am fewngofnodi a negeseuon myned i sianeli:';
-$lang['settingsSoundLeave'] = 'Sain am allgofnodi a negeseuon gadael sianeli:';
-$lang['settingsSoundChatBot'] = 'Sain am negeseuon sgwrsbot:';
-$lang['settingsSoundError'] = 'Sain am wallnegeseuon:';
-$lang['settingsBlink'] = 'Fflachio teitl y ffenestr ar negeseuon newydd:';
-$lang['settingsBlinkInterval'] = 'Cyfwng fflachio mewn milieiliadau:';
-$lang['settingsBlinkIntervalNumber'] = 'Nifer y cyfyngau fflachio:';
-$lang['playSelectedSound'] = 'Chwarae\'r sain hon';
-$lang['requiresJavaScript'] = 'Mae angen JavaScript ar gyfer y Sgwrs hon.';
-$lang['errorInvalidUser'] = 'Enw annilys.';
-$lang['errorUserInUse'] = 'Enw\'n bodoli eisoes.';
-$lang['errorBanned'] = 'Gwaharddwyd y Defnyddiwr neu\'r IP.';
-$lang['errorMaxUsersLoggedIn'] = 'Mae\'r sgwrs wedi cyrraedd yr uchafswm o ddefnyddwyr.';
-$lang['errorChatClosed'] = 'Mae\'r sgwrs ar gau yn bresennol.';
-$lang['logsTitle'] = 'Sgwrs AJAX - Logiau';
-$lang['logsDate'] = 'Dyddiad';
-$lang['logsTime'] = 'Amser';
-$lang['logsSearch'] = 'Chwilio';
-$lang['logsPrivateChannels'] = 'Sianeli Preifat';
-$lang['logsPrivateMessages'] = 'Negeseuon Preifat';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/cz.php b/library/ajaxchat/chat/lib/lang/cz.php
deleted file mode 100644
index cc6868c1e..000000000
--- a/library/ajaxchat/chat/lib/lang/cz.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Jméno uživatele';
-$lang['password'] = 'Heslo';
-$lang['login'] = 'Přihlásit';
-$lang['logout'] = 'Odhlásit';
-$lang['channel'] = 'Místnost';
-$lang['style'] = 'Styl';
-$lang['language'] = 'Jazyk';
-$lang['inputLineBreak'] = 'Pro zalomení řádku stiskni SHIFT+ENTER';
-$lang['messageSubmit'] = 'Odeslat';
-$lang['registeredUsers'] = 'Registrovaní uživatelé';
-$lang['onlineUsers'] = 'Přihlášení uživatelé';
-$lang['toggleAutoScroll'] = 'Posouvání textu zapnuto/vypnuto';
-$lang['toggleAudio'] = 'Zvuk zapnutý/vypnutý';
-$lang['toggleHelp'] = 'Zobrazit/skrýt nápovědu';
-$lang['toggleSettings'] = 'Zobrazit/skrýt nastavení';
-$lang['toggleOnlineList'] = 'Zobrazit/skrýt seznam přihlášených';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citace';
-$lang['bbCodeLabelCode'] = 'Kód';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Obrázek';
-$lang['bbCodeLabelColor'] = 'Barva písma';
-$lang['bbCodeTitleBold'] = 'Tučně: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Kurzívou: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Podtržené: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Citace: [quote]text[/quote] nebo [quote=autor]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Zobrazit kód: [code]kód[/code]';
-$lang['bbCodeTitleURL'] = 'Vložit URL: [url]http://example.org[/url] nebo [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Vložit obrázek: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Barva písma: [color=red]text[/color]';
-$lang['help'] = 'Nápověda';
-$lang['helpItemDescJoin'] = 'Vstup do místnosti:';
-$lang['helpItemCodeJoin'] = '/join Místnost';
-$lang['helpItemDescJoinCreate'] = 'Vytvořit vlastní místnost (Pouze registrovaní uživatelé):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Pozvání k soukromému rozhovoru (např. do vlastní místnosti):';
-$lang['helpItemCodeInvite'] = '/invite Uživatel';
-$lang['helpItemDescUninvite'] = 'Odvolat pozvání:';
-$lang['helpItemCodeUninvite'] = '/uninvite Uživatel';
-$lang['helpItemDescLogout'] = 'Odhlášení z chatu:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Soukromá zpráva:';
-$lang['helpItemCodePrivateMessage'] = '/msg Uživatel zpráva';
-$lang['helpItemDescQueryOpen'] = 'Soukromý rozhovor:';
-$lang['helpItemCodeQueryOpen'] = '/query Uživatel';
-$lang['helpItemDescQueryClose'] = 'Ukončit soukromý rozhovor:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Co zrovna dělám:';
-$lang['helpItemCodeAction'] = '/action Text';
-$lang['helpItemDescDescribe'] = 'To samé soukromě:';
-$lang['helpItemCodeDescribe'] = '/describe Uživatel Text';
-$lang['helpItemDescIgnore'] = 'Odmítnout/přijmout zprávu od uživatele:';
-$lang['helpItemCodeIgnore'] = '/ignore (accept) Uživatel';
-$lang['helpItemDescIgnoreList'] = 'Výpis odmítnutých uživatelů:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Najít uživatele:';
-$lang['helpItemCodeWhereis'] = '/whereis Uživatel';
-$lang['helpItemDescKick'] = 'Vyhodit uživatele (Pouze moderátoři):';
-$lang['helpItemCodeKick'] = '/kick Uživatel [Čas v minutách]';
-$lang['helpItemDescUnban'] = 'Omilostnit vyhozeného (Pouze moderátoři):';
-$lang['helpItemCodeUnban'] = '/unban Uživatel';
-$lang['helpItemDescBans'] = 'Výpis vyhozených uživatelů (Pouze moderátoři):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Zobrazit IP uživatele (Pouze moderátoři):';
-$lang['helpItemCodeWhois'] = '/whois Username';
-$lang['helpItemDescWho'] = 'Seznam přihlášených uživatelů:';
-$lang['helpItemCodeWho'] = '/who [Místnost]';
-$lang['helpItemDescList'] = 'Výpis místností:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Hodit kostkou:';
-$lang['helpItemCodeRoll'] = '/roll [číslo]d[počet stran]';
-$lang['helpItemDescNick'] = 'Změnit jméno uživatele:';
-$lang['helpItemCodeNick'] = '/nick Uživatel';
-$lang['settings'] = 'Nastavení';
-$lang['settingsBBCode'] = 'Povolit kódy BBCode:';
-$lang['settingsBBCodeImages'] = 'Povolit image BBCode:';
-$lang['settingsBBCodeColors'] = 'Povolit font color BBCode:';
-$lang['settingsHyperLinks'] = 'Povolit odkazy:';
-$lang['settingsLineBreaks'] = 'Povolit více řádků:';
-$lang['settingsEmoticons'] = 'Povolit smajlíky:';
-$lang['settingsAutoFocus'] = 'Automaticky nastavit kurzor na vstupní pole:';
-$lang['settingsMaxMessages'] = 'Maximální počet zpráv v hlavním okně:';
-$lang['settingsWordWrap'] = 'Povolit zalomení řádku u dlouhého slova:';
-$lang['settingsMaxWordLength'] = 'Maximální délka slova, než bude zalomeno:';
-$lang['settingsDateFormat'] = 'Formát zobrazení data a času:';
-$lang['settingsPersistFontColor'] = 'Neměnná barva textu:';
-$lang['settingsAudioVolume'] = 'Hlasitost:';
-$lang['settingsSoundReceive'] = 'Zvuk pro příchozí zprávy:';
-$lang['settingsSoundSend'] = 'Zvuk pro odchozí zprávy:';
-$lang['settingsSoundEnter'] = 'Zvuk při přihlášení nebo vstupu do místnosti:';
-$lang['settingsSoundLeave'] = 'Zvuk při odhlášení nebo odchodu z místnosti:';
-$lang['settingsSoundChatBot'] = 'Zvuk při zprávě chatbota:';
-$lang['settingsSoundError'] = 'Zvuk při chybové zprávě:';
-$lang['settingsBlink'] = 'Blikání titulku okna při příchozí zprávě:';
-$lang['settingsBlinkInterval'] = 'Interval blikání v milisekundách:';
-$lang['settingsBlinkIntervalNumber'] = 'Počet bliknutí:';
-$lang['playSelectedSound'] = 'Přehrát vybraný zvuk:';
-$lang['requiresJavaScript'] = 'Pro tento chat musíš mít zapnutý JavaScript.';
-$lang['errorInvalidUser'] = 'Uživatel neexistuje.';
-$lang['errorUserInUse'] = 'To jméno už je používáno.';
-$lang['errorBanned'] = 'Uživatel nebo IP adresa jsou na seznamu vyhozených.';
-$lang['errorMaxUsersLoggedIn'] = 'Chat je plný.';
-$lang['errorChatClosed'] = 'Chat je v tuto chvíli mimo provoz.';
-$lang['logsTitle'] = 'AJAX Chat - Logy';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Čas';
-$lang['logsSearch'] = 'Hledej';
-$lang['logsPrivateChannels'] = 'Soukromé místnosti';
-$lang['logsPrivateMessages'] = 'Soukromé zprávy';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/da.php b/library/ajaxchat/chat/lib/lang/da.php
deleted file mode 100644
index 55e7eff1b..000000000
--- a/library/ajaxchat/chat/lib/lang/da.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Brugernavn';
-$lang['password'] = 'Adgangskode';
-$lang['login'] = 'Log ind';
-$lang['logout'] = 'Log ud';
-$lang['channel'] = 'Kanal';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Sprog';
-$lang['inputLineBreak'] = 'Tryk SHIFT+ENTER For at lave et linjeskift';
-$lang['messageSubmit'] = 'Send';
-$lang['registeredUsers'] = 'Registrerede brugere';
-$lang['onlineUsers'] = 'Online brugere';
-$lang['toggleAutoScroll'] = 'Autoscroll til/fra';
-$lang['toggleAudio'] = 'Lyd til/fra';
-$lang['toggleHelp'] = 'Vis/skjul Hjælp';
-$lang['toggleSettings'] = 'Vis/skjul indstillinger';
-$lang['toggleOnlineList'] = 'Vis/Skjul online liste';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citat';
-$lang['bbCodeLabelCode'] = 'Kode';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Billede';
-$lang['bbCodeLabelColor'] = 'Font Farve';
-$lang['bbCodeTitleBold'] = 'Fed tekst: [b]tekstt[/b]';
-$lang['bbCodeTitleItalic'] = 'Kursiv tekst: [i]tekst[/i]';
-$lang['bbCodeTitleUnderline'] = 'Understreget tekst: [u]tekst[/u]';
-$lang['bbCodeTitleQuote'] = 'Citer tekst: [quote]citat[/quote] eller [quote=author]tekst[/quote]';
-$lang['bbCodeTitleCode'] = 'Vis kode: [code]kode[/code]';
-$lang['bbCodeTitleURL'] = 'Indsæt URL: [url]http://example.org[/url] eller [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Indsæt image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Font Farve: [color=red]tekst[/color]';
-$lang['help'] = 'Hjælp';
-$lang['helpItemDescJoin'] = 'Deltag i en kanal:';
-$lang['helpItemCodeJoin'] = '/join Kanalnavn';
-$lang['helpItemDescJoinCreate'] = 'Opret et rum (kun for registrerede brugere):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Inviter person (fx til et privat rum):';
-$lang['helpItemCodeInvite'] = '/invite brugernavn';
-$lang['helpItemDescUninvite'] = 'Anuller invitation:';
-$lang['helpItemCodeUninvite'] = '/uninvite brugernavn';
-$lang['helpItemDescLogout'] = 'Log ud af chatten:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privat besked:';
-$lang['helpItemCodePrivateMessage'] = '/msg brugernavn Tekst';
-$lang['helpItemDescQueryOpen'] = 'Åben en privat kanal:';
-$lang['helpItemCodeQueryOpen'] = '/query brugernavn';
-$lang['helpItemDescQueryClose'] = 'Luk en privat kanal:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'beskrivende handling:';
-$lang['helpItemCodeAction'] = '/action Tekst';
-$lang['helpItemDescDescribe'] = 'Beskrivende handling i privat besked:';
-$lang['helpItemCodeDescribe'] = '/describe brugernavn Tekst';
-$lang['helpItemDescIgnore'] = 'Ignorer/accepter beskeder fra bruger:';
-$lang['helpItemCodeIgnore'] = '/ignore brugernavn';
-$lang['helpItemDescIgnoreList'] = 'Vis ignorerede brugere:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Vis bruger kanal:';
-$lang['helpItemCodeWhereis'] = '/whereis brugernavn';
-$lang['helpItemDescKick'] = 'Spark en bruger ud af chatten (Moderators):';
-$lang['helpItemCodeKick'] = '/kick brugernavn [Minuter banlyst]';
-$lang['helpItemDescUnban'] = 'fjern banlysning af bruger (Moderators):';
-$lang['helpItemCodeUnban'] = '/unban brugernavn';
-$lang['helpItemDescBans'] = 'Vis banlyste brugere (Moderators):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Vis en brugers IP (Moderators):';
-$lang['helpItemCodeWhois'] = '/whois brugernavn';
-$lang['helpItemDescWho'] = 'Vis online brugere:';
-$lang['helpItemCodeWho'] = '/who [kanalnavn]';
-$lang['helpItemDescList'] = 'Vis tilgængelige kanaler:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'kast terninger:';
-$lang['helpItemCodeRoll'] = '/roll [antal]d[sider]';
-$lang['helpItemDescNick'] = 'Skift brugernavn:';
-$lang['helpItemCodeNick'] = '/nick brugernavn';
-$lang['settings'] = 'Indstillinger';
-$lang['settingsBBCode'] = 'Aktiver BBCode:';
-$lang['settingsBBCodeImages'] = 'Aktiver billede BBCode:';
-$lang['settingsBBCodeColors'] = 'Aktiver font farve BBCode:';
-$lang['settingsHyperLinks'] = 'Aktiver hyperlinks:';
-$lang['settingsLineBreaks'] = 'Aktiver linjeskift:';
-$lang['settingsEmoticons'] = 'Aktiver smileys:';
-$lang['settingsAutoFocus'] = 'Automatisk indstild fokus på indtastningsfeltet:';
-$lang['settingsMaxMessages'] = 'Maximum antal beskeder i chat list:';
-$lang['settingsWordWrap'] = 'Aktiver ombrydning af lange ord:';
-$lang['settingsMaxWordLength'] = 'Maximum længde af et ord før det bliver ombrudt:';
-$lang['settingsDateFormat'] = 'Metoden hvorpå data og klokkeslet vises:';
-$lang['settingsPersistFontColor'] = 'Vedhold en tekst farve:';
-$lang['settingsAudioVolume'] = 'Lydstyrke:';
-$lang['settingsSoundReceive'] = 'Lyd for indgående beskeder:';
-$lang['settingsSoundSend'] = 'Lyd for udgående:';
-$lang['settingsSoundEnter'] = 'Lyd ved login og kanal beskeder:';
-$lang['settingsSoundLeave'] = 'Lyd ved login og forlad kanal beskeder:';
-$lang['settingsSoundChatBot'] = 'Lyd ved ChatBot beskeder:';
-$lang['settingsSoundError'] = 'Lyd ved fejlmeddelse:';
-$lang['settingsBlink'] = 'Blink vindue titel ved nye beskeder:';
-$lang['settingsBlinkInterval'] = 'Blink interval i millisekonder:';
-$lang['settingsBlinkIntervalNumber'] = 'Antal blink intervaler:';
-$lang['playSelectedSound'] = 'Afspil valgte lyd';
-$lang['requiresJavaScript'] = 'JavaScript er nødvændigt for at kunne bruge denne chat.';
-$lang['errorInvalidUser'] = 'Ugyldigt brugernavn.';
-$lang['errorUserInUse'] = 'Brugernavn allerede i brug.';
-$lang['errorBanned'] = 'Bruger eller IP er blevet banned.';
-$lang['errorMaxUsersLoggedIn'] = 'Chatten har opnået det maksimale antal online brugere.';
-$lang['errorChatClosed'] = 'Chatten er pt lukket.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Dato';
-$lang['logsTime'] = 'Tid';
-$lang['logsSearch'] = 'Søg';
-$lang['logsPrivateChannels'] = 'Private Kanaler';
-$lang['logsPrivateMessages'] = 'Private Beskeder';
-?>
diff --git a/library/ajaxchat/chat/lib/lang/de.php b/library/ajaxchat/chat/lib/lang/de.php
deleted file mode 100644
index f345d100a..000000000
--- a/library/ajaxchat/chat/lib/lang/de.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Benutzername';
-$lang['password'] = 'Passwort';
-$lang['login'] = 'Login';
-$lang['logout'] = 'Logout';
-$lang['channel'] = 'Raum';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Sprache';
-$lang['inputLineBreak'] = 'UMSCHALT+EINGABE drücken um einen Zeilenumbruch zu erzeugen';
-$lang['messageSubmit'] = 'Abschicken';
-$lang['registeredUsers'] = 'Registrierte Benutzer';
-$lang['onlineUsers'] = 'Online Benutzer';
-$lang['toggleAutoScroll'] = 'Autoscroll an/aus';
-$lang['toggleAudio'] = 'Sound an/aus';
-$lang['toggleHelp'] = 'Hilfe anzeigen/verstecken';
-$lang['toggleSettings'] = 'Einstellungen anzeigen/verstecken';
-$lang['toggleOnlineList'] = 'Online Benutzer anzeigen/verstecken';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Zitat';
-$lang['bbCodeLabelCode'] = 'Code';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Bild';
-$lang['bbCodeLabelColor'] = 'Schriftfarbe';
-$lang['bbCodeTitleBold'] = 'Fett: [b]Text[/b]';
-$lang['bbCodeTitleItalic'] = 'Kursiv: [i]Text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Unterstrichen: [u]Text[/u]';
-$lang['bbCodeTitleQuote'] = 'Zitat: [quote]Text[/quote] oder [quote=Autor]Text[/quote]';
-$lang['bbCodeTitleCode'] = 'Code anzeigen: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Link einfügen: [url]http://example.org[/url] oder [url=http://example.org]Text[/url]';
-$lang['bbCodeTitleImg'] = 'Bild einfügen: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Schriftfarbe: [color=red]Text[/color]';
-$lang['help'] = 'Hilfe';
-$lang['helpItemDescJoin'] = 'Raum betreten:';
-$lang['helpItemCodeJoin'] = '/join Raumname';
-$lang['helpItemDescJoinCreate'] = 'Einen privaten Raum erstellen (nur registrierte Benutzer):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Jemanden einladen (z.B. in einen privaten Raum):';
-$lang['helpItemCodeInvite'] = '/invite Benutzername';
-$lang['helpItemDescUninvite'] = 'Einladung zurücknehmen:';
-$lang['helpItemCodeUninvite'] = '/uninvite Benutzername';
-$lang['helpItemDescLogout'] = 'Logout aus dem Chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Private Nachricht:';
-$lang['helpItemCodePrivateMessage'] = '/msg Benutzername Text';
-$lang['helpItemDescQueryOpen'] = 'Privaten Kanal öffnen:';
-$lang['helpItemCodeQueryOpen'] = '/query Benutzername';
-$lang['helpItemDescQueryClose'] = 'Privaten Kanal schließen:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Aktion beschreiben:';
-$lang['helpItemCodeAction'] = '/action Text';
-$lang['helpItemDescDescribe'] = 'Aktion in privater Nachricht beschreiben:';
-$lang['helpItemCodeDescribe'] = '/describe Benutzername Text';
-$lang['helpItemDescIgnore'] = 'Nachrichten von Benutzer ignorieren/akzeptieren:';
-$lang['helpItemCodeIgnore'] = '/ignore Benutzername';
-$lang['helpItemDescIgnoreList'] = 'Ignorierte Benutzer auflisten:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Raum eines Benutzers anzeigen:';
-$lang['helpItemCodeWhereis'] = '/whereis Benutzername';
-$lang['helpItemDescKick'] = 'Benutzer ausschließen (nur Moderatoren):';
-$lang['helpItemCodeKick'] = '/kick Benutzername [Ausschluss in Minuten]';
-$lang['helpItemDescUnban'] = 'Ausschluss eines Benutzers aufheben (nur Moderatoren):';
-$lang['helpItemCodeUnban'] = '/unban Benutzername';
-$lang['helpItemDescBans'] = 'Ausgeschlossene Benutzer auflisten (nur Moderatoren):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Benutzer IP anzeigen (nur Moderatoren):';
-$lang['helpItemCodeWhois'] = '/whois Benutzername';
-$lang['helpItemDescWho'] = 'Online Benutzer auflisten:';
-$lang['helpItemCodeWho'] = '/who [Kanalname]';
-$lang['helpItemDescList'] = 'Verfügbare Räume auflisten:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Würfeln:';
-$lang['helpItemCodeRoll'] = '/roll [Anzahl]d[Seiten]';
-$lang['helpItemDescNick'] = 'Benutzernamen ändern:';
-$lang['helpItemCodeNick'] = '/nick Benutzername';
-$lang['settings'] = 'Einstellungen';
-$lang['settingsBBCode'] = 'BBCode aktivieren:';
-$lang['settingsBBCodeImages'] = ' Bilder BBCode aktivieren:';
-$lang['settingsBBCodeColors'] = 'Schriftfarben BBCode aktivieren:';
-$lang['settingsHyperLinks'] = 'Hyperlinks aktivieren:';
-$lang['settingsLineBreaks'] = 'Zeilenumbrüche aktivieren:';
-$lang['settingsEmoticons'] = 'Smileys aktivieren:';
-$lang['settingsAutoFocus'] = 'Automatisch den Fokus auf das Eingabefeld setzen:';
-$lang['settingsMaxMessages'] = 'Maximale Anzahl der Nachrichten in der Chatliste:';
-$lang['settingsWordWrap'] = 'Lange Wörter umbrechen:';
-$lang['settingsMaxWordLength'] = 'Maximallänge eines Wortes bevor es umgebrochen wird:';
-$lang['settingsDateFormat'] = 'Datums- und Zeitanzeige:';
-$lang['settingsPersistFontColor'] = 'Schriftfarbe dauerhaft setzen:';
-$lang['settingsAudioVolume'] = 'Lautstärke:';
-$lang['settingsSoundReceive'] = 'Klang für empfangene Nachrichten:';
-$lang['settingsSoundSend'] = 'Klang für gesendete Nachrichten:';
-$lang['settingsSoundEnter'] = 'Klang für Logins und das Betreten von Räumen:';
-$lang['settingsSoundLeave'] = 'Klang für Logouts und das Verlassen von Räumen:';
-$lang['settingsSoundChatBot'] = 'Klang für Chatbot Nachrichten:';
-$lang['settingsSoundError'] = 'Klang für Fehlermeldungen:';
-$lang['settingsBlink'] = 'Blinkender Fenstertitel bei neuen Nachrichten:';
-$lang['settingsBlinkInterval'] = 'Blink-Intervall in Millisekunden:';
-$lang['settingsBlinkIntervalNumber'] = 'Anzahl der Blink-Intervalle:';
-$lang['playSelectedSound'] = 'Ausgewählten Klang abspielen';
-$lang['requiresJavaScript'] = 'JavaScript wird für diesen Chat benötigt.';
-$lang['errorInvalidUser'] = 'Ungültiger Benutzername.';
-$lang['errorUserInUse'] = 'Benutzername in Verwendung.';
-$lang['errorBanned'] = 'Benutzer oder IP ist ausgeschlossen.';
-$lang['errorMaxUsersLoggedIn'] = 'Der Chat hat die maximale Anzahl eingeloggter Benutzer erreicht.';
-$lang['errorChatClosed'] = 'Der Chat ist zur Zeit geschlossen.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Uhrzeit';
-$lang['logsSearch'] = 'Suche';
-$lang['logsPrivateChannels'] = 'Private Räume';
-$lang['logsPrivateMessages'] = 'Private Nachrichten';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/el.php b/library/ajaxchat/chat/lib/lang/el.php
deleted file mode 100644
index 526c31bf9..000000000
--- a/library/ajaxchat/chat/lib/lang/el.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author panas
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Όνομα χρήστη';
-$lang['password'] = 'Κωδικός';
-$lang['login'] = 'Σύνδεση';
-$lang['logout'] = 'Αποσύνδεση';
-$lang['channel'] = 'Κανάλι';
-$lang['style'] = 'Στυλ';
-$lang['language'] = 'Γλώσσα';
-$lang['inputLineBreak'] = 'Πατήστε SHIFT+ENTER για να εισάγετε μια νέα γραμμή';
-$lang['messageSubmit'] = 'Υποβολή';
-$lang['registeredUsers'] = 'Εγγεγραμμένοι χρήστες';
-$lang['onlineUsers'] = 'Συνδεδεμένοι χρήστες';
-$lang['toggleAutoScroll'] = 'Αυτόματη κύλιση ναι/όχι';
-$lang['toggleAudio'] = 'Ήχος ναι/όχι';
-$lang['toggleHelp'] = 'Εμφάνιση/απόκρυψη βοήθειας';
-$lang['toggleSettings'] = 'Εμφάνιση/απόκρυψη ρυθμίσεων';
-$lang['toggleOnlineList'] = 'Εμφάνιση/απόκρυψη λίστας συνδεδεμένων';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Παράθεση';
-$lang['bbCodeLabelCode'] = 'Κώδικας';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Χρώμα γραμματοσειράς';
-$lang['bbCodeTitleBold'] = 'Έντονο κείμενο: [b]κείμενο[/b]';
-$lang['bbCodeTitleItalic'] = 'Πλάγια γραφή: [i]κείμενο[/i]';
-$lang['bbCodeTitleUnderline'] = 'Υπογραμμισμένο κείμενο: [u]κείμενο[/u]';
-$lang['bbCodeTitleQuote'] = 'Κείμενο σε παράθεση: [quote]κείμενο[/quote] ή [quote=author]κείμενο[/quote]';
-$lang['bbCodeTitleCode'] = 'Εμφάνιση κώδικα: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Εισαγωγή URL: [url]http://example.org[/url] ή [url=http://example.org]κείμενο[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Χρώμα γραμματοσειράς: [color=red]κείμενο[/color]';
-$lang['help'] = 'Βοήθεια';
-$lang['helpItemDescJoin'] = 'Είσοδος σε ένα κανάλι:';
-$lang['helpItemCodeJoin'] = '/join όνομα_καναλιού';
-$lang['helpItemDescJoinCreate'] = 'Δημιουργία πριβέ καναλιού(μόνο για εγγεγραμμένους):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Για να προκαλέσετε (π.χ. σε ένα πριβέ κανάλι):';
-$lang['helpItemCodeInvite'] = '/invite όνομα';
-$lang['helpItemDescUninvite'] = 'Ακύρωση πρόσκλησης:';
-$lang['helpItemCodeUninvite'] = '/uninvite όνομα';
-$lang['helpItemDescLogout'] = 'Αποσύνδεση από το Chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Προσωπικό μήνυμα:';
-$lang['helpItemCodePrivateMessage'] = '/msg όνομα_χρήστη κείμενο';
-$lang['helpItemDescQueryOpen'] = 'Άνοιγμα πριβέ καναλιού:';
-$lang['helpItemCodeQueryOpen'] = '/query όνομα χρήστη';
-$lang['helpItemDescQueryClose'] = 'Κλεισιμό ενώς πριβέ καναλιού:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Περιγραφή ενέργειας:';
-$lang['helpItemCodeAction'] = '/action κείμενο';
-$lang['helpItemDescDescribe'] = 'Περιγραφή ενέργειας με προσωπικό μήνυμα:';
-$lang['helpItemCodeDescribe'] = '/describe όνομα_χρήστη κείμενο';
-$lang['helpItemDescIgnore'] = 'Αγνόηση/αποδοχή μηνυμάτων από χρήστη:';
-$lang['helpItemCodeIgnore'] = '/ignore όνομα_χρήστη';
-$lang['helpItemDescIgnoreList'] = 'Εμφάνιση λίστας αγνοημένων:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Εμφάνιση καναλιού χρήστη:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Kick έναν χρήστη (Μόνον για συντονιστές):';
-$lang['helpItemCodeKick'] = '/kick όνομα χρήστη [λεπτά αποκλεισμού]';
-$lang['helpItemDescUnban'] = 'Αφαίρεση αποκλεισμού από χρήστη (Μόνον για συντονιστές):';
-$lang['helpItemCodeUnban'] = '/unban όνομα_χρήστη';
-$lang['helpItemDescBans'] = 'Λίστα αποκλεισμένων χρηστών (Μόνον για συντονιστές):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Εμφανίζει την IP του χρήστη (Μόνον για συντονιστές):';
-$lang['helpItemCodeWhois'] = '/whois όνομα χρήστη';
-$lang['helpItemDescWho'] = 'Λίστα συνδεδεμένων χρηστών:';
-$lang['helpItemCodeWho'] = '/who [όνομακαναλιού]';
-$lang['helpItemDescList'] = 'Εμφάνιση διαθέσιμων καναλιών:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Κύλιση ζαριών:';
-$lang['helpItemCodeRoll'] = '/roll [αριθμός]d[πλευρές]';
-$lang['helpItemDescNick'] = 'Αλλαγή ονόματος:';
-$lang['helpItemCodeNick'] = '/nick όνομα_χρήστη';
-$lang['settings'] = 'Ρυθμίσεις';
-$lang['settingsBBCode'] = 'Ενεργοποίηση BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Ενεργοποίηση συνδέσμων:';
-$lang['settingsLineBreaks'] = 'Ενεργοποίηση αλλαγής γραμμής:';
-$lang['settingsEmoticons'] = 'Ενεργοποίηση εικονιδίων:';
-$lang['settingsAutoFocus'] = 'Θέστε αυτόματα την εστίαση στο πεδίο εισαγωγής:';
-$lang['settingsMaxMessages'] = 'Μέγιστος αριθμός μηνυμάτων στην λίστα του chat:';
-$lang['settingsWordWrap'] = 'Ενεργοποίηση καλύμματος μεγάλων λέξεων:';
-$lang['settingsMaxWordLength'] = 'Μέγιστο μήκος μιας λέξης χωρίς κάλυμμα:';
-$lang['settingsDateFormat'] = 'Μορφή ημερομηνίας και ώρας που θα εμφανίζετε:';
-$lang['settingsPersistFontColor'] = 'Έντονο χρώμα γραμματοσειράς:';
-$lang['settingsAudioVolume'] = 'Ένταση ήχου:';
-$lang['settingsSoundReceive'] = 'Ήχος για εισερχόμενα μηνύματα:';
-$lang['settingsSoundSend'] = 'Ήχος για εξερχόμενα μηνύματα:';
-$lang['settingsSoundEnter'] = 'Ήχος για μηνύματα σύνδεσης και εισόδου:';
-$lang['settingsSoundLeave'] = 'Ήχος για μηνύματα αποχώρισης και αποσύνδεσης:';
-$lang['settingsSoundChatBot'] = 'Ήχος για μηνύματα του chatbot:';
-$lang['settingsSoundError'] = 'Ήχος για μηνύματα λάθους:';
-$lang['settingsBlink'] = 'Αναβόσβημα τίτλου σε νέα μηνύματα:';
-$lang['settingsBlinkInterval'] = 'Ρυθμός αναβοσβήματος σε χιλιοστά του δευτερόλεπτου:';
-$lang['settingsBlinkIntervalNumber'] = 'Αριθμός αναβοσβήματος οθόνης:';
-$lang['playSelectedSound'] = 'Αναπαραγωγή επιλεγμένου ήχου';
-$lang['requiresJavaScript'] = 'Χρειάζεται JavaScript για το Chat.';
-$lang['errorInvalidUser'] = 'Ακατάλληλο όνομα χρήστη.';
-$lang['errorUserInUse'] = 'Το όνομα υπάρχει ήδη.';
-$lang['errorBanned'] = 'Το όνομα χρήστη ή IP είναι αποκλεισμένα.';
-$lang['errorMaxUsersLoggedIn'] = 'Το chat έχει φτάσει το μέγιστο αριθμό χρηστών.';
-$lang['errorChatClosed'] = 'Το chat είναι κλειστό προς το παρόν.';
-$lang['logsTitle'] = 'AJAX Chat - Καταγραφές';
-$lang['logsDate'] = 'Ημερομηνία';
-$lang['logsTime'] = 'Ώρα';
-$lang['logsSearch'] = 'Αναζήτηση';
-$lang['logsPrivateChannels'] = 'Πριβέ κανάλια';
-$lang['logsPrivateMessages'] = 'προσωπικά μηνύματα';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/en.php b/library/ajaxchat/chat/lib/lang/en.php
deleted file mode 100644
index cb9492bde..000000000
--- a/library/ajaxchat/chat/lib/lang/en.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Username';
-$lang['password'] = 'Password';
-$lang['login'] = 'Login';
-$lang['logout'] = 'Logout';
-$lang['channel'] = 'Channel';
-$lang['style'] = 'Style';
-$lang['language'] = 'Language';
-$lang['inputLineBreak'] = 'Press SHIFT+ENTER to input a line break';
-$lang['messageSubmit'] = 'Submit';
-$lang['registeredUsers'] = 'Registered Users';
-$lang['onlineUsers'] = 'Online users';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sound on/off';
-$lang['toggleHelp'] = 'Show/hide help';
-$lang['toggleSettings'] = 'Show/hide settings';
-$lang['toggleOnlineList'] = 'Show/hide online list';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Quote';
-$lang['bbCodeLabelCode'] = 'Code';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Font Color';
-$lang['bbCodeTitleBold'] = 'Bold text: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Italic text: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Underline text: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Quote text: [quote]text[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Code display: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Insert URL: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Font Color: [color=red]text[/color]';
-$lang['help'] = 'Help';
-$lang['helpItemDescJoin'] = 'Join a channel:';
-$lang['helpItemCodeJoin'] = '/join Channelname';
-$lang['helpItemDescJoinCreate'] = 'Create a private room (Registered users only):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Invite someone (e.g. to a private room):';
-$lang['helpItemCodeInvite'] = '/invite Username';
-$lang['helpItemDescUninvite'] = 'Revoke invitation:';
-$lang['helpItemCodeUninvite'] = '/uninvite Username';
-$lang['helpItemDescLogout'] = 'Logout from Chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Private message:';
-$lang['helpItemCodePrivateMessage'] = '/msg Username Text';
-$lang['helpItemDescQueryOpen'] = 'Open a private channel:';
-$lang['helpItemCodeQueryOpen'] = '/query Username';
-$lang['helpItemDescQueryClose'] = 'Close a private channel:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Describe action:';
-$lang['helpItemCodeAction'] = '/action Text';
-$lang['helpItemDescDescribe'] = 'Describe action in private message:';
-$lang['helpItemCodeDescribe'] = '/describe Username Text';
-$lang['helpItemDescIgnore'] = 'Ignore/accept messages from user:';
-$lang['helpItemCodeIgnore'] = '/ignore Username';
-$lang['helpItemDescIgnoreList'] = 'List ignored users:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Kick a user (Moderators only):';
-$lang['helpItemCodeKick'] = '/kick Username [Minutes banned]';
-$lang['helpItemDescUnban'] = 'Unban a user (Moderators only):';
-$lang['helpItemCodeUnban'] = '/unban Username';
-$lang['helpItemDescBans'] = 'List banned users (Moderators only):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Display user IP (Moderators only):';
-$lang['helpItemCodeWhois'] = '/whois Username';
-$lang['helpItemDescWho'] = 'List online users:';
-$lang['helpItemCodeWho'] = '/who [Channelname]';
-$lang['helpItemDescList'] = 'List available channels:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Roll dice:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Change username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Settings';
-$lang['settingsBBCode'] = 'Enable BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Enable hyperlinks:';
-$lang['settingsLineBreaks'] = 'Enable line breaks:';
-$lang['settingsEmoticons'] = 'Enable emoticons:';
-$lang['settingsAutoFocus'] = 'Automatically set the focus on the input field:';
-$lang['settingsMaxMessages'] = 'Maximum number of messages in the chatlist:';
-$lang['settingsWordWrap'] = 'Enable wrapping of long words:';
-$lang['settingsMaxWordLength'] = 'Maximum length of a word before it gets wrapped:';
-$lang['settingsDateFormat'] = 'Format of date and time display:';
-$lang['settingsPersistFontColor'] = 'Persist font color:';
-$lang['settingsAudioVolume'] = 'Sound Volume:';
-$lang['settingsSoundReceive'] = 'Sound for incoming messages:';
-$lang['settingsSoundSend'] = 'Sound for outgoing messages:';
-$lang['settingsSoundEnter'] = 'Sound for login and channel enter messages:';
-$lang['settingsSoundLeave'] = 'Sound for logout and channel leave messages:';
-$lang['settingsSoundChatBot'] = 'Sound for chatbot messages:';
-$lang['settingsSoundError'] = 'Sound for error messages:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'Play selected sound';
-$lang['requiresJavaScript'] = 'JavaScript is required for this Chat.';
-$lang['errorInvalidUser'] = 'Invalid username.';
-$lang['errorUserInUse'] = 'Username in use.';
-$lang['errorBanned'] = 'User or IP is banned.';
-$lang['errorMaxUsersLoggedIn'] = 'The chat has reached the maximum number of logged-in users.';
-$lang['errorChatClosed'] = 'The chat is closed at the moment.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Date';
-$lang['logsTime'] = 'Time';
-$lang['logsSearch'] = 'Search';
-$lang['logsPrivateChannels'] = 'Private Channels';
-$lang['logsPrivateMessages'] = 'Private Messages';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/es.php b/library/ajaxchat/chat/lib/lang/es.php
deleted file mode 100644
index 27b9b7273..000000000
--- a/library/ajaxchat/chat/lib/lang/es.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author - Spanis Translation: Manu Quintans / KeScI [www.e-nologia.com]
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Usuario';
-$lang['password'] = 'Contraseña';
-$lang['login'] = 'Conectar';
-$lang['logout'] = 'Desconectar';
-$lang['channel'] = 'Canal';
-$lang['style'] = 'Estilo';
-$lang['language'] = 'Idioma';
-$lang['inputLineBreak'] = 'Pulse SHIFT+ENTER para insertar un salto de línea';
-$lang['messageSubmit'] = 'Enviar';
-$lang['registeredUsers'] = 'Usuarios Registrados';
-$lang['onlineUsers'] = 'Usuarios Conectados';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sonido on/off';
-$lang['toggleHelp'] = 'Mostrar/ocultar ayuda';
-$lang['toggleSettings'] = 'Mostrar/ocultar configuración';
-$lang['toggleOnlineList'] = 'Mostrar/ocultar lista conectados';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citar';
-$lang['bbCodeLabelCode'] = 'Código';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Imagen';
-$lang['bbCodeLabelColor'] = 'Color de Fuente';
-$lang['bbCodeTitleBold'] = 'Texto Negrita: [b]texto[/b]';
-$lang['bbCodeTitleItalic'] = 'Texto Cursiva: [i]texto[/i]';
-$lang['bbCodeTitleUnderline'] = 'Texto Subrayado: [u]texto[/u]';
-$lang['bbCodeTitleQuote'] = 'Texto Citado: [quote]texto[/quote] o [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Mostrar código: [code]código[/code]';
-$lang['bbCodeTitleURL'] = 'Insertar URL: [url]http://example.org[/url] or [url=http://example.org]texto[/url]';
-$lang['bbCodeTitleImg'] = 'Insertar imagen: [img]http://example.org/imagen.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Color de Fuente: [color=red]texto[/color]';
-$lang['help'] = 'Ayuda';
-$lang['helpItemDescJoin'] = 'Entrar en canal:';
-$lang['helpItemCodeJoin'] = '/join nombre del canal';
-$lang['helpItemDescJoinCreate'] = 'Crear un canal privado (Solo usuarios registrados):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Invitar a alguien (por ejemplo a un canal privado):';
-$lang['helpItemCodeInvite'] = '/invite Usuario';
-$lang['helpItemDescUninvite'] = 'Anular invitación:';
-$lang['helpItemCodeUninvite'] = '/uninvite Usuario';
-$lang['helpItemDescLogout'] = 'Cerrar sesión:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Mensaje Privado:';
-$lang['helpItemCodePrivateMessage'] = '/msg Usuario Texto';
-$lang['helpItemDescQueryOpen'] = 'Abrir un privado:';
-$lang['helpItemCodeQueryOpen'] = '/query Usuario';
-$lang['helpItemDescQueryClose'] = 'Cerrar privado:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Describir acción:';
-$lang['helpItemCodeAction'] = '/action Texto';
-$lang['helpItemDescDescribe'] = 'Describir acción en mensaje privado:';
-$lang['helpItemCodeDescribe'] = '/describe Usuario Texto';
-$lang['helpItemDescIgnore'] = 'Ignorar/Aceptar mensajes de usuarios:';
-$lang['helpItemCodeIgnore'] = '/ignore Usuario';
-$lang['helpItemDescIgnoreList'] = 'Mostrar usuarios ignorados:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Mostrar canal del usuario:';
-$lang['helpItemCodeWhereis'] = '/whereis Usuario';
-$lang['helpItemDescKick'] = 'Patear usuario (Solo moderadores):';
-$lang['helpItemCodeKick'] = '/kick Usuario [Minutos baneado]';
-$lang['helpItemDescUnban'] = 'Quitar ban usuario (Solo moderadores):';
-$lang['helpItemCodeUnban'] = '/unban Usuario';
-$lang['helpItemDescBans'] = 'Listar usuarios baneados (Solo moderadores):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Mostrar ips de usuarios (Solo moderadores):';
-$lang['helpItemCodeWhois'] = '/whois Usuario';
-$lang['helpItemDescWho'] = 'Mostrar usuarios conectados:';
-$lang['helpItemCodeWho'] = '/who [Channelname]';
-$lang['helpItemDescList'] = 'Lista de canales disponibles:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Tirar dado:';
-$lang['helpItemCodeRoll'] = '/roll [numero]de[lados]';
-$lang['helpItemDescNick'] = 'Cambiar nombre de usuario:';
-$lang['helpItemCodeNick'] = '/nick Usuario';
-$lang['settings'] = 'Configuración';
-$lang['settingsBBCode'] = 'Permitir BBCode:';
-$lang['settingsBBCodeImages'] = 'Permitir BBCode de imagen:';
-$lang['settingsBBCodeColors'] = 'Permitir BBCode de color de fuente:';
-$lang['settingsHyperLinks'] = 'Permitir enlaces:';
-$lang['settingsLineBreaks'] = 'Permitir saltos de línea:';
-$lang['settingsEmoticons'] = 'Permitir emoticonos:';
-$lang['settingsAutoFocus'] = 'Seleccionar el cuadro de ingreso automáticamente:';
-$lang['settingsMaxMessages'] = 'Máximo número de mensajes en la lista del chat:';
-$lang['settingsWordWrap'] = 'Permitir la separación del las palabras largas:';
-$lang['settingsMaxWordLength'] = 'Máximo tamaño de una palabara antes de que se separe:';
-$lang['settingsDateFormat'] = 'Formato de la fecha y hora a mostrar:';
-$lang['settingsPersistFontColor'] = 'Mantener el color de la fuente:';
-$lang['settingsAudioVolume'] = 'Volumen Sonido:';
-$lang['settingsSoundReceive'] = 'Sonido para mensajes entrantes:';
-$lang['settingsSoundSend'] = 'Sonido para mensajes salientes:';
-$lang['settingsSoundEnter'] = 'Sonido para mensajes de conexión y entradas al canal:';
-$lang['settingsSoundLeave'] = 'Sonido para mensajes de desconexión y salidas del canal:';
-$lang['settingsSoundChatBot'] = 'Sonido para mensajes del Chatbot:';
-$lang['settingsSoundError'] = 'Sonido para mensajes de error:';
-$lang['settingsBlink'] = 'Parpadeo del título de la ventana con nuevos mensajes:';
-$lang['settingsBlinkInterval'] = 'Intervalo de parpadeo en milisegundos:';
-$lang['settingsBlinkIntervalNumber'] = 'Número de intervalos de parpadeo:';
-$lang['playSelectedSound'] = 'Reproducir sonido seleccionado';
-$lang['requiresJavaScript'] = 'Necesita tener activado el Javascript en su navegador..';
-$lang['errorInvalidUser'] = 'Usuario Invalido.';
-$lang['errorUserInUse'] = 'Este nombre de usuario esta siendo utilizado en este momento.';
-$lang['errorBanned'] = 'El Usuario o la IP esta baneada..';
-$lang['errorMaxUsersLoggedIn'] = 'El Chat ha alcanzado el número máximo de usuarios conectados.';
-$lang['errorChatClosed'] = 'El Chat está cerrado en estos momentos.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Fecha';
-$lang['logsTime'] = 'Hora';
-$lang['logsSearch'] = 'Buscar';
-$lang['logsPrivateChannels'] = 'Canales Privados';
-$lang['logsPrivateMessages'] = 'Mensajes Privados';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/et.php b/library/ajaxchat/chat/lib/lang/et.php
deleted file mode 100644
index f1169fe19..000000000
--- a/library/ajaxchat/chat/lib/lang/et.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Kasutajanimi';
-$lang['password'] = 'Parool';
-$lang['login'] = 'Sisene';
-$lang['logout'] = 'Välju';
-$lang['channel'] = 'Kanal';
-$lang['style'] = 'Stiil';
-$lang['language'] = 'Keel';
-$lang['inputLineBreak'] = 'Vajuta SHIFT+ENTER, et sisestada reavahe';
-$lang['messageSubmit'] = 'Sisesta';
-$lang['registeredUsers'] = 'Registreeritud kasutajad';
-$lang['onlineUsers'] = 'Sisse loginud kasutajad';
-$lang['toggleAutoScroll'] = 'Automaatne kerimine sees/väljas';
-$lang['toggleAudio'] = 'Helid sees/väljas';
-$lang['toggleHelp'] = 'Näita/Peida Abi';
-$lang['toggleSettings'] = 'Näita/Peida seaded';
-$lang['toggleOnlineList'] = 'Näita/Peida sisse loginuid';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Tsitaat';
-$lang['bbCodeLabelCode'] = 'Kood';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Pilt';
-$lang['bbCodeLabelColor'] = 'Fondi värv';
-$lang['bbCodeTitleBold'] = 'Rasvases kirjas tekst: [b]tekst[/b]';
-$lang['bbCodeTitleItalic'] = 'Kaldkirjas tekst: [i]tekst[/i]';
-$lang['bbCodeTitleUnderline'] = 'Underline text: [u]tekst[/u]';
-$lang['bbCodeTitleQuote'] = 'Tsiteeritud tekst: [quote]tekst[/quote] või [quote=autor]tekst[/quote]';
-$lang['bbCodeTitleCode'] = 'Koodi esitamine: [code]kood[/code]';
-$lang['bbCodeTitleURL'] = 'Lisa URL: [url]http://näide.org[/url] või [url=http://näide.org]tekst[/url]';
-$lang['bbCodeTitleImg'] = 'Lisa pilt: [img]http://näide.org/pilt.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Fondi värv: [color=red]tekst[/color]';
-$lang['help'] = 'Abi';
-$lang['helpItemDescJoin'] = 'Liitu kanaliga:';
-$lang['helpItemCodeJoin'] = '/join Kanalinimi';
-$lang['helpItemDescJoinCreate'] = 'Loo privaat-ruum (Vaid registreeritud kasutajad):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Kutsu kedagi (näiteks privaat-ruumi):';
-$lang['helpItemCodeInvite'] = '/invite Kasutajanimi';
-$lang['helpItemDescUninvite'] = 'Tühista kutse:';
-$lang['helpItemCodeUninvite'] = '/uninvite Kasutajanimi';
-$lang['helpItemDescLogout'] = 'Lahku jutukast:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privaat-sõnum:';
-$lang['helpItemCodePrivateMessage'] = '/msg Kasutajanimi Tekst';
-$lang['helpItemDescQueryOpen'] = 'Ava privaat-kanal:';
-$lang['helpItemCodeQueryOpen'] = '/query Kasutajanimi';
-$lang['helpItemDescQueryClose'] = 'Sulge privaat-kanal:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Kirjelda tegevust:';
-$lang['helpItemCodeAction'] = '/action Tekst';
-$lang['helpItemDescDescribe'] = 'Kirjelda tegevust privaat-sõnumis:';
-$lang['helpItemCodeDescribe'] = '/describe Kasutajanimi Tekst';
-$lang['helpItemDescIgnore'] = 'Ignoreeri/Tunnusta sõnumeid kindlalt kasutajalt:';
-$lang['helpItemCodeIgnore'] = '/ignore Kasutajanimi';
-$lang['helpItemDescIgnoreList'] = 'Ignoreeritud kasutajate nimekiri:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Mis kanalis asub kasutaja?:';
-$lang['helpItemCodeWhereis'] = '/whereis Kasutajanimi';
-$lang['helpItemDescKick'] = 'Viska kasutaja välja (Ainult moderaatorid):';
-$lang['helpItemCodeKick'] = '/kick Kasutajanimi [minutite hulk mustas nimekirjas]';
-$lang['helpItemDescUnban'] = 'Eemalda kasutaja mustast nimekirjast (Ainult moderaatorid):';
-$lang['helpItemCodeUnban'] = '/unban Kasutajanimi';
-$lang['helpItemDescBans'] = 'Must nimekiri (Ainult moderaatorid):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Näita kasutaja IP aadressit (Ainult moderaatorid):';
-$lang['helpItemCodeWhois'] = '/whois Kasutajanimi';
-$lang['helpItemDescWho'] = 'Jutukasse sisenenud kasutajad:';
-$lang['helpItemCodeWho'] = '/who [Kanalinimi]';
-$lang['helpItemDescList'] = 'Vabade kanalite nimekiri:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Veereta täringut:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[küljed]';
-$lang['helpItemDescNick'] = 'Muuda kasutajanimi:';
-$lang['helpItemCodeNick'] = '/nick Kasutajanimi';
-$lang['settings'] = 'Seaded';
-$lang['settingsBBCode'] = 'Luba BBCode:';
-$lang['settingsBBCodeImages'] = 'Luba pildi BBCode:';
-$lang['settingsBBCodeColors'] = 'Luba fondi värvi BBCode:';
-$lang['settingsHyperLinks'] = 'Luba hüpperlingid:';
-$lang['settingsLineBreaks'] = 'Luba reavahed:';
-$lang['settingsEmoticons'] = 'Luba emotikonid:';
-$lang['settingsAutoFocus'] = 'Sea fookus automaatselt sisestusväljale:';
-$lang['settingsMaxMessages'] = 'Maksimum sõnumite hulk ühes nimekirjas:';
-$lang['settingsWordWrap'] = 'Luba pikkade sõnade murdmine:';
-$lang['settingsMaxWordLength'] = 'Maksimum sõna pikkus enne kui seda murtakse:';
-$lang['settingsDateFormat'] = 'Kuupäeva ja kellaaja formaat:';
-$lang['settingsPersistFontColor'] = 'Püsiv fondi värv';
-$lang['settingsAudioVolume'] = 'Heli tugevus:';
-$lang['settingsSoundReceive'] = 'Heli sisenemisel:';
-$lang['settingsSoundSend'] = 'Heli väljumisel:';
-$lang['settingsSoundEnter'] = 'Heli sisenemisel ja kanalisse sisenemise sõnumitel:';
-$lang['settingsSoundLeave'] = 'Heli väljumise ja kanalitest lahkumise sõnumitel:';
-$lang['settingsSoundChatBot'] = 'Chatboti sõnumite heli:';
-$lang['settingsSoundError'] = 'Veateate heli:';
-$lang['settingsBlink'] = 'Vilguta akna tiitlit uute sõnumite saabumisel:';
-$lang['settingsBlinkInterval'] = 'Vilgutamise intervall millisekundites:';
-$lang['settingsBlinkIntervalNumber'] = 'Vilksatuste arv intervallis:';
-$lang['playSelectedSound'] = 'Mängi valitud heli';
-$lang['requiresJavaScript'] = 'Vajalik on JavaScripti olemas olu jutuka kasutamiseks.';
-$lang['errorInvalidUser'] = 'Vigane kasutajanimi.';
-$lang['errorUserInUse'] = 'Kasutajanimi on juba võetud.';
-$lang['errorBanned'] = 'Kasutaja või IP on lisatud musta nimekirja.';
-$lang['errorMaxUsersLoggedIn'] = 'Jutukas on jõudnud maksimum kasutajate hulgani.';
-$lang['errorChatClosed'] = 'Jutukas on hetkel suletud.';
-$lang['logsTitle'] = 'ComicLand - jutukas - Logiraamat';
-$lang['logsDate'] = 'Kuupäev';
-$lang['logsTime'] = 'Kellaaeg';
-$lang['logsSearch'] = 'Otsi';
-$lang['logsPrivateChannels'] = 'Privaat-kanalid';
-$lang['logsPrivateMessages'] = 'Privaat-sõnumid';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/fa.php b/library/ajaxchat/chat/lib/lang/fa.php
deleted file mode 100644
index 0dc3cb132..000000000
--- a/library/ajaxchat/chat/lib/lang/fa.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author pepotiger (www.dd4bb.com)
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'نام عبور';
-$lang['password'] = 'کلمه عبور';
-$lang['login'] = 'ورود';
-$lang['logout'] = 'خروج';
-$lang['channel'] = 'اطاق';
-$lang['style'] = 'ظاهر';
-$lang['language'] = 'زبان';
-$lang['inputLineBreak'] = 'کلید SHIFT+ENTER را برای ایجاد خط جدید فشار دهید';
-$lang['messageSubmit'] = 'ارسل';
-$lang['registeredUsers'] = 'کاربران ثبت نام شده';
-$lang['onlineUsers'] = 'کاربران حاضر';
-$lang['toggleAutoScroll'] = 'اسکرول اتوماتیک فعال/غیر فعال';
-$lang['toggleAudio'] = 'صدا روشن/خاموش';
-$lang['toggleHelp'] = 'نمایش/پنهان سازی کمک رسان';
-$lang['toggleSettings'] = 'نمایش/پنهان سازی تنظیمات';
-$lang['toggleOnlineList'] = 'نمایش/پنهان سازی لیست کاربران حاضر';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'اقتباس';
-$lang['bbCodeLabelCode'] = 'کد';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'تصویر';
-$lang['bbCodeLabelColor'] = 'رنگ خط';
-$lang['bbCodeTitleBold'] = 'متن درشت: [b]متن[/b]';
-$lang['bbCodeTitleItalic'] = 'متن کج: [i]متن[/i]';
-$lang['bbCodeTitleUnderline'] = 'زیر خط دار: [u]متن[/u]';
-$lang['bbCodeTitleQuote'] = 'نقل قول: [quote]متن[/quote] او [quote=الكاتب]نص[/quote]';
-$lang['bbCodeTitleCode'] = 'نمایش کد: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'وارد کردن آدرس: [url]http://example.org[/url] یا [url=http://example.org]متن[/url]';
-$lang['bbCodeTitleImg'] = 'وارد کردن تصویر: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'رنگ متن: [color=red]متن[/color]';
-$lang['help'] = 'کمک';
-$lang['helpItemDescJoin'] = 'ورود به اطاق:';
-$lang['helpItemCodeJoin'] = '/join نام اطاق';
-$lang['helpItemDescJoinCreate'] = 'ساخت اطاق خصوصی (تنها برای اعضا):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'دعوت کاربر (به عنوان مثال برای اطاق خصوصی):';
-$lang['helpItemCodeInvite'] = '/invite نام کاربری';
-$lang['helpItemDescUninvite'] = 'لغو دعوت:';
-$lang['helpItemCodeUninvite'] = '/uninvite نام کاربری';
-$lang['helpItemDescLogout'] = 'خروج:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'پیام خصوصی:';
-$lang['helpItemCodePrivateMessage'] = '/msg نامکاربری متن';
-$lang['helpItemDescQueryOpen'] = 'ساخت اطاق خصوصی:';
-$lang['helpItemCodeQueryOpen'] = '/query نام کاربری';
-$lang['helpItemDescQueryClose'] = 'خروج از اطاق خصوصی:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'شرح واقعه:';
-$lang['helpItemCodeAction'] = '/action متن';
-$lang['helpItemDescDescribe'] = 'شرح واقعه با پیام خصوصی:';
-$lang['helpItemCodeDescribe'] = '/describe نام کاربری متن';
-$lang['helpItemDescIgnore'] = 'قبول/صرف نظر پیغام از کاربر:';
-$lang['helpItemCodeIgnore'] = '/ignore نام کاربری';
-$lang['helpItemDescIgnoreList'] = 'افراد صرف نظر شده:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'نمایش اطاق کاربر:';
-$lang['helpItemCodeWhereis'] = '/whereis نام کاربر';
-$lang['helpItemDescKick'] = 'اجراج کاربر (تنها برای مدیران):';
-$lang['helpItemCodeKick'] = '/kick نام کاربری [زمان اخراج]';
-$lang['helpItemDescUnban'] = 'لغو اخراج (تنها برای مدیران):';
-$lang['helpItemCodeUnban'] = '/unban نام کاربری';
-$lang['helpItemDescBans'] = 'لیست کاربران اخراج شده (تنها برای مدیران):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'مشاهده آیپی کاربر (تنها برای مدیران):';
-$lang['helpItemCodeWhois'] = '/whois نام کاربری';
-$lang['helpItemDescWho'] = 'لیست کاربران حاضر:';
-$lang['helpItemCodeWho'] = '/who [نام اطاق]';
-$lang['helpItemDescList'] = 'نام اطاق های موجود:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Roll dice:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'تغییر نام کاربری:';
-$lang['helpItemCodeNick'] = '/nick نام کاربری';
-$lang['settings'] = 'تنظیمات';
-$lang['settingsBBCode'] = 'فعال سازی BBCode:';
-$lang['settingsBBCodeImages'] = 'فعال سازی تصاویر BBCode:';
-$lang['settingsBBCodeColors'] = 'فعال سازی رنگ متن BBCode:';
-$lang['settingsHyperLinks'] = 'فعال سازی لینک های اینترنتی:';
-$lang['settingsLineBreaks'] = 'فعال سازی پیام چند خطی:';
-$lang['settingsEmoticons'] = 'فعال سازی شکلک ها:';
-$lang['settingsAutoFocus'] = 'Automatically set the focus on the input field:';
-$lang['settingsMaxMessages'] = 'حد اکثر تعداد پیام در هر اطاق:';
-$lang['settingsWordWrap'] = 'Enable wrapping of long words:';
-$lang['settingsMaxWordLength'] = 'Maximum length of a word before it gets wrapped:';
-$lang['settingsDateFormat'] = 'Format of date and time display:';
-$lang['settingsPersistFontColor'] = 'Persist font color:';
-$lang['settingsAudioVolume'] = 'Sound Volume:';
-$lang['settingsSoundReceive'] = 'Sound for incoming messages:';
-$lang['settingsSoundSend'] = 'Sound for outgoing messages:';
-$lang['settingsSoundEnter'] = 'Sound for login and channel enter messages:';
-$lang['settingsSoundLeave'] = 'Sound for logout and channel leave messages:';
-$lang['settingsSoundChatBot'] = 'Sound for chatbot messages:';
-$lang['settingsSoundError'] = 'Sound for error messages:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'اجرای صدای انتخاب شده';
-$lang['requiresJavaScript'] = 'جاوا اسکریپت برای این تالار نیاز است.';
-$lang['errorInvalidUser'] = 'نا کاربری نامعتبر.';
-$lang['errorUserInUse'] = 'نام کاربری در حال استفاده است.';
-$lang['errorBanned'] = 'نام کاربری یا آیپی اخراج شده اند.';
-$lang['errorMaxUsersLoggedIn'] = 'متاسفانه تالار گفتگو به حداکثر ظرفیت خود برای کاربران حاضر رسیده است.';
-$lang['errorChatClosed'] = 'تالار گفتوگو هم اکنون بسته می باشد.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'تاریخ';
-$lang['logsTime'] = 'زمان';
-$lang['logsSearch'] = 'جست و جو';
-$lang['logsPrivateChannels'] = 'اطاق های خصوصی';
-$lang['logsPrivateMessages'] = 'پیغام های خصوصی';
-?>
diff --git a/library/ajaxchat/chat/lib/lang/fi.php b/library/ajaxchat/chat/lib/lang/fi.php
deleted file mode 100644
index 73466b412..000000000
--- a/library/ajaxchat/chat/lib/lang/fi.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Asmo Soinio
- * @author Saku Laukkanen
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Käyttäjätunnus';
-$lang['password'] = 'Salasana';
-$lang['login'] = 'Kirjaudu sisään';
-$lang['logout'] = 'Kirjaudu ulos';
-$lang['channel'] = 'Kanava';
-$lang['style'] = 'Tyyli';
-$lang['language'] = 'Kieli';
-$lang['inputLineBreak'] = 'Paina SHIFT+ENTER saadaksesi rivinvaihdon';
-$lang['messageSubmit'] = 'Lähetä';
-$lang['registeredUsers'] = 'Rekisteröityneet käyttäjät';
-$lang['onlineUsers'] = 'Paikalla olevat käyttäjät';
-$lang['toggleAutoScroll'] = 'Automaattinen vieritys päällä/pois';
-$lang['toggleAudio'] = 'Äänet päällä/pois';
-$lang['toggleHelp'] = 'Näytä/piilota ohje';
-$lang['toggleSettings'] = 'Näytä/piilota asetukset';
-$lang['toggleOnlineList'] = 'Näytä/piilota paikalla olevat käyttäjät';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Lainaus';
-$lang['bbCodeLabelCode'] = 'Koodi';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Kuva';
-$lang['bbCodeLabelColor'] = 'Fontin väri';
-$lang['bbCodeTitleBold'] = 'Lihavoitu teksti: [b]teksti[/b]';
-$lang['bbCodeTitleItalic'] = 'Kursivoitu teksti: [i]teksti[/i]';
-$lang['bbCodeTitleUnderline'] = 'Alleviivattu teksti: [u]teksti[/u]';
-$lang['bbCodeTitleQuote'] = 'Lainattu teksti: [quote]teksti[/quote] tai [quote=kirjoittaja]teksti[/quote]';
-$lang['bbCodeTitleCode'] = 'Koodi: [code]koodi[/code]';
-$lang['bbCodeTitleURL'] = 'Lisää linkki: [url]http://example.org[/url] tai [url=http://example.org]teksti[/url]';
-$lang['bbCodeTitleImg'] = 'Lisää kuva: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Kirjaisimen väri: [color=red]teksti[/color]';
-$lang['help'] = 'Ohje';
-$lang['helpItemDescJoin'] = 'Liity kanavalle:';
-$lang['helpItemCodeJoin'] = '/join KanavanNimi';
-$lang['helpItemDescJoinCreate'] = 'Tee uusi yksityinen kanava (Ainoastaan rekisteröityneille käyttäjille):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Kutsu joku (esim. Yksityiseen kanavaan):';
-$lang['helpItemCodeInvite'] = '/invite Käyttäjätunnus';
-$lang['helpItemDescUninvite'] = 'Peruuta kutsu:';
-$lang['helpItemCodeUninvite'] = '/uninvite Käyttäjätunnus';
-$lang['helpItemDescLogout'] = 'Kirjaudu ulos chatista:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Yksityisviesti:';
-$lang['helpItemCodePrivateMessage'] = '/msg Käyttäjätunnus Teksti';
-$lang['helpItemDescQueryOpen'] = 'Avaa yksityinen kanava:';
-$lang['helpItemCodeQueryOpen'] = '/query Käyttäjänimi';
-$lang['helpItemDescQueryClose'] = 'Sulje yksityinen kanava:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Kerro, mitä teet:';
-$lang['helpItemCodeAction'] = '/action Teksti';
-$lang['helpItemDescDescribe'] = 'Kerro yksityisviestissä mitä teet:';
-$lang['helpItemCodeDescribe'] = '/describe Käyttäjätunnus Teksti';
-$lang['helpItemDescIgnore'] = 'Estä tai salli viestejä käyttäjältä:';
-$lang['helpItemCodeIgnore'] = '/ignore Käyttäjänimi';
-$lang['helpItemDescIgnoreList'] = 'Listaa estetyt käyttäjät:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Näytä käyttäjän kanavat:';
-$lang['helpItemCodeWhereis'] = '/whereis Käyttäjänimi';
-$lang['helpItemDescKick'] = 'Potki käyttäjä (Ainoastaan Moderaattoreille):';
-$lang['helpItemCodeKick'] = '/kick Käyttäjänimi [Minuutteja potkittuna]';
-$lang['helpItemDescUnban'] = 'Poista käyttäjän potkut (Ainoastaan moderaattoreille):';
-$lang['helpItemCodeUnban'] = '/unban Käyttäjänimi';
-$lang['helpItemDescBans'] = 'Listaa potkitut käyttäjät (Ainoastaan moderaattoreille):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Näytä käyttäjän IP (Ainoastaan moderaattoreille):';
-$lang['helpItemCodeWhois'] = '/whois Käyttäjänimi';
-$lang['helpItemDescWho'] = 'Listaa käyttäjät jotka ovat paikalla:';
-$lang['helpItemCodeWho'] = '/who [Kanavatunnus]';
-$lang['helpItemDescList'] = 'Listaa käytettävissä olevat kanavat:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Heitä noppaa:';
-$lang['helpItemCodeRoll'] = '/roll [kertaa]d[sivuja]';
-$lang['helpItemDescNick'] = 'Vaihda käyttäjätunnusta:';
-$lang['helpItemCodeNick'] = '/nick Käyttäjänimi';
-$lang['settings'] = 'Asetukset';
-$lang['settingsBBCode'] = 'BBCode päälle:';
-$lang['settingsBBCodeImages'] = 'Salli kuvat:';
-$lang['settingsBBCodeColors'] = 'Salli värit:';
-$lang['settingsHyperLinks'] = 'Salli hyperlinkit:';
-$lang['settingsLineBreaks'] = 'Salli rivinvaihdot:';
-$lang['settingsEmoticons'] = 'Salli hymiöt:';
-$lang['settingsAutoFocus'] = 'Valitse tekstinsyöttökenttä automaattisesti:';
-$lang['settingsMaxMessages'] = 'Suurin määrä viestejä sivulla:';
-$lang['settingsWordWrap'] = 'Salli pitkien sanojen rivinvaihto:';
-$lang['settingsMaxWordLength'] = 'Sanan enimmäispituus ennen kuin riviä vaihdetaan:';
-$lang['settingsDateFormat'] = 'Ajan ja päivämäärän muoto:';
-$lang['settingsPersistFontColor'] = 'Pysyvä fontin väri:';
-$lang['settingsAudioVolume'] = 'Äänenvoimakkuus:';
-$lang['settingsSoundReceive'] = 'Ääni tuleville viesteille:';
-$lang['settingsSoundSend'] = 'Ääni lähteville viesteille:';
-$lang['settingsSoundEnter'] = 'Ääni sisäänkirjoittautumiseen ja kanavalle tuloon:';
-$lang['settingsSoundLeave'] = 'Ääni poistumiseen keskustelusta ja kanavalta:';
-$lang['settingsSoundChatBot'] = 'Ääni chatbotin viesteille:';
-$lang['settingsSoundError'] = 'Ääni virheilmoituksille:';
-$lang['settingsBlink'] = 'Vilkuta ikkunan nimeä uusista viesteistä:';
-$lang['settingsBlinkInterval'] = 'Vilkuttamisen aika millisekunneissa:';
-$lang['settingsBlinkIntervalNumber'] = 'Vilkutuksen viive:';
-$lang['playSelectedSound'] = 'Soita valittu ääni';
-$lang['requiresJavaScript'] = 'JavaScript on pakollinen tässä chatissa';
-$lang['errorInvalidUser'] = 'Virheellinen käyttäjänimi';
-$lang['errorUserInUse'] = 'Käyttäjänimi on käytössä, ole hyvä ja valitse toinen';
-$lang['errorBanned'] = 'Tällä IP:llä on porttikielto';
-$lang['errorMaxUsersLoggedIn'] = 'Chatissa on jo maksimimäärä käyttäjiä.';
-$lang['errorChatClosed'] = 'Chat on poistettu käytöstä toistaiseksi.';
-$lang['logsTitle'] = 'AJAX Chat-Lokitiedot';
-$lang['logsDate'] = 'Päivä';
-$lang['logsTime'] = 'Aika';
-$lang['logsSearch'] = 'Etsi';
-$lang['logsPrivateChannels'] = 'Näytä yksityiset kanavat';
-$lang['logsPrivateMessages'] = 'Yksityiset viestit';
-?>
diff --git a/library/ajaxchat/chat/lib/lang/fr.php b/library/ajaxchat/chat/lib/lang/fr.php
deleted file mode 100644
index 52ffaf1a2..000000000
--- a/library/ajaxchat/chat/lib/lang/fr.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Ettelcar
- * @author Massimiliano Tiraboschi
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Nom d’utilisateur';
-$lang['password'] = 'Mot de passe';
-$lang['login'] = 'Connexion';
-$lang['logout'] = 'Déconnexion';
-$lang['channel'] = 'Salon';
-$lang['style'] = 'Style';
-$lang['language'] = 'Langue';
-$lang['inputLineBreak'] = 'Taper Maj + Entrer pour avoir une ligne blanche';
-$lang['messageSubmit'] = 'Envoyer';
-$lang['registeredUsers'] = 'Utilisateurs enregistrés';
-$lang['onlineUsers'] = 'Utilisateurs en ligne';
-$lang['toggleAutoScroll'] = 'Activer / Désactiver l’autoscroll';
-$lang['toggleAudio'] = 'Activer / Désactiver le son';
-$lang['toggleHelp'] = 'Afficher / Masquer l’aide';
-$lang['toggleSettings'] = 'Afficher / Masquer les préférences';
-$lang['toggleOnlineList'] = 'Afficher / Masquer les utilisateurs en ligne';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citation';
-$lang['bbCodeLabelCode'] = 'Code';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Couleur de police';
-$lang['bbCodeTitleBold'] = 'Texte en gras : [b]texte[/b]';
-$lang['bbCodeTitleItalic'] = 'Texte en italique : [i]texte[/i]';
-$lang['bbCodeTitleUnderline'] = 'Texte souligné : [u]texte[/u]';
-$lang['bbCodeTitleQuote'] = 'Citation : [quote]texte[/quote] ou [quote=auteur]texte[/quote]';
-$lang['bbCodeTitleCode'] = 'Affichage de code : [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Insérer une URL : [url]http://example.org[/url] ou [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insérer une image : [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Couleur de la police: [color=red]texte[/color]';
-$lang['help'] = 'Aide';
-$lang['helpItemDescJoin'] = 'Rejoindre un salon :';
-$lang['helpItemCodeJoin'] = '/join Nom_du_salon';
-$lang['helpItemDescJoinCreate'] = 'Créer un salon privé (Utilisateurs enregistrés seulement) :';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Inviter quelqu’un (exemple : rejoindre un salon privé) :';
-$lang['helpItemCodeInvite'] = '/invite Nom_d_utilisateur';
-$lang['helpItemDescUninvite'] = 'Annuler l’invitation :';
-$lang['helpItemCodeUninvite'] = '/uninvite Nom_d_utilisateur';
-$lang['helpItemDescLogout'] = 'Se déconnecter du chat :';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Message privé :';
-$lang['helpItemCodePrivateMessage'] = '/msg Nom_d_utilisateur Texte';
-$lang['helpItemDescQueryOpen'] = 'Ouvrir un canal privé :';
-$lang['helpItemCodeQueryOpen'] = '/query Nom_d_utilisateur';
-$lang['helpItemDescQueryClose'] = 'Fermer un canal privé:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Décrire une action :';
-$lang['helpItemCodeAction'] = '/action Texte';
-$lang['helpItemDescDescribe'] = 'Décrire une action dans un message privé :';
-$lang['helpItemCodeDescribe'] = '/describe Nom_d_utilisateur Texte';
-$lang['helpItemDescIgnore'] = 'Ignorer / Accepter les messages de l’utilisateur :';
-$lang['helpItemCodeIgnore'] = '/ignore Nom_d_utilisateur';
-$lang['helpItemDescIgnoreList'] = 'Liste des utilisateurs ignorés :';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel :';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Éjecter un utilisateur (Modérateurs seulement) :';
-$lang['helpItemCodeKick'] = '/kick Nom_d_utilisateur [Temps en minutes de ban]';
-$lang['helpItemDescUnban'] = 'Débannir un utilisateur (Modérateurs seulement) :';
-$lang['helpItemCodeUnban'] = '/unban Nom_d_utilisateur';
-$lang['helpItemDescBans'] = 'Liste des utilisateurs bannis (Modérateurs seulement) :';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Afficher l’adresse IP de l’utilisateur (Modérateurs seulement) :';
-$lang['helpItemCodeWhois'] = '/whois Nom_d_utilisateur';
-$lang['helpItemDescWho'] = 'Liste des utilisateurs en ligne :';
-$lang['helpItemCodeWho'] = '/who [Nom du salon]';
-$lang['helpItemDescList'] = 'Liste des salons disponibles :';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Jeter un dé :';
-$lang['helpItemCodeRoll'] = '/roll [nombre de dés]d[nombre de faces]';
-$lang['helpItemDescNick'] = 'Changer le nom d’utilisateur';
-$lang['helpItemCodeNick'] = '/nick Nom_d_utilisateur';
-$lang['settings'] = 'Préférences';
-$lang['settingsBBCode'] = 'Activer le BBCode :';
-$lang['settingsBBCodeImages'] = 'Activer le BBCode des images :';
-$lang['settingsBBCodeColors'] = 'Activer le BBCode pour la couleur de la police :';
-$lang['settingsHyperLinks'] = 'Activer les liens :';
-$lang['settingsLineBreaks'] = 'Activer les lignes blanches :';
-$lang['settingsEmoticons'] = 'Activer les émoticons :';
-$lang['settingsAutoFocus'] = 'Champ de saisie automatique :';
-$lang['settingsMaxMessages'] = 'Maximum de messages dans le chat :';
-$lang['settingsWordWrap'] = 'Activer la coupure des mots :';
-$lang['settingsMaxWordLength'] = 'Longueur maximum des mots :';
-$lang['settingsDateFormat'] = 'Format de la date :';
-$lang['settingsPersistFontColor'] = 'Garder la couleur du font :';
-$lang['settingsAudioVolume'] = 'Volume du son :';
-$lang['settingsSoundReceive'] = 'Son message entrant :';
-$lang['settingsSoundSend'] = 'Son message sortant :';
-$lang['settingsSoundEnter'] = 'Son pour connexion :';
-$lang['settingsSoundLeave'] = 'Son pour déconnexion :';
-$lang['settingsSoundChatBot'] = 'Son pour message robot :';
-$lang['settingsSoundError'] = 'Son pour les erreurs :';
-$lang['settingsBlink'] = 'Clignoter à chaque nouveau message :';
-$lang['settingsBlinkInterval'] = 'Intervalle de clignotage :';
-$lang['settingsBlinkIntervalNumber'] = 'Numéro de clignotage :';
-$lang['playSelectedSound'] = 'Jouer le son sélectionné';
-$lang['requiresJavaScript'] = 'Ce chat requiert JavasSript.';
-$lang['errorInvalidUser'] = 'Nom d’utilisateur incorrect.';
-$lang['errorUserInUse'] = 'Nom d’utilisateur déjà utilisé.';
-$lang['errorBanned'] = 'L’utilisateur ou l’adresse IP a été banni(e).';
-$lang['errorMaxUsersLoggedIn'] = 'Le chat a atteint le nombre maximal d’utilisateurs en ligne.';
-$lang['errorChatClosed'] = 'Le chat est fermé pour le moment.';
-$lang['logsTitle'] = 'Chat AJAX - Historique';
-$lang['logsDate'] = 'Date';
-$lang['logsTime'] = 'Heure';
-$lang['logsSearch'] = 'Chercher';
-$lang['logsPrivateChannels'] = 'Salons privés';
-$lang['logsPrivateMessages'] = 'Messages privés';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/gl.php b/library/ajaxchat/chat/lib/lang/gl.php
deleted file mode 100644
index 54b8a8ee6..000000000
--- a/library/ajaxchat/chat/lib/lang/gl.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Manu Quintans
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Usuario';
-$lang['password'] = 'Password';
-$lang['login'] = 'Entrar';
-$lang['logout'] = 'Pechar Sesión';
-$lang['channel'] = 'Canle';
-$lang['style'] = 'Estilo';
-$lang['language'] = 'Idioma';
-$lang['inputLineBreak'] = 'Prema SHIFT+ENTER para un salto de liña';
-$lang['messageSubmit'] = 'Enviar';
-$lang['registeredUsers'] = 'Usuarios rexistrados';
-$lang['onlineUsers'] = 'Usuarios Conectados';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sons on/off';
-$lang['toggleHelp'] = 'Amosar/Esconder ayuda';
-$lang['toggleSettings'] = 'Amosar/Esconder configuración';
-$lang['toggleOnlineList'] = 'Amosar/Esconder usuarios en liña';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Quote';
-$lang['bbCodeLabelCode'] = 'Code';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Imagen';
-$lang['bbCodeLabelColor'] = 'Color fonte';
-$lang['bbCodeTitleBold'] = 'Texto negriña: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Texto cursiva: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Texto subraiado: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Texto entrecomillado: [quote]text[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Mosrar código: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Insertar URL: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insertar imaxe: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Cor fonte: [color=red]text[/color]';
-$lang['help'] = 'Axuda';
-$lang['helpItemDescJoin'] = 'Entrar na canle:';
-$lang['helpItemCodeJoin'] = '/join nome da canle';
-$lang['helpItemDescJoinCreate'] = 'Crear un privado(So usuarios registrados):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Invitar a alguén(por ex. a un privado):';
-$lang['helpItemCodeInvite'] = '/invite Nome usuario';
-$lang['helpItemDescUninvite'] = 'Rechazar invitación:';
-$lang['helpItemCodeUninvite'] = '/uninvite Nome usuario';
-$lang['helpItemDescLogout'] = 'Pechar sesión:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Mensaxe Privada:';
-$lang['helpItemCodePrivateMessage'] = '/msg Usuario Texto';
-$lang['helpItemDescQueryOpen'] = 'Abrir unha canle privada:';
-$lang['helpItemCodeQueryOpen'] = '/query Usuario';
-$lang['helpItemDescQueryClose'] = 'Pechar canle privada:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Describe acción:';
-$lang['helpItemCodeAction'] = '/action Texto';
-$lang['helpItemDescDescribe'] = 'Describe acción nunha mensaxe privada:';
-$lang['helpItemCodeDescribe'] = '/describe Nome Usuario Texto';
-$lang['helpItemDescIgnore'] = 'Ignorar/Aceptar mensaxes de usuarios:';
-$lang['helpItemCodeIgnore'] = '/ignore Usuario';
-$lang['helpItemDescIgnoreList'] = 'Listar usuarios Ignorados:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Mostrar canle usuario:';
-$lang['helpItemCodeWhereis'] = '/whereis Usuario';
-$lang['helpItemDescKick'] = 'Banear usuario (Só moderadores):';
-$lang['helpItemCodeKick'] = '/kick Usuario [Minutos baneado]';
-$lang['helpItemDescUnban'] = 'Quitar ban usuario (Só moderadores):';
-$lang['helpItemCodeUnban'] = '/unban Nome usuario';
-$lang['helpItemDescBans'] = 'Listar usuarios baneados (Só moderadores):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Amosar ips de usuarios (So moderadores):';
-$lang['helpItemCodeWhois'] = '/whois Nome usuario';
-$lang['helpItemDescWho'] = 'Amosar usuarios conectados:';
-$lang['helpItemCodeWho'] = '/who [Nome canle]';
-$lang['helpItemDescList'] = 'Lista de canles disponibles:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Roll dice:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Cambiar Nome usuario:';
-$lang['helpItemCodeNick'] = '/nick Usuario';
-$lang['settings'] = 'Configuración';
-$lang['settingsBBCode'] = 'Activar BBCode:';
-$lang['settingsBBCodeImages'] = 'Activar imaxes BBCode:';
-$lang['settingsBBCodeColors'] = 'Activar cor fonte BBCode:';
-$lang['settingsHyperLinks'] = 'Activar enlaces:';
-$lang['settingsLineBreaks'] = 'Activar saltos de liña:';
-$lang['settingsEmoticons'] = 'Activar emoticonos:';
-$lang['settingsAutoFocus'] = 'Foco en campo de entrada automáticamente:';
-$lang['settingsMaxMessages'] = 'Máximo número de mensaxes:';
-$lang['settingsWordWrap'] = 'Activar wrapping en palabras largas:';
-$lang['settingsMaxWordLength'] = 'Máxima lonxutide de palabra antes de wrap:';
-$lang['settingsDateFormat'] = 'Formato de data e hora:';
-$lang['settingsPersistFontColor'] = 'Fixar cor de fonte:';
-$lang['settingsAudioVolume'] = 'Volume sons:';
-$lang['settingsSoundReceive'] = 'Son para mensaxes entrantes:';
-$lang['settingsSoundSend'] = 'Son para mensaxes salientes:';
-$lang['settingsSoundEnter'] = 'Son para login :';
-$lang['settingsSoundLeave'] = 'Son para logout :';
-$lang['settingsSoundChatBot'] = 'Son para mensaxes chat:';
-$lang['settingsSoundError'] = 'Son para errores:';
-$lang['settingsBlink'] = 'Parpadeo en ventá con novas mensaxes:';
-$lang['settingsBlinkInterval'] = 'Intervalo parpadeos (milisegundos):';
-$lang['settingsBlinkIntervalNumber'] = 'Número de parpadeos:';
-$lang['playSelectedSound'] = 'Executa son';
-$lang['requiresJavaScript'] = 'Necesitas ter activado o Javascript no teu navegador..';
-$lang['errorInvalidUser'] = 'Usuario Incorrecto.';
-$lang['errorUserInUse'] = 'Este Nome de usuario xa está sendo utilizado neste momento.';
-$lang['errorBanned'] = 'Usuario ou IP baneada..';
-$lang['errorMaxUsersLoggedIn'] = 'O chat alcanzou o número máximo de conexións.';
-$lang['errorChatClosed'] = 'Chat pechado neste momento.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Data';
-$lang['logsTime'] = 'Hora';
-$lang['logsSearch'] = 'Buscar';
-$lang['logsPrivateChannels'] = 'Canles privadas';
-$lang['logsPrivateMessages'] = 'mensaxes privadas';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/he.php b/library/ajaxchat/chat/lib/lang/he.php
deleted file mode 100644
index 39fa799d2..000000000
--- a/library/ajaxchat/chat/lib/lang/he.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Smiley Barry
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'שם משתמש';
-$lang['password'] = 'סיסמה';
-$lang['login'] = 'היכנס';
-$lang['logout'] = 'צא';
-$lang['channel'] = 'ערוץ';
-$lang['style'] = 'סגנון';
-$lang['language'] = 'לשון';
-$lang['inputLineBreak'] = 'Press SHIFT+ENTER to input a line break';
-$lang['messageSubmit'] = 'שלח';
-$lang['registeredUsers'] = 'משתמשים רשומים';
-$lang['onlineUsers'] = 'משתמשים מחוברים';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sound on/off';
-$lang['toggleHelp'] = 'Show/hide help';
-$lang['toggleSettings'] = 'Show/hide settings';
-$lang['toggleOnlineList'] = 'Show/hide online list';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'צטט';
-$lang['bbCodeLabelCode'] = 'קוד';
-$lang['bbCodeLabelURL'] = 'כתובת אינטרנט';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'צבע גופן';
-$lang['bbCodeTitleBold'] = 'טקסט מודגש: [b]טקסט[/b]';
-$lang['bbCodeTitleItalic'] = 'טקסט נטוי: [i]טקסט[/i]';
-$lang['bbCodeTitleUnderline'] = 'טקסט מודגש קו: [u]טקסט[/u]';
-$lang['bbCodeTitleQuote'] = 'צטט טקסט: [quote]טקסט[/quote] או [quote=כותב מקורי]טקסט[/quote]';
-$lang['bbCodeTitleCode'] = 'הראה קוד: [code]קוד[/code]';
-$lang['bbCodeTitleURL'] = 'הכנס כתובת: [url]http://www.example.org[/url] או[url=http://www.example.org]טקסט[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'צבע גופן: [color=צבע]טקסט[/color]';
-$lang['help'] = 'עזרה';
-$lang['helpItemDescJoin'] = 'הצטרף לערוץ:';
-$lang['helpItemCodeJoin'] = '/join שם ערוץ';
-$lang['helpItemDescJoinCreate'] = 'צור חדר פרטי (משתמשים רשומים בלבד):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'הזמן מישהו (דוגמא: חדר פרטי):';
-$lang['helpItemCodeInvite'] = '/invite שם_משתמש';
-$lang['helpItemDescUninvite'] = 'בטל הזמנה:';
-$lang['helpItemCodeUninvite'] = '/uninvite שם_משתמש';
-$lang['helpItemDescLogout'] = 'צא מהצאט:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'הודעה פרטית:';
-$lang['helpItemCodePrivateMessage'] = '/msg שם_משתמש טקסט';
-$lang['helpItemDescQueryOpen'] = 'פתח ערוץ אישי:';
-$lang['helpItemCodeQueryOpen'] = '/query שם_משתמש';
-$lang['helpItemDescQueryClose'] = 'סגור ערוץ אישי:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'תאר פעולה:';
-$lang['helpItemCodeAction'] = '/action טקסט';
-$lang['helpItemDescDescribe'] = 'תאר פעולה בהודעה פרטית:';
-$lang['helpItemCodeDescribe'] = '/describe שם_משתמש טקסט';
-$lang['helpItemDescIgnore'] = 'התעלם או קבל הודעות ממשתמש:';
-$lang['helpItemCodeIgnore'] = '/ignore שם_משתמש';
-$lang['helpItemDescIgnoreList'] = 'הראה רשימה של אנשים שאתה מתעלם מהם:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'העף משתמש (חברי צוות בלבד):';
-$lang['helpItemCodeKick'] = '/kick שם_משתמש [מספר דקות]';
-$lang['helpItemDescUnban'] = 'בטל חסימת משתמש (חברי צוות בלבד):';
-$lang['helpItemCodeUnban'] = '/unban שם_משתמש';
-$lang['helpItemDescBans'] = 'הראה רשימת משתמשים חסומים (חברי צוות בלבד):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'הראה כתובת מחשב של משתמש (חברי צוות בלבד):';
-$lang['helpItemCodeWhois'] = '/whois שם_משתמש';
-$lang['helpItemDescWho'] = 'הראה רשימת משתמשים מחוברים:';
-$lang['helpItemCodeWho'] = '/who שם_ערוץ';
-$lang['helpItemDescList'] = 'הראה רשימת ערוצים פתוחים:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'גלגל קוביה:';
-$lang['helpItemCodeRoll'] = '/roll [מספר]d[צדדים]';
-$lang['helpItemDescNick'] = 'Change username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Settings';
-$lang['settingsBBCode'] = 'Enable BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Enable hyperlinks:';
-$lang['settingsLineBreaks'] = 'Enable line breaks:';
-$lang['settingsEmoticons'] = 'Enable emoticons:';
-$lang['settingsAutoFocus'] = 'Automatically set the focus on the input field:';
-$lang['settingsMaxMessages'] = 'Maximum number of messages in the chatlist:';
-$lang['settingsWordWrap'] = 'Enable wrapping of long words:';
-$lang['settingsMaxWordLength'] = 'Maximum length of a word before it gets wrapped:';
-$lang['settingsDateFormat'] = 'Format of date and time display:';
-$lang['settingsPersistFontColor'] = 'Persist font color:';
-$lang['settingsAudioVolume'] = 'Sound Volume:';
-$lang['settingsSoundReceive'] = 'Sound for incoming messages:';
-$lang['settingsSoundSend'] = 'Sound for outgoing messages:';
-$lang['settingsSoundEnter'] = 'Sound for login and channel enter messages:';
-$lang['settingsSoundLeave'] = 'Sound for logout and channel leave messages:';
-$lang['settingsSoundChatBot'] = 'Sound for chatbot messages:';
-$lang['settingsSoundError'] = 'Sound for error messages:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'Play selected sound';
-$lang['requiresJavaScript'] = 'JavaScript נצרך בשביל הצאט הזה.';
-$lang['errorInvalidUser'] = 'שם משתמש לא חוקי.';
-$lang['errorUserInUse'] = 'שם משתמש בשימוש.';
-$lang['errorBanned'] = 'משתמש או כתובת מחשב חסומים.';
-$lang['errorMaxUsersLoggedIn'] = 'הצאט כרגע מלא.';
-$lang['errorChatClosed'] = 'הצאט כרגע סגור.';
-$lang['logsTitle'] = 'תיעוד';
-$lang['logsDate'] = 'תאריך';
-$lang['logsTime'] = 'זמן';
-$lang['logsSearch'] = 'חיפוש';
-$lang['logsPrivateChannels'] = 'ערוצים פרטיים';
-$lang['logsPrivateMessages'] = 'הודעות פרטיות';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/hr.php b/library/ajaxchat/chat/lib/lang/hr.php
deleted file mode 100644
index ed0451033..000000000
--- a/library/ajaxchat/chat/lib/lang/hr.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Brbljanje';
-$lang['userName'] = 'Korisničko ime';
-$lang['password'] = 'Lozinka';
-$lang['login'] = 'Prijava';
-$lang['logout'] = 'Odjava';
-$lang['channel'] = 'Kanal';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Jezik';
-$lang['inputLineBreak'] = 'Za unos novog retka pritisnite SHIFT+ENTER';
-$lang['messageSubmit'] = 'Pošalji';
-$lang['registeredUsers'] = 'Registrirani korisnici';
-$lang['onlineUsers'] = 'Prisutni korisnici';
-$lang['toggleAutoScroll'] = 'Automatsko klizanje - uklj/isklj ';
-$lang['toggleAudio'] = 'Zvuk - uklj/isklj';
-$lang['toggleHelp'] = 'Pomoć - prikaži/sakrij';
-$lang['toggleSettings'] = 'Postavke - prikaži/sakrij';
-$lang['toggleOnlineList'] = 'Popisa prisutnih - prikaži/sakrij';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citat';
-$lang['bbCodeLabelCode'] = 'Kôd';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Slika';
-$lang['bbCodeLabelColor'] = 'Boja';
-$lang['bbCodeTitleBold'] = 'Snažan tekst: [b]tekst[/b]';
-$lang['bbCodeTitleItalic'] = 'Kurziv: [i]tekst[/i]';
-$lang['bbCodeTitleUnderline'] = 'Podvučeni tekst: [u]tekst[/u]';
-$lang['bbCodeTitleQuote'] = 'Citirani tekst: [quote]tekst[/quote] ili [quote=autor]tekst[/quote]';
-$lang['bbCodeTitleCode'] = 'Prikaz kôda: [code]kôd[/code]';
-$lang['bbCodeTitleURL'] = 'Umetanje URL: [url]http://primjer.org[/url] ili [url=http://primjer.org]tekst[/url]';
-$lang['bbCodeTitleImg'] = 'Umetanje slike: [img]http://primjer.org/slika.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Boja fonta: [color=red]tekst[/color]';
-$lang['help'] = 'Pomoć';
-$lang['helpItemDescJoin'] = 'Pridruživanje kanalu:';
-$lang['helpItemCodeJoin'] = '/join kanal';
-$lang['helpItemDescJoinCreate'] = 'Izrada privatne sobe (samo za registrirane korisnike):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Pozivanje korisnika (npr. u privatnu sobu):';
-$lang['helpItemCodeInvite'] = '/invite korisnik';
-$lang['helpItemDescUninvite'] = 'Opoziv:';
-$lang['helpItemCodeUninvite'] = '/uninvite korisnik';
-$lang['helpItemDescLogout'] = 'Odjava iz brbljanja:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privatna poruka:';
-$lang['helpItemCodePrivateMessage'] = '/msg korisnik tekst';
-$lang['helpItemDescQueryOpen'] = 'Otvaranje privatnog kanala:';
-$lang['helpItemCodeQueryOpen'] = '/query korisnik';
-$lang['helpItemDescQueryClose'] = 'Zatvaranje privatnog kanala:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Aktivnost:';
-$lang['helpItemCodeAction'] = '/action tekst';
-$lang['helpItemDescDescribe'] = 'Aktivnost u privatnoj poruci:';
-$lang['helpItemCodeDescribe'] = '/describe korisnik tekst';
-$lang['helpItemDescIgnore'] = 'Ignoriranje/prihvaćanje poruka od korisnika:';
-$lang['helpItemCodeIgnore'] = '/ignore korisnik';
-$lang['helpItemDescIgnoreList'] = 'Ispisivanje ignoriranih korisnika:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Prikazivanje korisničkog kanala:';
-$lang['helpItemCodeWhereis'] = '/whereis korisnik';
-$lang['helpItemDescKick'] = 'Progon korisnika (samo za moderatore):';
-$lang['helpItemCodeKick'] = '/kick korisnik [minute]';
-$lang['helpItemDescUnban'] = 'Uklanjanje zabrane korisnika (samo za moderatore):';
-$lang['helpItemCodeUnban'] = '/unban korisnik';
-$lang['helpItemDescBans'] = 'Ispisivanje zabranjenih korisnika (samo za moderatore):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Prikazivanje IP korisnika (samo za moderatore):';
-$lang['helpItemCodeWhois'] = '/whois korisnik';
-$lang['helpItemDescWho'] = 'Ispisivanje prisutnih korisnika:';
-$lang['helpItemCodeWho'] = '/who [kanal]';
-$lang['helpItemDescList'] = 'Ispisivanje dostupnih kanala:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Bacanje kocke:';
-$lang['helpItemCodeRoll'] = '/roll [broj]d[strane]';
-$lang['helpItemDescNick'] = 'Promjena korisničkog imena:';
-$lang['helpItemCodeNick'] = '/nick korisnik';
-$lang['settings'] = 'Postavke';
-$lang['settingsBBCode'] = 'Omogući BB kôd:';
-$lang['settingsBBCodeImages'] = 'Omogući BB kôd za slike:';
-$lang['settingsBBCodeColors'] = 'Omogući BB kôd za boju fonta:';
-$lang['settingsHyperLinks'] = 'Omogući hiperveze:';
-$lang['settingsLineBreaks'] = 'Omogući nove retke:';
-$lang['settingsEmoticons'] = 'Omogući emotikone:';
-$lang['settingsAutoFocus'] = 'Automatski postavi fokus u polje unosa:';
-$lang['settingsMaxMessages'] = 'Najveći broj poruka na popisu:';
-$lang['settingsWordWrap'] = 'Omogući obmatanje dugih riječi:';
-$lang['settingsMaxWordLength'] = 'Najveća duljina riječi prije njezinog obmatanja:';
-$lang['settingsDateFormat'] = 'Oblikovanje datuma i vremena:';
-$lang['settingsPersistFontColor'] = 'Dosljedna boja fonta:';
-$lang['settingsAudioVolume'] = 'Glasnoća zvuka:';
-$lang['settingsSoundReceive'] = 'Zvuk za dolazne poruke:';
-$lang['settingsSoundSend'] = 'Zvuk za odlazne poruke:';
-$lang['settingsSoundEnter'] = 'Zvuk za prijavljivanje i poruke pristupanja kanalu:';
-$lang['settingsSoundLeave'] = 'Zvuk za odjavljivanje i poruke napuštanja kanala:';
-$lang['settingsSoundChatBot'] = 'Zvuk za poruke brbljobota:';
-$lang['settingsSoundError'] = 'Zvuk za poruke pogreške:';
-$lang['settingsBlink'] = 'Treptanje naslova prozora kod novih poruka:';
-$lang['settingsBlinkInterval'] = 'Trajanje treptanja (u milisekundama):';
-$lang['settingsBlinkIntervalNumber'] = 'Broj treptanja:';
-$lang['playSelectedSound'] = 'Pokreni odabrani zvuk';
-$lang['requiresJavaScript'] = 'Ovo brbljanje zahtjeva JavaScript.';
-$lang['errorInvalidUser'] = 'Nepravilno korisničko ime.';
-$lang['errorUserInUse'] = 'Korisničko ime već je u upotrebi.';
-$lang['errorBanned'] = 'Korisnik ili IP je zabranjen.';
-$lang['errorMaxUsersLoggedIn'] = 'Brbljaonica je dostigla najveći dopušteni broj prijavljenih korisnika.';
-$lang['errorChatClosed'] = 'Brbljaonica je trenutno zatvorena.';
-$lang['logsTitle'] = 'AJAX Brbljanje - Zapisnici';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Vrijeme';
-$lang['logsSearch'] = 'Traži';
-$lang['logsPrivateChannels'] = 'Privatni kanali';
-$lang['logsPrivateMessages'] = 'Privatne poruke';
-?>
diff --git a/library/ajaxchat/chat/lib/lang/hu.php b/library/ajaxchat/chat/lib/lang/hu.php
deleted file mode 100644
index 5f2174134..000000000
--- a/library/ajaxchat/chat/lib/lang/hu.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Felhasználónév';
-$lang['password'] = 'Jelszó';
-$lang['login'] = 'Belépés';
-$lang['logout'] = 'Kilépés';
-$lang['channel'] = 'Szoba';
-$lang['style'] = 'Stílus';
-$lang['language'] = 'Nyelv';
-$lang['inputLineBreak'] = 'Üsse le a SHIFT+ENTER billentyűket sortöréshez';
-$lang['messageSubmit'] = 'Küldés';
-$lang['registeredUsers'] = 'Regisztrált felhasználók';
-$lang['onlineUsers'] = 'Jelenlévők';
-$lang['toggleAutoScroll'] = 'Automatikus görgetés be/ki';
-$lang['toggleAudio'] = 'Hang be/ki';
-$lang['toggleHelp'] = 'Segítség mutatása/elrejtése';
-$lang['toggleSettings'] = 'Beállítások mutatása/elrejtése';
-$lang['toggleOnlineList'] = 'Jelenlévők mutatása/elrejtése';
-$lang['bbCodeLabelBold'] = 'B';
-$lang['bbCodeLabelItalic'] = 'I';
-$lang['bbCodeLabelUnderline'] = 'U';
-$lang['bbCodeLabelQuote'] = 'Idézet';
-$lang['bbCodeLabelCode'] = 'Kód';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Kép';
-$lang['bbCodeLabelColor'] = 'Szöveg szín';
-$lang['bbCodeTitleBold'] = 'Félkövér szöveg: [b]szöveg[/b]';
-$lang['bbCodeTitleItalic'] = 'Dőlt szöveg: [i]szöveg[/i]';
-$lang['bbCodeTitleUnderline'] = 'Aláhúzott szöveg: [u]szöveg[/u]';
-$lang['bbCodeTitleQuote'] = 'Idézett szöveg: [quote]szöveg[/quote] vagy [quote=szerző]szöveg[/quote]';
-$lang['bbCodeTitleCode'] = 'Kód: [code]kód[/code]';
-$lang['bbCodeTitleURL'] = 'URL beszúrása: [url]http://example.org[/url] vagy [url=http://example.org]szöveg[/url]';
-$lang['bbCodeTitleImg'] = 'Kép beszúrása: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Szöveg szín: [color=red]szöveg[/color]';
-$lang['help'] = 'Segítség';
-$lang['helpItemDescJoin'] = 'Belépés a szobába:';
-$lang['helpItemCodeJoin'] = '/join Szobanév';
-$lang['helpItemDescJoinCreate'] = 'Privát szoba létrehozása (Csak regisztráltaknak):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Meghívás (pl. privát szobába):';
-$lang['helpItemCodeInvite'] = '/invite Nick';
-$lang['helpItemDescUninvite'] = 'Meghívás megszüntetése:';
-$lang['helpItemCodeUninvite'] = '/uninvite Nick';
-$lang['helpItemDescLogout'] = 'Kilépés a chatből:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privát üzenet:';
-$lang['helpItemCodePrivateMessage'] = '/msg Nick szöveg';
-$lang['helpItemDescQueryOpen'] = 'Privát szoba létrehozása:';
-$lang['helpItemCodeQueryOpen'] = '/query Nick';
-$lang['helpItemDescQueryClose'] = 'Privát szoba beázárása:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Akció írása (E/3 személyű beszéd):';
-$lang['helpItemCodeAction'] = '/action szöveg';
-$lang['helpItemDescDescribe'] = 'Akció privát beszélgetésben:';
-$lang['helpItemCodeDescribe'] = '/describe Nick szöveg';
-$lang['helpItemDescIgnore'] = 'Felhasználó figyelembe vétele/figyelmen kívül hagyása:';
-$lang['helpItemCodeIgnore'] = '/ignore Nick';
-$lang['helpItemDescIgnoreList'] = 'Figyelmen kívül hagyottak listája:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'A felhasználó mely szobákban tartózkodik:';
-$lang['helpItemCodeWhereis'] = '/whereis Nick';
-$lang['helpItemDescKick'] = 'Felhasználó kirúgása (Csak moderátorok):';
-$lang['helpItemCodeKick'] = '/kick Nick [kitiltás percekben]';
-$lang['helpItemDescUnban'] = 'Tiltás feloldása (Csak moderátorok):';
-$lang['helpItemCodeUnban'] = '/unban Nick';
-$lang['helpItemDescBans'] = 'Kitiltottak listája (Csak moderátorok):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Felhasználó IP címének mutatása (Csak moderátorok):';
-$lang['helpItemCodeWhois'] = '/whois Nick';
-$lang['helpItemDescWho'] = 'Jelenlévők listázása:';
-$lang['helpItemCodeWho'] = '/who [Szobanév]';
-$lang['helpItemDescList'] = 'Szobák listázása:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Dobókocka dobás:';
-$lang['helpItemCodeRoll'] = '/roll [szám]d[oldalak]';
-$lang['helpItemDescNick'] = 'Nick cseréje:';
-$lang['helpItemCodeNick'] = '/nick Nick';
-$lang['settings'] = 'Beállítások';
-$lang['settingsBBCode'] = 'BBCode engedélyezése:';
-$lang['settingsBBCodeImages'] = 'Kép BBCode engedélyezése:';
-$lang['settingsBBCodeColors'] = 'Szöveg szín BBCode engedélyezése:';
-$lang['settingsHyperLinks'] = 'Linkek engedélyezése:';
-$lang['settingsLineBreaks'] = 'Sortörések engedélyezése:';
-$lang['settingsEmoticons'] = 'Emotikonok engedélyezése:';
-$lang['settingsAutoFocus'] = 'Automatikusan a beviteli mezőn legyen a fókusz:';
-$lang['settingsMaxMessages'] = 'Maximálisan látható üzenetek száma:';
-$lang['settingsWordWrap'] = 'Hosszú szavak tördelése:';
-$lang['settingsMaxWordLength'] = 'Maximális karakterszám egy szó tördelése előtt:';
-$lang['settingsDateFormat'] = 'Dátum és idő kijelzésének formátuma:';
-$lang['settingsPersistFontColor'] = 'Folyamatos betűszín használata:';
-$lang['settingsAudioVolume'] = 'Hangerő:';
-$lang['settingsSoundReceive'] = 'Bejövő üzenetek hangja:';
-$lang['settingsSoundSend'] = 'Kimenő üzenetek hangja:';
-$lang['settingsSoundEnter'] = 'Belépés szobaüzenetek hangja:';
-$lang['settingsSoundLeave'] = 'Kilépés szobaüzenetek hangja:';
-$lang['settingsSoundChatBot'] = 'ChatBot üzenetek hangja:';
-$lang['settingsSoundError'] = 'Hibaüzenetek hangja:';
-$lang['settingsBlink'] = 'Ablak fejléce villogjon új üzenet esetén:';
-$lang['settingsBlinkInterval'] = 'A villogás intervallumának hossza századmásodpercekben:';
-$lang['settingsBlinkIntervalNumber'] = 'Villogási intervallumok száma:';
-$lang['playSelectedSound'] = 'Kiválasztott hang lejátszása';
-$lang['requiresJavaScript'] = 'A JavaScript bekapcsolása szükséges a chat használatához.';
-$lang['errorInvalidUser'] = 'Hamis Nick.';
-$lang['errorUserInUse'] = 'A nick már használatban van.';
-$lang['errorBanned'] = 'Ez a felhasználó vagy IP ki van tiltva.';
-$lang['errorMaxUsersLoggedIn'] = 'A chatelők száma elérte a megengedett maximumot.';
-$lang['errorChatClosed'] = 'A chat jelenleg nem üzemel.';
-$lang['logsTitle'] = 'AJAX Chat - Logok';
-$lang['logsDate'] = 'Dátum';
-$lang['logsTime'] = 'Idő';
-$lang['logsSearch'] = 'Keresés';
-$lang['logsPrivateChannels'] = 'Privát szobák';
-$lang['logsPrivateMessages'] = 'Privát üzenetek';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/in.php b/library/ajaxchat/chat/lib/lang/in.php
deleted file mode 100644
index 175cc904b..000000000
--- a/library/ajaxchat/chat/lib/lang/in.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Nama';
-$lang['password'] = 'Password';
-$lang['login'] = 'Masuk';
-$lang['logout'] = 'Keluar';
-$lang['channel'] = 'Channel';
-$lang['style'] = 'Model';
-$lang['language'] = 'Bahasa';
-$lang['inputLineBreak'] = 'Tekan SHIFT+ENTER untuk berpindah baris';
-$lang['messageSubmit'] = 'Tampilkan';
-$lang['registeredUsers'] = 'Pemakai Terdaftar';
-$lang['onlineUsers'] = 'Pemakai Online';
-$lang['toggleAutoScroll'] = 'Scroll Otomatis on/off';
-$lang['toggleAudio'] = 'Suara on/off';
-$lang['toggleHelp'] = 'Tampilkan/Sembunyikan help';
-$lang['toggleSettings'] = 'Tampilkan/Sembunyikan settings';
-$lang['toggleOnlineList'] = 'Tampilkan/Sembunyikan daftar online';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Salin';
-$lang['bbCodeLabelCode'] = 'Kode';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Gambar';
-$lang['bbCodeLabelColor'] = 'Warna Huruf';
-$lang['bbCodeTitleBold'] = 'Huruf Tebal: [b]kata[/b]';
-$lang['bbCodeTitleItalic'] = 'Huruf Miring: [i]kata[/i]';
-$lang['bbCodeTitleUnderline'] = 'Garis Bawah: [u]kata[/u]';
-$lang['bbCodeTitleQuote'] = 'Kata Saduran: [quote]kata[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Code display: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Sisip URL: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Sisip gambar: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Warna Huruf: [color=red]text[/color]';
-$lang['help'] = 'Help';
-$lang['helpItemDescJoin'] = 'Gabung Channel:';
-$lang['helpItemCodeJoin'] = '/join NamaChannel';
-$lang['helpItemDescJoinCreate'] = 'Buat ruang privasi (Hanya untuk pengguna terdaftar):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Mengundang Seseorang (mis: ke ruang privasi):';
-$lang['helpItemCodeInvite'] = '/invite NamaPengguna';
-$lang['helpItemDescUninvite'] = 'Batalkan Undangan:';
-$lang['helpItemCodeUninvite'] = '/uninvite NamaPengguna';
-$lang['helpItemDescLogout'] = 'Keluar dari Chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Pesan Pribadi:';
-$lang['helpItemCodePrivateMessage'] = '/msg NamaPengguna Teks';
-$lang['helpItemDescQueryOpen'] = 'Membuka Channel Privasi:';
-$lang['helpItemCodeQueryOpen'] = '/query NamaPengguna';
-$lang['helpItemDescQueryClose'] = 'Menutup Channel Privasi:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Menjelaskan Tindakan:';
-$lang['helpItemCodeAction'] = '/action Teks';
-$lang['helpItemDescDescribe'] = 'Menjelaskan Tindakan pada pesan pribadi:';
-$lang['helpItemCodeDescribe'] = '/describe NamaPengguna Teks';
-$lang['helpItemDescIgnore'] = 'Mengacuhkan/Menerima Pesan Dari Pengguna Lain:';
-$lang['helpItemCodeIgnore'] = '/ignore NamaPengguna';
-$lang['helpItemDescIgnoreList'] = 'Tampilkan Daftar Pengguna yang Diacuhkan:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Tampilkan Pengguna di Channel:';
-$lang['helpItemCodeWhereis'] = '/whereis NamaPengguna';
-$lang['helpItemDescKick'] = 'Menendang Pengguna (Hanya Untuk Moderator):';
-$lang['helpItemCodeKick'] = '/kick NamaPengguna [Jumlah Menit Hukuman]';
-$lang['helpItemDescUnban'] = 'Membatalkan Blok Pengguna (Hanya Untuk Moderator):';
-$lang['helpItemCodeUnban'] = '/unban NamaPengguna';
-$lang['helpItemDescBans'] = 'Tampilkan Daftar Pengguna yang diblok (Hanya Untuk Moderator):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Tampilkan IP Pengguna (Hanya Untuk Moderator):';
-$lang['helpItemCodeWhois'] = '/whois NamaPengguna';
-$lang['helpItemDescWho'] = 'Tampilkan Daftar Pengguna di Channel:';
-$lang['helpItemCodeWho'] = '/who [NamaChannel]';
-$lang['helpItemDescList'] = 'Tampilkan Daftar Channel Yang Tersedia:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Lempar Dadu:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Mengganti Nama:';
-$lang['helpItemCodeNick'] = '/nick Nama';
-$lang['settings'] = 'Pengaturan';
-$lang['settingsBBCode'] = 'Membolehkan BBCode:';
-$lang['settingsBBCodeImages'] = 'Membolehkan gambar BBCode:';
-$lang['settingsBBCodeColors'] = 'Membolehkan warna huruf BBCode:';
-$lang['settingsHyperLinks'] = 'Membolehkan hyperlinks:';
-$lang['settingsLineBreaks'] = 'Membolehkan line breaks:';
-$lang['settingsEmoticons'] = 'Membolehkan emoticons:';
-$lang['settingsAutoFocus'] = 'Mengatur fokus secara otomatis ke kotak input:';
-$lang['settingsMaxMessages'] = 'Jumlah Pesan Maksimum pada daftar Chat:';
-$lang['settingsWordWrap'] = 'Membolehkan memecah suku kata yang panjang:';
-$lang['settingsMaxWordLength'] = 'Panjang maksimum sebuah kata sebelum dipecah:';
-$lang['settingsDateFormat'] = 'Format dari tampilan tanggal dan waktu:';
-$lang['settingsPersistFontColor'] = 'Mempertahankan Warna Huruf:';
-$lang['settingsAudioVolume'] = 'Volume Suara:';
-$lang['settingsSoundReceive'] = 'Suara pada saat pesan masuk:';
-$lang['settingsSoundSend'] = 'Suara pada saat pesan keluar:';
-$lang['settingsSoundEnter'] = 'Suara pada saat masuk channel:';
-$lang['settingsSoundLeave'] = 'Suara pada saat keluar Channel:';
-$lang['settingsSoundChatBot'] = 'Suara pada saat ChatBot:';
-$lang['settingsSoundError'] = 'Suara pada saat terdapat kesalahan:';
-$lang['settingsBlink'] = 'Kedipkan Judul Jendela pada saat ada pesan baru:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Jumlah interval kedipan:';
-$lang['playSelectedSound'] = 'Mainkan suara yang dipilih';
-$lang['requiresJavaScript'] = 'JavaScript diperlukan untuk Chat ini.';
-$lang['errorInvalidUser'] = 'Nama Salah.';
-$lang['errorUserInUse'] = 'Nama sudah ada yang pakai.';
-$lang['errorBanned'] = 'Pengguna atau IP diblok.';
-$lang['errorMaxUsersLoggedIn'] = 'Saluran Chat telah mencapai jumlah maksimum pengguna.';
-$lang['errorChatClosed'] = 'Saluran Chat ditutup sementara.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Tanggal';
-$lang['logsTime'] = 'Waktu';
-$lang['logsSearch'] = 'Cari';
-$lang['logsPrivateChannels'] = 'Saluran-saluran privasi';
-$lang['logsPrivateMessages'] = 'Pesan Pribadi';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/it.php b/library/ajaxchat/chat/lib/lang/it.php
deleted file mode 100644
index abcd4f9db..000000000
--- a/library/ajaxchat/chat/lib/lang/it.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author s8s8
- * @author Massimiliano Tiraboschi
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Nome';
-$lang['password'] = 'Password';
-$lang['login'] = 'Login';
-$lang['logout'] = 'Uscita';
-$lang['channel'] = 'Canale';
-$lang['style'] = 'Stile';
-$lang['language'] = 'Lingua';
-$lang['inputLineBreak'] = 'Premi SHIFT+ENTER per inserire una linea vuota';
-$lang['messageSubmit'] = 'Invia';
-$lang['registeredUsers'] = 'Utente registrato';
-$lang['onlineUsers'] = 'Utenti Online';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Suono on/off';
-$lang['toggleHelp'] = 'Mostra/Nascondi aiuto';
-$lang['toggleSettings'] = 'Mostra/Nascondi preferenze';
-$lang['toggleOnlineList'] = 'Mostra/Nascondi lista utenti online';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Cita';
-$lang['bbCodeLabelCode'] = 'Codice';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Colore Testo';
-$lang['bbCodeTitleBold'] = 'Grassetto: [b]testo[/b]';
-$lang['bbCodeTitleItalic'] = 'Corsivo: [i]testo[/i]';
-$lang['bbCodeTitleUnderline'] = 'Sottolineato: [u]testo[/u]';
-$lang['bbCodeTitleQuote'] = 'Cita: [quote]testo[/quote] oppure [quote=autore]testo[/quote]';
-$lang['bbCodeTitleCode'] = 'Mostra Codice: [code]codice[/code]';
-$lang['bbCodeTitleURL'] = 'Inserire URL: [url]http://example.org/[/url] oppure [url=http://example.org/]testo[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Colore Testo: [color=red]testo[/color]';
-$lang['help'] = 'Aiuto';
-$lang['helpItemDescJoin'] = 'Entra nel canale:';
-$lang['helpItemCodeJoin'] = '/join NomeCanale';
-$lang['helpItemDescJoinCreate'] = 'Crea un canale privato (Solo utenti registrati):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Invita qualcuno (e.g. in un canale privato):';
-$lang['helpItemCodeInvite'] = '/invite Username';
-$lang['helpItemDescUninvite'] = 'Rimuovi invito:';
-$lang['helpItemCodeUninvite'] = '/uninvite Username';
-$lang['helpItemDescLogout'] = 'Esce dalla Chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Messaggio privato:';
-$lang['helpItemCodePrivateMessage'] = '/msg NomeUtente Testo';
-$lang['helpItemDescQueryOpen'] = 'Apre un canale privato:';
-$lang['helpItemCodeQueryOpen'] = '/query NomeUtente';
-$lang['helpItemDescQueryClose'] = 'Chiude un canale privato:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Descrive azione:';
-$lang['helpItemCodeAction'] = '/action Testo';
-$lang['helpItemDescDescribe'] = 'Descrive azioni in messaggi privati:';
-$lang['helpItemCodeDescribe'] = '/describe NomeUtente Testo';
-$lang['helpItemDescIgnore'] = 'Ignora/accetta messaggi di un Utente:';
-$lang['helpItemCodeIgnore'] = '/ignore NomeUtente';
-$lang['helpItemDescIgnoreList'] = 'Elenca la lista degli ignorati:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Fa uscire un Utente (Solo Moderatore):';
-$lang['helpItemCodeKick'] = '/kick NomeUtente [Minuti bannato]';
-$lang['helpItemDescUnban'] = 'Toglie il Ban a un Utente (Solo Moderatore):';
-$lang['helpItemCodeUnban'] = '/unban NomeUtente';
-$lang['helpItemDescBans'] = 'Lista Utenti Bannati (Solo Moderatore):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Mostra IP Utente (Solo Moderatore):';
-$lang['helpItemCodeWhois'] = '/whois NomeUtente';
-$lang['helpItemDescWho'] = 'Lista Utenti in linea:';
-$lang['helpItemCodeWho'] = '/who [NomeCanale]';
-$lang['helpItemDescList'] = 'Lista canali disponibili:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Lancia i dadi:';
-$lang['helpItemCodeRoll'] = '/roll [quantita]d[faccie]';
-$lang['helpItemDescNick'] = 'Cambia username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Preferenze';
-$lang['settingsBBCode'] = 'Attiva BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Attiva hyperlinks:';
-$lang['settingsLineBreaks'] = 'Attiva linee bianche:';
-$lang['settingsEmoticons'] = 'Attiva emoticons:';
-$lang['settingsAutoFocus'] = 'Focus messaggio automatico:';
-$lang['settingsMaxMessages'] = 'Max messaggi in chat:';
-$lang['settingsWordWrap'] = 'Attiva taglio parole lunghe:';
-$lang['settingsMaxWordLength'] = 'Lunghezza massima parole:';
-$lang['settingsDateFormat'] = 'Formato data ed ora:';
-$lang['settingsPersistFontColor'] = 'Colore font persistente:';
-$lang['settingsAudioVolume'] = 'Volume suono:';
-$lang['settingsSoundReceive'] = 'Suono messaggi entranti:';
-$lang['settingsSoundSend'] = 'Suono messaggi uscenti:';
-$lang['settingsSoundEnter'] = 'Suono per login:';
-$lang['settingsSoundLeave'] = 'Suono per uscita:';
-$lang['settingsSoundChatBot'] = 'Suono per messaggi robot:';
-$lang['settingsSoundError'] = 'Suono per messaggi errore:';
-$lang['settingsBlink'] = 'Lampeggio nuovi messaggi:';
-$lang['settingsBlinkInterval'] = 'Intervallo lampeggio:';
-$lang['settingsBlinkIntervalNumber'] = 'Numero massimo lampeggi:';
-$lang['playSelectedSound'] = 'Esegui suono selezionato';
-$lang['requiresJavaScript'] = 'Serve il JavaScript per questa Chat.';
-$lang['errorInvalidUser'] = 'Nome utente non valido.';
-$lang['errorUserInUse'] = 'Nome utente in uso.';
-$lang['errorBanned'] = 'Utente o IP bannato.';
-$lang['errorMaxUsersLoggedIn'] = 'La chat ha raggiunto il massimo numero di utenti connessi.';
-$lang['errorChatClosed'] = 'La chat è chiusa in questo momento.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Data';
-$lang['logsTime'] = 'Ora';
-$lang['logsSearch'] = 'Cerca';
-$lang['logsPrivateChannels'] = 'Canali Privati';
-$lang['logsPrivateMessages'] = 'Messaggi privati';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/ja.php b/library/ajaxchat/chat/lib/lang/ja.php
deleted file mode 100644
index 075fc4fcb..000000000
--- a/library/ajaxchat/chat/lib/lang/ja.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'ユーザー名';
-$lang['password'] = 'パスワード';
-$lang['login'] = 'ログイン';
-$lang['logout'] = 'ログアウト';
-$lang['channel'] = 'チャンネル';
-$lang['style'] = 'スタイル';
-$lang['language'] = '言語';
-$lang['inputLineBreak'] = 'SHIFT+ENTER で改行できます';
-$lang['messageSubmit'] = '送信';
-$lang['registeredUsers'] = '登録ユーザー';
-$lang['onlineUsers'] = 'オンラインユーザー';
-$lang['toggleAutoScroll'] = '自動スクロール on/off';
-$lang['toggleAudio'] = 'サウンド on/off';
-$lang['toggleHelp'] = 'ヘルプ 表示/非表示';
-$lang['toggleSettings'] = '環境設定 表示/非表示';
-$lang['toggleOnlineList'] = 'オンラインリスト 表示/非表示';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Quote';
-$lang['bbCodeLabelCode'] = 'Code';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'フォントカラー';
-$lang['bbCodeTitleBold'] = 'ボールド(太字): [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'イタリック(斜体): [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'アンダーライン: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = '引用: [quote]text[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'コード表示: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'URLリンク: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = '画像: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'フォントカラー: [color=red]text[/color]';
-$lang['help'] = 'ヘルプ';
-$lang['helpItemDescJoin'] = 'チャンネルの変更 :';
-$lang['helpItemCodeJoin'] = '/join チャンネル名';
-$lang['helpItemDescJoinCreate'] = 'プライベートルームへ移動 (登録ユーザーのみ可) :';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'チャンネルへ招待 :';
-$lang['helpItemCodeInvite'] = '/invite ユーザー名';
-$lang['helpItemDescUninvite'] = '招待の取り消し :';
-$lang['helpItemCodeUninvite'] = '/uninvite ユーザー名';
-$lang['helpItemDescLogout'] = 'ログアウト :';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'プライベートメッセージ :';
-$lang['helpItemCodePrivateMessage'] = '/msg ユーザー名';
-$lang['helpItemDescQueryOpen'] = '二人きりモードの開始 :';
-$lang['helpItemCodeQueryOpen'] = '/query ユーザー名';
-$lang['helpItemDescQueryClose'] = '二人きりモードの終了 :';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = '感情を表現する :';
-$lang['helpItemCodeAction'] = '/action スマイリーなど';
-$lang['helpItemDescDescribe'] = '感情を表現する (プライベートメッセージ) :';
-$lang['helpItemCodeDescribe'] = '/describe ユーザー名 スマイリーなど';
-$lang['helpItemDescIgnore'] = 'ユーザーを 無視する/無視しない :';
-$lang['helpItemCodeIgnore'] = '/ignore ユーザー名';
-$lang['helpItemDescIgnoreList'] = '無視ユーザーリスト :';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'ユーザーの居場所 :';
-$lang['helpItemCodeWhereis'] = '/whereis ユーザー名';
-$lang['helpItemDescKick'] = 'ユーザーをキックする (モデレータのみ可) :';
-$lang['helpItemCodeKick'] = '/kick ユーザー名 [アクセス禁止時間(分)]';
-$lang['helpItemDescUnban'] = 'アクセス禁止の解除 (モデレータのみ可) :';
-$lang['helpItemCodeUnban'] = '/unban ユーザー名';
-$lang['helpItemDescBans'] = 'アクセス禁止ユーザーリスト (モデレータのみ可) :';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'ユーザーのIPアドレス (モデレータのみ可) :';
-$lang['helpItemCodeWhois'] = '/whois ユーザー名';
-$lang['helpItemDescWho'] = 'オンラインユーザーリスト :';
-$lang['helpItemCodeWho'] = '/who [チャンネル名]';
-$lang['helpItemDescList'] = '入室可能なチャンネルのリスト :';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'サイコロを振る :';
-$lang['helpItemCodeRoll'] = '/roll [サイコロを振る回数]d[サイコロの面の数]';
-$lang['helpItemDescNick'] = 'ユーザー名の変更 :';
-$lang['helpItemCodeNick'] = '/nick ユーザー名';
-$lang['settings'] = '環境設定';
-$lang['settingsBBCode'] = 'BBCode を有効にする:';
-$lang['settingsBBCodeImages'] = 'BBCode [image] を有効にする :';
-$lang['settingsBBCodeColors'] = 'BBCode [color] を有効にする :';
-$lang['settingsHyperLinks'] = 'ハイパーリンクを有効にする :';
-$lang['settingsLineBreaks'] = '改行を有効にする :';
-$lang['settingsEmoticons'] = 'スマイリーを有効にする :';
-$lang['settingsAutoFocus'] = '自動的にフォーカスをインプットフィールドにセットする :';
-$lang['settingsMaxMessages'] = 'チャットメッセージの最大数 :';
-$lang['settingsWordWrap'] = '長い英数字の折り返しを有効にする :';
-$lang['settingsMaxWordLength'] = '折り返しされない英数字の最大字数 :';
-$lang['settingsDateFormat'] = '日付と表示時間のフォーマット :';
-$lang['settingsPersistFontColor'] = 'フォントカラーを保持する :';
-$lang['settingsAudioVolume'] = 'サウンドのボリューム :';
-$lang['settingsSoundReceive'] = 'サウンド - メッセージの到着 :';
-$lang['settingsSoundSend'] = 'サウンド - メッセージの送信 :';
-$lang['settingsSoundEnter'] = 'サウンド - ログイン、チャンネル入室 :';
-$lang['settingsSoundLeave'] = 'サウンド - ログアウト、チャンネル退室 :';
-$lang['settingsSoundChatBot'] = 'サウンド - チャットボットメッセージ :';
-$lang['settingsSoundError'] = 'サウンド - エラーメッセージ :';
-$lang['settingsBlink'] = '新着メッセージの到着時にウィンドウタイトルを点滅させる :';
-$lang['settingsBlinkInterval'] = '点滅の間隔(ミリ秒) :';
-$lang['settingsBlinkIntervalNumber'] = '点滅の回数 :';
-$lang['playSelectedSound'] = 'サウンドの再生';
-$lang['requiresJavaScript'] = 'このチャットシステムを利用するには JavaScript を有効にする必要があります';
-$lang['errorInvalidUser'] = 'ユーザー名が正しくありません';
-$lang['errorUserInUse'] = 'そのユーザー名は既に使われています';
-$lang['errorBanned'] = 'ユーザー名またはIPアドレスがアクセス禁止されています';
-$lang['errorMaxUsersLoggedIn'] = 'ログインユーザーの最大数に達しているため、これ以上チャットに参加することはできません';
-$lang['errorChatClosed'] = '現在、チャットは停止中です';
-$lang['logsTitle'] = 'AJAX Chat - ログ';
-$lang['logsDate'] = '日時';
-$lang['logsTime'] = '時間';
-$lang['logsSearch'] = '検索';
-$lang['logsPrivateChannels'] = '二人きりモード';
-$lang['logsPrivateMessages'] = 'プライベートメッセージ';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/ka.php b/library/ajaxchat/chat/lib/lang/ka.php
deleted file mode 100644
index d92d50886..000000000
--- a/library/ajaxchat/chat/lib/lang/ka.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'მეტსახელი';
-$lang['password'] = 'პაროლი';
-$lang['login'] = 'შესვლა';
-$lang['logout'] = 'გასვლა';
-$lang['channel'] = 'არხი';
-$lang['style'] = 'სტილი';
-$lang['language'] = 'ენა';
-$lang['inputLineBreak'] = 'ახალი სტრიქონისთვის დააჭირეთ SHIFT+ENTER';
-$lang['messageSubmit'] = 'დამატება';
-$lang['registeredUsers'] = 'მხოლოდ დარეგისტრირებული წევრები';
-$lang['onlineUsers'] = 'ხაზზე მყოფთა სია';
-$lang['toggleAutoScroll'] = 'ავტოჩამოწევა კი/არა';
-$lang['toggleAudio'] = 'ხმები კი/არა';
-$lang['toggleHelp'] = 'დახმარების ჩვენება/დამალვა';
-$lang['toggleSettings'] = 'პარამეტრების ჩვენება/დამალვა';
-$lang['toggleOnlineList'] = 'ხაზზე მყოფტა სიის ჩვენება/დამალვა';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'ციტატა';
-$lang['bbCodeLabelCode'] = 'კოდი';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'სურათი';
-$lang['bbCodeLabelColor'] = 'შრიფტის ფერი';
-$lang['bbCodeTitleBold'] = 'მსხვილი ტექსტი: [b]ტექსტი[/b]';
-$lang['bbCodeTitleItalic'] = 'დახრილი ტექსტი: [i]ტექსტი[/i]';
-$lang['bbCodeTitleUnderline'] = 'ხაზგასმული ტექსტი: [u]ტექსტი[/u]';
-$lang['bbCodeTitleQuote'] = 'ციტატის ტექსტი: [quote]ტექსტი[/quote] ან [quote=ავტორი]ტექსტი[/quote]';
-$lang['bbCodeTitleCode'] = 'კოდის ჩვენება: [code]კოდი[/code]';
-$lang['bbCodeTitleURL'] = 'URL ბმულის ჩასმა: [url]http://example.org[/url] ან [url=http://example.org]ტექსტი[/url]';
-$lang['bbCodeTitleImg'] = 'ნახატის ჩასმა: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'შრიფტის ფერი: [color=red]ტექსტი[/color]';
-$lang['help'] = 'დახმარება';
-$lang['helpItemDescJoin'] = 'შეუერთდი არხს:';
-$lang['helpItemCodeJoin'] = '/join არხის_სახელი';
-$lang['helpItemDescJoinCreate'] = 'პირადი ოთახის შექმნა (მხოლოდ დარეგისტრირებული წევრები):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'მეგობრის დაპატიჟება (მაგ. პირად ოთახში):';
-$lang['helpItemCodeInvite'] = '/invite მეტსახელი';
-$lang['helpItemDescUninvite'] = 'დაპატიჟების გაუქმება:';
-$lang['helpItemCodeUninvite'] = '/uninvite მეტსახელი';
-$lang['helpItemDescLogout'] = 'ჩატიდან გასვლა:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'პირადი გზავნილი:';
-$lang['helpItemCodePrivateMessage'] = '/msg მეტსახელი ტექსტი';
-$lang['helpItemDescQueryOpen'] = 'გახსენი პირადი არხი:';
-$lang['helpItemCodeQueryOpen'] = '/query მეტსახელი';
-$lang['helpItemDescQueryClose'] = 'დახურე პირადი არხი:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'აღწერე ქმედება:';
-$lang['helpItemCodeAction'] = '/action ტექსტი';
-$lang['helpItemDescDescribe'] = 'აღწერე ქმედება პირად გზავნილში:';
-$lang['helpItemCodeDescribe'] = '/describe მეტსახელი ტექსტი';
-$lang['helpItemDescIgnore'] = 'მიიღე/გააიგნორირე გზავნილები წევრისგან:';
-$lang['helpItemCodeIgnore'] = '/ignore მეტსახელი';
-$lang['helpItemDescIgnoreList'] = 'ჩამოწერე გაიგნორირებული წევრების სია:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'მაჩვენე წევრის არხი:';
-$lang['helpItemCodeWhereis'] = '/whereis მეტსახელი';
-$lang['helpItemDescKick'] = 'ამოარტყი წევრს (მხოლოდ მოდერები):';
-$lang['helpItemCodeKick'] = '/kick მეტსახელი [დაბლოკვის დრო]';
-$lang['helpItemDescUnban'] = 'წევრის ბლოკის მოხსნა (მხოლოდ მოდერები):';
-$lang['helpItemCodeUnban'] = '/unban მეტსახელი';
-$lang['helpItemDescBans'] = 'ჩამოწერე დაბლოკილი წევრების სია (მხოლოდ მოდერები):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'მაჩვენე წევრის IP (მხოლოდ მოდერები):';
-$lang['helpItemCodeWhois'] = '/whois მეტსახელი';
-$lang['helpItemDescWho'] = 'ჩამოწერე ხაზზე მყოფთა სია:';
-$lang['helpItemCodeWho'] = '/who [არხის_სახელი]';
-$lang['helpItemDescList'] = 'ჩამოწერე ხელმისაწვდომი არხები:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'კამათლების გაგორება:';
-$lang['helpItemCodeRoll'] = '/roll [რიცხვი]d[გვერდი]';
-$lang['helpItemDescNick'] = 'მეტსახელის შეცვლა:';
-$lang['helpItemCodeNick'] = '/nick მეტსახელი';
-$lang['settings'] = 'პარამეტრები';
-$lang['settingsBBCode'] = 'ჩართე BBCode:';
-$lang['settingsBBCodeImages'] = 'ჩართე ნახატის BBCode:';
-$lang['settingsBBCodeColors'] = 'ჩართე შრიფტის ფერის BBCode:';
-$lang['settingsHyperLinks'] = 'ჩართე URL ბმულები:';
-$lang['settingsLineBreaks'] = 'ჩართე ახალი სტრიქონის გამოყენება:';
-$lang['settingsEmoticons'] = 'ჩართე სიცილაკები:';
-$lang['settingsAutoFocus'] = 'ტექსტის შეყვანის ველის ავტომატიური ფოკუსირება:';
-$lang['settingsMaxMessages'] = 'ჩატში მყოფი გზავნილების მაქსიმალური რიცხვი:';
-$lang['settingsWordWrap'] = 'გრძელი სიტყვების გადატანა:';
-$lang['settingsMaxWordLength'] = 'სიტყვის მაქსიმალური სიგრძე, სანამ ახალ სტრიქონზე გადავა:';
-$lang['settingsDateFormat'] = 'თარიღისა და დროის ჩვენების ფორმატი:';
-$lang['settingsPersistFontColor'] = 'შრიფტის ფერის შენახვა:';
-$lang['settingsAudioVolume'] = 'ხმის სიმაღლე:';
-$lang['settingsSoundReceive'] = 'შემავალი გზავნილის ხმა:';
-$lang['settingsSoundSend'] = 'გამავალი გზავნილის ხმა:';
-$lang['settingsSoundEnter'] = 'ავტორიზაციისა და არხში შესვლის ხმა:';
-$lang['settingsSoundLeave'] = 'გასვლის და არხის მიტოვების ხმა:';
-$lang['settingsSoundChatBot'] = 'ჩატბოტის გზავნილების ხმა:';
-$lang['settingsSoundError'] = 'შედომის გზავნილების ხმა:';
-$lang['settingsBlink'] = 'ახალ გზავნილზე ფანჯრის დასახელების ციმციმი:';
-$lang['settingsBlinkInterval'] = 'ციმციმის ინტერვალი მილიწამებში:';
-$lang['settingsBlinkIntervalNumber'] = 'ციმციმის ინტერვალების რაოდენობა:';
-$lang['playSelectedSound'] = 'ითამაშე არჩეული ხმა';
-$lang['requiresJavaScript'] = 'ამ ჩატისთვის საჭიროა JavaScript.';
-$lang['errorInvalidUser'] = 'არასწორი მეტსახელი.';
-$lang['errorUserInUse'] = 'მეტსახელი დაკავებულია.';
-$lang['errorBanned'] = 'წევრი ან IP დაბლოკილია.';
-$lang['errorMaxUsersLoggedIn'] = 'ჩატში იმყოფება წევრთა მაქსიმალური შესაძლებელი რიცხვი.';
-$lang['errorChatClosed'] = 'ჩატი ამ წუთისთვის დახურულია.';
-$lang['logsTitle'] = 'AJAX Chat - ჟურნალი';
-$lang['logsDate'] = 'თარიღი';
-$lang['logsTime'] = 'დრო';
-$lang['logsSearch'] = 'ძიება';
-$lang['logsPrivateChannels'] = 'პირადი არხები';
-$lang['logsPrivateMessages'] = 'პირადი გზავნილები';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/kr.php b/library/ajaxchat/chat/lib/lang/kr.php
deleted file mode 100644
index 687dd6e30..000000000
--- a/library/ajaxchat/chat/lib/lang/kr.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = '대화명';
-$lang['password'] = '비밀번호';
-$lang['login'] = '로그인';
-$lang['logout'] = '로그아웃';
-$lang['channel'] = '채널';
-$lang['style'] = '스타일';
-$lang['language'] = '언어';
-$lang['inputLineBreak'] = '새 줄을 입력하려면 SHIFT+ENTER를 누르세요';
-$lang['messageSubmit'] = '보내기';
-$lang['registeredUsers'] = '등록된 사용자';
-$lang['onlineUsers'] = '접속중인 사용자';
-$lang['toggleAutoScroll'] = '자동스크롤 on/off';
-$lang['toggleAudio'] = '소리 on/off';
-$lang['toggleHelp'] = '도움말';
-$lang['toggleSettings'] = '설정';
-$lang['toggleOnlineList'] = '접속중인 사용자';
-$lang['bbCodeLabelBold'] = '굵게';
-$lang['bbCodeLabelItalic'] = '이탤릭';
-$lang['bbCodeLabelUnderline'] = '밑줄';
-$lang['bbCodeLabelQuote'] = '따옴표';
-$lang['bbCodeLabelCode'] = '코드';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = '이미지';
-$lang['bbCodeLabelColor'] = '글자색';
-$lang['bbCodeTitleBold'] = '굵게: [b]내용[/b]';
-$lang['bbCodeTitleItalic'] = '이탤릭: [i]내용[/i]';
-$lang['bbCodeTitleUnderline'] = '밑줄: [u]내용[/u]';
-$lang['bbCodeTitleQuote'] = '따옴표: [quote]내용[/quote] 또는 [quote=문자]내용[/quote]';
-$lang['bbCodeTitleCode'] = '코드: [code]코드[/code]';
-$lang['bbCodeTitleURL'] = '주소: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = '이미지: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = '글자색: [color=red]내용[/color]';
-$lang['help'] = '도움말';
-$lang['helpItemDescJoin'] = '채널 접속:';
-$lang['helpItemCodeJoin'] = '/join 채널명';
-$lang['helpItemDescJoinCreate'] = '개인방 생성:';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = '사용자 초대 (예: 개인방으로 초대):';
-$lang['helpItemCodeInvite'] = '/invite 대화명';
-$lang['helpItemDescUninvite'] = '초대 취소:';
-$lang['helpItemCodeUninvite'] = '/uninvite 대화명';
-$lang['helpItemDescLogout'] = '로그아웃';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = '귓속말:';
-$lang['helpItemCodePrivateMessage'] = '/msg 대화명 메시지';
-$lang['helpItemDescQueryOpen'] = '개인방 열기:';
-$lang['helpItemCodeQueryOpen'] = '/query 대화명';
-$lang['helpItemDescQueryClose'] = '개인방 닫기:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = '명령 설명:';
-$lang['helpItemCodeAction'] = '/action 설명내용';
-$lang['helpItemDescDescribe'] = '귓속말로 명령 설명:';
-$lang['helpItemCodeDescribe'] = '/describe 대화명 설명내용';
-$lang['helpItemDescIgnore'] = '대화 차단/허용:';
-$lang['helpItemCodeIgnore'] = '/ignore 대화명';
-$lang['helpItemDescIgnoreList'] = '대화차단 사용자 목록:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = '접속중인 채널 확인:';
-$lang['helpItemCodeWhereis'] = '/whereis 대화명';
-$lang['helpItemDescKick'] = '사용자 추방 (방장 만):';
-$lang['helpItemCodeKick'] = '/kick 대화명 [추방 시간(분)]';
-$lang['helpItemDescUnban'] = '추방 취소 (방장 만):';
-$lang['helpItemCodeUnban'] = '/unban 대화명';
-$lang['helpItemDescBans'] = '추방된 사용자 목록 (방장 만):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = '사용자 접속 IP주소 (방장 만):';
-$lang['helpItemCodeWhois'] = '/whois 대화명';
-$lang['helpItemDescWho'] = '접속중인 사용자 목록:';
-$lang['helpItemCodeWho'] = '/who [채널명]';
-$lang['helpItemDescList'] = '채널목록:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = '주사위 굴리기:';
-$lang['helpItemCodeRoll'] = '/roll [굴린횟수]d[면수]';
-$lang['helpItemDescNick'] = '대화명 변경:';
-$lang['helpItemCodeNick'] = '/nick 대화명';
-$lang['settings'] = '설정';
-$lang['settingsBBCode'] = 'BBCode 사용:';
-$lang['settingsBBCodeImages'] = '이미지 BBCode 사용:';
-$lang['settingsBBCodeColors'] = '글자색 BBCode 사용:';
-$lang['settingsHyperLinks'] = '하이퍼링크 사용:';
-$lang['settingsLineBreaks'] = '엔터키 사용:';
-$lang['settingsEmoticons'] = '이모티콘 사용:';
-$lang['settingsAutoFocus'] = '입력창으로 포커스 자동이동:';
-$lang['settingsMaxMessages'] = '대화창의 최대 메시지 수:';
-$lang['settingsWordWrap'] = '긴 문장 다음줄로 표시:';
-$lang['settingsMaxWordLength'] = '최대 글자수:';
-$lang['settingsDateFormat'] = '날짜, 시간 표시 형식:';
-$lang['settingsPersistFontColor'] = '글자색 고정:';
-$lang['settingsAudioVolume'] = '소리크기:';
-$lang['settingsSoundReceive'] = '메시지 수신 소리:';
-$lang['settingsSoundSend'] = '메시지 송신 소리:';
-$lang['settingsSoundEnter'] = '로그인, 채널 접속 소리:';
-$lang['settingsSoundLeave'] = '로그아웃, 채널 접속해제 소리:';
-$lang['settingsSoundChatBot'] = '시스템 메시지 소리:';
-$lang['settingsSoundError'] = '오류 소리:';
-$lang['settingsBlink'] = '새로운 메시지 도착 시 타이틀 깜빡임:';
-$lang['settingsBlinkInterval'] = '밀리세컨드 단위 깜빡임 속도:';
-$lang['settingsBlinkIntervalNumber'] = '깜빡임 횟수:';
-$lang['playSelectedSound'] = '소리 듣기';
-$lang['requiresJavaScript'] = '이 채팅에는 자바스크립트가 필요합니다.';
-$lang['errorInvalidUser'] = '사용할 수 없는 대화명입니다.';
-$lang['errorUserInUse'] = '사용중인 대화명입니다.';
-$lang['errorBanned'] = '사용자/아이피가 차단되었습니다.';
-$lang['errorMaxUsersLoggedIn'] = '동시에 접속할 수 있는 최대 사용자를 초과했습니다.';
-$lang['errorChatClosed'] = '잠시동안 서비스가 닫혔습니다.';
-$lang['logsTitle'] = 'AJAX Chat - 로그';
-$lang['logsDate'] = '날짜';
-$lang['logsTime'] = '시간';
-$lang['logsSearch'] = '검색';
-$lang['logsPrivateChannels'] = '개인채널';
-$lang['logsPrivateMessages'] = '개인 메시지';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/mk.php b/library/ajaxchat/chat/lib/lang/mk.php
deleted file mode 100644
index f43bcfb7d..000000000
--- a/library/ajaxchat/chat/lib/lang/mk.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Nebojsa Ilijoski
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Име';
-$lang['password'] = 'Лозинка';
-$lang['login'] = 'Влези';
-$lang['logout'] = 'Излези';
-$lang['channel'] = 'Канал';
-$lang['style'] = 'Изглед';
-$lang['language'] = 'Јазик';
-$lang['inputLineBreak'] = 'Притиснете SHIFT+ENTER, за да вметнете нов ред';
-$lang['messageSubmit'] = 'Прашање';
-$lang['registeredUsers'] = 'Регистрирани корисници';
-$lang['onlineUsers'] = 'Online корисници';
-$lang['toggleAutoScroll'] = 'Автопрелистување вкл/иcкл';
-$lang['toggleAudio'] = 'Звук вкл/изкл';
-$lang['toggleHelp'] = 'Покашување/скривање на помошта';
-$lang['toggleSettings'] = 'Покажување/скривање на поставките';
-$lang['toggleOnlineList'] = 'Покажување/скривање на листата со корисници';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Цитат';
-$lang['bbCodeLabelCode'] = 'Код';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Боја на фонт';
-$lang['bbCodeTitleBold'] = 'Задебелен текст: [b]текст[/b]';
-$lang['bbCodeTitleItalic'] = 'Закосен текст: [i]текст[/i]';
-$lang['bbCodeTitleUnderline'] = 'Подцртан текст: [u]текст[/u]';
-$lang['bbCodeTitleQuote'] = 'Цитиран текст: [quote]текст[/quote] или [quote=Автор]текст[/quote]';
-$lang['bbCodeTitleCode'] = 'Покажување на код: [code]код[/code]';
-$lang['bbCodeTitleURL'] = 'URL: [url]http://example.org[/url] или [url=http://example.org]текст[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Боја на заглавие: [color=red]текст[/color]';
-$lang['help'] = 'Помош';
-$lang['helpItemDescJoin'] = 'Присоединување кон канал:';
-$lang['helpItemCodeJoin'] = '/join име_на_канал';
-$lang['helpItemDescJoinCreate'] = 'Креирање сопствена соба (само за регистрирани корисници):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Покана на корисници (напр. во сопствена соба):';
-$lang['helpItemCodeInvite'] = '/invite Корисничко_име';
-$lang['helpItemDescUninvite'] = 'Откажување на покана:';
-$lang['helpItemCodeUninvite'] = '/uninvite Корисничко_име';
-$lang['helpItemDescLogout'] = 'Одјавување од четот:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Лична порака:';
-$lang['helpItemCodePrivateMessage'] = '/msg Корисничко_име Текст';
-$lang['helpItemDescQueryOpen'] = 'Отварање на личен канал:';
-$lang['helpItemCodeQueryOpen'] = '/query Корисничко_име';
-$lang['helpItemDescQueryClose'] = 'Затварање на личен канал:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Опиц на дејство:';
-$lang['helpItemCodeAction'] = '/action Текст';
-$lang['helpItemDescDescribe'] = 'Опис на дејство во приватна порака:';
-$lang['helpItemCodeDescribe'] = '/describe Корисничко_име Текст';
-$lang['helpItemDescIgnore'] = 'Игнорирање/примање на пораки од корисник:';
-$lang['helpItemCodeIgnore'] = '/ignore Корисничко_име';
-$lang['helpItemDescIgnoreList'] = 'Преглед на игнорирани корисници:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Покажување на корисничкиот канал:';
-$lang['helpItemCodeWhereis'] = '/whereis Корисничко_име';
-$lang['helpItemDescKick'] = 'Исфрлање на корисници (само за модератори):';
-$lang['helpItemCodeKick'] = '/kick Корисничко_име [број минути]';
-$lang['helpItemDescUnban'] = 'Одблокирање на корисници (само за модератори):';
-$lang['helpItemCodeUnban'] = '/unban Корисничко_име';
-$lang['helpItemDescBans'] = 'Преглед на блокирани корисници (само за модератори):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Преглед на IP адреса на корисник (само за модератори):';
-$lang['helpItemCodeWhois'] = '/whois Корисничко_име';
-$lang['helpItemDescWho'] = 'Преглед на online корисници:';
-$lang['helpItemCodeWho'] = '/who [Име_на_канал]';
-$lang['helpItemDescList'] = 'Преглед на приватните канали:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Фрлање коцка:';
-$lang['helpItemCodeRoll'] = '/roll [пати]d[страни]';
-$lang['helpItemDescNick'] = 'Промена на корисничкото име:';
-$lang['helpItemCodeNick'] = '/nick Корисничко_име';
-$lang['settings'] = 'Поставки';
-$lang['settingsBBCode'] = 'Користење на BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Користење на на хиперлинк:';
-$lang['settingsLineBreaks'] = 'Користење на крај на ред:';
-$lang['settingsEmoticons'] = 'Користење на емоции:';
-$lang['settingsAutoFocus'] = 'Автоматско фокусирање на полето за внес:';
-$lang['settingsMaxMessages'] = 'Максимален број пораки во прозорецот на четот:';
-$lang['settingsWordWrap'] = 'Префрлање на текст:';
-$lang['settingsMaxWordLength'] = 'Максимална должина на порака пред да биде пренесена:';
-$lang['settingsDateFormat'] = 'Формат на датата и часот:';
-$lang['settingsPersistFontColor'] = 'Постојана боја на фонтот:';
-$lang['settingsAudioVolume'] = 'Гласност на звука:';
-$lang['settingsSoundReceive'] = 'Звук за приемни пораки:';
-$lang['settingsSoundSend'] = 'Звук за испратени пораки:';
-$lang['settingsSoundEnter'] = 'Звук за пораки за влез на четот или на каналот:';
-$lang['settingsSoundLeave'] = 'Звук за пораки за излез од четот или од каналот:';
-$lang['settingsSoundChatBot'] = 'Звук за пораки на чатботот:';
-$lang['settingsSoundError'] = 'Звук за пораки за грешки:';
-$lang['settingsBlink'] = 'Жмигање на заглавието на прозорецот при нови пораки:';
-$lang['settingsBlinkInterval'] = 'Интервал на жмигање во милисекунди:';
-$lang['settingsBlinkIntervalNumber'] = 'Број пати на жмигање:';
-$lang['playSelectedSound'] = 'Преслушување на избраниот звук';
-$lang['requiresJavaScript'] = 'За четот е потребна поддршка на Јаваскрипт.';
-$lang['errorInvalidUser'] = 'Грешно корисничко име.';
-$lang['errorUserInUse'] = 'Корисничкото име е во употреба.';
-$lang['errorBanned'] = 'Корисникот или IP адресата е блокирана.';
-$lang['errorMaxUsersLoggedIn'] = 'Четот го достигна максималниот број на корисници.';
-$lang['errorChatClosed'] = 'Во моментов четот е затворен.';
-$lang['logsTitle'] = 'AJAX Chat — Лого';
-$lang['logsDate'] = 'Дата';
-$lang['logsTime'] = 'Време';
-$lang['logsSearch'] = 'Пребарување';
-$lang['logsPrivateChannels'] = 'Приватни канали';
-$lang['logsPrivateMessages'] = 'Приватни пораки';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/nl-be.php b/library/ajaxchat/chat/lib/lang/nl-be.php
deleted file mode 100644
index db01b9871..000000000
--- a/library/ajaxchat/chat/lib/lang/nl-be.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Nic Mertens
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Gebruikersnaam';
-$lang['password'] = 'Wachtwoord';
-$lang['login'] = 'Inloggen';
-$lang['logout'] = 'Uitloggen';
-$lang['channel'] = 'Kanaal';
-$lang['style'] = 'Stijl';
-$lang['language'] = 'Taal';
-$lang['inputLineBreak'] = 'Typ SHIFT+ENTER om een line break in te geven';
-$lang['messageSubmit'] = 'Verzend';
-$lang['registeredUsers'] = 'Geregistreerde gebruikers';
-$lang['onlineUsers'] = 'Online gebruikers';
-$lang['toggleAutoScroll'] = 'Autoscroll aan/uit';
-$lang['toggleAudio'] = 'Geluid aan/uit';
-$lang['toggleHelp'] = 'Toon/verberg help';
-$lang['toggleSettings'] = 'Toon/verberg instellingen';
-$lang['toggleOnlineList'] = 'Toon/verberg online lijst';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Quote';
-$lang['bbCodeLabelCode'] = 'Code';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Figuur';
-$lang['bbCodeLabelColor'] = 'Kleur lettertype';
-$lang['bbCodeTitleBold'] = 'Tekst in vet: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Tekst in cursief: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Tekst onderlijnd: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Quote tekst: [quote]text[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Code ingeven: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Voeg URL in: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Voeg figuur toe: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Kleur lettertype: [color=red]text[/color]';
-$lang['help'] = 'Help';
-$lang['helpItemDescJoin'] = 'Betreed een kamer:';
-$lang['helpItemCodeJoin'] = '/join Kanaalnaam';
-$lang['helpItemDescJoinCreate'] = 'Maak een privékamer (Enkel geregistreerde gebruikers):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Nodig iemand uit (bv. naar een privékamer):';
-$lang['helpItemCodeInvite'] = '/invite Gebruikersnaam';
-$lang['helpItemDescUninvite'] = 'Annuleer de uitnodiging:';
-$lang['helpItemCodeUninvite'] = '/uninvite Gebruikersnaam';
-$lang['helpItemDescLogout'] = 'Uitloggen:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privé bericht:';
-$lang['helpItemCodePrivateMessage'] = '/msg Gebruikersnaam Tekst';
-$lang['helpItemDescQueryOpen'] = 'Open een privékamer:';
-$lang['helpItemCodeQueryOpen'] = '/query Gebruikersnaam';
-$lang['helpItemDescQueryClose'] = 'Sluit een privékamer:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Beschrijf actie:';
-$lang['helpItemCodeAction'] = '/action Tekst';
-$lang['helpItemDescDescribe'] = 'Beschrijf actie in privébericht:';
-$lang['helpItemCodeDescribe'] = '/describe Gebruikersnaam Tekst';
-$lang['helpItemDescIgnore'] = 'Negeer/aanvaard berichten van gebruiker:';
-$lang['helpItemCodeIgnore'] = '/ignore Gebruikersnaam';
-$lang['helpItemDescIgnoreList'] = 'Toon de genegeerde gebruikers:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Gebruikersnaam';
-$lang['helpItemDescKick'] = 'Kick een gebruiker (Enkel Moderators of Administrators):';
-$lang['helpItemCodeKick'] = '/kick Gebruikersnaam [aantal minuten]';
-$lang['helpItemDescUnban'] = 'Unban een gebruiker (Enkel Moderators of Administrators):';
-$lang['helpItemCodeUnban'] = '/unban Gebruikersnaam';
-$lang['helpItemDescBans'] = 'Lijst van gebande Gebruikers (Enkel Moderators of Administrators):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Toon gebruikers-IP (Enkel Moderators of Administrators):';
-$lang['helpItemCodeWhois'] = '/whois Gebruikersnaam';
-$lang['helpItemDescWho'] = 'Lijst van gebruikers online:';
-$lang['helpItemCodeWho'] = '/who [Kanaalnaam]';
-$lang['helpItemDescList'] = 'Lijst van beschikbare kanalen:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Werp dobbelsteen:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Wijzig gebruikersnaam:';
-$lang['helpItemCodeNick'] = '/nick Gebruikersnaam';
-$lang['settings'] = 'Instellingen';
-$lang['settingsBBCode'] = 'Inschakelen BBCode:';
-$lang['settingsBBCodeImages'] = 'Inschakelen figuur BBCode:';
-$lang['settingsBBCodeColors'] = 'Inschakelen lettertype kleur BBCode:';
-$lang['settingsHyperLinks'] = 'Inschakelen hyperlinks:';
-$lang['settingsLineBreaks'] = 'Inschakelen line breaks:';
-$lang['settingsEmoticons'] = 'Inschakelen emoticons:';
-$lang['settingsAutoFocus'] = 'Zet automatisch de focus in het invoerveld:';
-$lang['settingsMaxMessages'] = 'Maximaal aantal berichten in de chatkamer:';
-$lang['settingsWordWrap'] = 'Inschakelen wrapping van lange woorden:';
-$lang['settingsMaxWordLength'] = 'Maximale lengte van een woord voor dat het gewrapped wordt:';
-$lang['settingsDateFormat'] = 'Formaat van datum en tijd:';
-$lang['settingsPersistFontColor'] = 'Persiste lettertype kleur:';
-$lang['settingsAudioVolume'] = 'Volume geluid:';
-$lang['settingsSoundReceive'] = 'Geluid voor inkomende berichten:';
-$lang['settingsSoundSend'] = 'Geluid voor buitengaande berichten:';
-$lang['settingsSoundEnter'] = 'Geluid voor login en chatkemer voor binnenkomende berichten:';
-$lang['settingsSoundLeave'] = 'Geluid voor logout en verlaat berichten:';
-$lang['settingsSoundChatBot'] = 'Geluid voor berichten van de bot:';
-$lang['settingsSoundError'] = 'Geluid voor errorberichten:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'Speel geselecteerd geluid';
-$lang['requiresJavaScript'] = 'JavaScript is nodig voor deze chat.';
-$lang['errorInvalidUser'] = 'Ongeldige gebruikersnaam.';
-$lang['errorUserInUse'] = 'Gebruikersnaam is in gebruik, kies een andere.';
-$lang['errorBanned'] = 'Gebruiker of gebruikers-IP is gebanned.';
-$lang['errorMaxUsersLoggedIn'] = 'Dit chatkamer heeft het maximum toegelaten aantal ingelogde gebruikers bereikt.';
-$lang['errorChatClosed'] = 'Dit chatkamer is momenteel gesloten.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Tijd';
-$lang['logsSearch'] = 'Zoek';
-$lang['logsPrivateChannels'] = 'Privékanalen';
-$lang['logsPrivateMessages'] = 'Privéberichten';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/nl.php b/library/ajaxchat/chat/lib/lang/nl.php
deleted file mode 100644
index c7dcc4b38..000000000
--- a/library/ajaxchat/chat/lib/lang/nl.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Dutch localisation: Patrick Donker
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Gebruikersnaam';
-$lang['password'] = 'Wachtwoord';
-$lang['login'] = 'Inloggen';
-$lang['logout'] = 'Uitloggen';
-$lang['channel'] = 'Kanaal';
-$lang['style'] = 'Stijl';
-$lang['language'] = 'Taal';
-$lang['inputLineBreak'] = 'Typ SHIFT+ENTER om een line break in te geven';
-$lang['messageSubmit'] = 'Verzend';
-$lang['registeredUsers'] = 'Geregistreerde gebruikers';
-$lang['onlineUsers'] = 'Online gebruikers';
-$lang['toggleAutoScroll'] = 'Autoscroll aan/uit';
-$lang['toggleAudio'] = 'Geluid aan/uit';
-$lang['toggleHelp'] = 'Toon/verberg help';
-$lang['toggleSettings'] = 'Toon/verberg instellingen';
-$lang['toggleOnlineList'] = 'Toon/verberg online lijst';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citeer';
-$lang['bbCodeLabelCode'] = 'Code';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Figuur';
-$lang['bbCodeLabelColor'] = 'Kleur lettertype';
-$lang['bbCodeTitleBold'] = 'Vetgedrukte tekst: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Cursieve tekst: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Onderlijnde tekst: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Citeer tekst: [quote]text[/quote] of [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Code ingeven: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Voeg URL in: [url]http://example.org[/url] of [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Voeg figuur toe: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Kleur lettertype: [color=red]text[/color]';
-$lang['help'] = 'Help';
-$lang['helpItemDescJoin'] = 'Betreed een kanaal:';
-$lang['helpItemCodeJoin'] = '/join Kanaalnaam';
-$lang['helpItemDescJoinCreate'] = 'Maak een privékamer (Enkel geregistreerde gebruikers):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Nodig iemand uit (voor bijv. een privékamer):';
-$lang['helpItemCodeInvite'] = '/invite Gebruikersnaam';
-$lang['helpItemDescUninvite'] = 'Annuleer uitnodiging:';
-$lang['helpItemCodeUninvite'] = '/uninvite Gebruikersnaam';
-$lang['helpItemDescLogout'] = 'Uitloggen:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privé bericht:';
-$lang['helpItemCodePrivateMessage'] = '/msg Gebruikersnaam Tekst';
-$lang['helpItemDescQueryOpen'] = 'Open een privékamer:';
-$lang['helpItemCodeQueryOpen'] = '/query Gebruikersnaam';
-$lang['helpItemDescQueryClose'] = 'Sluit een privékamer:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Beschrijf actie:';
-$lang['helpItemCodeAction'] = '/action Tekst';
-$lang['helpItemDescDescribe'] = 'Beschrijf actie in privébericht:';
-$lang['helpItemCodeDescribe'] = '/describe Gebruikersnaam Tekst';
-$lang['helpItemDescIgnore'] = 'Negeer/aanvaard berichten van gebruiker:';
-$lang['helpItemCodeIgnore'] = '/ignore Gebruikersnaam';
-$lang['helpItemDescIgnoreList'] = 'Toon genegeerde gebruikers:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Waar bevindt zich een gebruiker:';
-$lang['helpItemCodeWhereis'] = '/whereis Gebruikersnaam';
-$lang['helpItemDescKick'] = 'Verwijder een gebruiker (Enkel Moderators of Administrators):';
-$lang['helpItemCodeKick'] = '/kick Gebruikersnaam [aantal minuten]';
-$lang['helpItemDescUnban'] = 'Hertoelaten van een gebruiker (Enkel Moderators of Administrators):';
-$lang['helpItemCodeUnban'] = '/unban Gebruikersnaam';
-$lang['helpItemDescBans'] = 'Lijst van verbannen Gebruikers (Enkel Moderators of Administrators):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Toon IP adres gebruikers (Enkel Moderators of Administrators):';
-$lang['helpItemCodeWhois'] = '/whois Gebruikersnaam';
-$lang['helpItemDescWho'] = 'Lijst van online gebruikers:';
-$lang['helpItemCodeWho'] = '/who [Kanaalnaam]';
-$lang['helpItemDescList'] = 'Lijst van beschikbare kanalen:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Gooi dobbelsteen:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Wijzig gebruikersnaam:';
-$lang['helpItemCodeNick'] = '/nick Gebruikersnaam';
-$lang['settings'] = 'Instellingen';
-$lang['settingsBBCode'] = 'Inschakelen BBCode:';
-$lang['settingsBBCodeImages'] = 'Inschakelen figuur BBCode:';
-$lang['settingsBBCodeColors'] = 'Inschakelen lettertype kleur BBCode:';
-$lang['settingsHyperLinks'] = 'Inschakelen hyperlinks:';
-$lang['settingsLineBreaks'] = 'Inschakelen line breaks:';
-$lang['settingsEmoticons'] = 'Inschakelen emoticons:';
-$lang['settingsAutoFocus'] = 'Zet automatisch de focus op het invoerveld:';
-$lang['settingsMaxMessages'] = 'Maximaal aantal berichten in de chatkamer:';
-$lang['settingsWordWrap'] = 'Inschakelen afbreken van lange woorden:';
-$lang['settingsMaxWordLength'] = 'Maximale lengte van een woord alvorens het afgebroken wordt:';
-$lang['settingsDateFormat'] = 'Formaat van datum en tijd:';
-$lang['settingsPersistFontColor'] = 'Vaste kleur lettertype:';
-$lang['settingsAudioVolume'] = 'Volume geluid:';
-$lang['settingsSoundReceive'] = 'Geluid bij binnenkomende berichten:';
-$lang['settingsSoundSend'] = 'Geluid bij buitengaande berichten:';
-$lang['settingsSoundEnter'] = 'Geluid bij login en betreden van chat';
-$lang['settingsSoundLeave'] = 'Geluid bij logout en verlaten chat:';
-$lang['settingsSoundChatBot'] = 'Geluid bij systeenberichten:';
-$lang['settingsSoundError'] = 'Geluid bij foutmeldingen:';
-$lang['settingsBlink'] = 'Knipper tekst windowtitel bij nieuw bericht:';
-$lang['settingsBlinkInterval'] = 'Knipperinterval in milliseconden:';
-$lang['settingsBlinkIntervalNumber'] = 'Aantal keren knippering van tekst:';
-$lang['playSelectedSound'] = 'Speel geselecteerd geluid af';
-$lang['requiresJavaScript'] = 'JavaScript is vereist voor deze chat.';
-$lang['errorInvalidUser'] = 'Ongeldige gebruikersnaam.';
-$lang['errorUserInUse'] = 'Gebruikersnaam is in gebruik, kies een andere.';
-$lang['errorBanned'] = 'Gebruiker of gebruikers-IP is verbannen.';
-$lang['errorMaxUsersLoggedIn'] = 'Deze chatkamer heeft het maximum aantal toegelaten gebruikers bereikt.';
-$lang['errorChatClosed'] = 'Deze chatkamer is momenteel gesloten.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Tijd';
-$lang['logsSearch'] = 'Zoek';
-$lang['logsPrivateChannels'] = 'Privékanalen';
-$lang['logsPrivateMessages'] = 'Privéberichten';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/no.php b/library/ajaxchat/chat/lib/lang/no.php
deleted file mode 100644
index 52fe4afbe..000000000
--- a/library/ajaxchat/chat/lib/lang/no.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author DagArneKirkerod
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Brukernavn';
-$lang['password'] = 'Passord';
-$lang['login'] = 'Logg inn';
-$lang['logout'] = 'Logg ut';
-$lang['channel'] = 'Kanal';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Språk';
-$lang['inputLineBreak'] = 'Press SHIFT+ENTER to input a line break';
-$lang['messageSubmit'] = 'Send';
-$lang['registeredUsers'] = 'Registrerte Brukere';
-$lang['onlineUsers'] = 'Påloggede brukere';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sound on/off';
-$lang['toggleHelp'] = 'Show/hide help';
-$lang['toggleSettings'] = 'Show/hide settings';
-$lang['toggleOnlineList'] = 'Show/hide online list';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Siter';
-$lang['bbCodeLabelCode'] = 'Kode';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Tekst Farge';
-$lang['bbCodeTitleBold'] = 'Fet tekst: [b]tekst[/b]';
-$lang['bbCodeTitleItalic'] = 'Kursiv tekst: [i]tekst[/i]';
-$lang['bbCodeTitleUnderline'] = 'Understrek tekst: [u]tekst[/u]';
-$lang['bbCodeTitleQuote'] = 'Siter tekst: [quote]tekst[/quote] or [quote=author]tekst[/quote]';
-$lang['bbCodeTitleCode'] = 'Vis kode: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Legg til url: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Tekst farge: [color=red]text[/color]';
-$lang['help'] = 'Hjelp';
-$lang['helpItemDescJoin'] = 'Delta i en kanal:';
-$lang['helpItemCodeJoin'] = '/Join kanalnavn';
-$lang['helpItemDescJoinCreate'] = 'Lag et privat rom (Bare Registrerte Brukere):';
-$lang['helpItemCodeJoinCreate'] = '/Join';
-$lang['helpItemDescInvite'] = 'Inviter noen (for eksempel til et privat rom):';
-$lang['helpItemCodeInvite'] = '/invite brukernavn';
-$lang['helpItemDescUninvite'] = 'Opphev invitasjon:';
-$lang['helpItemCodeUninvite'] = '/uninvite brukernavn';
-$lang['helpItemDescLogout'] = 'Logg ut fra Chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privat melding:';
-$lang['helpItemCodePrivateMessage'] = '/msg brukernavn tekst';
-$lang['helpItemDescQueryOpen'] = 'Åpne en privat kanal:';
-$lang['helpItemCodeQueryOpen'] = '/query brukernavn';
-$lang['helpItemDescQueryClose'] = 'Lukk en privat kanal:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Beskriv handling:';
-$lang['helpItemCodeAction'] = '/action tekst';
-$lang['helpItemDescDescribe'] = 'Beskriv handling i privat melding:';
-$lang['helpItemCodeDescribe'] = '/describe brukernavn tekst';
-$lang['helpItemDescIgnore'] = 'Ignorer/aksepter meldinger fra bruker:';
-$lang['helpItemCodeIgnore'] = '/ignore brukernavn';
-$lang['helpItemDescIgnoreList'] = 'Liste med ignorerte brukere:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Spark ut en bruker (bare Moderatorer):';
-$lang['helpItemCodeKick'] = '/kick brukernavn [minutter]';
-$lang['helpItemDescUnban'] = 'Ta inn en utsparket bruker (bare Moderatorer):';
-$lang['helpItemCodeUnban'] = '/unban brukernavn';
-$lang['helpItemDescBans'] = 'Liste med utsparkede brukere (bare Moderatorer):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Vis bruker IP (bare Moderatorer):';
-$lang['helpItemCodeWhois'] = '/whois brukernavn';
-$lang['helpItemDescWho'] = 'Vis påloggede brukere:';
-$lang['helpItemCodeWho'] = '/who [kanalnavn]';
-$lang['helpItemDescList'] = 'Vis tilgjenglige kanaler:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Rull terning:';
-$lang['helpItemCodeRoll'] = '/roll [nummer]d[sider]';
-$lang['helpItemDescNick'] = 'Change username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Settings';
-$lang['settingsBBCode'] = 'Enable BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Enable hyperlinks:';
-$lang['settingsLineBreaks'] = 'Enable line breaks:';
-$lang['settingsEmoticons'] = 'Enable emoticons:';
-$lang['settingsAutoFocus'] = 'Automatically set the focus on the input field:';
-$lang['settingsMaxMessages'] = 'Maximum number of messages in the chatlist:';
-$lang['settingsWordWrap'] = 'Enable wrapping of long words:';
-$lang['settingsMaxWordLength'] = 'Maximum length of a word before it gets wrapped:';
-$lang['settingsDateFormat'] = 'Format of date and time display:';
-$lang['settingsPersistFontColor'] = 'Persist font color:';
-$lang['settingsAudioVolume'] = 'Sound Volume:';
-$lang['settingsSoundReceive'] = 'Sound for incoming messages:';
-$lang['settingsSoundSend'] = 'Sound for outgoing messages:';
-$lang['settingsSoundEnter'] = 'Sound for login and channel enter messages:';
-$lang['settingsSoundLeave'] = 'Sound for logout and channel leave messages:';
-$lang['settingsSoundChatBot'] = 'Sound for chatbot messages:';
-$lang['settingsSoundError'] = 'Sound for error messages:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'Play selected sound';
-$lang['requiresJavaScript'] = 'JavaScript trengs for denne chat.';
-$lang['errorInvalidUser'] = 'Ugyldig brukernavn.';
-$lang['errorUserInUse'] = 'Brukernavn er i bruk.';
-$lang['errorBanned'] = 'Bruker eller IP er utsparket.';
-$lang['errorMaxUsersLoggedIn'] = 'Chatten har nådd maksimalt antall innloggede brukere.';
-$lang['errorChatClosed'] = 'Chatten er for øyeblikket stengt .';
-$lang['logsTitle'] = 'AJAX Chat - Logger';
-$lang['logsDate'] = 'Dato';
-$lang['logsTime'] = 'Tid';
-$lang['logsSearch'] = 'Søk';
-$lang['logsPrivateChannels'] = 'Private Kanaler';
-$lang['logsPrivateMessages'] = 'Private Meldinger';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/pl.php b/library/ajaxchat/chat/lib/lang/pl.php
deleted file mode 100644
index 92a1716a6..000000000
--- a/library/ajaxchat/chat/lib/lang/pl.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Tomasz Topa, http://tomasz.topa.pl/
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Nick';
-$lang['password'] = 'Hasło';
-$lang['login'] = 'Zaloguj';
-$lang['logout'] = 'Wyloguj';
-$lang['channel'] = 'Pokój';
-$lang['style'] = 'Styl';
-$lang['language'] = 'Język';
-$lang['inputLineBreak'] = 'Wciśnij SHIFT+ENTER aby przejść do nowej linijki';
-$lang['messageSubmit'] = 'Wyślij';
-$lang['registeredUsers'] = 'Zarejestrowani użytkownicy';
-$lang['onlineUsers'] = 'Użytkownicy online';
-$lang['toggleAutoScroll'] = 'Automatyczne przewijanie wł/wył';
-$lang['toggleAudio'] = 'Dźwięk wł/wył';
-$lang['toggleHelp'] = 'Pokaż/ukryj pomoc';
-$lang['toggleSettings'] = 'Pokaż/ukryj ustawienia';
-$lang['toggleOnlineList'] = 'Pokaż/ukryj listę osób online';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Cytat';
-$lang['bbCodeLabelCode'] = 'Kod';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Kolor tekstu';
-$lang['bbCodeTitleBold'] = 'Pogrubiony: [b]tekst[/b]';
-$lang['bbCodeTitleItalic'] = 'Kursywa: [i]tekst[/i]';
-$lang['bbCodeTitleUnderline'] = 'Podkreślony: [u]tekst[/u]';
-$lang['bbCodeTitleQuote'] = 'Cytat: [quote]tekst[/quote] lub [quote=autor]tekst[/quote]';
-$lang['bbCodeTitleCode'] = 'Kod: [code]kod[/code]';
-$lang['bbCodeTitleURL'] = 'Wstaw adres: [url]http://example.org[/url] lub [url=http://example.org]opis[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Kolor tekstu: [color=red]tekst[/color]';
-$lang['help'] = 'Pomoc';
-$lang['helpItemDescJoin'] = 'Wejdź do pokoju:';
-$lang['helpItemCodeJoin'] = '/join NazwaPokoju';
-$lang['helpItemDescJoinCreate'] = 'Utwórz nowy pokój (Tylko dla zarejestrowanych):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Zaproś kogoś (np. do prywatnego pokoju):';
-$lang['helpItemCodeInvite'] = '/invite Nick';
-$lang['helpItemDescUninvite'] = 'Odwołaj zaproszenie:';
-$lang['helpItemCodeUninvite'] = '/uninvite Nick';
-$lang['helpItemDescLogout'] = 'Wyloguj z czata:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Prywatna wiadomość:';
-$lang['helpItemCodePrivateMessage'] = '/msg Nick tekst';
-$lang['helpItemDescQueryOpen'] = 'Prywatna rozmowa:';
-$lang['helpItemCodeQueryOpen'] = '/query Nick';
-$lang['helpItemDescQueryClose'] = 'Zakończ prywatną rozmowę:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Napisz co teraz robisz:';
-$lang['helpItemCodeAction'] = '/action Tekst';
-$lang['helpItemDescDescribe'] = 'Napisz komuś co teraz robisz:';
-$lang['helpItemCodeDescribe'] = '/describe Nick Tekst';
-$lang['helpItemDescIgnore'] = 'Ignoruj/akceptuj wiadomości od użytkownika:';
-$lang['helpItemCodeIgnore'] = '/ignore Nick';
-$lang['helpItemDescIgnoreList'] = 'Lista ignorowanych:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Gdzie jest użytkownik:';
-$lang['helpItemCodeWhereis'] = '/whereis Nick';
-$lang['helpItemDescKick'] = 'Wyrzuć użytkownika (Tylko dla moderatorów):';
-$lang['helpItemCodeKick'] = '/kick Nick [Czas zablokowania w minutach]';
-$lang['helpItemDescUnban'] = 'Odblokuj użytkowników (Tylko dla moderatorów):';
-$lang['helpItemCodeUnban'] = '/unban Nick';
-$lang['helpItemDescBans'] = 'Lista zablokowanych użytkowników (Tylko dla moderatorów):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Pokaż IP użytkownika (Tylko dla moderatorów):';
-$lang['helpItemCodeWhois'] = '/whois Nick';
-$lang['helpItemDescWho'] = 'Lista użytkowników online:';
-$lang['helpItemCodeWho'] = '/who [NazwaPokoju]';
-$lang['helpItemDescList'] = 'Lista pokoi:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Rzuć kostką:';
-$lang['helpItemCodeRoll'] = '/roll [ile_razy]d[ilu_ścienną]';
-$lang['helpItemDescNick'] = 'Zmień nick:';
-$lang['helpItemCodeNick'] = '/nick Nick';
-$lang['settings'] = 'Ustawienia';
-$lang['settingsBBCode'] = 'Pozwól na BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Pozwól na linki:';
-$lang['settingsLineBreaks'] = 'Pozwól na używanie wielu linijek:';
-$lang['settingsEmoticons'] = 'Pozwól na emotikonki:';
-$lang['settingsAutoFocus'] = 'Automatycznie ustawiaj kursor w polu tekstowym:';
-$lang['settingsMaxMessages'] = 'Maksymalna liczba wiadomości w głównym oknie:';
-$lang['settingsWordWrap'] = 'Pozwól dzielić długie wyrazy:';
-$lang['settingsMaxWordLength'] = 'Maksymalna długość wyrazu, którego nie wolno dzielić:';
-$lang['settingsDateFormat'] = 'Format wyświetlanej daty i czasu:';
-$lang['settingsPersistFontColor'] = 'Nie pozwól na zmianę koloru tekstu:';
-$lang['settingsAudioVolume'] = 'Głośność:';
-$lang['settingsSoundReceive'] = 'Dźwięk dla przychodzących wiadomości:';
-$lang['settingsSoundSend'] = 'Dźwięk dla wysyłanych wiadomości:';
-$lang['settingsSoundEnter'] = 'Dźwięk dla wejść do pokoju:';
-$lang['settingsSoundLeave'] = 'Dźwięk dla wyjść z pokoju:';
-$lang['settingsSoundChatBot'] = 'Dźwięk dla informacji od bota:';
-$lang['settingsSoundError'] = 'Dźwięk dla informacji o błędach:';
-$lang['settingsBlink'] = 'Miganie okienka przy nadejściu nowej wiadomości:';
-$lang['settingsBlinkInterval'] = 'Odstęp pomiędzy mignięciami (w milisekundach):';
-$lang['settingsBlinkIntervalNumber'] = 'Liczba mignięć:';
-$lang['playSelectedSound'] = 'Odtwórz wybrany dźwięk';
-$lang['requiresJavaScript'] = 'Do poprawnego działania czata wymagana jest obsługa JavaScript.';
-$lang['errorInvalidUser'] = 'Nieprawidłowy nick.';
-$lang['errorUserInUse'] = 'Wybrany nick jest już używany.';
-$lang['errorBanned'] = 'Nick lub IP jest zablokowane.';
-$lang['errorMaxUsersLoggedIn'] = 'Czat jest już pełny.';
-$lang['errorChatClosed'] = 'Czat jest tymczasowo wyłączony.';
-$lang['logsTitle'] = 'AJAX Chat - Logi';
-$lang['logsDate'] = 'Data';
-$lang['logsTime'] = 'Czas';
-$lang['logsSearch'] = 'Szukaj';
-$lang['logsPrivateChannels'] = 'Prywatne pokoje';
-$lang['logsPrivateMessages'] = 'Prywatne wiadomości';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/pt-br.php b/library/ajaxchat/chat/lib/lang/pt-br.php
deleted file mode 100644
index 034a5fb09..000000000
--- a/library/ajaxchat/chat/lib/lang/pt-br.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Pedro Innecco
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Usuário';
-$lang['password'] = 'Senha';
-$lang['login'] = 'Entrar';
-$lang['logout'] = 'Sair';
-$lang['channel'] = 'Canal';
-$lang['style'] = 'Aparência';
-$lang['language'] = 'Idioma';
-$lang['inputLineBreak'] = 'Pressione SHIFT+ENTER para inserir uma quebra de linha';
-$lang['messageSubmit'] = 'Enviar';
-$lang['registeredUsers'] = 'Para Usuários Registrados';
-$lang['onlineUsers'] = 'Usuários Online';
-$lang['toggleAutoScroll'] = 'Autorolagem liga/desliga';
-$lang['toggleAudio'] = 'Som liga/desliga';
-$lang['toggleHelp'] = 'Mostrar/esconder ajuda';
-$lang['toggleSettings'] = 'Mostrar/esconder configurações';
-$lang['toggleOnlineList'] = 'Mostrar/esconder lista de usuários online';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citar';
-$lang['bbCodeLabelCode'] = 'Código';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Imagem';
-$lang['bbCodeLabelColor'] = 'Cor da fonte';
-$lang['bbCodeTitleBold'] = 'Texto negrito: [b]texto[/b]';
-$lang['bbCodeTitleItalic'] = 'Texto itálico: [i]texto[/i]';
-$lang['bbCodeTitleUnderline'] = 'Texto sublinhado: [u]texto[/u]';
-$lang['bbCodeTitleQuote'] = 'Citar texto: [quote]texto[/quote] ou [quote=autor]texto[/quote]';
-$lang['bbCodeTitleCode'] = 'Citar código: [code]código[/code]';
-$lang['bbCodeTitleURL'] = 'Inserir URL: [url]http://example.org[/url] or [url=http://example.org]texto[/url]';
-$lang['bbCodeTitleImg'] = 'Inserir imagem: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Cor da fonte: [color=red]texto[/color]';
-$lang['help'] = 'Ajuda';
-$lang['helpItemDescJoin'] = 'Entrar em um canal:';
-$lang['helpItemCodeJoin'] = '/join Nome do Canal';
-$lang['helpItemDescJoinCreate'] = 'Criar uma sala privada (Somente usuários registrados):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Convidar alguém (Por exemplo, para uma sala privada):';
-$lang['helpItemCodeInvite'] = '/invite Usuário';
-$lang['helpItemDescUninvite'] = 'Cancelar convite';
-$lang['helpItemCodeUninvite'] = '/uninvite Usuário';
-$lang['helpItemDescLogout'] = 'Sair do Chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Enviar mensagem privada:';
-$lang['helpItemCodePrivateMessage'] = '/msg Usuário Texto';
-$lang['helpItemDescQueryOpen'] = 'Abrir um canal privado:';
-$lang['helpItemCodeQueryOpen'] = '/query Usuário';
-$lang['helpItemDescQueryClose'] = 'Fechar um canal privado:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Descrever uma ação:';
-$lang['helpItemCodeAction'] = '/action Texto';
-$lang['helpItemDescDescribe'] = 'Descrever uma ação em uma mensagem privada:';
-$lang['helpItemCodeDescribe'] = '/describe Usuário Texto';
-$lang['helpItemDescIgnore'] = 'Ignorar/Aceitar mensagens de um usuário:';
-$lang['helpItemCodeIgnore'] = '/ignore Usuário';
-$lang['helpItemDescIgnoreList'] = 'Listar usuários ignorados:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Exibir canal de um usuário:';
-$lang['helpItemCodeWhereis'] = '/whereis Usuário';
-$lang['helpItemDescKick'] = 'Banir um usuário (Somente Moderadores):';
-$lang['helpItemCodeKick'] = '/kick Usuário [Bandido por minutos]';
-$lang['helpItemDescUnban'] = 'Desbanir um usuário (Somente Moderadores):';
-$lang['helpItemCodeUnban'] = '/unban Usuário';
-$lang['helpItemDescBans'] = 'Listar usuários banidos (Somente Moderadores):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Exibir IP de um usuário (Somente Moderadores):';
-$lang['helpItemCodeWhois'] = '/whois Usuário';
-$lang['helpItemDescWho'] = 'Listar usuários online:';
-$lang['helpItemCodeWho'] = '/who [Channelname]';
-$lang['helpItemDescList'] = 'Listar canais diponíveis:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Jogar dados:';
-$lang['helpItemCodeRoll'] = '/roll [números]d[lados]';
-$lang['helpItemDescNick'] = 'Trocar seu nome de usuário:';
-$lang['helpItemCodeNick'] = '/nick Nome';
-$lang['settings'] = 'Configurações';
-$lang['settingsBBCode'] = 'Permitir BBCode:';
-$lang['settingsBBCodeImages'] = 'Permitir BBCode image (imagem):';
-$lang['settingsBBCodeColors'] = 'Permitir BBCode font color (cor de fonte):';
-$lang['settingsHyperLinks'] = 'Permitir hyperlinks:';
-$lang['settingsLineBreaks'] = 'Permitir quebra-linha:';
-$lang['settingsEmoticons'] = 'Permitir emoticons:';
-$lang['settingsAutoFocus'] = 'Definir automaticamente o foco no campo de envio de mensagens:';
-$lang['settingsMaxMessages'] = 'O número máximo de mensagens na lista do Chat:';
-$lang['settingsWordWrap'] = 'Permitir quebra de linha para palavras longas:';
-$lang['settingsMaxWordLength'] = 'O comprimento máximo de uma palavra antes dele começa envolvido:';
-$lang['settingsDateFormat'] = 'Formato da exposição da data e da hora:';
-$lang['settingsPersistFontColor'] = 'Persistir cor da fonte:';
-$lang['settingsAudioVolume'] = 'Volume do som:';
-$lang['settingsSoundReceive'] = 'Som para mensagens recebidas:';
-$lang['settingsSoundSend'] = 'Som para mensagens enviadas:';
-$lang['settingsSoundEnter'] = 'Som para login e avisos de entrada em canais:';
-$lang['settingsSoundLeave'] = 'Som para logout e avisos de saida em canais:';
-$lang['settingsSoundChatBot'] = 'Som para mensagens do chatbot:';
-$lang['settingsSoundError'] = 'Som para mensagens de erro:';
-$lang['settingsBlink'] = 'Título da janela do piscamento em mensagens novas:';
-$lang['settingsBlinkInterval'] = 'Intervalo do piscamento nos milissegundos:';
-$lang['settingsBlinkIntervalNumber'] = 'Número de intervalos do piscamento:';
-$lang['playSelectedSound'] = 'Reproduzir som selecionado';
-$lang['requiresJavaScript'] = 'Javascript é requerido para este Chat.';
-$lang['errorInvalidUser'] = 'Usuário inválido.';
-$lang['errorUserInUse'] = 'Usuário já se encontra em uso.';
-$lang['errorBanned'] = 'O usuário ou endereço de IP foi banido do chat.';
-$lang['errorMaxUsersLoggedIn'] = 'O chat atingiu o número máximo de usuários permitidos.';
-$lang['errorChatClosed'] = 'O chat está fechado no momento.';
-$lang['logsTitle'] = 'Ajax Chat - Relatório';
-$lang['logsDate'] = 'Data';
-$lang['logsTime'] = 'Hora';
-$lang['logsSearch'] = 'Pesquisar';
-$lang['logsPrivateChannels'] = 'Canais privados';
-$lang['logsPrivateMessages'] = 'Mensagens privadas';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/pt-pt.php b/library/ajaxchat/chat/lib/lang/pt-pt.php
deleted file mode 100644
index e3399eb04..000000000
--- a/library/ajaxchat/chat/lib/lang/pt-pt.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author of translate Carlos Rocha (aka Broas@)
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Nick';
-$lang['password'] = 'Password';
-$lang['login'] = 'Entrar';
-$lang['logout'] = 'Sair';
-$lang['channel'] = 'Sala';
-$lang['style'] = 'Aparência';
-$lang['language'] = 'Idioma';
-$lang['inputLineBreak'] = 'Prima SHIFT+ENTER para inserir uma quebra de linha';
-$lang['messageSubmit'] = 'Enviar';
-$lang['registeredUsers'] = 'Utilizadores registados';
-$lang['onlineUsers'] = 'Utilizadores online';
-$lang['toggleAutoScroll'] = 'Ligar/Desligar scroll automático';
-$lang['toggleAudio'] = 'Ligar/Desligar som';
-$lang['toggleHelp'] = 'Mostrar/Esconder ajuda';
-$lang['toggleSettings'] = 'Mostrar/Esconder configurações';
-$lang['toggleOnlineList'] = 'Mostrar/Esconder listas online';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citar';
-$lang['bbCodeLabelCode'] = 'Código';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Imagem';
-$lang['bbCodeLabelColor'] = 'Cor da fonte';
-$lang['bbCodeTitleBold'] = 'Texto a negrito: [b]texto[/b]';
-$lang['bbCodeTitleItalic'] = 'Texto itálico: [i]texto[/i]';
-$lang['bbCodeTitleUnderline'] = 'Texto sublinhado: [u]texto[/u]';
-$lang['bbCodeTitleQuote'] = 'Citar texto: [quote]texto[/quote] ou [quote=autor]texto[/quote]';
-$lang['bbCodeTitleCode'] = 'Citar código: [code]código[/code]';
-$lang['bbCodeTitleURL'] = 'Inserir URL: [url]http://example.org[/url] ou [url=http://example.org]texto[/url]';
-$lang['bbCodeTitleImg'] = 'Inserir imagem: [img]http://example.org/imagem.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Cor da fonte: [color=red]texto[/color]';
-$lang['help'] = 'Ajuda';
-$lang['helpItemDescJoin'] = 'Entrar numa sala:';
-$lang['helpItemCodeJoin'] = '/join [Nome da sala]';
-$lang['helpItemDescJoinCreate'] = 'Criar sala privada (Só para utilizadores registados):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Convidar alguém para uma sala privada:';
-$lang['helpItemCodeInvite'] = '/invite [Utilizador]';
-$lang['helpItemDescUninvite'] = 'Cancelar convite';
-$lang['helpItemCodeUninvite'] = '/uninvite [Utilizador]';
-$lang['helpItemDescLogout'] = 'Sair do chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Enviar mensagem privada:';
-$lang['helpItemCodePrivateMessage'] = '/msg [Utilizador] [Texto]';
-$lang['helpItemDescQueryOpen'] = 'Abrir uma sala privada:';
-$lang['helpItemCodeQueryOpen'] = '/query [Utilizador]';
-$lang['helpItemDescQueryClose'] = 'Fechar uma sala privada:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Acção:';
-$lang['helpItemCodeAction'] = '/action [Texto]';
-$lang['helpItemDescDescribe'] = 'Descreve a acção em mensagem privada:';
-$lang['helpItemCodeDescribe'] = '/describe [Utilizador] [Texto]';
-$lang['helpItemDescIgnore'] = 'Adicionar/Remover utilizador à lista de ignorados:';
-$lang['helpItemCodeIgnore'] = '/ignore [Utilizador]';
-$lang['helpItemDescIgnoreList'] = 'Lista de utilizadores ignorados:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Encontrar um utilizador:';
-$lang['helpItemCodeWhereis'] = '/whereis [Utilizador]';
-$lang['helpItemDescKick'] = 'Kickar um utilizador (Só Moderadores):';
-$lang['helpItemCodeKick'] = '/kick [Utilizador] [Minutos]';
-$lang['helpItemDescUnban'] = 'Desbanir um utilizador (Só Moderadores):';
-$lang['helpItemCodeUnban'] = '/unban [Utilizador]';
-$lang['helpItemDescBans'] = 'Lista de utilizadores banidos (Só Moderadores):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Mostrar IP de um utilizador (Só Moderadores):';
-$lang['helpItemCodeWhois'] = '/whois [Utilizador]';
-$lang['helpItemDescWho'] = 'Lista de utilizadores online na sala:';
-$lang['helpItemCodeWho'] = '/who ou /who [Sala]';
-$lang['helpItemDescList'] = 'Lista canais diponíveis:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Jogar dados:';
-$lang['helpItemCodeRoll'] = '/roll [números] [dados]';
-$lang['helpItemDescNick'] = 'Trocar de nick:';
-$lang['helpItemCodeNick'] = '/nick [Novo nick]';
-$lang['settings'] = 'Configurações';
-$lang['settingsBBCode'] = 'Permitir BBCode:';
-$lang['settingsBBCodeImages'] = 'Permitir BBCode para imagem:';
-$lang['settingsBBCodeColors'] = 'Permitir BBCode para cor da fonte:';
-$lang['settingsHyperLinks'] = 'Permitir URL:';
-$lang['settingsLineBreaks'] = 'Permitir quebra de linha:';
-$lang['settingsEmoticons'] = 'Permitir smileys:';
-$lang['settingsAutoFocus'] = 'Definir automaticamente a centrar-se no campo de pesquisa:';
-$lang['settingsMaxMessages'] = 'Número máximo de mensagens no Chat:';
-$lang['settingsWordWrap'] = 'Permitir palavras longas:';
-$lang['settingsMaxWordLength'] = 'O comprimento máximo de uma palavra é de:';
-$lang['settingsDateFormat'] = 'Formato da hora e data:';
-$lang['settingsPersistFontColor'] = 'Persistir cor da fonte:';
-$lang['settingsAudioVolume'] = 'Volume do som:';
-$lang['settingsSoundReceive'] = 'Som para as mensagens recebidas:';
-$lang['settingsSoundSend'] = 'Som de mensagens enviadas:';
-$lang['settingsSoundEnter'] = 'Som de login:';
-$lang['settingsSoundLeave'] = 'Som de logout:';
-$lang['settingsSoundChatBot'] = 'Som para mensagens do chatbot:';
-$lang['settingsSoundError'] = 'Som para mensagens de erro:';
-$lang['settingsBlink'] = 'Título da janela do "piscamento" em mensagens novas:';
-$lang['settingsBlinkInterval'] = 'Intervalo do "piscamento" em milissegundos:';
-$lang['settingsBlinkIntervalNumber'] = 'Número de intervalos do "piscamento":';
-$lang['playSelectedSound'] = 'Reproduzir o som selecionado';
-$lang['requiresJavaScript'] = 'O Javascript tem de estar ligado para entrares no Chat.';
-$lang['errorInvalidUser'] = 'Nick inválido.';
-$lang['errorUserInUse'] = 'Nick em uso.';
-$lang['errorBanned'] = 'O teu nick ou IP está banido.';
-$lang['errorMaxUsersLoggedIn'] = 'O chat atingiu o número máximo de utilizadores ligados.';
-$lang['errorChatClosed'] = 'O Chat está encerrado de momento.';
-$lang['logsTitle'] = 'AJAX Chat - Relatório';
-$lang['logsDate'] = 'Data';
-$lang['logsTime'] = 'Tempo';
-$lang['logsSearch'] = 'Procurar';
-$lang['logsPrivateChannels'] = 'Salas privadas';
-$lang['logsPrivateMessages'] = 'Mensagens privadas';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/ro.php b/library/ajaxchat/chat/lib/lang/ro.php
deleted file mode 100644
index 8e6d6418f..000000000
--- a/library/ajaxchat/chat/lib/lang/ro.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author K.Z.
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'Chat AJAX';
-$lang['userName'] = 'Nume de utilizator';
-$lang['password'] = 'Parolă';
-$lang['login'] = 'Autentificare';
-$lang['logout'] = 'Ieşire';
-$lang['channel'] = 'Canal';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Limbă';
-$lang['inputLineBreak'] = 'Press SHIFT+ENTER to input a line break';
-$lang['messageSubmit'] = 'Trimite';
-$lang['registeredUsers'] = 'Utizatori înregistraţi';
-$lang['onlineUsers'] = 'Utilizatori activi';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sound on/off';
-$lang['toggleHelp'] = 'Show/hide help';
-$lang['toggleSettings'] = 'Show/hide settings';
-$lang['toggleOnlineList'] = 'Show/hide online list';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citat';
-$lang['bbCodeLabelCode'] = 'Cod';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Culoare fontului';
-$lang['bbCodeTitleBold'] = 'Text îngroşat: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Text înclinat: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Text subliniat: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Citează text: [quote]text[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Scrie cod: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Introdu URL: [url]http://example.org[/url] or [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Culoarea fontului: [color=red]text[/color]';
-$lang['help'] = 'Ajutor';
-$lang['helpItemDescJoin'] = 'Alăturăte canalului:';
-$lang['helpItemCodeJoin'] = '/join Channelname';
-$lang['helpItemDescJoinCreate'] = 'Creează o cameră privată de chat (Utilizatorii înregistraţi):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Invită pe cineva (ex.: într-o cameră privată):';
-$lang['helpItemCodeInvite'] = '/invite Username';
-$lang['helpItemDescUninvite'] = 'Respinge invitaţia:';
-$lang['helpItemCodeUninvite'] = '/uninvite Username';
-$lang['helpItemDescLogout'] = 'Ieşire din chat:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Mesaj privat:';
-$lang['helpItemCodePrivateMessage'] = '/msg Username Text';
-$lang['helpItemDescQueryOpen'] = 'Deschide un canal privat:';
-$lang['helpItemCodeQueryOpen'] = '/query Username';
-$lang['helpItemDescQueryClose'] = 'Închide un canal privat:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Descrie acţiune:';
-$lang['helpItemCodeAction'] = '/action Text';
-$lang['helpItemDescDescribe'] = 'Descrie acţiune în mesaj privat:';
-$lang['helpItemCodeDescribe'] = '/describe Username Text';
-$lang['helpItemDescIgnore'] = 'Ignoră/acceptă mesaj de la un utilizator:';
-$lang['helpItemCodeIgnore'] = '/ignore Username';
-$lang['helpItemDescIgnoreList'] = 'Arată lista cu utilizatorii ignoraţi:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Dă afară un utilizator (doar Moderatorii):';
-$lang['helpItemCodeKick'] = '/kick Username [Minutes banned]';
-$lang['helpItemDescUnban'] = 'Redă accesul la chat al unui utilizator (doar Moderatorii):';
-$lang['helpItemCodeUnban'] = '/unban Username';
-$lang['helpItemDescBans'] = 'Listează utilizatorii care au accesul interzis (doar Moderatorii):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Arată IP-ul utilizatorului (doar Moderatorii):';
-$lang['helpItemCodeWhois'] = '/whois Username';
-$lang['helpItemDescWho'] = 'Listează utilizatorii activi:';
-$lang['helpItemCodeWho'] = '/who [Channelname]';
-$lang['helpItemDescList'] = 'Listează canalele disponbile:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Aruncă zarul:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Change username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Settings';
-$lang['settingsBBCode'] = 'Enable BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Enable hyperlinks:';
-$lang['settingsLineBreaks'] = 'Enable line breaks:';
-$lang['settingsEmoticons'] = 'Enable emoticons:';
-$lang['settingsAutoFocus'] = 'Automatically set the focus on the input field:';
-$lang['settingsMaxMessages'] = 'Maximum number of messages in the chatlist:';
-$lang['settingsWordWrap'] = 'Enable wrapping of long words:';
-$lang['settingsMaxWordLength'] = 'Maximum length of a word before it gets wrapped:';
-$lang['settingsDateFormat'] = 'Format of date and time display:';
-$lang['settingsPersistFontColor'] = 'Persist font color:';
-$lang['settingsAudioVolume'] = 'Sound Volume:';
-$lang['settingsSoundReceive'] = 'Sound for incoming messages:';
-$lang['settingsSoundSend'] = 'Sound for outgoing messages:';
-$lang['settingsSoundEnter'] = 'Sound for login and channel enter messages:';
-$lang['settingsSoundLeave'] = 'Sound for logout and channel leave messages:';
-$lang['settingsSoundChatBot'] = 'Sound for chatbot messages:';
-$lang['settingsSoundError'] = 'Sound for error messages:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'Play selected sound';
-$lang['requiresJavaScript'] = 'Pentru a vizualiza acest chat trebuie să aveţi activat JavaScript-ul activat.';
-$lang['errorInvalidUser'] = 'Numele de utilizator incorect.';
-$lang['errorUserInUse'] = 'Numele de utilizator este deja folosit.';
-$lang['errorBanned'] = 'Accesul interzis utilizatorului sau persoanei cu acest IP.';
-$lang['errorMaxUsersLoggedIn'] = 'Chat-ul a atins numărul maxim de utilizatori.';
-$lang['errorChatClosed'] = 'Chat-ul este închis temporar.';
-$lang['logsTitle'] = 'Chat AJAX - Loguri';
-$lang['logsDate'] = 'Data';
-$lang['logsTime'] = 'Ora';
-$lang['logsSearch'] = 'Caută';
-$lang['logsPrivateChannels'] = 'Canale private';
-$lang['logsPrivateMessages'] = 'Mesaje private';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/ru.php b/library/ajaxchat/chat/lib/lang/ru.php
deleted file mode 100644
index ac86531dc..000000000
--- a/library/ajaxchat/chat/lib/lang/ru.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author SkyKnight
- * @author Dmitry Plyonkin
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Имя';
-$lang['password'] = 'Пароль';
-$lang['login'] = 'Login';
-$lang['logout'] = 'Выйти';
-$lang['channel'] = 'Канал';
-$lang['style'] = 'Стиль';
-$lang['language'] = 'Язык';
-$lang['inputLineBreak'] = 'Нажмите SHIFT+ENTER, чтобы перейти на новую строку';
-$lang['messageSubmit'] = 'Отправить';
-$lang['registeredUsers'] = 'Только для зарегистрированных пользователей';
-$lang['onlineUsers'] = 'Пользователи онлайн';
-$lang['toggleAutoScroll'] = 'Вкл/выкл авто-прокрутку';
-$lang['toggleAudio'] = 'Вкл/выкл звук';
-$lang['toggleHelp'] = 'Показать/скрыть подсказку';
-$lang['toggleSettings'] = 'Показать/скрыть настройки';
-$lang['toggleOnlineList'] = 'Показать/скрыть список участников';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Цитата';
-$lang['bbCodeLabelCode'] = 'Код';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Цвет шрифта';
-$lang['bbCodeTitleBold'] = 'Жирный текст: [b]текст[/b]';
-$lang['bbCodeTitleItalic'] = 'Курсив: [i]текст[/i]';
-$lang['bbCodeTitleUnderline'] = 'Подчеркнутый текст: [u]текст[/u]';
-$lang['bbCodeTitleQuote'] = 'Цитата: [quote]текст[/quote] или [quote=автор]текст[/quote]';
-$lang['bbCodeTitleCode'] = 'Код: [code]текст[/code]';
-$lang['bbCodeTitleURL'] = 'Вставить ссылку: [url]http://example.org[/url] или [url=http://example.org]текст[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Цвет шрифта: [color=red]текст[/color]';
-$lang['help'] = 'Помощь';
-$lang['helpItemDescJoin'] = 'Присоедениться к каналу:';
-$lang['helpItemCodeJoin'] = '/join имя_канала';
-$lang['helpItemDescJoinCreate'] = 'Создать частный (приватный) канал:';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Пригласить кого-либо (например в частный канал):';
-$lang['helpItemCodeInvite'] = '/invite имя_пользователя';
-$lang['helpItemDescUninvite'] = 'Отозвать приглашение:';
-$lang['helpItemCodeUninvite'] = '/uninvite имя_пользователя';
-$lang['helpItemDescLogout'] = 'Выйти из чата:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Приватное сообщение:';
-$lang['helpItemCodePrivateMessage'] = '/msg Имя_пользователся Текст';
-$lang['helpItemDescQueryOpen'] = 'Открыть приватный канал:';
-$lang['helpItemCodeQueryOpen'] = '/query Имя_пользователя';
-$lang['helpItemDescQueryClose'] = 'Закрыть приватный канал:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Описать действия:';
-$lang['helpItemCodeAction'] = '/action Текст';
-$lang['helpItemDescDescribe'] = 'Описать действия в приватном сообщении:';
-$lang['helpItemCodeDescribe'] = '/describe Имя_пользователя Текст';
-$lang['helpItemDescIgnore'] = 'Игнорировать/принимать сообщения от пользователей:';
-$lang['helpItemCodeIgnore'] = '/ignore Имя_пользователся';
-$lang['helpItemDescIgnoreList'] = 'List ignored users:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Выгнать пользователся (Kick) (только модераторы и администраторы):';
-$lang['helpItemCodeKick'] = '/kick Имя_пользователя [Минуты]';
-$lang['helpItemDescUnban'] = 'Разбанить пользователя (Только модераторы и администраторы):';
-$lang['helpItemCodeUnban'] = '/unban Имя_пользователя';
-$lang['helpItemDescBans'] = 'Список забаненных пользователей (Только для модераторов):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Показать IP пользователся (Только модераторы и администраторы):';
-$lang['helpItemCodeWhois'] = '/whois Имя_пользователя';
-$lang['helpItemDescWho'] = 'Список доступных пользователей:';
-$lang['helpItemCodeWho'] = '/who [Имя_канала]';
-$lang['helpItemDescList'] = 'Список доступных каналов:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Бросить кубики:';
-$lang['helpItemCodeRoll'] = '/roll [количесво]d[количество сторон]';
-$lang['helpItemDescNick'] = 'Change username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Настройки';
-$lang['settingsBBCode'] = 'Разрешить BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Разрешить ссылки:';
-$lang['settingsLineBreaks'] = 'Разрешить переводы строк:';
-$lang['settingsEmoticons'] = 'Разрешить смайлики:';
-$lang['settingsAutoFocus'] = 'Автоматически ставить курсор в поле ввода:';
-$lang['settingsMaxMessages'] = 'Маскимальное количество сообщений, отображающихся в чате:';
-$lang['settingsWordWrap'] = 'Переносить длинные слова:';
-$lang['settingsMaxWordLength'] = 'Максимально допустимая длина слова, которе не будет разбито для переноса:';
-$lang['settingsDateFormat'] = 'Формат даты и времени:';
-$lang['settingsPersistFontColor'] = 'Постоянный цвет шрифта:';
-$lang['settingsAudioVolume'] = 'Громкость:';
-$lang['settingsSoundReceive'] = 'Звук для входящих сообщений:';
-$lang['settingsSoundSend'] = 'Звук для исходящих сообщений:';
-$lang['settingsSoundEnter'] = 'Звук для оповещения о новом участнике в чате:';
-$lang['settingsSoundLeave'] = 'Звук для оповещения об уходе участника из чата:';
-$lang['settingsSoundChatBot'] = 'Звук для сообщений бота:';
-$lang['settingsSoundError'] = 'Звук для оповещений об ошибках:';
-$lang['settingsBlink'] = '"Моргать" заголовком окна при новом сообщении:';
-$lang['settingsBlinkInterval'] = 'Интервал "моргания" (в миллисекундах):';
-$lang['settingsBlinkIntervalNumber'] = 'Количество "морганий":';
-$lang['playSelectedSound'] = 'Воспроизвести выбранный звук';
-$lang['requiresJavaScript'] = 'Для корректной работы чата должен быть разрешен JavaScript.';
-$lang['errorInvalidUser'] = 'Неверное имя пользователя.';
-$lang['errorUserInUse'] = 'Имя занято.';
-$lang['errorBanned'] = 'Пользователь или IP забанены.';
-$lang['errorMaxUsersLoggedIn'] = 'В чате максимальное количество пользователей. Попробуйте зайти позднее.';
-$lang['errorChatClosed'] = 'Чат закрыт в настоящий момент.';
-$lang['logsTitle'] = 'AJAX Chat - История';
-$lang['logsDate'] = 'Дата';
-$lang['logsTime'] = 'Время';
-$lang['logsSearch'] = 'Поиск';
-$lang['logsPrivateChannels'] = 'Приватные каналы';
-$lang['logsPrivateMessages'] = 'Приватные сообщения';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/sk.php b/library/ajaxchat/chat/lib/lang/sk.php
deleted file mode 100644
index fae99a785..000000000
--- a/library/ajaxchat/chat/lib/lang/sk.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Peter
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Meno';
-$lang['password'] = 'Heslo';
-$lang['login'] = 'Prihlásiť';
-$lang['logout'] = 'Odhlásiť';
-$lang['channel'] = 'Kanál';
-$lang['style'] = 'Štýl';
-$lang['language'] = 'Jazyk';
-$lang['inputLineBreak'] = 'Press SHIFT+ENTER to input a line break';
-$lang['messageSubmit'] = 'Poslať';
-$lang['registeredUsers'] = 'Registrovaní užívatelia';
-$lang['onlineUsers'] = 'Prihlásení užívatelia';
-$lang['toggleAutoScroll'] = 'Autoscroll on/off';
-$lang['toggleAudio'] = 'Sound on/off';
-$lang['toggleHelp'] = 'Show/hide help';
-$lang['toggleSettings'] = 'Show/hide settings';
-$lang['toggleOnlineList'] = 'Show/hide online list';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citovať';
-$lang['bbCodeLabelCode'] = 'Kód';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Farba písma';
-$lang['bbCodeTitleBold'] = 'Tučné: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Kurzívou: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Podčiarknuté: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Citovať text: [quote]text[/quote] alebo [quote=autor]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Zobraziť kód: [code]kód[/code]';
-$lang['bbCodeTitleURL'] = 'Vložiť URL: [url]http://www.example.org/[/url] alebo [url=http://www.example.org/]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Farba písma: [color=red]text[/color]';
-$lang['help'] = 'Nápoveda';
-$lang['helpItemDescJoin'] = 'Prihlásenie do kanálu:';
-$lang['helpItemCodeJoin'] = '/join Názov_kanálu';
-$lang['helpItemDescJoinCreate'] = 'Vytvoriť súkromný chat (Iba pre registrovaných užívateľov):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Pozvať niekoho k súkromnému rozhovoru:';
-$lang['helpItemCodeInvite'] = '/invite Meno_užívateľa';
-$lang['helpItemDescUninvite'] = 'Odriecť pozvanie:';
-$lang['helpItemCodeUninvite'] = '/uninvite Meno_užívateľa';
-$lang['helpItemDescLogout'] = 'Odhlásenie z chatu:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Súkromná správa:';
-$lang['helpItemCodePrivateMessage'] = '/msg Meno_užívateľa Text';
-$lang['helpItemDescQueryOpen'] = 'Otvoriť súkromný kanál:';
-$lang['helpItemCodeQueryOpen'] = '/query Meno_užívateľa';
-$lang['helpItemDescQueryClose'] = 'Zavrieť súkromný kanál:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Opísať akciu:';
-$lang['helpItemCodeAction'] = '/action Text';
-$lang['helpItemDescDescribe'] = 'Opísať akciu v súkromnej správe:';
-$lang['helpItemCodeDescribe'] = '/describe Meno_užívateľa Text';
-$lang['helpItemDescIgnore'] = 'Ignoruj/akceptuj správu od užívateľa:';
-$lang['helpItemCodeIgnore'] = '/ignore (accept) Meno_užívateľa';
-$lang['helpItemDescIgnoreList'] = 'Zoznam zamietnutých užívateľov:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Display user channel:';
-$lang['helpItemCodeWhereis'] = '/whereis Username';
-$lang['helpItemDescKick'] = 'Vylúčiť užívateľa (Iba Moderátori):';
-$lang['helpItemCodeKick'] = '/kick Meno_užívateľa [čas vylúčenia v minútach]';
-$lang['helpItemDescUnban'] = 'Prijať vylúčeného užívateľa (Iba Moderátori):';
-$lang['helpItemCodeUnban'] = '/unban Meno_užívateľa';
-$lang['helpItemDescBans'] = 'Zoznam vylúčených užívateľov (Iba Moderátori):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Zobraz IP užívateľa(Iba Moderátori):';
-$lang['helpItemCodeWhois'] = '/whois Meno_užívateľa';
-$lang['helpItemDescWho'] = 'Zoznam prihlásených užívateľov:';
-$lang['helpItemCodeWho'] = '/who [Meno_kanálu]';
-$lang['helpItemDescList'] = 'Zoznam dostupných kanálov:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Hodiť kocky:';
-$lang['helpItemCodeRoll'] = '/roll [číslo]d[strana]';
-$lang['helpItemDescNick'] = 'Change username:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = 'Settings';
-$lang['settingsBBCode'] = 'Enable BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Enable hyperlinks:';
-$lang['settingsLineBreaks'] = 'Enable line breaks:';
-$lang['settingsEmoticons'] = 'Enable emoticons:';
-$lang['settingsAutoFocus'] = 'Automatically set the focus on the input field:';
-$lang['settingsMaxMessages'] = 'Maximum number of messages in the chatlist:';
-$lang['settingsWordWrap'] = 'Enable wrapping of long words:';
-$lang['settingsMaxWordLength'] = 'Maximum length of a word before it gets wrapped:';
-$lang['settingsDateFormat'] = 'Format of date and time display:';
-$lang['settingsPersistFontColor'] = 'Persist font color:';
-$lang['settingsAudioVolume'] = 'Sound Volume:';
-$lang['settingsSoundReceive'] = 'Sound for incoming messages:';
-$lang['settingsSoundSend'] = 'Sound for outgoing messages:';
-$lang['settingsSoundEnter'] = 'Sound for login and channel enter messages:';
-$lang['settingsSoundLeave'] = 'Sound for logout and channel leave messages:';
-$lang['settingsSoundChatBot'] = 'Sound for chatbot messages:';
-$lang['settingsSoundError'] = 'Sound for error messages:';
-$lang['settingsBlink'] = 'Blink window title on new messages:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'Play selected sound';
-$lang['requiresJavaScript'] = 'Pre tento chat sa vyžaduje nainštalovať JavaScript.';
-$lang['errorInvalidUser'] = 'Neplatné užívateľské meno.';
-$lang['errorUserInUse'] = 'Použité užívateľské meno.';
-$lang['errorBanned'] = 'Užívateľ alebo IP je zakázané.';
-$lang['errorMaxUsersLoggedIn'] = 'Chat dosiahol maximálny počet prihlásených užívateľov.';
-$lang['errorChatClosed'] = 'Chat je momentálne nedostupný.';
-$lang['logsTitle'] = 'AJAX Chat - Záznamy';
-$lang['logsDate'] = 'Dátum';
-$lang['logsTime'] = 'Čas';
-$lang['logsSearch'] = 'Vyhľadávanie';
-$lang['logsPrivateChannels'] = 'Súkromný kanál';
-$lang['logsPrivateMessages'] = 'Súkromná správa';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/sl.php b/library/ajaxchat/chat/lib/lang/sl.php
deleted file mode 100644
index 6e4941532..000000000
--- a/library/ajaxchat/chat/lib/lang/sl.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Valter Pepelko
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'Klepetalnica';
-$lang['userName'] = 'Uporabniško ime';
-$lang['password'] = 'Geslo';
-$lang['login'] = 'Prijava';
-$lang['logout'] = 'Odjava';
-$lang['channel'] = 'Soba';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Jezik';
-$lang['inputLineBreak'] = 'Pritisnite SHIFT+ENTER za novo vrstico';
-$lang['messageSubmit'] = 'Pošlji';
-$lang['registeredUsers'] = 'Registrirani uporabniki';
-$lang['onlineUsers'] = 'Prisotni';
-$lang['toggleAutoScroll'] = 'Samodejno pomikanje besedila vklop/izklop';
-$lang['toggleAudio'] = 'Zvok vklop/izklop';
-$lang['toggleHelp'] = 'Pomoč prikaži/skrij';
-$lang['toggleSettings'] = 'Nastavitve prikaži/skrij';
-$lang['toggleOnlineList'] = 'Prisotni prikaži/skrij';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citiranje';
-$lang['bbCodeLabelCode'] = 'Koda';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Slika';
-$lang['bbCodeLabelColor'] = 'Barva črk';
-$lang['bbCodeTitleBold'] = 'Odebeljeno besedilo: [b]besedilo[/b]';
-$lang['bbCodeTitleItalic'] = 'Poševno besedilo: [i]besedilo[/i]';
-$lang['bbCodeTitleUnderline'] = 'Podčrtano besedilo: [u]besedilo[/u]';
-$lang['bbCodeTitleQuote'] = 'Citirano besedilo: [quote]besedilo[/quote] ali [quote=autor]besedilo[/quote]';
-$lang['bbCodeTitleCode'] = 'Prikazovanje kode: [code]koda[/code]';
-$lang['bbCodeTitleURL'] = 'Vnesi URL: [url]http://www.primer.org/[/url] ali [url=http://www.primer.org/]besedilo[/url]';
-$lang['bbCodeTitleImg'] = 'Vstavi sliko: [img]http://priemr.org/slika.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Barva črk: [color=red]besedilo[/color]';
-$lang['help'] = 'Pomoč';
-$lang['helpItemDescJoin'] = 'Vstopi v sobo:';
-$lang['helpItemCodeJoin'] = '/join Ime sobe';
-$lang['helpItemDescJoinCreate'] = 'Izdelaj privatno sobo (samo registrirani uporabniki):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Povabi uporabnika v privatno sobo:';
-$lang['helpItemCodeInvite'] = '/invite Uporabnik';
-$lang['helpItemDescUninvite'] = 'Preklic povabila v privatno sobo uporabniku:';
-$lang['helpItemCodeUninvite'] = '/uninvite Uporabnik';
-$lang['helpItemDescLogout'] = 'Odjava:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privatno sporočilo:';
-$lang['helpItemCodePrivateMessage'] = '/msg Uporabnik Besedilo sporočila';
-$lang['helpItemDescQueryOpen'] = 'Odpri privatno sobo:';
-$lang['helpItemCodeQueryOpen'] = '/query Uporabnik';
-$lang['helpItemDescQueryClose'] = 'Zapri privatno sobo:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Opiši akcijo:';
-$lang['helpItemCodeAction'] = '/action Besedilo';
-$lang['helpItemDescDescribe'] = 'Opiši akcijo v privatnem sporočilu:';
-$lang['helpItemCodeDescribe'] = '/describe Uporabnik Besedilo';
-$lang['helpItemDescIgnore'] = 'Ignoriraj sporočila uporabnika:';
-$lang['helpItemCodeIgnore'] = '/ignore Uporabnik';
-$lang['helpItemDescIgnoreList'] = 'Seznam ignoriranih uporabnikov:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Prikaži v kateri sobi je uporabnik:';
-$lang['helpItemCodeWhereis'] = '/whereis Uporabnik';
-$lang['helpItemDescKick'] = 'Prepovej uporabnika (samo Moderatorji):';
-$lang['helpItemCodeKick'] = '/kick Uporabnik [čas prepovedi v minutah]';
-$lang['helpItemDescUnban'] = 'Prekliči prepoved uporabniku (samo Moderatorji):';
-$lang['helpItemCodeUnban'] = '/unban Uporabnik';
-$lang['helpItemDescBans'] = 'Seznam prepovedanih uporabnikov (samo Moderatorji):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Prikaži IP uporabnika (samo Moderatorji):';
-$lang['helpItemCodeWhois'] = '/whois Uporabnik';
-$lang['helpItemDescWho'] = 'Seznam prijavljenih uporabnikov:';
-$lang['helpItemCodeWho'] = '/who [Ime sobe]';
-$lang['helpItemDescList'] = 'Seznam dostopnih sob:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Vrzi kocko:';
-$lang['helpItemCodeRoll'] = '/roll [število]d[strani]';
-$lang['helpItemDescNick'] = 'Zamenjaj Uporabniško ime:';
-$lang['helpItemCodeNick'] = '/nick Uporabnik';
-$lang['settings'] = 'Nastavitve';
-$lang['settingsBBCode'] = 'Omogoči BB kodo:';
-$lang['settingsBBCodeImages'] = 'Omogoči slikovno BBCode:';
-$lang['settingsBBCodeColors'] = 'Omogoči barvo črk BBCode:';
-$lang['settingsHyperLinks'] = 'Omogoči hiperlinke:';
-$lang['settingsLineBreaks'] = 'Omogoči nove vrstice:';
-$lang['settingsEmoticons'] = 'Omogoči smeške:';
-$lang['settingsAutoFocus'] = 'Samodejno naravnaj fokus na polje za vnos besedila:';
-$lang['settingsMaxMessages'] = 'Maksimalno število sporočil na chat seznamu:';
-$lang['settingsWordWrap'] = 'Omogoči ovijanje dolgih besed:';
-$lang['settingsMaxWordLength'] = 'Maksimalna dolžina besed pred ovijanjem:';
-$lang['settingsDateFormat'] = 'Format prikaza datuma i ure:';
-$lang['settingsPersistFontColor'] = 'Stalna barva črk:';
-$lang['settingsAudioVolume'] = 'Višina zvoka:';
-$lang['settingsSoundReceive'] = 'Zvok za prispela sporočila:';
-$lang['settingsSoundSend'] = 'Zvok za poslana sporočila:';
-$lang['settingsSoundEnter'] = 'Zvok za prijavo in vstop v sobo:';
-$lang['settingsSoundLeave'] = 'Zvok za odjavo in izhod iz sobe:';
-$lang['settingsSoundChatBot'] = 'Zvok za chatbot sporočila:';
-$lang['settingsSoundError'] = 'Zvuk za sporočila o napakah:';
-$lang['settingsBlink'] = 'Trepetanje imena okna za nova sporočila:';
-$lang['settingsBlinkInterval'] = 'Interval trepetanja v milisekundah:';
-$lang['settingsBlinkIntervalNumber'] = 'Število intervalov trepetanja:';
-$lang['playSelectedSound'] = 'Reprodukcija izbranega zvoka';
-$lang['requiresJavaScript'] = 'Za uporabo klepetalnice moraš imeti nameščen JavaScript!';
-$lang['errorInvalidUser'] = 'Napačno uporabniško ime!';
-$lang['errorUserInUse'] = 'Uporabnik je že prijavljen!';
-$lang['errorBanned'] = 'Uporabnik ali ta IP je prepovedan!';
-$lang['errorMaxUsersLoggedIn'] = 'Na kleptu je prijavljeno maksimalno število uporabnikov!';
-$lang['errorChatClosed'] = 'Klepet je trenutno nedostopen!';
-$lang['logsTitle'] = 'Klepet - Beležke';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Ura';
-$lang['logsSearch'] = 'Iskanje';
-$lang['logsPrivateChannels'] = 'Privatne sobe';
-$lang['logsPrivateMessages'] = 'Privatna sporočila';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/sr.php b/library/ajaxchat/chat/lib/lang/sr.php
deleted file mode 100644
index a14ba5512..000000000
--- a/library/ajaxchat/chat/lib/lang/sr.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Saša Stojanović
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Korisničko ime';
-$lang['password'] = 'Lozinka';
-$lang['login'] = 'Prijava';
-$lang['logout'] = 'Odjava';
-$lang['channel'] = 'Soba';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Jezik';
-$lang['inputLineBreak'] = 'Pritisnite SHIFT+ENTER za novi red';
-$lang['messageSubmit'] = 'Pošalji';
-$lang['registeredUsers'] = 'Registrovani korisnici';
-$lang['onlineUsers'] = 'Prisutni korisnici';
-$lang['toggleAutoScroll'] = 'Automatsko pomeranje teksta uključeno/isključeno';
-$lang['toggleAudio'] = 'Zvuk uključen/isključen';
-$lang['toggleHelp'] = 'Pomoć prikaži/sakrij';
-$lang['toggleSettings'] = 'Podešavanja prikaži/sakrij';
-$lang['toggleOnlineList'] = 'Prisutne korisnike prikaži/sakrij';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citiranje';
-$lang['bbCodeLabelCode'] = 'Kod';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Boja fonta';
-$lang['bbCodeTitleBold'] = 'Podebljan tekst: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Iskrivljen tekst: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Podvučen tekst: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Citiran tekst: [quote]text[/quote] ili [quote=autor]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Prikazivanje koda: [code]kod[/code]';
-$lang['bbCodeTitleURL'] = 'Unesi URL: [url]http://www.example.org/[/url] ili [url=http://www.example.org/]text[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Boja fonta: [color=red]text[/color]';
-$lang['help'] = 'Pomoć';
-$lang['helpItemDescJoin'] = 'Priključi se sobi:';
-$lang['helpItemCodeJoin'] = '/join Naziv sobe';
-$lang['helpItemDescJoinCreate'] = 'Napravi privatnu sobu (samo registrovani korisnici):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Pozovi korisnika u privatnu sobu:';
-$lang['helpItemCodeInvite'] = '/invite Korisnik';
-$lang['helpItemDescUninvite'] = 'Opoziv poziva u privatnu sobu korisnika:';
-$lang['helpItemCodeUninvite'] = '/uninvite Korisnik';
-$lang['helpItemDescLogout'] = 'Odjavljivanje:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privatna poruka:';
-$lang['helpItemCodePrivateMessage'] = '/msg Korisnik Tekst poruke';
-$lang['helpItemDescQueryOpen'] = 'Otvori privatnu sobu:';
-$lang['helpItemCodeQueryOpen'] = '/query Korisnik';
-$lang['helpItemDescQueryClose'] = 'Zatvori privatnu sobu:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Opiši akciju:';
-$lang['helpItemCodeAction'] = '/action Tekst';
-$lang['helpItemDescDescribe'] = 'Opiši akciju u privatnoj poruci:';
-$lang['helpItemCodeDescribe'] = '/describe Korisnik Tekst';
-$lang['helpItemDescIgnore'] = 'Prikazuj/neprikazuj poruke od korisnika:';
-$lang['helpItemCodeIgnore'] = '/ignore Korisnik';
-$lang['helpItemDescIgnoreList'] = 'Lista ignorisanih korisnika:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Prikaži u kojoj sobi je korisnik:';
-$lang['helpItemCodeWhereis'] = '/whereis Korisnik';
-$lang['helpItemDescKick'] = 'Zabrani korisnika (samo za Moderatore):';
-$lang['helpItemCodeKick'] = '/kick Korisnik [vreme zabrane u minutima]';
-$lang['helpItemDescUnban'] = 'Opozovi zabranu korisnika (samo za Moderatore):';
-$lang['helpItemCodeUnban'] = '/unban Korisnik';
-$lang['helpItemDescBans'] = 'Lista zabranjenih korisnika (samo za Moderatore):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Prikaži IP korisnika (samo za Moderatore):';
-$lang['helpItemCodeWhois'] = '/whois Korisnik';
-$lang['helpItemDescWho'] = 'Lista prijavljenih korisnika:';
-$lang['helpItemCodeWho'] = '/who [Ime sobe]';
-$lang['helpItemDescList'] = 'Lista dostupnih soba:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Baci kocku:';
-$lang['helpItemCodeRoll'] = '/roll [broj]d[strana]';
-$lang['helpItemDescNick'] = 'Promeni Korisničko ime:';
-$lang['helpItemCodeNick'] = '/nick Korisnik';
-$lang['settings'] = 'Podešavanja';
-$lang['settingsBBCode'] = 'Omogući BB kod:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Omogući hiperlinkove:';
-$lang['settingsLineBreaks'] = 'Omugući novi red:';
-$lang['settingsEmoticons'] = 'Omugući emocije:';
-$lang['settingsAutoFocus'] = 'Automatski podesi fokus na polje za unos teksta:';
-$lang['settingsMaxMessages'] = 'Maksimalni broj poruka u chat listi:';
-$lang['settingsWordWrap'] = 'Omogući omotavanje dugačkih reči:';
-$lang['settingsMaxWordLength'] = 'Maksimalna dužina reči pre nego što se omota:';
-$lang['settingsDateFormat'] = 'Format prikaza datuma i vremena:';
-$lang['settingsPersistFontColor'] = 'Stalna boja fonta:';
-$lang['settingsAudioVolume'] = 'Jačina zvuka:';
-$lang['settingsSoundReceive'] = 'Zvuk za primljene poruke:';
-$lang['settingsSoundSend'] = 'Zvuk za poslate poruke:';
-$lang['settingsSoundEnter'] = 'Zvuk za prijavljivanje i ulazak u sobu:';
-$lang['settingsSoundLeave'] = 'Zvuk za odjavljivanje i izlazak iz sobe:';
-$lang['settingsSoundChatBot'] = 'Zvuk za chatbot poruke:';
-$lang['settingsSoundError'] = 'Zvuk za poruke o grešci:';
-$lang['settingsBlink'] = 'Treptanje naziva prozora za nove poruke:';
-$lang['settingsBlinkInterval'] = 'Interval treptanja u milisekundama:';
-$lang['settingsBlinkIntervalNumber'] = 'Broj intervala treptanja:';
-$lang['playSelectedSound'] = 'Reprodukcija selektovanog zvuka';
-$lang['requiresJavaScript'] = 'JavaScript je neophodan za ovaj chat.';
-$lang['errorInvalidUser'] = 'Pogrešno korisničko ime.';
-$lang['errorUserInUse'] = 'Korisnik je već prijavljen.';
-$lang['errorBanned'] = 'Korisnik ili IP je zabranjen.';
-$lang['errorMaxUsersLoggedIn'] = 'Na chatu je prijavljen maksimalni broj korisnika.';
-$lang['errorChatClosed'] = 'Chat je trenutno nedostupan.';
-$lang['logsTitle'] = 'AJAX Chat - Beleške';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Vreme';
-$lang['logsSearch'] = 'Pretraga';
-$lang['logsPrivateChannels'] = 'Privatne sobe';
-$lang['logsPrivateMessages'] = 'Privatne poruke';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/sv.php b/library/ajaxchat/chat/lib/lang/sv.php
deleted file mode 100644
index 87f03a0ce..000000000
--- a/library/ajaxchat/chat/lib/lang/sv.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Eric [June 7,2008]
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Användarnamn';
-$lang['password'] = 'Lösenord';
-$lang['login'] = 'Logga In';
-$lang['logout'] = 'Logga Ut';
-$lang['channel'] = 'Kanal';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Språk';
-$lang['inputLineBreak'] = 'Håll ner SHIFT+ENTER för att göra ett radbryt';
-$lang['messageSubmit'] = 'Skicka';
-$lang['registeredUsers'] = 'Registerade Användare';
-$lang['onlineUsers'] = 'Användare OnLine';
-$lang['toggleAutoScroll'] = 'Autoscroll av/på';
-$lang['toggleAudio'] = 'Ljud av/på';
-$lang['toggleHelp'] = 'Visa/göm hjälp';
-$lang['toggleSettings'] = 'Visa/göm inställningar';
-$lang['toggleOnlineList'] = 'Visa/göm OnLine-listan';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Citera';
-$lang['bbCodeLabelCode'] = 'Kod';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Textfärg';
-$lang['bbCodeTitleBold'] = 'Fet text: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Kursiv text: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Understruken text: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Citera text: [quote]text[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Visa kod: [code]code[/code]';
-$lang['bbCodeTitleURL'] = 'Lägg till URL: [url]http://www.example.org/[/url] or [url=http://www.example.org/]text[/url]';
-$lang['bbCodeTitleImg'] = 'Infoga bild: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Textfärg: [color=red]text[/color]';
-$lang['help'] = 'Hjälp';
-$lang['helpItemDescJoin'] = 'Anslut till kanal:';
-$lang['helpItemCodeJoin'] = '/join Kanalens namn';
-$lang['helpItemDescJoinCreate'] = 'Skapa privat rum (Endast registrerade användare):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Bjud in någon (eg till ett privat rum):';
-$lang['helpItemCodeInvite'] = '/invite Användare';
-$lang['helpItemDescUninvite'] = 'Upphäv inbjudan:';
-$lang['helpItemCodeUninvite'] = '/uninvite Användare';
-$lang['helpItemDescLogout'] = 'Logga ut från Chatten:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Privat meddelande:';
-$lang['helpItemCodePrivateMessage'] = '/msg Användare Text';
-$lang['helpItemDescQueryOpen'] = 'Öppna privat kanal:';
-$lang['helpItemCodeQueryOpen'] = '/query Användare';
-$lang['helpItemDescQueryClose'] = 'Stäng privat kanal:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Beskriv händelse:';
-$lang['helpItemCodeAction'] = '/action Text';
-$lang['helpItemDescDescribe'] = 'Beskriv händelse i privat meddelande:';
-$lang['helpItemCodeDescribe'] = '/describe Användare Text';
-$lang['helpItemDescIgnore'] = 'Ignorera/acceptera meddelande från användare:';
-$lang['helpItemCodeIgnore'] = '/ignore Användare';
-$lang['helpItemDescIgnoreList'] = 'Lista ignorerade användare:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Visa användare &amp; kanal:';
-$lang['helpItemCodeWhereis'] = '/whereis Användarnamn';
-$lang['helpItemDescKick'] = 'Sparka användare (Endast moderatorer):';
-$lang['helpItemCodeKick'] = '/kick Användare [Minuter bannad]';
-$lang['helpItemDescUnban'] = 'Upphäv banning av användare (Endast moderatorer):';
-$lang['helpItemCodeUnban'] = '/unban Användare';
-$lang['helpItemDescBans'] = 'Lista bannade användare (Endast moderatorer):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Visa användares IP (Endast moderatorer):';
-$lang['helpItemCodeWhois'] = '/whois Användare';
-$lang['helpItemDescWho'] = 'Lista användare online:';
-$lang['helpItemCodeWho'] = '/who [Kanalnamn]';
-$lang['helpItemDescList'] = 'Lista tillgängliga kanaler:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Rulla tärning:';
-$lang['helpItemCodeRoll'] = '/roll [siffra]d[sidor]';
-$lang['helpItemDescNick'] = 'Ändra användarnamn:';
-$lang['helpItemCodeNick'] = '/nick Användarnamn';
-$lang['settings'] = 'Inställningar';
-$lang['settingsBBCode'] = 'Aktivera BBCode:';
-$lang['settingsBBCodeImages'] = 'Aktivera BBCode bilder:';
-$lang['settingsBBCodeColors'] = 'Enable BBCode textfärg:';
-$lang['settingsHyperLinks'] = 'Aktivera länkar:';
-$lang['settingsLineBreaks'] = 'Aktivera radbryt:';
-$lang['settingsEmoticons'] = 'Aktivera smiley\'s:';
-$lang['settingsAutoFocus'] = 'Sätt fokus automatiskt på skrivraden:';
-$lang['settingsMaxMessages'] = 'Maximalt antal meddelanden i Chatlistan:';
-$lang['settingsWordWrap'] = 'Aktivera "wrapping" av långa ord:';
-$lang['settingsMaxWordLength'] = 'Maxlängd på ord innan det blir avdelat:';
-$lang['settingsDateFormat'] = 'Visningsformat av datum och tid:';
-$lang['settingsPersistFontColor'] = 'Behåll textfärg:';
-$lang['settingsAudioVolume'] = 'Volym:';
-$lang['settingsSoundReceive'] = 'Ljud för inkommande meddelanden:';
-$lang['settingsSoundSend'] = 'Ljud för utgående meddelanden:';
-$lang['settingsSoundEnter'] = 'Ljud för Logga in/Kanal meddelanden:';
-$lang['settingsSoundLeave'] = 'Ljud för Logga ut/lämna Kanal meddelanden:';
-$lang['settingsSoundChatBot'] = 'Ljud för Chatbot meddelanden:';
-$lang['settingsSoundError'] = 'Ljud för felmeddelanden:';
-$lang['settingsBlink'] = 'Blinka fönstrets titel vid nya meddelanden:';
-$lang['settingsBlinkInterval'] = 'Blinkintervall i millisekunder:';
-$lang['settingsBlinkIntervalNumber'] = 'Antal blinkintervaller:';
-$lang['playSelectedSound'] = 'Spela valt ljud';
-$lang['requiresJavaScript'] = 'JavaScript krävs för denna Chat.';
-$lang['errorInvalidUser'] = 'Ogiltigt användarnamn.';
-$lang['errorUserInUse'] = 'Användarnamnet är redan i bruk.';
-$lang['errorBanned'] = 'Användaren eller IP-numret är bannat.';
-$lang['errorMaxUsersLoggedIn'] = 'Chatten är full. Max antal användare är inloggade.';
-$lang['errorChatClosed'] = 'Chatten är stängd för tillfället.';
-$lang['logsTitle'] = 'AJAX Chat - Loggfiler';
-$lang['logsDate'] = 'Datum';
-$lang['logsTime'] = 'Tid';
-$lang['logsSearch'] = 'Sök';
-$lang['logsPrivateChannels'] = 'Privata Kanaler';
-$lang['logsPrivateMessages'] = 'Privata Meddelanden';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/th.php b/library/ajaxchat/chat/lib/lang/th.php
deleted file mode 100644
index 7ed3b1ef0..000000000
--- a/library/ajaxchat/chat/lib/lang/th.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- * @Translate by Charge01 @ http://www.thaira2lovers.co.cc
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'ชื่อผู้ใช้';
-$lang['password'] = 'รหัสผ่าน';
-$lang['login'] = 'เข้าสู่ระบบ';
-$lang['logout'] = 'ออกจากระบบ';
-$lang['channel'] = 'ห้องแชท';
-$lang['style'] = 'รูปแบบ';
-$lang['language'] = 'ภาษา';
-$lang['inputLineBreak'] = 'กด SHIFT+ENTER เพื่อเว้นบรรทัด';
-$lang['messageSubmit'] = 'ส่ง';
-$lang['registeredUsers'] = 'ผู้ใช้ที่ลงทะเบียนแล้ว';
-$lang['onlineUsers'] = 'ผู้ใช้ออนไลน์อยู่';
-$lang['toggleAutoScroll'] = 'เลื่อนอัตโนมัติ เปิด/ปิด';
-$lang['toggleAudio'] = 'เสียง เปิด/ปิด';
-$lang['toggleHelp'] = 'ช่วยเหลือ แสดง/ซ่อน';
-$lang['toggleSettings'] = 'ตั้งค่า แสดง/ซ่อน';
-$lang['toggleOnlineList'] = 'ผู้ใช้ออนไลน์ แสดง/ซ่อน';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'อ้างอิง';
-$lang['bbCodeLabelCode'] = 'โค๊ด';
-$lang['bbCodeLabelURL'] = 'ลิงค์';
-$lang['bbCodeLabelImg'] = 'ภาพ';
-$lang['bbCodeLabelColor'] = 'สีอักษร';
-$lang['bbCodeTitleBold'] = 'อักษรตัวหน้า: [b]ข้อความ[/b]';
-$lang['bbCodeTitleItalic'] = 'อักษรตัวเอียง: [i]ข้อความ[/i]';
-$lang['bbCodeTitleUnderline'] = 'อักษรขีดเส้นใต้: [u]ข้อความ[/u]';
-$lang['bbCodeTitleQuote'] = 'อ้างอิงข้อความ: [quote]ข้อความ[/quote] หรือ [quote=เจ้าของข้อความ]ข้อความ[/quote]';
-$lang['bbCodeTitleCode'] = 'แสดงโค๊ด: [code]โค๊ด[/code]';
-$lang['bbCodeTitleURL'] = 'แทรกลิงค์: [url]http://example.org[/url] or [url=http://example.org]ข้อความ[/url]';
-$lang['bbCodeTitleImg'] = 'แทรกภาพ: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'ตัวอักษรสี: [color=red]ข้อความ[/color]';
-$lang['help'] = 'ช่วยเหลือ';
-$lang['helpItemDescJoin'] = 'ร่วมห้องแชท:';
-$lang['helpItemCodeJoin'] = '/join ชื่อห้องแชท';
-$lang['helpItemDescJoinCreate'] = 'สร้างห้องส่วนตัว (สำหรับสมาชิกเท่านั้น):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'เชิญใครสักคน (เช่น คุยในห้องส่วนตัว):';
-$lang['helpItemCodeInvite'] = '/invite ชื่อผู้ใช้';
-$lang['helpItemDescUninvite'] = 'ถอนคำเชิญ:';
-$lang['helpItemCodeUninvite'] = '/uninvite ชื่อผู้ใช้';
-$lang['helpItemDescLogout'] = 'ออกจากระบบห้องแชท:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'ข้อความส่วนตัว:';
-$lang['helpItemCodePrivateMessage'] = '/msg ชื่อผู้ใช้ ข้อความ';
-$lang['helpItemDescQueryOpen'] = 'เปิดห้องส่วนตัว:';
-$lang['helpItemCodeQueryOpen'] = '/query ชื่อผู้ใช้';
-$lang['helpItemDescQueryClose'] = 'ปิดห้องส่วนตัว:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'บอกสิ่งกระทำ:';
-$lang['helpItemCodeAction'] = '/action สิ่งที่ำกำลังทำ';
-$lang['helpItemDescDescribe'] = 'บอกสิ่งที่กระทำในข้อความส่วนตัว:';
-$lang['helpItemCodeDescribe'] = '/describe ชื่อผู้ใช้ ข้อความ';
-$lang['helpItemDescIgnore'] = 'ไม่สนใจ/ยอมรับ ข้อความจากผู้ใช้:';
-$lang['helpItemCodeIgnore'] = '/ignore ชื่อผู้ใช้';
-$lang['helpItemDescIgnoreList'] = 'รายการผู้ใช้ที่ไม่สนใจ:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'แสดงผู้ใช้อยู่ในห้อง:';
-$lang['helpItemCodeWhereis'] = '/whereis ชื่อผู้ใช้';
-$lang['helpItemDescKick'] = 'ไล่ผู้ใช้ (ผู้ดูแลเท่านั้น):';
-$lang['helpItemCodeKick'] = '/kick ผู้ใช้ [แบนในหนึ่งนาที]';
-$lang['helpItemDescUnban'] = 'ยกเลิกแบนผู้ใช้ (ผู้ดูแลเท่านั้น):';
-$lang['helpItemCodeUnban'] = '/unban ชื่อผู้ใช้';
-$lang['helpItemDescBans'] = 'รายการผู้ใช้ถูกแบน (ผู้ดูแลเท่านั้น):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'แสดง IP ของผู้ใช้ (ผู้ดูแลเท่านั้น):';
-$lang['helpItemCodeWhois'] = '/whois ชื่อผู้ใช้';
-$lang['helpItemDescWho'] = 'รายชื่อผู้ใช้ที่ออนไลน์:';
-$lang['helpItemCodeWho'] = '/who [ชื่อห้อง]';
-$lang['helpItemDescList'] = 'รายชื่อห้องที่มีอยู่:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'ทอยลูกเต๋า:';
-$lang['helpItemCodeRoll'] = '/roll [เลข]d[ด้าน]';
-$lang['helpItemDescNick'] = 'เปลี่ยนชื่อผู้ใช้:';
-$lang['helpItemCodeNick'] = '/nick ชื่อผู้ใช้ใหม่';
-$lang['settings'] = 'ตั้งค่า';
-$lang['settingsBBCode'] = 'เปิดใช้งาน BBCode:';
-$lang['settingsBBCodeImages'] = 'เปิดใช้งาน BBCode ภาพ:';
-$lang['settingsBBCodeColors'] = 'เปิดใช้งาน อักษรสี BBCode:';
-$lang['settingsHyperLinks'] = 'เปิดใช้งานลิงค์:';
-$lang['settingsLineBreaks'] = 'เปิดใช้งานการเว้นบรรทัด:';
-$lang['settingsEmoticons'] = 'เปิดใช้งาน รูปแสดงอารมณ์:';
-$lang['settingsAutoFocus'] = 'ตั้งโฟกัสในช่องพิมพ์อัตโนมัติ:';
-$lang['settingsMaxMessages'] = 'อักษรที่สามารถให้พิมพ์ได้มากสุดในข้อความ:';
-$lang['settingsWordWrap'] = 'เปิดใช้งานการเว้นบรรทัดข้อความที่ยาว:';
-$lang['settingsMaxWordLength'] = 'ความาวของคำก่อนที่จะเว้นบรรทัดใหม่ให้:';
-$lang['settingsDateFormat'] = 'รูปแบบวันที่และเวลา:';
-$lang['settingsPersistFontColor'] = 'สีอักษรทั้งข้อความ:';
-$lang['settingsAudioVolume'] = 'ระดับเสียง:';
-$lang['settingsSoundReceive'] = 'เสียงสำหรับข้อความเข้า:';
-$lang['settingsSoundSend'] = 'เสียงสำหรับข้อความออกไป:';
-$lang['settingsSoundEnter'] = 'เสียงสำหรับเข้าระบบและเข้าห้อง:';
-$lang['settingsSoundLeave'] = 'เสียงสำหรับออกจากระบบและออกจากห้อง:';
-$lang['settingsSoundChatBot'] = 'เสียงสำหรับข้อความจาำกระบบ:';
-$lang['settingsSoundError'] = 'เสียงสำหรับข้อความผิดพลาด:';
-$lang['settingsBlink'] = 'มีสัญญาณ กระพริบบน Title Bar เมื่อมีข้อความใหม่:';
-$lang['settingsBlinkInterval'] = 'Blink interval in milliseconds:';
-$lang['settingsBlinkIntervalNumber'] = 'Number of blink intervals:';
-$lang['playSelectedSound'] = 'เล่นเสียงที่เลือก';
-$lang['requiresJavaScript'] = 'ต้องการจาวาสคริปสำหรับห้องแชท';
-$lang['errorInvalidUser'] = 'ชื่อผู้ใช้ผิดพลาด';
-$lang['errorUserInUse'] = 'ชื่อผู้ใช้นี้กำลังใช้งานอยู่';
-$lang['errorBanned'] = 'ผู้ใช้นี้หรือ IP นี้ถูกแบน';
-$lang['errorMaxUsersLoggedIn'] = 'ห้องแชทเต็ม';
-$lang['errorChatClosed'] = 'ห้องแชทถูกปิดชั่วคราว';
-$lang['logsTitle'] = 'AJAX Chat - บันทึกการใช้งาน';
-$lang['logsDate'] = 'วันที่';
-$lang['logsTime'] = 'เวลา';
-$lang['logsSearch'] = 'ค้นหา';
-$lang['logsPrivateChannels'] = 'ห้องส่วนตัว';
-$lang['logsPrivateMessages'] = 'ข้อความส่วนตัว';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/tr.php b/library/ajaxchat/chat/lib/lang/tr.php
deleted file mode 100644
index 00f7dfaa6..000000000
--- a/library/ajaxchat/chat/lib/lang/tr.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Cydonian
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Üye adı';
-$lang['password'] = 'Şifre';
-$lang['login'] = 'Giriş';
-$lang['logout'] = 'Çıkış';
-$lang['channel'] = 'Kanal';
-$lang['style'] = 'Stil';
-$lang['language'] = 'Dil';
-$lang['inputLineBreak'] = 'Bir satır ara için SHIFT+ENTER tuşlarına basınız';
-$lang['messageSubmit'] = 'Gönder';
-$lang['registeredUsers'] = 'Kayıtlı Üyeler';
-$lang['onlineUsers'] = 'Çevrimiçi üyeler';
-$lang['toggleAutoScroll'] = 'Otomatik kaydırma aç/kapat';
-$lang['toggleAudio'] = 'Ses aç/kapat';
-$lang['toggleHelp'] = 'Yardımı göster/sakla';
-$lang['toggleSettings'] = 'Ayarları göster/sakla';
-$lang['toggleOnlineList'] = 'Çevrimiçi listesini göster/sakla';
-$lang['bbCodeLabelBold'] = 'b';
-$lang['bbCodeLabelItalic'] = 'i';
-$lang['bbCodeLabelUnderline'] = 'u';
-$lang['bbCodeLabelQuote'] = 'Büyük';
-$lang['bbCodeLabelCode'] = 'Kod';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Resim';
-$lang['bbCodeLabelColor'] = 'Renkli Yazı';
-$lang['bbCodeTitleBold'] = 'Kalın text: [b]text[/b]';
-$lang['bbCodeTitleItalic'] = 'Eğik text: [i]text[/i]';
-$lang['bbCodeTitleUnderline'] = 'Altçizgili text: [u]text[/u]';
-$lang['bbCodeTitleQuote'] = 'Büyük text: [quote]text[/quote] or [quote=author]text[/quote]';
-$lang['bbCodeTitleCode'] = 'Kod gösterim: [code]kod[/code]';
-$lang['bbCodeTitleURL'] = 'URL gir: [url]http://example.org[/url] veya [url=http://example.org]text[/url]';
-$lang['bbCodeTitleImg'] = 'Resim gir: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Font Rengi: [color=red]text[/color]';
-$lang['help'] = 'Yardım';
-$lang['helpItemDescJoin'] = 'Bir kanala girin:';
-$lang['helpItemCodeJoin'] = '/join kanalismi';
-$lang['helpItemDescJoinCreate'] = 'Özel oda aç (Sadece kayıtlı üyeler için):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Birisini Davet Et (örn. özel bir odaya):';
-$lang['helpItemCodeInvite'] = '/invite üyeismi';
-$lang['helpItemDescUninvite'] = 'Daveti İptal Et:';
-$lang['helpItemCodeUninvite'] = '/uninvite üyeismi';
-$lang['helpItemDescLogout'] = 'Sohbetten Çık:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Özel mesaj:';
-$lang['helpItemCodePrivateMessage'] = '/msg üyeismi mesaj';
-$lang['helpItemDescQueryOpen'] = 'Özel bir kanal aç:';
-$lang['helpItemCodeQueryOpen'] = '/query üyeismi';
-$lang['helpItemDescQueryClose'] = 'Özel bir kanalı kapat:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Aksiyon:';
-$lang['helpItemCodeAction'] = '/action mesaj';
-$lang['helpItemDescDescribe'] = 'Özel mesajda aksiyon:';
-$lang['helpItemCodeDescribe'] = '/describe üyeismi mesaj';
-$lang['helpItemDescIgnore'] = 'Üyeden gelen mesajları Blokla/KabulEt:';
-$lang['helpItemCodeIgnore'] = '/ignore üyeismi';
-$lang['helpItemDescIgnoreList'] = 'Bloklanmış üyeleri listele:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Üyenin kanalını göster:';
-$lang['helpItemCodeWhereis'] = '/whereis üyeismi';
-$lang['helpItemDescKick'] = 'Üyeyi at (Sadece Moderatörler):';
-$lang['helpItemCodeKick'] = '/kick üyeismi [Yasaklanan Dakika]';
-$lang['helpItemDescUnban'] = 'Üyenin yasağını kaldır (Sadece Moderatörler):';
-$lang['helpItemCodeUnban'] = '/unban üyeismi';
-$lang['helpItemDescBans'] = 'Yasaklanan üyeleri listele (Sadece Moderatörler):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Üyenin IP adresini göster (Sadece Moderatörler):';
-$lang['helpItemCodeWhois'] = '/whois üyeismi';
-$lang['helpItemDescWho'] = 'Çevrimiçi üyeleri listele:';
-$lang['helpItemCodeWho'] = '/who [kanalismi]';
-$lang['helpItemDescList'] = 'Kullanılabilir kanalları listele:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Zarları at:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = 'Üye ismini değiştir:';
-$lang['helpItemCodeNick'] = '/nick üyeismi';
-$lang['settings'] = 'Ayarlar';
-$lang['settingsBBCode'] = 'BBCode u aç:';
-$lang['settingsBBCodeImages'] = 'Resim BBCode u aç:';
-$lang['settingsBBCodeColors'] = 'Font Rengi BBCode u aç:';
-$lang['settingsHyperLinks'] = 'Bağlantıları (link) aç:';
-$lang['settingsLineBreaks'] = 'Satır aralarını aç:';
-$lang['settingsEmoticons'] = 'Emoticons ı aç:';
-$lang['settingsAutoFocus'] = 'Giriş kutusuna otomatik odaklan:';
-$lang['settingsMaxMessages'] = 'Sohbet listesinde maksimum mesaj sayısı:';
-$lang['settingsWordWrap'] = 'Uzun kelimeleri kısaltmayı aç:';
-$lang['settingsMaxWordLength'] = 'Kısaltılacak kelimenin maksimum uzunluğu:';
-$lang['settingsDateFormat'] = 'Tarih ve zaman gösterim formatı:';
-$lang['settingsPersistFontColor'] = 'Kalıcı font rengi:';
-$lang['settingsAudioVolume'] = 'Ses Düzeyi:';
-$lang['settingsSoundReceive'] = 'Gelen mesaj sesi:';
-$lang['settingsSoundSend'] = 'Giden mesaj sesi:';
-$lang['settingsSoundEnter'] = 'Giriş ve kanala giriş sesi:';
-$lang['settingsSoundLeave'] = 'Çıkış ve kanaldan çıkış sesi:';
-$lang['settingsSoundChatBot'] = 'Chatbot mesajları sesi:';
-$lang['settingsSoundError'] = 'Hata mesajları sesi:';
-$lang['settingsBlink'] = 'Yeni mesaj geldiğinde pencere başlığını kırp:';
-$lang['settingsBlinkInterval'] = 'Milisaniye olarak kırpma aralığı:';
-$lang['settingsBlinkIntervalNumber'] = 'Kırpma sayısı aralığı:';
-$lang['playSelectedSound'] = 'Seçili sesi çal';
-$lang['requiresJavaScript'] = 'Bu Sohbet için JavaScript gereklidir.';
-$lang['errorInvalidUser'] = 'Geçersiz üyeismi.';
-$lang['errorUserInUse'] = 'Üyeismi kullanımda.';
-$lang['errorBanned'] = 'Üye veya IP yasaklanmıştır.';
-$lang['errorMaxUsersLoggedIn'] = 'Sohbet maksimum kullanıcı sayısına ulaştı.';
-$lang['errorChatClosed'] = 'Sohbet şu anda kapalıdır.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Tarih';
-$lang['logsTime'] = 'Saat';
-$lang['logsSearch'] = 'Ara';
-$lang['logsPrivateChannels'] = 'Özel Kanallar';
-$lang['logsPrivateMessages'] = 'Özel Mesajlar';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/uk.php b/library/ajaxchat/chat/lib/lang/uk.php
deleted file mode 100644
index a7d80c16b..000000000
--- a/library/ajaxchat/chat/lib/lang/uk.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author Yuriy Smetana (yura@stryi.com.ua, http://joomla.org.ua)
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = 'Ім\'я користувача';
-$lang['password'] = 'Пароль';
-$lang['login'] = 'Увійти';
-$lang['logout'] = 'Вийти';
-$lang['channel'] = 'Кімната';
-$lang['style'] = 'Стиль';
-$lang['language'] = 'Мова';
-$lang['inputLineBreak'] = 'Використовуйте SHIFT+ENTER для нового рядка';
-$lang['messageSubmit'] = 'Надіслати';
-$lang['registeredUsers'] = 'Зареєстровані користувачі';
-$lang['onlineUsers'] = 'Зараз в Чаті';
-$lang['toggleAutoScroll'] = 'Прогортувати: так/ні';
-$lang['toggleAudio'] = 'Звік: так/ні';
-$lang['toggleHelp'] = 'Показати допомогу: так/ні';
-$lang['toggleSettings'] = 'Показати налаштування: так/ні';
-$lang['toggleOnlineList'] = 'Хто в Чаті: так/ні';
-$lang['bbCodeLabelBold'] = 'Ж';
-$lang['bbCodeLabelItalic'] = 'Н';
-$lang['bbCodeLabelUnderline'] = 'П';
-$lang['bbCodeLabelQuote'] = 'Цитата';
-$lang['bbCodeLabelCode'] = 'Код';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = 'Колір шрифту';
-$lang['bbCodeTitleBold'] = 'Жирний текст: [b]текст[/b]';
-$lang['bbCodeTitleItalic'] = 'Текст курсивом: [i]текст[/i]';
-$lang['bbCodeTitleUnderline'] = 'Підкреслений текст: [u]текст[/u]';
-$lang['bbCodeTitleQuote'] = 'Цитований текст: [quote]текст[/quote] чи [quote=author]текст[/quote]';
-$lang['bbCodeTitleCode'] = 'Показати код: [code]код[/code]';
-$lang['bbCodeTitleURL'] = 'Показати URL: [url]http://example.org[/url] or [url=http://example.org]текст[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = 'Колір шрифту: [color=red]текст[/color]';
-$lang['help'] = 'Допомога';
-$lang['helpItemDescJoin'] = 'Зайти в кімнату:';
-$lang['helpItemCodeJoin'] = '/join Назва_Кімнати';
-$lang['helpItemDescJoinCreate'] = 'Створити приватну кімнату (тільки для зареєстрованих користувачів):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = 'Запросити когось (наприклад до приватної кімнати):';
-$lang['helpItemCodeInvite'] = '/invite Користувач';
-$lang['helpItemDescUninvite'] = 'Відмінити запрошення:';
-$lang['helpItemCodeUninvite'] = '/uninvite Користувач';
-$lang['helpItemDescLogout'] = 'Вийти з чату:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = 'Приватне повідомлення:';
-$lang['helpItemCodePrivateMessage'] = '/msg Користувач Текст';
-$lang['helpItemDescQueryOpen'] = 'Створити приватну кімнату:';
-$lang['helpItemCodeQueryOpen'] = '/query Користувач';
-$lang['helpItemDescQueryClose'] = 'Закрити приватну кімнату:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = 'Описати чим займаєтесь:';
-$lang['helpItemCodeAction'] = '/action Що Робите';
-$lang['helpItemDescDescribe'] = 'Описати чим займаєтесь, в приватному повідомленні:';
-$lang['helpItemCodeDescribe'] = '/describe Кому Що Робите';
-$lang['helpItemDescIgnore'] = 'Ігнорувати/приймати повідомлення від користувача:';
-$lang['helpItemCodeIgnore'] = '/ignore Користувач';
-$lang['helpItemDescIgnoreList'] = 'Перелік ігнорованих користувачів:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = 'Показати кімнату користувача:';
-$lang['helpItemCodeWhereis'] = '/whereis Користувач';
-$lang['helpItemDescKick'] = 'Вигнати користувача (тільки для модераторів):';
-$lang['helpItemCodeKick'] = '/kick Користувач [на скільки хвилин]';
-$lang['helpItemDescUnban'] = 'Розблокувати користувача (тільки для модераторів):';
-$lang['helpItemCodeUnban'] = '/unban Користувач';
-$lang['helpItemDescBans'] = 'Перелік заблокованих користувачів:';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = 'Показати ІР користувача (тільки для модераторів):';
-$lang['helpItemCodeWhois'] = '/whois Користувач';
-$lang['helpItemDescWho'] = 'Хто в Чаті:';
-$lang['helpItemCodeWho'] = '/who [Кімната]';
-$lang['helpItemDescList'] = 'Перелік кімнат:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = 'Кинути кості:';
-$lang['helpItemCodeRoll'] = '/roll [к-сть]d[к-сть сторін]';
-$lang['helpItemDescNick'] = 'Змінити ім\'я користувача:';
-$lang['helpItemCodeNick'] = '/nick Користувач';
-$lang['settings'] = 'Налаштування';
-$lang['settingsBBCode'] = 'Дозволити коди BB:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = 'Дозволити посилання:';
-$lang['settingsLineBreaks'] = 'Дозволити багаторядковість:';
-$lang['settingsEmoticons'] = 'Дозволити хихоньки:';
-$lang['settingsAutoFocus'] = 'Автоматично встановлювати фокус на полі вводу:';
-$lang['settingsMaxMessages'] = 'Максимальна кількість повідомлень у вікні Чату:';
-$lang['settingsWordWrap'] = 'Розділювати довгі слова:';
-$lang['settingsMaxWordLength'] = 'Максимальна довжина слова після якої його буде розділено:';
-$lang['settingsDateFormat'] = 'Формат дати та часу:';
-$lang['settingsPersistFontColor'] = 'Колір для привернення уваги:';
-$lang['settingsAudioVolume'] = 'Гучність:';
-$lang['settingsSoundReceive'] = 'Звук для отриманих повідомлень:';
-$lang['settingsSoundSend'] = 'Звук для надісланих повідомлень:';
-$lang['settingsSoundEnter'] = 'Звук для події входу в Чат чи кімнату:';
-$lang['settingsSoundLeave'] = 'Звук для події виходу з Чату чи кімнати:';
-$lang['settingsSoundChatBot'] = 'Звук для системних повідомлень:';
-$lang['settingsSoundError'] = 'Звук для помилок:';
-$lang['settingsBlink'] = 'Сигналізувати при появі нових повідомлень (блимання заголовку вікна):';
-$lang['settingsBlinkInterval'] = 'Тривалість блимання заголовку вікна:';
-$lang['settingsBlinkIntervalNumber'] = 'Кількість блимань:';
-$lang['playSelectedSound'] = 'Відтворити обраний звук';
-$lang['requiresJavaScript'] = 'Для цього Чату потрібно дозволити JavaScript.';
-$lang['errorInvalidUser'] = 'Неправильне ім\'я користувача.';
-$lang['errorUserInUse'] = 'Таке ім\'я вже використовується';
-$lang['errorBanned'] = 'Користувач або IP заблокований.';
-$lang['errorMaxUsersLoggedIn'] = 'В Чаті максимальна кількість учасників.';
-$lang['errorChatClosed'] = 'Чат, тимчасово, закрито.';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = 'Дата';
-$lang['logsTime'] = 'Час';
-$lang['logsSearch'] = 'Пошук';
-$lang['logsPrivateChannels'] = 'Приватні кімнати';
-$lang['logsPrivateMessages'] = 'Приватні повідомлення';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/lang/zh-tw.php b/library/ajaxchat/chat/lib/lang/zh-tw.php
deleted file mode 100644
index d39fe6b14..000000000
--- a/library/ajaxchat/chat/lib/lang/zh-tw.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = '使用者帳號';
-$lang['password'] = '密碼';
-$lang['login'] = '登入';
-$lang['logout'] = '登出';
-$lang['channel'] = '房間';
-$lang['style'] = '版面風格';
-$lang['language'] = '語言';
-$lang['inputLineBreak'] = '按 SHIFT+ENTER 換行';
-$lang['messageSubmit'] = '發送';
-$lang['registeredUsers'] = '已註冊會員';
-$lang['onlineUsers'] = '在線會員';
-$lang['toggleAutoScroll'] = '自動捲動 開/關';
-$lang['toggleAudio'] = '音效 開/關';
-$lang['toggleHelp'] = '開啟/關閉 使用說明';
-$lang['toggleSettings'] = '開啟/關閉 選項設定';
-$lang['toggleOnlineList'] = '開啟/關閉 線上名單';
-$lang['bbCodeLabelBold'] = '粗體';
-$lang['bbCodeLabelItalic'] = '斜體';
-$lang['bbCodeLabelUnderline'] = '底線';
-$lang['bbCodeLabelQuote'] = '引用';
-$lang['bbCodeLabelCode'] = '代碼';
-$lang['bbCodeLabelURL'] = '連結';
-$lang['bbCodeLabelImg'] = '圖片';
-$lang['bbCodeLabelColor'] = '字體顏色';
-$lang['bbCodeTitleBold'] = '粗體字: [b]文字[/b]';
-$lang['bbCodeTitleItalic'] = '斜體字: [i]文字[/i]';
-$lang['bbCodeTitleUnderline'] = '底線: [u]文字[/u]';
-$lang['bbCodeTitleQuote'] = '引用文字: [quote]文字[/quote] 或 [quote=某人]文字[/quote]';
-$lang['bbCodeTitleCode'] = '代碼: [code]代碼[/code]';
-$lang['bbCodeTitleURL'] = '插入URL: [url]http://example.org[/url] 或 [url=http://example.org]文字[/url]';
-$lang['bbCodeTitleImg'] = '插入圖片: [img]http://example.org/image.png[/img]';
-$lang['bbCodeTitleColor'] = '字體顏色: [color=red]文字[/color]';
-$lang['help'] = '使用說明';
-$lang['helpItemDescJoin'] = '進入一個房間:';
-$lang['helpItemCodeJoin'] = '/join 房間名';
-$lang['helpItemDescJoinCreate'] = '進入自己的私人房間(會員限定):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = '邀請某人(進入自己的私人房):';
-$lang['helpItemCodeInvite'] = '/invite 使用者帳號';
-$lang['helpItemDescUninvite'] = '收回邀請函:';
-$lang['helpItemCodeUninvite'] = '/uninvite 使用者帳號';
-$lang['helpItemDescLogout'] = '登出:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = '悄悄話:';
-$lang['helpItemCodePrivateMessage'] = '/msg 使用者帳號 文字';
-$lang['helpItemDescQueryOpen'] = '開啟一間私人房:';
-$lang['helpItemCodeQueryOpen'] = '/query 使用者帳號';
-$lang['helpItemDescQueryClose'] = '關閉私人房:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = '描述動作:';
-$lang['helpItemCodeAction'] = '/action 文字';
-$lang['helpItemDescDescribe'] = '用悄悄話描述動作:';
-$lang['helpItemCodeDescribe'] = '/describe 使用者帳號 文字';
-$lang['helpItemDescIgnore'] = '忽略/接受某人的訊息:';
-$lang['helpItemCodeIgnore'] = '/ignore 使用者帳號';
-$lang['helpItemDescIgnoreList'] = '列出所有被忽略訊息的人:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = '尋找某人的位置:';
-$lang['helpItemCodeWhereis'] = '/whereis 使用者帳號';
-$lang['helpItemDescKick'] = '踢除某人(版主限定):';
-$lang['helpItemCodeKick'] = '/kick 使用者帳號 [Minutes banned]';
-$lang['helpItemDescUnban'] = '解除封鎖某人(版主限定):';
-$lang['helpItemCodeUnban'] = '/unban 使用者帳號';
-$lang['helpItemDescBans'] = '列出所有被禁止使用的人(版主限定):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = '查詢某人的IP(版主限定):';
-$lang['helpItemCodeWhois'] = '/whois 使用者帳號';
-$lang['helpItemDescWho'] = '列出所有在房間的人:';
-$lang['helpItemCodeWho'] = '/who [房間名]';
-$lang['helpItemDescList'] = '列出所有可進去的房間:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = '擲骰子:';
-$lang['helpItemCodeRoll'] = '/roll [幾次]d[幾種點]';
-$lang['helpItemDescNick'] = '更換暱稱:';
-$lang['helpItemCodeNick'] = '/nick 使用者帳號';
-$lang['settings'] = '選項';
-$lang['settingsBBCode'] = '啟用BBCode:';
-$lang['settingsBBCodeImages'] = '啟用圖形的BBCode:';
-$lang['settingsBBCodeColors'] = '啟用字體顏色的BBCode:';
-$lang['settingsHyperLinks'] = '啟用超連結:';
-$lang['settingsLineBreaks'] = '啟用換行符號';
-$lang['settingsEmoticons'] = '啟用表情圖示:';
-$lang['settingsAutoFocus'] = '自動切換焦點至輸入框:';
-$lang['settingsMaxMessages'] = '對話框裡訊息的最大數量:';
-$lang['settingsWordWrap'] = '遇長字彙時隨螢幕大小自動斷行:';
-$lang['settingsMaxWordLength'] = '字被截斷之前的最大長度:';
-$lang['settingsDateFormat'] = '時間格式:';
-$lang['settingsPersistFontColor'] = '固定字體顏色:';
-$lang['settingsAudioVolume'] = '音效的音量:';
-$lang['settingsSoundReceive'] = '新訊息的音效:';
-$lang['settingsSoundSend'] = '舊訊息的音效:';
-$lang['settingsSoundEnter'] = '登入和進入房間的音效:';
-$lang['settingsSoundLeave'] = '登出和離開房間的音效:';
-$lang['settingsSoundChatBot'] = '系統訊息的音效:';
-$lang['settingsSoundError'] = '錯誤訊息的音效:';
-$lang['settingsBlink'] = '當有新訊息時閃動標題:';
-$lang['settingsBlinkInterval'] = '閃動的間隔時間(毫秒):';
-$lang['settingsBlinkIntervalNumber'] = '閃動次數:';
-$lang['playSelectedSound'] = '播放選取的音效';
-$lang['requiresJavaScript'] = '請啟用JavaScript才能登入!';
-$lang['errorInvalidUser'] = '使用者名稱無法使用……';
-$lang['errorUserInUse'] = '使用者名稱正在使用中……';
-$lang['errorBanned'] = '使用者名稱或IP已被封鎖……';
-$lang['errorMaxUsersLoggedIn'] = '聊天室已客滿,無法進入……';
-$lang['errorChatClosed'] = '聊天室目前已關閉……';
-$lang['logsTitle'] = 'AJAX Chat - Logs';
-$lang['logsDate'] = '日期';
-$lang['logsTime'] = '時間';
-$lang['logsSearch'] = '搜尋';
-$lang['logsPrivateChannels'] = '私人房';
-$lang['logsPrivateMessages'] = '悄悄話';
-?>
diff --git a/library/ajaxchat/chat/lib/lang/zh.php b/library/ajaxchat/chat/lib/lang/zh.php
deleted file mode 100644
index 1d18f0bc0..000000000
--- a/library/ajaxchat/chat/lib/lang/zh.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * @package AJAX_Chat
- * @author Sebastian Tschan
- * @author mikespook
- * @copyright (c) Sebastian Tschan
- * @license Modified MIT License
- * @link https://blueimp.net/ajax/
- */
-
-$lang = array();
-$lang['title'] = 'AJAX Chat';
-$lang['userName'] = '用户名';
-$lang['password'] = '密码';
-$lang['login'] = '登录';
-$lang['logout'] = '退出';
-$lang['channel'] = '频道';
-$lang['style'] = '样式';
-$lang['language'] = '语言';
-$lang['inputLineBreak'] = '按 SHIFT + ENTER 输入新行';
-$lang['messageSubmit'] = '提交';
-$lang['registeredUsers'] = '注册用户';
-$lang['onlineUsers'] = '在线用户';
-$lang['toggleAutoScroll'] = '自动滚动 开/关';
-$lang['toggleAudio'] = '声音 开/关';
-$lang['toggleHelp'] = '显示/隐藏 帮助';
-$lang['toggleSettings'] = '显示/隐藏 设置';
-$lang['toggleOnlineList'] = '显示/隐藏 在线列表';
-$lang['bbCodeLabelBold'] = '粗体';
-$lang['bbCodeLabelItalic'] = '斜体';
-$lang['bbCodeLabelUnderline'] = '下划线';
-$lang['bbCodeLabelQuote'] = '引用';
-$lang['bbCodeLabelCode'] = '代码';
-$lang['bbCodeLabelURL'] = 'URL';
-$lang['bbCodeLabelImg'] = 'Image';
-$lang['bbCodeLabelColor'] = '文字颜色';
-$lang['bbCodeTitleBold'] = '粗体:[b]文字[/b]';
-$lang['bbCodeTitleItalic'] = '斜体:[i]文字[/i]';
-$lang['bbCodeTitleUnderline'] = '下划线:[u]文字[/u]';
-$lang['bbCodeTitleQuote'] = '引用:[quote]引用[/quote] or [quote=作者]引用[/quote]';
-$lang['bbCodeTitleCode'] = '显示代码:[code]代码[/code]';
-$lang['bbCodeTitleURL'] = '插入 URL:[url]http://example.org[/url] 或者 [url=http://example.org]文字[/url]';
-$lang['bbCodeTitleImg'] = 'Insert image: [img]http://example.org/image.jpg[/img]';
-$lang['bbCodeTitleColor'] = '文字颜色:[color=red]文字[/color]';
-$lang['help'] = '帮助';
-$lang['helpItemDescJoin'] = '加入频道';
-$lang['helpItemCodeJoin'] = '/join 频道名';
-$lang['helpItemDescJoinCreate'] = '创建私人房间(仅限注册用户):';
-$lang['helpItemCodeJoinCreate'] = '/join';
-$lang['helpItemDescInvite'] = '邀请某人(例如进入私人房间):';
-$lang['helpItemCodeInvite'] = '/invite 用户名';
-$lang['helpItemDescUninvite'] = '取消邀请:';
-$lang['helpItemCodeUninvite'] = '/uninvite 用户名';
-$lang['helpItemDescLogout'] = '推出登录:';
-$lang['helpItemCodeLogout'] = '/quit';
-$lang['helpItemDescPrivateMessage'] = '悄悄话';
-$lang['helpItemCodePrivateMessage'] = '/msg 用户名 内容';
-$lang['helpItemDescQueryOpen'] = '打开私人频道:';
-$lang['helpItemCodeQueryOpen'] = '/query 用户名';
-$lang['helpItemDescQueryClose'] = '关闭私人频道:';
-$lang['helpItemCodeQueryClose'] = '/query';
-$lang['helpItemDescAction'] = '动作描述:';
-$lang['helpItemCodeAction'] = '/action 文字';
-$lang['helpItemDescDescribe'] = '在悄悄话中做动作:';
-$lang['helpItemCodeDescribe'] = '/describe 用户名 文字';
-$lang['helpItemDescIgnore'] = '忽略/接受用户消息:';
-$lang['helpItemCodeIgnore'] = '/ignore 用户名';
-$lang['helpItemDescIgnoreList'] = '列出忽略用户:';
-$lang['helpItemCodeIgnoreList'] = '/ignore';
-$lang['helpItemDescWhereis'] = '显示用户频道:';
-$lang['helpItemCodeWhereis'] = '/whereis 用户名';
-$lang['helpItemDescKick'] = '踢出用户(仅限版主):';
-$lang['helpItemCodeKick'] = '/kick 用户名 [倒数秒数]';
-$lang['helpItemDescUnban'] = '取消用户禁言(仅限版主):';
-$lang['helpItemCodeUnban'] = '/unban 用户名';
-$lang['helpItemDescBans'] = '列出禁言用户(仅限版主):';
-$lang['helpItemCodeBans'] = '/bans';
-$lang['helpItemDescWhois'] = '显示用户 IP(仅限版主):';
-$lang['helpItemCodeWhois'] = '/whois 用户名';
-$lang['helpItemDescWho'] = '列出在线用户:';
-$lang['helpItemCodeWho'] = '/who [频道名]';
-$lang['helpItemDescList'] = '列出可用频道:';
-$lang['helpItemCodeList'] = '/list';
-$lang['helpItemDescRoll'] = '摇骰子:';
-$lang['helpItemCodeRoll'] = '/roll [number]d[sides]';
-$lang['helpItemDescNick'] = '修改用户名:';
-$lang['helpItemCodeNick'] = '/nick Username';
-$lang['settings'] = '设置';
-$lang['settingsBBCode'] = '可用 BBCode:';
-$lang['settingsBBCodeImages'] = 'Enable image BBCode:';
-$lang['settingsBBCodeColors'] = 'Enable font color BBCode:';
-$lang['settingsHyperLinks'] = '可用超链接:';
-$lang['settingsLineBreaks'] = '可用换行:';
-$lang['settingsEmoticons'] = '可用表情符号:';
-$lang['settingsAutoFocus'] = '自动将焦点定位于输入框:';
-$lang['settingsMaxMessages'] = '消息列表中的最大消息数:';
-$lang['settingsWordWrap'] = '开启超宽换行:';
-$lang['settingsMaxWordLength'] = '行宽:';
-$lang['settingsDateFormat'] = '时间和日期显示格式:';
-$lang['settingsPersistFontColor'] = '字体颜色:';
-$lang['settingsAudioVolume'] = '音量:';
-$lang['settingsSoundReceive'] = '声音提示进入信息:';
-$lang['settingsSoundSend'] = '声音提示离开信息:';
-$lang['settingsSoundEnter'] = '声音提示登录或进入频道信息:';
-$lang['settingsSoundLeave'] = '声音提示退出或离开频道信息:';
-$lang['settingsSoundChatBot'] = '声音提示机器人信息:';
-$lang['settingsSoundError'] = '声音提示错误信息:';
-$lang['settingsBlink'] = '有新消息时闪烁窗口标题:';
-$lang['settingsBlinkInterval'] = '空闲间隔毫秒数:';
-$lang['settingsBlinkIntervalNumber'] = '空闲间隔数:';
-$lang['playSelectedSound'] = '播放选择的声音';
-$lang['requiresJavaScript'] = '需要 JavaScript。';
-$lang['errorInvalidUser'] = '不合法的用户名。';
-$lang['errorUserInUse'] = '用户名已被使用。';
-$lang['errorBanned'] = '用户名或 IP 被禁止。';
-$lang['errorMaxUsersLoggedIn'] = '聊天室达到最大用户数。';
-$lang['errorChatClosed'] = '当前聊天室暂停服务。';
-$lang['logsTitle'] = 'AJAX Chat - 日志';
-$lang['logsDate'] = '日期';
-$lang['logsTime'] = '时间';
-$lang['logsSearch'] = '搜索';
-$lang['logsPrivateChannels'] = '私人频道';
-$lang['logsPrivateMessages'] = '私人消息';
-?> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/template/loggedIn.html b/library/ajaxchat/chat/lib/template/loggedIn.html
deleted file mode 100644
index 16a75ebe9..000000000
--- a/library/ajaxchat/chat/lib/template/loggedIn.html
+++ /dev/null
@@ -1,387 +0,0 @@
-<?xml version="1.0" encoding="[CONTENT_ENCODING/]"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="[LANG_CODE/]" lang="[LANG_CODE/]" dir="[BASE_DIRECTION/]">
-
-<head>
- <meta http-equiv="Content-Type" content="[CONTENT_TYPE/]" />
- <title>[LANG]title[/LANG]</title>
- <style type="text/css">
- body {
- padding:0;
- margin:0;
- }
- </style>
- [STYLE_SHEETS/]
- <!--[if lt IE 7]>
- <link rel="stylesheet" type="text/css" href="css/ie5-6.css"/>
- <script type="text/javascript">
- var isIElt7 = true;
- </script>
- <![endif]-->
- <script src="js/chat.js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/custom.js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/lang/[LANG_CODE/].js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/config.js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/FABridge.js" type="text/javascript" charset="UTF-8"></script>
- <script type="text/javascript">
- // <![CDATA[
- function toggleContainer(containerID, hideContainerIDs) {
- if(hideContainerIDs) {
- for(var i=0; i<hideContainerIDs.length; i++) {
- ajaxChat.showHide(hideContainerIDs[i], 'none');
- }
- }
- ajaxChat.showHide(containerID);
- if(typeof arguments.callee.styleProperty == 'undefined') {
- if(typeof isIElt7 != 'undefined') {
- arguments.callee.styleProperty = 'marginRight';
- } else {
- arguments.callee.styleProperty = 'right';
- }
- }
- var containerWidth = document.getElementById(containerID).offsetWidth;
- if(containerWidth) {
- document.getElementById('chatList').style[arguments.callee.styleProperty] = (containerWidth+28)+'px';
- } else {
- document.getElementById('chatList').style[arguments.callee.styleProperty] = '20px';
- }
- }
-
- function initialize() {
- ajaxChat.updateButton('audio', 'audioButton');
- ajaxChat.updateButton('autoScroll', 'autoScrollButton');
- document.getElementById('bbCodeSetting').checked = ajaxChat.getSetting('bbCode');
- document.getElementById('bbCodeImagesSetting').checked = ajaxChat.getSetting('bbCodeImages');
- document.getElementById('bbCodeColorsSetting').checked = ajaxChat.getSetting('bbCodeColors');
- document.getElementById('hyperLinksSetting').checked = ajaxChat.getSetting('hyperLinks');
- document.getElementById('lineBreaksSetting').checked = ajaxChat.getSetting('lineBreaks');
- document.getElementById('emoticonsSetting').checked = ajaxChat.getSetting('emoticons');
- document.getElementById('autoFocusSetting').checked = ajaxChat.getSetting('autoFocus');
- document.getElementById('maxMessagesSetting').value = ajaxChat.getSetting('maxMessages');
- document.getElementById('wordWrapSetting').checked = ajaxChat.getSetting('wordWrap');
- document.getElementById('maxWordLengthSetting').value = ajaxChat.getSetting('maxWordLength');
- document.getElementById('dateFormatSetting').value = ajaxChat.getSetting('dateFormat');
- document.getElementById('persistFontColorSetting').checked = ajaxChat.getSetting('persistFontColor');
- for(var i=0; i<document.getElementById('audioVolumeSetting').options.length; i++) {
- if(document.getElementById('audioVolumeSetting').options[i].value == ajaxChat.getSetting('audioVolume')) {
- document.getElementById('audioVolumeSetting').options[i].selected = true;
- break;
- }
- }
- ajaxChat.fillSoundSelection('soundReceiveSetting', ajaxChat.getSetting('soundReceive'));
- ajaxChat.fillSoundSelection('soundSendSetting', ajaxChat.getSetting('soundSend'));
- ajaxChat.fillSoundSelection('soundEnterSetting', ajaxChat.getSetting('soundEnter'));
- ajaxChat.fillSoundSelection('soundLeaveSetting', ajaxChat.getSetting('soundLeave'));
- ajaxChat.fillSoundSelection('soundChatBotSetting', ajaxChat.getSetting('soundChatBot'));
- ajaxChat.fillSoundSelection('soundErrorSetting', ajaxChat.getSetting('soundError'));
- document.getElementById('blinkSetting').checked = ajaxChat.getSetting('blink');
- document.getElementById('blinkIntervalSetting').value = ajaxChat.getSetting('blinkInterval');
- document.getElementById('blinkIntervalNumberSetting').value = ajaxChat.getSetting('blinkIntervalNumber');
- }
-
- ajaxChatConfig.loginChannelID = parseInt('[LOGIN_CHANNEL_ID/]');
- ajaxChatConfig.sessionName = '[SESSION_NAME/]';
- ajaxChatConfig.cookieExpiration = parseInt('[COOKIE_EXPIRATION/]');
- ajaxChatConfig.cookiePath = '[COOKIE_PATH/]';
- ajaxChatConfig.cookieDomain = '[COOKIE_DOMAIN/]';
- ajaxChatConfig.cookieSecure = '[COOKIE_SECURE/]';
- ajaxChatConfig.chatBotName = decodeURIComponent('[CHAT_BOT_NAME/]');
- ajaxChatConfig.chatBotID = '[CHAT_BOT_ID/]';
- ajaxChatConfig.allowUserMessageDelete = parseInt('[ALLOW_USER_MESSAGE_DELETE/]');
- ajaxChatConfig.inactiveTimeout = parseInt('[INACTIVE_TIMEOUT/]');
- ajaxChatConfig.privateChannelDiff = parseInt('[PRIVATE_CHANNEL_DIFF/]');
- ajaxChatConfig.privateMessageDiff = parseInt('[PRIVATE_MESSAGE_DIFF/]');
- ajaxChatConfig.showChannelMessages = parseInt('[SHOW_CHANNEL_MESSAGES/]');
- ajaxChatConfig.messageTextMaxLength = parseInt('[MESSAGE_TEXT_MAX_LENGTH/]');
- ajaxChatConfig.socketServerEnabled = parseInt('[SOCKET_SERVER_ENABLED/]');
- ajaxChatConfig.socketServerHost = decodeURIComponent('[SOCKET_SERVER_HOST/]');
- ajaxChatConfig.socketServerPort = parseInt('[SOCKET_SERVER_PORT/]');
- ajaxChatConfig.socketServerChatID = parseInt('[SOCKET_SERVER_CHAT_ID/]');
-
- ajaxChat.init(ajaxChatConfig, ajaxChatLang, true, true, true, initialize);
- // ]]>
- </script>
-</head>
-
-<body>
- <div id="content">
- <div id="headlineContainer">
- <h1>[LANG]title[/LANG]</h1>
- </div>
- <div id="logoutChannelContainer">
- <input type="button" id="logoutButton" value="[LANG]logout[/LANG]" onclick="ajaxChat.logout();"/>
- <label for="channelSelection">[LANG]channel[/LANG]:</label>
- <select id="channelSelection" onchange="ajaxChat.switchChannel(this.options[this.selectedIndex].value);">[CHANNEL_OPTIONS/]</select>
- <label for="styleSelection">[LANG]style[/LANG]:</label>
- <select id="styleSelection" onchange="ajaxChat.setActiveStyleSheet(ajaxChat.getSelectedStyle());">[STYLE_OPTIONS/]</select>
- <label for="languageSelection">[LANG]language[/LANG]:</label>
- <select id="languageSelection" onchange="ajaxChat.switchLanguage(this.value);">[LANGUAGE_OPTIONS/]</select>
- </div>
- <div id="statusIconContainer" class="statusContainerOn"></div>
- <!--[if lt IE 7]>
- <div></div>
- <![endif]-->
- <div id="chatList"></div>
- <div id="inputFieldContainer">
- <textarea id="inputField" rows="1" cols="50" title="[LANG]inputLineBreak[/LANG]" onkeypress="ajaxChat.handleInputFieldKeyPress(event);" onkeyup="ajaxChat.handleInputFieldKeyUp(event);"></textarea>
- </div>
- <div id="submitButtonContainer">
- <span id="messageLengthCounter">0/[MESSAGE_TEXT_MAX_LENGTH/]</span>
- <input type="button" id="submitButton" value="[LANG]messageSubmit[/LANG]" onclick="ajaxChat.sendMessage();"/>
- </div>
- <div id="emoticonsContainer" dir="ltr"></div>
- <div id="bbCodeContainer">
- <input type="button" value="[LANG]bbCodeLabelBold[/LANG]" title="[LANG]bbCodeTitleBold[/LANG]" onclick="ajaxChat.insertBBCode('b');" style="font-weight:bold;"/>
- <input type="button" value="[LANG]bbCodeLabelItalic[/LANG]" title="[LANG]bbCodeTitleItalic[/LANG]" onclick="ajaxChat.insertBBCode('i');" style="font-style:italic;"/>
- <input type="button" value="[LANG]bbCodeLabelUnderline[/LANG]" title="[LANG]bbCodeTitleUnderline[/LANG]" onclick="ajaxChat.insertBBCode('u');" style="text-decoration:underline;"/>
- <input type="button" value="[LANG]bbCodeLabelQuote[/LANG]" title="[LANG]bbCodeTitleQuote[/LANG]" onclick="ajaxChat.insertBBCode('quote');"/>
- <input type="button" value="[LANG]bbCodeLabelCode[/LANG]" title="[LANG]bbCodeTitleCode[/LANG]" onclick="ajaxChat.insertBBCode('code');"/>
- <input type="button" value="[LANG]bbCodeLabelURL[/LANG]" title="[LANG]bbCodeTitleURL[/LANG]" onclick="ajaxChat.insertBBCode('url');"/>
- <input type="button" value="[LANG]bbCodeLabelImg[/LANG]" title="[LANG]bbCodeTitleImg[/LANG]" onclick="ajaxChat.insertBBCode('img');"/>
- <input type="button" value="[LANG]bbCodeLabelColor[/LANG]" title="[LANG]bbCodeTitleColor[/LANG]" onclick="ajaxChat.showHide('colorCodesContainer', null);"/>
- </div>
- <div id="colorCodesContainer" style="display:none;" dir="ltr"></div>
- <div id="optionsContainer">
- <input type="image" src="img/pixel.gif" class="button" id="helpButton" alt="[LANG]toggleHelp[/LANG]" title="[LANG]toggleHelp[/LANG]" onclick="toggleContainer('helpContainer', new Array('onlineListContainer','settingsContainer'));"/>
- <input type="image" src="img/pixel.gif" class="button" id="settingsButton" alt="[LANG]toggleSettings[/LANG]" title="[LANG]toggleSettings[/LANG]" onclick="toggleContainer('settingsContainer', new Array('onlineListContainer','helpContainer'));"/>
- <input type="image" src="img/pixel.gif" class="button" id="onlineListButton" alt="[LANG]toggleOnlineList[/LANG]" title="[LANG]toggleOnlineList[/LANG]" onclick="toggleContainer('onlineListContainer', new Array('settingsContainer','helpContainer'));"/>
- <input type="image" src="img/pixel.gif" class="button" id="audioButton" alt="[LANG]toggleAudio[/LANG]" title="[LANG]toggleAudio[/LANG]" onclick="ajaxChat.toggleSetting('audio', 'audioButton');"/>
- <input type="image" src="img/pixel.gif" class="button" id="autoScrollButton" alt="[LANG]toggleAutoScroll[/LANG]" title="[LANG]toggleAutoScroll[/LANG]" onclick="ajaxChat.toggleSetting('autoScroll', 'autoScrollButton');"/>
- </div>
- <div id="onlineListContainer">
- <h3>[LANG]onlineUsers[/LANG]</h3>
- <div id="onlineList"></div>
- </div>
- <div id="helpContainer" style="display:none;">
- <h3>[LANG]help[/LANG]</h3>
- <div id="helpList">
- <table>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescJoin[/LANG]</td>
- <td class="code">[LANG]helpItemCodeJoin[/LANG]</td>
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescJoinCreate[/LANG]</td>
- <td class="code">[LANG]helpItemCodeJoinCreate[/LANG]</td>
-
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescInvite[/LANG]</td>
- <td class="code">[LANG]helpItemCodeInvite[/LANG]</td>
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescUninvite[/LANG]</td>
- <td class="code">[LANG]helpItemCodeUninvite[/LANG]</td>
- </tr>
-
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescLogout[/LANG]</td>
- <td class="code">[LANG]helpItemCodeLogout[/LANG]</td>
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescPrivateMessage[/LANG]</td>
- <td class="code">[LANG]helpItemCodePrivateMessage[/LANG]</td>
- </tr>
- <tr class="rowOdd">
-
- <td class="desc">[LANG]helpItemDescQueryOpen[/LANG]</td>
- <td class="code">[LANG]helpItemCodeQueryOpen[/LANG]</td>
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescQueryClose[/LANG]</td>
- <td class="code">[LANG]helpItemCodeQueryClose[/LANG]</td>
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescAction[/LANG]</td>
- <td class="code">[LANG]helpItemCodeAction[/LANG]</td>
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescDescribe[/LANG]</td>
- <td class="code">[LANG]helpItemCodeDescribe[/LANG]</td>
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescIgnore[/LANG]</td>
- <td class="code">[LANG]helpItemCodeIgnore[/LANG]</td>
-
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescIgnoreList[/LANG]</td>
- <td class="code">[LANG]helpItemCodeIgnoreList[/LANG]</td>
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescWhereis[/LANG]</td>
- <td class="code">[LANG]helpItemCodeWhereis[/LANG]</td>
- </tr>
-
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescKick[/LANG]</td>
- <td class="code">[LANG]helpItemCodeKick[/LANG]</td>
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescUnban[/LANG]</td>
- <td class="code">[LANG]helpItemCodeUnban[/LANG]</td>
- </tr>
- <tr class="rowEven">
-
- <td class="desc">[LANG]helpItemDescBans[/LANG]</td>
- <td class="code">[LANG]helpItemCodeBans[/LANG]</td>
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescWhois[/LANG]</td>
- <td class="code">[LANG]helpItemCodeWhois[/LANG]</td>
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescWho[/LANG]</td>
-
- <td class="code">[LANG]helpItemCodeWho[/LANG]</td>
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescList[/LANG]</td>
- <td class="code">[LANG]helpItemCodeList[/LANG]</td>
- </tr>
- <tr class="rowEven">
- <td class="desc">[LANG]helpItemDescRoll[/LANG]</td>
- <td class="code">[LANG]helpItemCodeRoll[/LANG]</td>
-
- </tr>
- <tr class="rowOdd">
- <td class="desc">[LANG]helpItemDescNick[/LANG]</td>
- <td class="code">[LANG]helpItemCodeNick[/LANG]</td>
- </tr>
- </table>
- </div>
- </div>
- <div id="settingsContainer" style="display:none;">
- <h3>[LANG]settings[/LANG]</h3>
- <div id="settingsList">
- <table>
- <tr class="rowOdd">
- <td><label for="bbCodeSetting">[LANG]settingsBBCode[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="bbCodeSetting" onclick="ajaxChat.setSetting('bbCode', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="bbCodeImagesSetting">[LANG]settingsBBCodeImages[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="bbCodeImagesSetting" onclick="ajaxChat.setSetting('bbCodeImages', this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="bbCodeColorsSetting">[LANG]settingsBBCodeColors[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="bbCodeColorsSetting" onclick="ajaxChat.setSetting('bbCodeColors', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="hyperLinksSetting">[LANG]settingsHyperLinks[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="hyperLinksSetting" onclick="ajaxChat.setSetting('hyperLinks', this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="lineBreaksSetting">[LANG]settingsLineBreaks[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="lineBreaksSetting" onclick="ajaxChat.setSetting('lineBreaks', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="emoticonsSetting">[LANG]settingsEmoticons[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="emoticonsSetting" onclick="ajaxChat.setSetting('emoticons', this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="autoFocusSetting">[LANG]settingsAutoFocus[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="autoFocusSetting" onclick="ajaxChat.setSetting('autoFocus', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="maxMessagesSetting">[LANG]settingsMaxMessages[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="maxMessagesSetting" onchange="ajaxChat.setSetting('maxMessages', parseInt(this.value));"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="wordWrapSetting">[LANG]settingsWordWrap[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="wordWrapSetting" onclick="ajaxChat.setSetting('wordWrap', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="maxWordLengthSetting">[LANG]settingsMaxWordLength[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="maxWordLengthSetting" onchange="ajaxChat.setSetting('maxWordLength', parseInt(this.value));"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="dateFormatSetting">[LANG]settingsDateFormat[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="dateFormatSetting" onchange="ajaxChat.setSetting('dateFormat', this.value);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="persistFontColorSetting">[LANG]settingsPersistFontColor[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="persistFontColorSetting" onclick="ajaxChat.setPersistFontColor(this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="audioVolumeSetting">[LANG]settingsAudioVolume[/LANG]</label></td>
- <td class="setting">
- <select class="left" id="audioVolumeSetting" onchange="ajaxChat.setAudioVolume(this.options[this.selectedIndex].value);">
- <option value="1.0">100 %</option>
- <option value="0.9">90 %</option>
- <option value="0.8">80 %</option>
- <option value="0.7">70 %</option>
- <option value="0.6">60 %</option>
- <option value="0.5">50 %</option>
- <option value="0.4">40 %</option>
- <option value="0.3">30 %</option>
- <option value="0.2">20 %</option>
- <option value="0.1">10 %</option>
- </select>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="soundReceiveSetting">[LANG]settingsSoundReceive[/LANG]</label></td>
- <td class="setting">
- <select id="soundReceiveSetting" onchange="ajaxChat.setSetting('soundReceive', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowOdd">
- <td><label for="soundSendSetting">[LANG]settingsSoundSend[/LANG]</label></td>
- <td class="setting">
- <select id="soundSendSetting" onchange="ajaxChat.setSetting('soundSend', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="soundEnterSetting">[LANG]settingsSoundEnter[/LANG]</label></td>
- <td class="setting">
- <select id="soundEnterSetting" onchange="ajaxChat.setSetting('soundEnter', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowOdd">
- <td><label for="soundLeaveSetting">[LANG]settingsSoundLeave[/LANG]</label></td>
- <td class="setting">
- <select id="soundLeaveSetting" onchange="ajaxChat.setSetting('soundLeave', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="soundChatBotSetting">[LANG]settingsSoundChatBot[/LANG]</label></td>
- <td class="setting">
- <select id="soundChatBotSetting" onchange="ajaxChat.setSetting('soundChatBot', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowOdd">
- <td><label for="soundErrorSetting">[LANG]settingsSoundError[/LANG]</label></td>
- <td class="setting">
- <select id="soundErrorSetting" onchange="ajaxChat.setSetting('soundError', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="blinkSetting">[LANG]settingsBlink[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="blinkSetting" onclick="ajaxChat.setSetting('blink', this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="blinkIntervalSetting">[LANG]settingsBlinkInterval[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="blinkIntervalSetting" onchange="ajaxChat.setSetting('blinkInterval', parseInt(this.value));"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="blinkIntervalNumberSetting">[LANG]settingsBlinkIntervalNumber[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="blinkIntervalNumberSetting" onchange="ajaxChat.setSetting('blinkIntervalNumber', parseInt(this.value));"/></td>
- </tr>
- </table>
- </div>
- </div>
- <!--
- Please retain the full copyright notice below including the link to blueimp.net.
- This not only gives respect to the amount of time given freely by the developer
- but also helps build interest, traffic and use of AJAX Chat.
-
- Thanks,
- Sebastian Tschan
- //-->
- <div id="copyright"><a href="https://blueimp.net/ajax/">AJAX Chat</a> &copy; <a href="https://blueimp.net">blueimp.net</a></div>
- </div>
- <div id="flashInterfaceContainer"></div>
-</body>
-
-</html> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/template/loggedOut.html b/library/ajaxchat/chat/lib/template/loggedOut.html
deleted file mode 100644
index ba8a8a4a9..000000000
--- a/library/ajaxchat/chat/lib/template/loggedOut.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="[CONTENT_ENCODING/]"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="[LANG_CODE/]" lang="[LANG_CODE/]" dir="[BASE_DIRECTION/]">
-
-<head>
- <meta http-equiv="Content-Type" content="[CONTENT_TYPE/]" />
- <title>[LANG]title[/LANG]</title>
- <style type="text/css">
- body {
- padding:0;
- margin:0;
- }
- </style>
- [STYLE_SHEETS/]
- <!--[if lt IE 7]>
- <link rel="stylesheet" type="text/css" href="css/ie5-6.css"/>
- <![endif]-->
- <script src="js/chat.js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/lang/[LANG_CODE/].js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/config.js" type="text/javascript" charset="UTF-8"></script>
- <script type="text/javascript">
- // <![CDATA[
- function initializeLoginPage() {
- document.getElementById('userNameField').focus();
- if(!ajaxChat.isCookieEnabled()) {
- var node = document.createElement('div');
- var text = document.createTextNode(ajaxChatLang['errorCookiesRequired']);
- node.appendChild(text);
- document.getElementById('errorContainer').appendChild(node);
- }
- }
-
- ajaxChatConfig.sessionName = '[SESSION_NAME/]';
- ajaxChatConfig.cookieExpiration = parseInt('[COOKIE_EXPIRATION/]');
- ajaxChatConfig.cookiePath = '[COOKIE_PATH/]';
- ajaxChatConfig.cookieDomain = '[COOKIE_DOMAIN/]';
- ajaxChatConfig.cookieSecure = '[COOKIE_SECURE/]';
-
- ajaxChat.init(ajaxChatConfig, ajaxChatLang, true, true, false);
- // ]]>
- </script>
-</head>
-
-<body onload="initializeLoginPage();">
- <div id="loginContent">
- <div id="loginHeadlineContainer">
- <h1>[LANG]title[/LANG]</h1>
- </div>
- <form id="loginForm" action="[LOGIN_URL/]" method="post" enctype="application/x-www-form-urlencoded">
- <div id="loginFormContainer">
- <input type="hidden" name="login" id="loginField" value="login"/>
- <input type="hidden" name="redirect" id="redirectField" value="[REDIRECT_URL/]"/>
- <div><label for="userNameField">[LANG]userName[/LANG]:</label><br />
- <input type="text" name="userName" id="userNameField" maxlength="[USER_NAME_MAX_LENGTH/]"/></div>
- <div><label for="passwordField">[LANG]password[/LANG]*:</label><br />
- <input type="password" name="password" id="passwordField"/></div>
- <div><label for="channelField">[LANG]channel[/LANG]:</label><br />
- <select name="channelName" id="channelField">[CHANNEL_OPTIONS/]</select></div>
- <div><label for="languageSelection">[LANG]language[/LANG]:</label><br />
- <select id="languageSelection" name="lang" onchange="ajaxChat.switchLanguage(this.value);">[LANGUAGE_OPTIONS/]</select></div>
- <div><input type="submit" name="submit" id="loginButton" value="[LANG]login[/LANG]"/></div>
- <div id="loginRegisteredUsers">* [LANG]registeredUsers[/LANG]</div>
- </div>
- </form>
- <div id="errorContainer">[ERROR_MESSAGES/]<noscript><div>[LANG]requiresJavaScript[/LANG]</div></noscript></div>
- <!--
- Please retain the full copyright notice below including the link to blueimp.net.
- This not only gives respect to the amount of time given freely by the developer
- but also helps build interest, traffic and use of AJAX Chat.
-
- Thanks,
- Sebastian Tschan
- //-->
- <div id="copyright"><a href="https://blueimp.net/ajax/">AJAX Chat</a> &copy; <a href="https://blueimp.net">blueimp.net</a></div>
- </div>
-</body>
-
-</html> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/template/logs.html b/library/ajaxchat/chat/lib/template/logs.html
deleted file mode 100644
index d0b9162a9..000000000
--- a/library/ajaxchat/chat/lib/template/logs.html
+++ /dev/null
@@ -1,276 +0,0 @@
-<?xml version="1.0" encoding="[CONTENT_ENCODING/]"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="[LANG_CODE/]" lang="[LANG_CODE/]" dir="[BASE_DIRECTION/]">
-
-<head>
- <meta http-equiv="Content-Type" content="[CONTENT_TYPE/]" />
- <title>[LANG]logsTitle[/LANG]</title>
- <style type="text/css">
- body {
- padding:0;
- margin:0;
- }
- </style>
- [STYLE_SHEETS/]
- <!--[if lt IE 7]>
- <link rel="stylesheet" type="text/css" href="css/ie5-6.css"/>
- <script type="text/javascript">
- var isIElt7 = true;
- </script>
- <![endif]-->
- <script src="js/chat.js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/logs.js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/lang/[LANG_CODE/].js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/config.js" type="text/javascript" charset="UTF-8"></script>
- <script src="js/FABridge.js" type="text/javascript" charset="UTF-8"></script>
- <script type="text/javascript">
- // <![CDATA[
- function toggleContainer(containerID, hideContainerIDs) {
- if(hideContainerIDs) {
- for(var i=0; i<hideContainerIDs.length; i++) {
- ajaxChat.showHide(hideContainerIDs[i], 'none');
- }
- }
- ajaxChat.showHide(containerID);
- if(typeof arguments.callee.styleProperty == 'undefined') {
- if(typeof isIElt7 != 'undefined') {
- arguments.callee.styleProperty = 'marginRight';
- } else {
- arguments.callee.styleProperty = 'right';
- }
- }
- var containerWidth = document.getElementById(containerID).offsetWidth;
- if(containerWidth) {
- document.getElementById('chatList').style[arguments.callee.styleProperty] = (containerWidth+28)+'px';
- } else {
- document.getElementById('chatList').style[arguments.callee.styleProperty] = '20px';
- }
- }
-
- function initialize() {
- toggleContainer('settingsContainer');
- ajaxChat.updateButton('audio', 'audioButton');
- ajaxChat.updateButton('autoScroll', 'autoScrollButton');
- document.getElementById('bbCodeSetting').checked = ajaxChat.getSetting('bbCode');
- document.getElementById('hyperLinksSetting').checked = ajaxChat.getSetting('hyperLinks');
- document.getElementById('lineBreaksSetting').checked = ajaxChat.getSetting('lineBreaks');
- document.getElementById('emoticonsSetting').checked = ajaxChat.getSetting('emoticons');
- document.getElementById('autoFocusSetting').checked = ajaxChat.getSetting('autoFocus');
- document.getElementById('maxMessagesSetting').value = ajaxChat.getSetting('maxMessages');
- document.getElementById('wordWrapSetting').checked = ajaxChat.getSetting('wordWrap');
- document.getElementById('maxWordLengthSetting').value = ajaxChat.getSetting('maxWordLength');
- document.getElementById('dateFormatSetting').value = ajaxChat.getSetting('dateFormat');
- document.getElementById('persistFontColorSetting').checked = ajaxChat.getSetting('persistFontColor');
- for(var i=0; i<document.getElementById('audioVolumeSetting').options.length; i++) {
- if(document.getElementById('audioVolumeSetting').options[i].value == ajaxChat.getSetting('audioVolume')) {
- document.getElementById('audioVolumeSetting').options[i].selected = true;
- break;
- }
- }
- ajaxChat.fillSoundSelection('soundReceiveSetting', ajaxChat.getSetting('soundReceive'));
- ajaxChat.fillSoundSelection('soundSendSetting', ajaxChat.getSetting('soundSend'));
- ajaxChat.fillSoundSelection('soundEnterSetting', ajaxChat.getSetting('soundEnter'));
- ajaxChat.fillSoundSelection('soundLeaveSetting', ajaxChat.getSetting('soundLeave'));
- ajaxChat.fillSoundSelection('soundChatBotSetting', ajaxChat.getSetting('soundChatBot'));
- ajaxChat.fillSoundSelection('soundErrorSetting', ajaxChat.getSetting('soundError'));
- document.getElementById('blinkSetting').checked = ajaxChat.getSetting('blink');
- document.getElementById('blinkIntervalSetting').value = ajaxChat.getSetting('blinkInterval');
- document.getElementById('blinkIntervalNumberSetting').value = ajaxChat.getSetting('blinkIntervalNumber');
- }
-
- ajaxChatConfig.sessionName = '[SESSION_NAME/]';
- ajaxChatConfig.cookieExpiration = parseInt('[COOKIE_EXPIRATION/]');
- ajaxChatConfig.cookiePath = '[COOKIE_PATH/]';
- ajaxChatConfig.cookieDomain = '[COOKIE_DOMAIN/]';
- ajaxChatConfig.cookieSecure = '[COOKIE_SECURE/]';
- ajaxChatConfig.chatBotName = decodeURIComponent('[CHAT_BOT_NAME/]');
- ajaxChatConfig.chatBotID = '[CHAT_BOT_ID/]';
- ajaxChatConfig.allowUserMessageDelete = parseInt('[ALLOW_USER_MESSAGE_DELETE/]');
- ajaxChatConfig.inactiveTimeout = parseInt('[INACTIVE_TIMEOUT/]');
- ajaxChatConfig.privateChannelDiff = parseInt('[PRIVATE_CHANNEL_DIFF/]');
- ajaxChatConfig.privateMessageDiff = parseInt('[PRIVATE_MESSAGE_DIFF/]');
- ajaxChatConfig.showChannelMessages = true;
- ajaxChatConfig.messageTextMaxLength = parseInt('[MESSAGE_TEXT_MAX_LENGTH/]');
- ajaxChatConfig.socketServerEnabled = parseInt('[SOCKET_SERVER_ENABLED/]');
- ajaxChatConfig.socketServerHost = decodeURIComponent('[SOCKET_SERVER_HOST/]');
- ajaxChatConfig.socketServerPort = parseInt('[SOCKET_SERVER_PORT/]');
- ajaxChatConfig.socketServerChatID = parseInt('[SOCKET_SERVER_CHAT_ID/]');
-
- ajaxChatConfig.ajaxURL += '&view=logs';
-
- ajaxChatConfig.domIDs['yearSelection'] = 'yearSelection';
- ajaxChatConfig.domIDs['monthSelection'] = 'monthSelection';
- ajaxChatConfig.domIDs['daySelection'] = 'daySelection';
- ajaxChatConfig.domIDs['hourSelection'] = 'hourSelection';
-
- ajaxChatConfig.settings.dateFormat = '(%Y.%m.%d - %H:%i:%s)';
- ajaxChatConfig.settings.audio = false;
- ajaxChatConfig.settings.blink = false;
- ajaxChatConfig.nonPersistentSettings.push('dateFormat','audio','blink');
-
- ajaxChat.init(ajaxChatConfig, ajaxChatLang, true, true, true, initialize);
- // ]]>
- </script>
-</head>
-
-<body>
- <div id="content">
- <div id="headlineContainer">
- <h1>[LANG]logsTitle[/LANG]</h1>
- </div>
- <div id="logoutChannelContainer">
- <input type="button" id="logoutButton" value="[LANG]logout[/LANG]" onclick="ajaxChat.logout();"/>
- <label for="channelSelection">[LANG]channel[/LANG]:</label>
- <select id="channelSelection" onchange="ajaxChat.getLogs();">[LOGS_CHANNEL_OPTIONS/]</select>
- <label for="yearSelection">[LANG]logsDate[/LANG]:</label>
- <select id="yearSelection" onchange="ajaxChat.getLogs();">[LOGS_YEAR_OPTIONS/]</select>
- <select id="monthSelection" onchange="ajaxChat.getLogs();">[LOGS_MONTH_OPTIONS/]</select>
- <select id="daySelection" onchange="ajaxChat.getLogs();">[LOGS_DAY_OPTIONS/]</select>
- <label for="hourSelection">[LANG]logsTime[/LANG]:</label>
- <select id="hourSelection" onchange="ajaxChat.getLogs();">[LOGS_HOUR_OPTIONS/]</select>
- <label for="styleSelection">[LANG]style[/LANG]:</label>
- <select id="styleSelection" onchange="ajaxChat.setActiveStyleSheet(ajaxChat.getSelectedStyle());">[STYLE_OPTIONS/]</select>
- <label for="languageSelection">[LANG]language[/LANG]:</label>
- <select id="languageSelection" onchange="ajaxChat.switchLanguage(this.value);">[LANGUAGE_OPTIONS/]</select>
- </div>
- <!--[if lt IE 7]>
- <div></div>
- <![endif]-->
- <div id="chatList"></div>
- <div id="inputFieldContainer">
- <textarea id="inputField" rows="1" cols="50" title="[LANG]inputLineBreak[/LANG]" onkeypress="ajaxChat.handleInputFieldKeyPress(event);"></textarea>
- </div>
- <div id="submitButtonContainer">
- <input type="button" id="submitButton" value="[LANG]logsSearch[/LANG]" onclick="ajaxChat.sendMessage();"/>
- </div>
- <div id="optionsContainer">
- <input type="image" src="img/pixel.gif" class="button" id="settingsButton" alt="[LANG]toggleSettings[/LANG]" title="[LANG]toggleSettings[/LANG]" onclick="toggleContainer('settingsContainer');"/>
- <input type="image" src="img/pixel.gif" class="button" id="audioButton" alt="[LANG]toggleAudio[/LANG]" title="[LANG]toggleAudio[/LANG]" onclick="ajaxChat.toggleSetting('audio', 'audioButton');"/>
- <input type="image" src="img/pixel.gif" class="button" id="autoScrollButton" alt="[LANG]toggleAutoScroll[/LANG]" title="[LANG]toggleAutoScroll[/LANG]" onclick="ajaxChat.toggleSetting('autoScroll', 'autoScrollButton')"/>
- </div>
- <div id="settingsContainer" style="display:none;">
- <h3>[LANG]settings[/LANG]</h3>
- <div id="settingsList">
- <table>
- <tr class="rowOdd">
- <td><label for="bbCodeSetting">[LANG]settingsBBCode[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="bbCodeSetting" onclick="ajaxChat.setSetting('bbCode', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="hyperLinksSetting">[LANG]settingsHyperLinks[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="hyperLinksSetting" onclick="ajaxChat.setSetting('hyperLinks', this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="lineBreaksSetting">[LANG]settingsLineBreaks[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="lineBreaksSetting" onclick="ajaxChat.setSetting('lineBreaks', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="emoticonsSetting">[LANG]settingsEmoticons[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="emoticonsSetting" onclick="ajaxChat.setSetting('emoticons', this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="autoFocusSetting">[LANG]settingsAutoFocus[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="autoFocusSetting" onclick="ajaxChat.setSetting('autoFocus', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="maxMessagesSetting">[LANG]settingsMaxMessages[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="maxMessagesSetting" onchange="ajaxChat.setSetting('maxMessages', parseInt(this.value));"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="wordWrapSetting">[LANG]settingsWordWrap[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="wordWrapSetting" onclick="ajaxChat.setSetting('wordWrap', this.checked);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="maxWordLengthSetting">[LANG]settingsMaxWordLength[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="maxWordLengthSetting" onchange="ajaxChat.setSetting('maxWordLength', parseInt(this.value));"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="dateFormatSetting">[LANG]settingsDateFormat[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="dateFormatSetting" onchange="ajaxChat.setSetting('dateFormat', this.value);"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="persistFontColorSetting">[LANG]settingsPersistFontColor[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="persistFontColorSetting" onclick="ajaxChat.setPersistFontColor(this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="audioVolumeSetting">[LANG]settingsAudioVolume[/LANG]</label></td>
- <td class="setting">
- <select class="left" id="audioVolumeSetting" onchange="ajaxChat.setAudioVolume(this.options[this.selectedIndex].value);">
- <option value="1.0">100 %</option>
- <option value="0.9">90 %</option>
- <option value="0.8">80 %</option>
- <option value="0.7">70 %</option>
- <option value="0.6">60 %</option>
- <option value="0.5">50 %</option>
- <option value="0.4">40 %</option>
- <option value="0.3">30 %</option>
- <option value="0.2">20 %</option>
- <option value="0.1">10 %</option>
- </select>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="soundReceiveSetting">[LANG]settingsSoundReceive[/LANG]</label></td>
- <td class="setting">
- <select id="soundReceiveSetting" onchange="ajaxChat.setSetting('soundReceive', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowOdd">
- <td><label for="soundSendSetting">[LANG]settingsSoundSend[/LANG]</label></td>
- <td class="setting">
- <select id="soundSendSetting" onchange="ajaxChat.setSetting('soundSend', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="soundEnterSetting">[LANG]settingsSoundEnter[/LANG]</label></td>
- <td class="setting">
- <select id="soundEnterSetting" onchange="ajaxChat.setSetting('soundEnter', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowOdd">
- <td><label for="soundLeaveSetting">[LANG]settingsSoundLeave[/LANG]</label></td>
- <td class="setting">
- <select id="soundLeaveSetting" onchange="ajaxChat.setSetting('soundLeave', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="soundChatBotSetting">[LANG]settingsSoundChatBot[/LANG]</label></td>
- <td class="setting">
- <select id="soundChatBotSetting" onchange="ajaxChat.setSetting('soundChatBot', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowOdd">
- <td><label for="soundErrorSetting">[LANG]settingsSoundError[/LANG]</label></td>
- <td class="setting">
- <select id="soundErrorSetting" onchange="ajaxChat.setSetting('soundError', this.options[this.selectedIndex].value);"><option value="">-</option></select><input type="image" src="img/pixel.gif" class="button playback" alt="[LANG]playSelectedSound[/LANG]" title="[LANG]playSelectedSound[/LANG]" onclick="ajaxChat.playSound(this.previousSibling.options[this.previousSibling.selectedIndex].value);"/>
- </td>
- </tr>
- <tr class="rowEven">
- <td><label for="blinkSetting">[LANG]settingsBlink[/LANG]</label></td>
- <td class="setting"><input type="checkbox" id="blinkSetting" onclick="ajaxChat.setSetting('blink', this.checked);"/></td>
- </tr>
- <tr class="rowOdd">
- <td><label for="blinkIntervalSetting">[LANG]settingsBlinkInterval[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="blinkIntervalSetting" onchange="ajaxChat.setSetting('blinkInterval', parseInt(this.value));"/></td>
- </tr>
- <tr class="rowEven">
- <td><label for="blinkIntervalNumberSetting">[LANG]settingsBlinkIntervalNumber[/LANG]</label></td>
- <td class="setting"><input type="text" class="text" id="blinkIntervalNumberSetting" onchange="ajaxChat.setSetting('blinkIntervalNumber', parseInt(this.value));"/></td>
- </tr>
- </table>
- </div>
- </div>
- <!--
- Please retain the full copyright notice below including the link to blueimp.net.
- This not only gives respect to the amount of time given freely by the developer
- but also helps build interest, traffic and use of AJAX Chat.
-
- Thanks,
- Sebastian Tschan
- //-->
- <div id="copyright"><a href="https://blueimp.net/ajax/">AJAX Chat</a> &copy; <a href="https://blueimp.net">blueimp.net</a></div>
- </div>
- <div id="flashInterfaceContainer"></div>
-</body>
-
-</html> \ No newline at end of file
diff --git a/library/ajaxchat/chat/lib/template/shoutbox.html b/library/ajaxchat/chat/lib/template/shoutbox.html
deleted file mode 100644
index 5f2de9981..000000000
--- a/library/ajaxchat/chat/lib/template/shoutbox.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<div id="ajaxChatContent">
- <script src="[AJAX_CHAT_URL/]js/chat.js" type="text/javascript" charset="UTF-8"></script>
- <script src="[AJAX_CHAT_URL/]js/custom.js" type="text/javascript" charset="UTF-8"></script>
- <script src="[AJAX_CHAT_URL/]js/shoutbox.js" type="text/javascript" charset="UTF-8"></script>
- <script src="[AJAX_CHAT_URL/]js/lang/[LANG_CODE/].js" type="text/javascript" charset="UTF-8"></script>
- <script src="[AJAX_CHAT_URL/]js/config.js" type="text/javascript" charset="UTF-8"></script>
- <script src="[AJAX_CHAT_URL/]js/FABridge.js" type="text/javascript" charset="UTF-8"></script>
- <div id="ajaxChatChatList"></div>
- <div id="ajaxChatInputFieldContainer" class="[CLASS_WRITEABLE/]">
- <input id="ajaxChatInputField" type="text" maxlength="[MESSAGE_TEXT_MAX_LENGTH/]" onkeypress="ajaxChat.handleInputFieldKeyPress(event);"/>
- </div>
- <script type="text/javascript">
- // <![CDATA[
- ajaxChatConfig.ajaxURL = '[AJAX_CHAT_URL/]?ajax=true&shoutbox=true';
- ajaxChatConfig.baseURL = '[AJAX_CHAT_URL/]';
-
- ajaxChatConfig.sessionName = '[SESSION_NAME/]';
- ajaxChatConfig.cookieExpiration = parseInt('[COOKIE_EXPIRATION/]');
- ajaxChatConfig.cookiePath = '[COOKIE_PATH/]';
- ajaxChatConfig.cookieDomain = '[COOKIE_DOMAIN/]';
- ajaxChatConfig.cookieSecure = '[COOKIE_SECURE/]';
- ajaxChatConfig.chatBotName = decodeURIComponent('[CHAT_BOT_NAME/]');
- ajaxChatConfig.chatBotID = '[CHAT_BOT_ID/]';
- ajaxChatConfig.allowUserMessageDelete = parseInt('[ALLOW_USER_MESSAGE_DELETE/]');
- ajaxChatConfig.inactiveTimeout = parseInt('[INACTIVE_TIMEOUT/]');
- ajaxChatConfig.privateChannelDiff = parseInt('[PRIVATE_CHANNEL_DIFF/]');
- ajaxChatConfig.privateMessageDiff = parseInt('[PRIVATE_MESSAGE_DIFF/]');
- ajaxChatConfig.showChannelMessages = false;
- ajaxChatConfig.messageTextMaxLength = parseInt('[MESSAGE_TEXT_MAX_LENGTH/]');
- ajaxChatConfig.socketServerEnabled = parseInt('[SOCKET_SERVER_ENABLED/]');
- ajaxChatConfig.socketServerHost = decodeURIComponent('[SOCKET_SERVER_HOST/]');
- ajaxChatConfig.socketServerPort = parseInt('[SOCKET_SERVER_PORT/]');
- ajaxChatConfig.socketServerChatID = parseInt('[SOCKET_SERVER_CHAT_ID/]');
-
- ajaxChatConfig.domIDs['chatList'] = 'ajaxChatChatList';
- ajaxChatConfig.domIDs['inputField'] = 'ajaxChatInputField';
- ajaxChatConfig.domIDs['flashInterfaceContainer'] = 'ajaxChatFlashInterfaceContainer';
-
- ajaxChatConfig.startChatOnLoad = false;
-
- ajaxChatConfig.settings.autoFocus = false;
- ajaxChatConfig.settings.wordWrap = true;
- ajaxChatConfig.settings.maxWordLength = 11;
- ajaxChatConfig.settings.blink = false;
- ajaxChatConfig.nonPersistentSettings.push('autoFocus','wordWrap','maxWordLength','blink');
-
- ajaxChat.init(ajaxChatConfig, ajaxChatLang, true, false, true);
- // ]]>
- </script>
- <!--
- Please retain the full copyright notice below including the link to blueimp.net.
- This not only gives respect to the amount of time given freely by the developer
- but also helps build interest, traffic and use of AJAX Chat.
-
- Thanks,
- Sebastian Tschan
- //-->
- <div id="ajaxChatCopyright"><a href="https://blueimp.net/ajax/">AJAX Chat</a> &copy; <a href="https://blueimp.net">blueimp.net</a></div>
-</div>
-<div id="ajaxChatFlashInterfaceContainer"></div>