<?php
/*
 * @package AJAX_Chat
 * @author Sebastian Tschan
 * @copyright (c) Sebastian Tschan
 * @license GNU Affero General Public License
 * @link https://blueimp.net/ajax/
 */

// Define AJAX Chat user roles:
define('DONATOR',               9);
define('DOKURO',                8);
define('BOTS',                  7);
define('CMOD',                  6);
define('AJAX_CHAT_CHATBOT',     5);
define('PURPLE',                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'] = 'ajax-chat';
// Database password:
$config['dbConnection']['pass'] = '';
// Database name:
$config['dbConnection']['name'] = 'ajax-chat';
// Database type:
$config['dbConnection']['type'] = null;
// Database link:
$config['dbConnection']['link'] = null;

$config['flashiiString'] = 'Flashii';
$config['flashiiSecret'] = 'woomy';
$config['flashiiAuth']['login'] = 'https://flashii.net/auth/login.php';
$config['flashiiAuth']['verify'] = 'https://flashii.net/_sockchat/verify';
$config['flashiiUrl']['home'] = 'https://flashii.net/';
$config['flashiiUrl']['news'] = 'https://flashii.net/news.php';
$config['flashiiUrl']['members'] = 'https://flashii.net/members.php';
$config['flashiiUrl']['donate'] = 'https://flashii.net/donate.php';
$config['flashiiUrl']['status'] = 'https://status.flashii.net';
$config['flashiiUrl']['feedback'] = 'https://flashii.net/forum';
$config['flashiiUrl']['changelog'] = 'https://flashii.net/changelog.php';
$config['flashiiUrl']['rules'] = 'https://flashii.net/info.php/rules';
$config['flashiiUrl']['terms'] = 'https://flashii.net/info.php/terms';
$config['flashiiUrl']['contact'] = 'https://flashii.net/info.php/contact';
$config['flashiiUrl']['test'] = 'https://test.flashii.net';

if(is_file(AJAX_CHAT_PATH . '/config/config-db.php'))
    include_once AJAX_CHAT_PATH . '/config/config-db.php';

// 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('en');
// Default language:
$config['langDefault'] = 'en';
// Language names:
$config['langNames'] = array('en'=>'English');

// Available styles:
$config['styleAvailable'] = array('Mio', 'Legacy', 'Blue', 'Black', 'Nico', 'Halext', 'White', 'Terminal');
// Default style:
$config['styleDefault'] = 'Black';

// 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'] = 'fii_chat';
// Prefix added to every session key:
$config['sessionKeyPrefix'] = 'fii_chat';
// 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'] = false;
// Enable/Disable write access for guest users - if disabled, guest users may not write messages:
$config['allowGuestWrite'] = false;
// Allow/Disallow guest users to choose their own userName:
$config['allowGuestUserName'] = false;
// 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'] = false;

// The userID used for Koishi messages:
$config['chatBotID'] = 2147483647;
// The userName used for Koishi messages
$config['chatBotName'] = 'Hanyuu';
// The userID used for Satori messages:
$config['satoriID'] = 2147483646;
// The userName used for Satori messages
$config['satoriName'] = 'Satori';
// The userID used for Dokuro messages:
$config['dokuroID'] = 2147483647;
// The userName used for Dokuro messages
$config['dokuroName'] = 'Dokuro';
// The userID used for Koishi messages:
$config['koishiID'] = 2147483647;
// The userName used for Koishi messages
$config['koishiName'] = 'Koishi';
// The userID used for Railgun messages:
$config['railgunID'] = 2147483646;
// The userName used for Railgun messages
$config['railgunName'] = 'Railgun';
// The userID used for Snailmush messages:
$config['snailID'] = 2147483646;
// The userName used for Snailmush messages
$config['snailName'] = 'Koishi';

// 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'] = 3;

// 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'] = 30;
// Max messageText length:
$config['messageTextMaxLength'] = 2000;
// 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'] = 10;

// Argument that is given to the handleLogout JavaScript method:
$config['logoutData'] = './';

// If true, checks if the user IP is the same when logged in:
$config['ipCheck'] = false;

// 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'] = 2013;

// 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'] = 1;

// 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'] = 69;
