/*
 * @package AJAX_Chat
 * @author Sebastian Tschan
 * @copyright (c) Sebastian Tschan
 * @license GNU Affero General Public License
 * @link https://blueimp.net/ajax/
 */

// Ajax Chat config parameters:
var ajaxChatConfig = {

	// The channelID of the channel to enter on login (the loginChannelName is used if set to null):
	loginChannelID: null,
	// The channelName of the channel to enter on login (the default channel is used if set to null):
	loginChannelName: null,	
	
	// The time in ms between update calls to retrieve new chat messages:
	timerRate: 2000,
	
	// The URL to retrieve the XML chat messages (must at least contain one parameter):
	ajaxURL: './?ajax=true',
	// The base URL of the chat directory, used to retrieve media files (images, sound files, etc.):
	baseURL: './',
	
	// Defines the IDs of DOM nodes accessed by the chat:
	domIDs: {
		// The ID of the chat messages list:
		chatList: 'chatList',
		// The ID of the chat private messages list:
		privateList: 'privateList',
		// The ID of the online users list:
		onlineList: 'onlineList',
		// The ID of the message text input field:
		inputField: 'inputField',
		// The ID of the message text length counter:
		messageLengthCounter: 'messageLengthCounter',
		// The ID of the channel selection:
		channelSelection: 'channelSelection',
		// The ID of the style selection:
		styleSelection: 'styleSelection',
		// The ID of the emoticons container:
		emoticonsContainer: 'emoticonsContainer',
		// The ID of the color codes container:
		colorCodesContainer: 'colorCodesContainer',
		// The ID of the flash interface container:
		flashInterfaceContainer: 'flashInterfaceContainer'
	},

	// Defines the settings which can be modified by users:
	settings: {
		// Defines if BBCode tags are replaced with the associated HTML code tags:
		bbCode: true,
		// Defines if hyperlinks are made clickable:
		hyperLinks: true,
		// Defines if line breaks are enabled:
		lineBreaks: true,
		// Defines if emoticon codes are replaced with their associated images:
		emoticons: true,
	
		// Defines if the focus is automatically set to the input field on chat load or channel switch:
		autoFocus: true,
		// Defines if the chat list scrolls automatically to display the latest messages:
		autoScroll: true,	
		// The maximum count of messages displayed in the chat list (will be ignored if set to 0):
		maxMessages: 100,
		
		// Defines if long words are wrapped to avoid vertical scrolling:
		wordWrap: true,
		// Defines the maximum length before a word gets wrapped: 
		maxWordLength: 32,
		
		// Defines the format of the date and time displayed for each chat message:
		dateFormat: '(%H:%i:%s)',
		
		// Defines if font colors persist without the need to assign them to each message:
		persistFontColor: false,	
		// The default font color, uses the page default font color if set to null:
		fontColor: null,
		
		// Defines if sounds are played:
		audio: true,
		// Defines the sound volume (0.0 = mute, 1.0 = max):
		audioVolume: 1.0,

		// Defines the sound that is played when normal messages are reveived:
		soundReceive: 'sound_1',
		// Defines the sound that is played on sending normal messages:
		soundSend: 'sound_2',
		// Defines the sound that is played on channel enter or login:
		soundEnter: 'sound_3',
		// Defines the sound that is played on channel leave or logout:
		soundLeave: 'sound_4',
		// Defines the sound that is played on chatBot messages:
		soundChatBot: 'sound_5',
		// Defines the sound that is played on error messages:
		soundError: 'sound_6',
		
		// Defines if the document title blinks on new messages:
		blink: true,
		// Defines the blink interval in ms:
		blinkInterval: 500,
		// Defines the number of blink intervals:
		blinkIntervalNumber: 10
	},
	
	// Defines a list of settings which are not to be stored in a session cookie:
	nonPersistentSettings: new Array(
	),

	// Defines the list of allowed BBCodes:
	bbCodeTags: new Array(
		'b',
		'i',
		'u',
		'quote',
		'code',
		'color',
		'url'
	),
	
	// Defines the list of allowed color codes:
	colorCodes: new Array(
		'#ec7e13',
		'#e80c0c',
		'#7d2a2a',
		'#6f452b',
		'#544934',
		'#89802f',
		'#739d00',
		'#108500',
		'#469370',
		'#0092b7',
		'#22337f',
		'#1823b6',
		'#472b79',
		'#6f0fa0',
	//	'#a316a8',
	//	'#ff00ea',
		'#323232',
		'black',
	//	'cyan',
		'teal'
	),

	// Defines the list of allowed emoticon codes:
	emoticonCodes: new Array(
		':beer:',
		':rose:',
		':gheart:',
		'=0)',		
		':playboy:',
		':)',
		':(',
		';)',
		':P',
		':D',
		':|',
		':O',
		':?',
		':-/',
		'8)',
		'8o',
		'B)',
		':gun:',
		':emo:',
		':ll:',
		':-)',
		':-(',
		':-*',
		'O:-D',
		'>:-D',
		'>8-D',
		':o)',
		':bomb:',
		':come:',
		':gdance:',
		':hi:',
		':morning:',
		':dance:',
		':crazy:',
		':blush:',
		':bye:',
		':smoke:',
		':ppc:',
		':tits:',
		':pat:',
		':feminizm:',
		':kissb:',
		':kissg:',
		':heart:',
		':drink2:',
		':pardon:',
		':dcry:',
		':cold:',
		':drinkg:',
		':tired:',
		':cake:',
		':family:',
		':birthday:',
		':olen:',
		':dick:',
		':coins:',
		':zaraza:',
		':gchear:',
		':mchear:',
		':ike:',
		':pron:'
 	),
	
 	// Defines the list of emoticon files associated with the emoticon codes:
	emoticonFiles: new Array(
		'beer.gif',
		'rose.gif',
		'give_heart.gif',
		'girl_blush2.gif',
		'playboy.gif',
		'smile.gif',
		'sad.gif',
		'wink.gif',
		'blum1.gif',
		'rofl.gif',
		'bad.gif',
		'shout.gif',
		'confused.gif',
		'hmm.gif',
		'happy.gif',
		'shok.gif',
		'cool.gif',
		'gun.gif',
		'girl_emo.gif',
		'girl_claping.gif',
		'biggrin.gif',
		'cray.gif',
		'kiss.gif',
		'angel.gif',
		'diablo.gif',
		'girl_devil.gif',
		'hang1.gif',
		'bomb.gif',
		'girl_hospital2.gif',
		'girl_dance.gif',
		'greeting.gif',
		'morning1.gif',
		'dance.gif',
		'crazy.gif',
		'blush.gif',
		'bye.gif',
		'smoke.gif',
		'ppc.gif',
		't1535.gif',
		't1515.gif',
		't1547.gif',
		't4810.gif',
		't48124.gif',
		't4519.gif',
		't5302.gif',
		'm1065.gif',
		'm1061.gif',
		't2505.gif',
		't0332.gif',
		't2218.gif',
		't0284.gif',
		't1064.gif',
		't3312.gif',
		'm1842.gif',
		'm0765.gif',
		'm0747.gif',
		'm0539.gif',
		'm0191.gif',
		'm0182.gif',
		'Ike1.gif',
		't1520.gif'
	),

	// Defines the available sounds loaded on chat start:
	soundFiles: {
		sound_1: 'sound_1.mp3',
		sound_2: 'sound_2.mp3',
		sound_3: 'sound_3.mp3',
		sound_4: 'sound_4.mp3',
		sound_5: 'sound_5.mp3',
		sound_6: 'sound_6.mp3'
	},
	
	
	// The following configuration options are usually overwritten by server-side values:
	
	// Session identification, used for style and setting cookies:
	sessionName: 'ajax_chat',

	// The time in days until the style and setting cookies expire:
	cookieExpiration: 365,
	// The path of the cookies, '/' allows to read the cookies from all directories:
	cookiePath: '/',
	// The domain of the cookies, defaults to the hostname of the server if set to null:
	cookieDomain: null,
	// If enabled, cookies must be sent over secure (SSL/TLS encrypted) connections:
	cookieSecure: null,
	
	// The name of the chat bot:
	chatBotName: 'ChatBot',
	// The userID of the chat bot:
	chatBotID: 2147483647,

	// Allow/Disallow registered users to delete their own messages:
	allowUserMessageDelete: true,
	
	// Minutes until a user is declared inactive (last status update) - the minimum is 2 minutes:
	inactiveTimeout: 2,

	// UserID plus this value are private channels (this is also the max userID and max channelID):
	privateChannelDiff: 500000000,
	// UserID plus this value are used for private messages:
	privateMessageDiff: 1000000000,

	// Defines if login/logout and channel enter/leave are displayed:
	showChannelMessages: true,

	// Max messageText length:
	messageTextMaxLength: 1040,

	// Defines if the socket server is enabled:
	socketServerEnabled: true,
	// Defines the hostname of the socket server used to connect from client side:
	socketServerHost: 'chat.giga.ua',
	// Defines the port of the socket server:
	socketServerPort: 1935,
	// This ID can be used to distinguish between different chat installations using the same socket server:
	socketServerChatID: 0

}