PageSourceSearch

https://calendar.morante.net/calendar/config.js

js morante.net collected 2026-10-04 14:54:56 UTC 54,940 bytes, 1,440 lines download raw bytes

1/*
2InfCloud - the open source CalDAV/CardDAV Web Client
3Copyright (C) 2011-2015
4    Jan Mate <[email protected]>
5    Andrej Lezo <[email protected]>
6    Matej Mihalik <[email protected]>
7
8This program is free software: you can redistribute it and/or modify
9it under the terms of the GNU Affero General Public License as
10published by the Free Software Foundation, either version 3 of the
11License, or (at your option) any later version.
12
13This program is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16GNU Affero General Public License for more details.
17
18You should have received a copy of the GNU Affero General Public License
19along with this program. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22
23// NOTE: see readme.txt before you start to configure this client!
24
25
26// NOTE: do not forget to execute the cache_update.sh script every time you
27// update this configuration file or any other files (otherwise your browser
28// will use the previous version of files stored in HTML5 cache). Alternatively
29// you can update the cache.manifest manually - edit the second line beginning
30// with "#V 20" to anything else (this file simple needs "some" change)
31
32
33// Supported setup types (use ONE of them):
34//   a.) globalAccountSettings => username and password is hardcoded
35//       in config.js, automatic login without the login screen
36//       - advantages: fast login process = no username/password is required
37//       - disadvantages: username/password is visible in your config.js, so
38//         this type of setup is recommended ONLY for intranet/home users
39//   b.) globalNetworkCheckSettings => standard setup with login screen
40//       - advantages: username/password is required (no visible
41//         username/password in config.js)
42//       - disadvantages: if a user enters wrong username/password then
43//         the browser will show authentication popup window (it is NOT
44//         possible to disable it in JavaScript; see the next option)
45//   c.) globalNetworkAccountSettings => advanced setup with login screen
46//       - advantages: no authentication popup if you enter wrong username/
47//         password, dynamic XML configuration generator (you can generate
48//         different configurations for your users /by modifying the "auth"
49//         module configuration or the PHP code itself/)
50//       - disadvantages: requires PHP >= 5.3 and additional configuration,
51//         only basic http authentication is supported => always use https!
52//
53//
54// What is a "principal URL"? => Check you server documentation!
55//   - "principal URL" is NOT "collection URL"
56//   - this client automatically detects collections for "principal URL"
57//   - PROPER "principal URL" looks like:
58//     https://server.com:8443/principals/users/USER/
59//     https://server.com:8443/caldav.php/USER/
60//   - INVALID principal URL looks like:
61//     https://server.com:8443/principals/users/USER/collection/
62//       => this is a collection URL
63//     https://server.com:8443/caldav.php/USER/collection/
64//       => this is a collection URL
65//     https://server.com:8443/principals/users/USER
66//       => missing trailing '/'
67//     https://server.com:8443/caldav.php/USER
68//       => missing trailing '/'
69//     /caldav.php/USER/
70//       => relative URL instead of full URL
71//
72//
73// List of properties used in globalAccountSettings, globalNetworkCheckSettings
74// and globalNetworkAccountSettings variables (+ in the "auth" module):
75// - href
76//   Depending on the setup type set the value to:
77//   a.) globalAccountSettings: full "principal URL"
78//   b.) globalNetworkCheckSettings: "principal URL" WITHOUT the "USER/" part
79//   c.) globalNetworkAccountSettings: "full URL" to the "auth" directory
80//   This property is supported in:
81//     globalAccountSettings
82//     globalNetworkCheckSettings
83//     globalNetworkAccountSettings
84// - userAuth
85//   - userName
86//     Set the username you want to login.
87//   - userPassword
88//     Set the password for the given username.
89//   This property is supported in:
90//     globalAccountSettings
91// - timeOut
92//   This option sets the timeout for jQuery .ajax call (in miliseconds).
93//   Example:
94//     timeOut: 90000
95//   This property is supported in:
96//     globalAccountSettings
97//     globalNetworkCheckSettings
98//     globalNetworkAccountSettings
99// - lockTimeOut 
100//   NOTE: used only if server supports LOCK requests
101//   This option sets the LOCK timeout value if resource locking
102//   is used (in miliseconds).
103//   Example:
104//     lockTimeOut: 10000
105//   This property is supported in:
106//     globalAccountSettings
107//     globalNetworkCheckSettings
108//     globalNetworkAccountSettings (available in auth module only)
109// - checkContentType
110//   This option enables a content-type checking for server response.
111//   If enabled then only objects with proper content-type are inserted
112//   into the interface.
113//   If you cannot see data in the interface you may try to disable it (useful
114//   if your server returns wrong value in "propstat/prop/getcontenttype").
115//   If undefined then content-type checking is enabled.
116//   Examples:
117//     checkContentType: true
118//     checkContentType: false
119//   This property is supported in:
120//     globalAccountSettings
121//     globalNetworkCheckSettings
122//     globalNetworkAccountSettings (available in auth module only)
123// - settingsAccount
124//   NOTE: server support for custom DAV properties is REQUIRED!
125//   This option sets the account where the client properties such as:
126//   loaded collections, enabled collections, ... are saved during
127//   the logout and resource/collection synchronisation
128//   NOTE: set it to true ONLY for ONE account!
129//   Examples:
130//     settingsAccount: true
131//     settingsAccount: false
132//   This property is supported in:
133//     globalAccountSettings
134//     globalNetworkCheckSettings
135//     globalNetworkAccountSettings (available in auth module only)
136// - delegation
137//   NOTE: server support for this functionality is REQUIRED!
138//   This option allows you to load delegated (shared) collections.
139//   If set to true (default) then delegation functionality is enabled,
140//   and the interface allows you to load delegated collections.
141//   If false then delegation functionality is completely disabled.
142//   Examples:
143//     delegation: true
144//     delegation: false
145//   This property is supported in:
146//     globalAccountSettings
147//     globalNetworkCheckSettings
148//     globalNetworkAccountSettings (available in auth module only)
149// - additionalResources
150//   This options sets the list of additional resources (e.g. shared resources
151//   accessible by all users). If the server supports delegation (see
152//   the delegation option above) there is no reason to use this option!
153//   Supported values:
154//   - array of URL encoded resource names (not collections), such as:
155//     'company'
156//     'shared_resource'
157//   If empty (default) or undefined then shared resources are not loaded
158//   using this option, but may be loaded using the delegation option.
159//   Examples:
160//     additionalResources=[]
161//     additionalResources=['public', 'shared_resource']
162//   This property is supported in:
163//     globalNetworkCheckSettings
164// - hrefLabel
165//   This option sets the server name in the resource header (useful if
166//   you want to see custom resource header above the collections).
167//   You can use the following variables in the value:
168//     %H = full hostname (including the port number)
169//     %h = full hostname (without the port number)
170//     %D = full domain name
171//     %d = only the first and second level domain
172//     %P = principal name
173//     %p = principal name without the @domain.com part (if present)
174//     %U = logged user name
175//     %u = logged user name without the @domain.com part (if present)
176//   If undefined, empty or or null then '%d/%p [%u]' is used.
177//   Examples: 
178//     hrefLabel: '%d/%p [%u]'
179//     hrefLabel: '%D/%u'
180//   This property is supported in:
181//     globalAccountSettings
182//     globalNetworkCheckSettings
183//     globalNetworkAccountSettings (available in auth module only)
184// - forceReadOnly
185//   This option sets the list of collections as "read-only".
186//   Supported values:
187//   - true
188//     all collections will be "read-only"
189//   - array of URL encoded
190//     - collections, such as: 
191//       '/caldav.php/user/calendar/'
192//       '/caldav.php/user%40domain.com/calendar/'
193//     - regexes, such as:
194//       new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
195//     specifies the list of collections marked as "read-only"
196//   If null (default) or undefined then server detected privileges are used.
197//   Examples:
198//     forceReadOnly: null
199//     forceReadOnly: true
200//     forceReadOnly: ['/caldav.php/user/calendar/', 
201//                     '/caldav.php/user/calendar2/']
202//     forceReadOnly: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
203//   This property is supported in:
204//     globalAccountSettings
205//     globalNetworkCheckSettings
206//     globalNetworkAccountSettings (available in auth module only, with
207//       different syntax for regexes)
208// - ignoreAlarms
209//   This option sets list of calendar collections with disabled
210//   alarm functionality.
211//   Supported values:
212//   - true
213//     alarm functionality is disabled for all collections
214//   - array of URL encoded
215//     - collections, such as: 
216//       '/caldav.php/user/calendar/'
217//       '/caldav.php/user%40domain.com/calendar/'
218//     - regexes, such as:
219//       new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
220//     specifies the list of collections with disabled alarm functionality.
221//   If false (default) or undefined then alarm functionality is enabled
222//   for all collections.
223//   Examples:
224//     ignoreAlarms: true
225//     ignoreAlarms: ['/caldav.php/user/calendar/', 
226//                    '/caldav.php/user/calendar2/']
227//     ignoreAlarms: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
228//   This property is supported in:
229//     globalAccountSettings
230//     globalNetworkCheckSettings
231//     globalNetworkAccountSettings (available in auth module only, with
232//       different syntax for regexes)
233// - backgroundCalendars
234//   This options defines a list of background calendars. If there is
235//   at least one event defined for the given day in a background calendar,
236//   the background color for that day will be pink/light-red.
237//   Supported values:
238//   - array of URL encoded
239//     - collections, such as: 
240//       '/caldav.php/user/calendar/'
241//       '/caldav.php/user%40domain.com/calendar/'
242//     - regexes, such as:
243//       new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
244//     specifies the list of background calendar collections.
245//   Examples:
246//     backgroundCalendars: ['/caldav.php/user/calendar/', 
247//                           '/caldav.php/user/calendar2/']
248//     backgroundCalendars: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
249//   This property is supported in:
250//     globalAccountSettings
251//     globalNetworkCheckSettings
252//     globalNetworkAccountSettings (available in auth module only, with
253//       different syntax for regexes)
254// Special options not present in configuration examples:
255// NOTE: use ONLY if you know what are you doing!
256// - crossDomain
257//   This option sets the crossDomain for jQuery .ajax call. If null (default)
258//   then the value is autodetected /and the result is shown in the console/
259// - withCredentials
260//   This option sets the withCredentials for jQuery .ajax call. The default
261//   value is false and there is NO REASON to change it to true!
262//   NOTE: if true, Access-Control-Allow-Origin "*" (CORS header) not works!
263
264
265// globalAccountSettings
266// Use this option if you want to use automatic login (without a login
267// screen) with hardcoded username/password in config.js. Otherwise use
268// globalNetworkCheckSettings or globalNetworkAccountSettings (see below).
269// NOTE: if this option is used the value must be an array of object(s).
270// List of properties used in globalAccountSettings variable:
271// - href
272//   Set this option to the full "principal URL".
273//   NOTE: the last character in the value must be '/'
274// - userAuth
275//   - userName
276//     Set the username you want to login.
277//   - userPassword
278//     Set the password for the given username.
279// NOTE: for description of other properties see comments at the beginning
280// of this file.
281// NOTE: for minimal/fast setup you need to set only the href and userAuth
282// options. It is safe/recommended to keep the remaining options unchanged!
283// Example:
284//var globalAccountSettings=[
285//	{
286//		href: 'https://server1.com:8443/caldav.php/USERNAME1/',
287//		userAuth:
288//		{
289//			userName: 'USERNAME1',
290//			userPassword: 'PASSWORD1'
291//		},
292//		timeOut: 90000,
293//		lockTimeOut: 10000,
294//		checkContentType: true,
295//		settingsAccount: true,
296//		delegation: true,
297//		hrefLabel: null,
298//		forceReadOnly: null,
299//		ignoreAlarms: false,
300//		backgroundCalendars: []
301//	},
302//	{
303//		href: 'https://server2.com:8443/caldav.php/USERNAME2/',
304//		...
305//		...
306//	}
307//];
308
309
310// globalNetworkCheckSettings
311// Use this option if you want to use standard login screen without
312// hardcoded username/password in config.js (used by globalAccountSettings).
313// NOTE: if this option is used the value must be an object.
314// List of properties used in globalAccountSettings variable:
315// - href
316//   Set this option to the "principal URL" WITHOUT the "USERNAME/"
317//   part (this options uses the username from the login screen).
318//   NOTE: the last character in the value must be '/'
319// NOTE: for description of other properties see comments at the beginning
320// of this file.
321// NOTE: for minimal/fast setup you need to set only the href option. It is
322// safe/recommended to keep the remaining options unchanged!
323// Example href values:
324// OS X server http example (see misc/readme_osx.txt for server setup):
325//   href: 'http://osx.server.com:8008/principals/users/'
326// OS X server https example (see misc/readme_osx.txt for server setup):
327//   href: 'https://osx.server.com:8443/principals/users/'
328// Cyrus server https example:
329//   href: 'https://cyrus.server.com/dav/principals/user/'
330// Example:
331// Davical example which automatically detects the protocol, server name,
332// port, ... (client installed into Davical "htdocs" subdirectory;
333// works "out of the box", no additional setup required):
334var globalNetworkCheckSettings={
335	href: location.protocol+'//'+location.hostname+
336		(location.port ? ':'+location.port: '')+
337		location.pathname.replace(RegExp('/+[^/]+/*(index\.html)?$'),'')+
338		'/caldav.php/',
339	timeOut: 90000,
340	lockTimeOut: 10000,
341	checkContentType: true,
342	settingsAccount: true,
343	delegation: true,
344	additionalResources: [],
345	hrefLabel: null,
346	forceReadOnly: null,
347	ignoreAlarms: false,
348	backgroundCalendars: []
349}
350
351
352// globalNetworkAccountSettings
353// Try this option ONLY if you have working setup using
354// globalNetworkCheckSettings and want to fix the authentication popup
355// window problem (if invalid username/password is entered)!
356// If you use this option then your browser sends username/password to the PHP
357// "auth" module ("auth" directory) instead of the DAV server itself.
358// The "auth" module then validates your username/password against your server,
359// and if the authentication is successful, then it sends back a configuration
360// XML (requires additional configuration). The resulting XML is handled
361// IDENTICALLY as the globalAccountSettings configuration option.
362// NOTE: for the "auth" module configuration see readme.txt!
363// NOTE: this option invokes a login screen and disallows access until
364// the client gets correct XML configuration file from the server!
365// List of properties used in globalNetworkAccountSettings variable:
366// - href
367//   Set this option to the "full URL" of the "auth" directory
368//   NOTE: the last character in the value must be '/'
369// NOTE: for description of other properties see comments at the beginning
370// of this file.
371// Example href values:
372//   href: 'https://server.com/client/auth/'
373// Example:
374// Use this configuration if the "auth" module is located in the client
375// installation subdirectory (default):
376//var globalNetworkAccountSettings={
377//	href: location.protocol+'//'+location.hostname+
378//		(location.port ? ':'+location.port : '')+
379//		location.pathname.replace(RegExp('index\.html$'),'')+
380//		'auth/',
381//	timeOut: 30000
382//};
383
384
385// globalUseJqueryAuth
386// Use jQuery .ajax() auth or custom header for HTTP basic auth (default).
387// Set this option to true if your server uses digest auth (note: you may
388// experience auth popups on some browsers).
389// If undefined (or empty), custom header for HTTP basic auth is used.
390// Example:
391//var globalUseJqueryAuth=false;
392
393
394// globalBackgroundSync
395// Enable background synchronization even if the browser window/tab has no
396// focus.
397// If false, synchronization is performed only if the browser window/tab
398// is focused. If undefined or not false, then background sync is enabled.
399// Example:
400var globalBackgroundSync=true;
401
402
403// globalSyncResourcesInterval
404// This option defines how often (in miliseconds) are resources/collections
405// asynchronously synchronized.
406// Example:
407var globalSyncResourcesInterval=120000;
408
409
410// globalEnableRefresh
411// This option enables or disables the manual synchronization button in
412// the interface. If this option is enabled then users can perform server
413// synchronization manually. Enabling this option may cause high server
414// load (even DDOS) if users will try to manually synchronize data too
415// often (instead of waiting for the automatic synchronization).
416// If undefined or false, the synchronization button is disabled.
417// NOTE: enable this option only if you really know what are you doing!
418// Example:
419var globalEnableRefresh=false;
420
421
422// globalEnableKbNavigation
423// Enable basic keyboard navigation using arrow keys?
424// If undefined or not false, keyboard navigation is enabled.
425// Example:
426var globalEnableKbNavigation=true;
427
428
429// globalSettingsType
430// Where to store user settings such as: active view, enabled/selected
431// collections, ... (the client store them into DAV property on the server).
432// NOTE: not all servers support storing DAV properties (some servers support
433// only subset /or none/ of these URLs).
434// Supported values:
435// - 'principal-URL', '', null or undefined (default) => settings are stored
436//   to principal-URL (recommended for most servers)
437// - 'addressbook-home-set' => settings are are stored to addressbook-home-set
438// - 'calendar-home-set' => settings are stored to calendar-home-set
439// Example:
440//var globalSettingsType='';
441
442
443// globalCrossServerSettingsURL
444// Settings such as enabled/selected collections are stored on the server
445// (see the previous option) in form of full URL
446// (e.g.: https://user@server:port/principal/collection/), but even if this
447// approach is "correct" (you can use the same principal URL with multiple
448// different logins, ...) it causes a problem if your server is accessible
449// from multiple URLs (e.g. http://server/ and https://server/). If you want
450// to store only the "principal/collection/" part of the URL (instead of the
451// full URL) then enable this option.
452// Example:
453//var globalCrossServerSettingsURL=false;
454
455
456// globalInterfaceLanguage
457// Default interface language (note: this option is case sensitive):
458//   cs_CZ (Čeština [Czech])
459//   da_DK (Dansk [Danish]; thanks Niels Bo Andersen)
460//   de_DE (Deutsch [German]; thanks Marten Gajda and Thomas Scheel)
461//   en_US (English [English/US])
462//   es_ES (Español [Spanish]; thanks Damián Vila)
463//   fr_FR (Français [French]; thanks John Fischer)
464//   it_IT (Italiano [Italian]; thanks Luca Ferrario)
465//   ja_JP (日本語 [Japan]; thanks Muimu Nakayama)
466//   hu_HU (Magyar [Hungarian])
467//   nl_NL (Nederlands [Dutch]; thanks Johan Vromans)
468//   sk_SK (Slovenčina [Slovak])
469//   tr_TR (Türkçe [Turkish]; thanks Selcuk Pultar)
470//   ru_RU (Русский [Russian]; thanks Александр Симонов)
471//   uk_UA (Українська [Ukrainian]; thanks Serge Yakimchuck)
472//   zh_CN (中国 [Chinese]; thanks Fandy)
473// Example:
474var globalInterfaceLanguage='en_US';
475
476
477// globalInterfaceCustomLanguages
478// If defined and not empty then only languages listed here are shown
479// at the login screen, otherwise (default) all languages are shown
480// NOTE: values in the array must refer to an existing localization
481// (see the option above)
482// Example:
483//   globalInterfaceCustomLanguages=['en_US', 'sk_SK'];
484var globalInterfaceCustomLanguages=[];
485
486
487// globalSortAlphabet
488// Use JavaScript localeCompare() or custom alphabet for data sorting.
489// Custom alphabet is used by default because JavaScript localeCompare()
490// not supports collation and often returns "wrong" result. If set to null
491// then localeCompare() is used.
492// Example:
493//   var globalSortAlphabet=null;
494var globalSortAlphabet=' 0123456789'+
495	'AÀÁÂÄÆÃÅĀBCÇĆČDĎEÈÉÊËĒĖĘĚFGĞHIÌÍÎİÏĪĮJKLŁĹĽMNŃÑŇOÒÓÔÖŐŒØÕŌ'+
496	'PQRŔŘSŚŠȘșŞşẞTŤȚțŢţUÙÚÛÜŰŮŪVWXYÝŸZŹŻŽ'+
497	'aàáâäæãåābcçćčdďeèéêëēėęěfgğhiìíîïīįıjklłĺľmnńñňoòóôöőœøõō'+
498	'pqrŕřsśšßtťuùúûüűůūvwxyýÿzźżžАБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЮЯ'+
499	'Ьабвгґдеєжзиіїйклмнопрстуфхцчшщюяь';
500
501
502// globalSearchTransformAlphabet
503// To support search without diacritics (e.g. search for 'd' will find: 'Ď', 'ď')
504// it is required to define something like "character equivalence".
505// key = regex text, value = search character
506// Example:
507var globalSearchTransformAlphabet={
508	'[ÀàÁáÂâÄ䯿ÃãÅåĀā]': 'a', '[ÇçĆćČč]': 'c', '[Ďď]': 'd',
509	'[ÈèÉéÊêËëĒēĖėĘęĚě]': 'e', '[Ğğ]': 'g', '[ÌìÍíÎîİıÏïĪīĮį]': 'i',
510	'[ŁłĹ弾]': 'l', '[ŃńÑñŇň]': 'n', '[ÒòÓóÔôÖöŐőŒœØøÕõŌō]': 'o',
511	'[ŔŕŘř]': 'r', '[ŚśŠšȘșŞşẞß]': 's', '[ŤťȚțŢţ]': 't',
512	'[ÙùÚúÛûÜüŰűŮůŪū]': 'u', '[ÝýŸÿ]': 'y', '[ŹźŻżŽž]': 'z'
513};
514
515// globalResourceAlphabetSorting
516// If more than one resource (server account) is configured, sort the
517// resources alphabetically?
518// Example:
519var globalResourceAlphabetSorting=true;
520
521
522// globalNewVersionNotifyUsers
523// Update notification will be shown only to users with login names defined
524// in this array.
525// If undefined (or empty), update notifications will be shown to all users.
526// Example:
527//   globalNewVersionNotifyUsers=['admin', 'peter'];
528var globalNewVersionNotifyUsers=[];
529
530
531// globalDatepickerFormat
532// Set the datepicker format (see 
533// http://docs.jquery.com/UI/Datepicker/formatDate for valid values).
534// NOTE: date format is predefined for each localization - use this option
535// ONLY if you want to use custom date format (instead of the localization
536// predefined one).
537// Example:
538//var globalDatepickerFormat='dd.mm.yy';
539
540
541// globalDatepickerFirstDayOfWeek
542// Set the datepicker first day of the week: Sunday is 0, Monday is 1, etc.
543// Example:
544var globalDatepickerFirstDayOfWeek=1;
545
546
547// globalHideInfoMessageAfter
548// How long are information messages (such as: success, error) displayed
549// (in miliseconds).
550// Example:
551var globalHideInfoMessageAfter=1800;
552
553
554// globalEditorFadeAnimation
555// Set the editor fade in/out animation duration when editing or saving data
556// (in miliseconds).
557// Example:
558var globalEditorFadeAnimation=666;
559
560
561
562
563// ******* CalDAV (CalDavZAP) related settings ******* //
564
565// globalEventStartPastLimit, globalEventStartFutureLimit, globalTodoPastLimit
566// Number of months pre-loaded from past/future in advance for calendars
567// and todo lists (if null then date range synchronization is disabled).
568// NOTE: interval synchronization is used only if your server supports
569// sync-collection REPORT (e.g. DAViCal).
570// NOTE: if you experience problems with data loading and your server has
571// no time-range filtering support set these variables to null.
572// Example:
573var globalEventStartPastLimit=3;
574var globalEventStartFutureLimit=3;
575var globalTodoPastLimit=1;
576
577
578// globalLoadedCalendarCollections
579// This option sets the list of calendar collections (down)loaded after login.
580// If empty then all calendar collections for the currently logged user are
581// loaded.
582// NOTE: settings stored on the server (see settingsAccount) overwrite this
583// option.
584// Example:
585var globalLoadedCalendarCollections=[];
586
587
588// globalLoadedTodoCollections
589// This option sets the list of todo collections (down)loaded after login.
590// If empty then all todo collections for the currently logged user are loaded.
591// NOTE: settings stored on the server (see settingsAccount) overwrite this
592// option.
593// Example:
594var globalLoadedTodoCollections=[];
595
596
597// globalActiveCalendarCollections
598// This options sets the list of calendar collections checked (enabled
599// checkbox => data visible in the interface) by default after login.
600// If empty then all loaded calendar collections for the currently logged
601// user are checked.
602// NOTE: only already (down)loaded collections can be checked (see 
603// the globalLoadedCalendarCollections option).
604// NOTE: settings stored on the server (see settingsAccount) overwrite this
605// option.
606// Example:
607var globalActiveCalendarCollections=[];
608
609
610// globalActiveTodoCollections
611// This options sets the list of todo collections checked (enabled
612// checkbox => data visible in the interface) by default after login.
613// If empty then all loaded todo collections for the currently logged
614// user are checked.
615// NOTE: only already (down)loaded collections can be checked (see 
616// the globalLoadedTodoCollections option).
617// NOTE: settings stored on the server (see settingsAccount) overwrite this
618// option.
619// Example:
620var globalActiveTodoCollections=[];
621
622
623// globalCalendarSelected
624// This option sets which calendar collection will be pre-selected
625// (if you create a new event) by default after login.
626// The value must be URL encoded path to a calendar collection,
627// for example: 'USER/calendar/'
628// If empty or undefined then the first available calendar collection
629// is selected automatically.
630// NOTE: only already (down)loaded collections can be pre-selected (see
631// the globalLoadedCalendarCollections option).
632// NOTE: settings stored on the server (see settingsAccount) overwrite this
633// option.
634// Example:
635//var globalCalendarSelected='';
636
637
638// globalTodoCalendarSelected
639// This option sets which todo collection will be pre-selected
640// (if you create a new todo) by default after login.
641// The value must be URL encoded path to a todo collection,
642// for example: 'USER/todo_calendar/'
643// If empty or undefined then the first available todo collection
644// is selected automatically.
645// NOTE: only already (down)loaded collections can be pre-selected (see 
646// the globalLoadedTodoCollections option).
647// NOTE: settings stored on the server (see settingsAccount) overwrite this
648// option.
649// Example:
650//var globalTodoCalendarSelected='';
651
652
653// globalActiveView
654// This options sets the default fullcalendar view option (the default calendar
655// view after the first login).
656// Supported values:
657// - 'month'
658// - 'multiWeek'
659// - 'agendaWeek'
660// - 'agendaDay'
661// NOTE: we use custom and enhanced version of fullcalendar!
662// Example:
663var globalActiveView='multiWeek';
664
665
666// globalOpenFormMode
667// Open new event form on 'single' or 'double' click.
668// If undefined or not 'double', then 'single' is used.
669// Example:
670var globalOpenFormMode='double';
671
672
673// globalTodoListFilterSelected
674// This options sets the list of filters in todo list that are selected
675// after login.
676// Supported options:
677// - 'filterAction'
678// - 'filterProgress' (available only if globalAppleRemindersMode is disabled)
679// - 'filterCompleted'
680// - 'filterCanceled' (available only if globalAppleRemindersMode is disabled)
681// NOTE: settings stored on the server (see settingsAccount) overwrite this
682// option.
683// Example:
684var globalTodoListFilterSelected=['filterAction', 'filterProgress'];
685
686
687// globalCalendarStartOfBusiness, globalCalendarEndOfBusiness
688// These options set the start and end of business hours with 0.5 hour
689// precision. Non-business hours are faded out in the calendar interface.
690// If both variables are set to the same value then no fade out occurs.
691// Example:
692var globalCalendarStartOfBusiness=8;
693var globalCalendarEndOfBusiness=17;
694
695
696// globalDefaultEventDuration
697// This option sets the default duration (in minutes) for newly created events.
698// If undefined or null, globalCalendarEndOfBusiness value will be taken as
699// a default end time instead.
700// Example:
701var globalDefaultEventDuration=120;
702
703
704// globalAMPMFormat
705// This option enables to use 12 hours format (AM/PM) for displaying time.
706// NOTE: time format is predefined for each localization - use this option
707// ONLY if you want to use custom time format (instead of the localization
708// predefined one).
709// Example:
710//var globalAMPMFormat=false;
711
712
713// globalTimeFormatBasic
714// This option defines the time format information for events in month and
715// multiweek views. If undefined or null then default value is used.
716// If defined as empty string no time information is shown in these views.
717// See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact
718// formating rules.
719// Example:
720//var globalTimeFormatBasic='';
721
722
723// globalTimeFormatAgenda
724// This option defines the time format information for events in day and
725// week views. If undefined or null then default value is used.
726// If defined as empty string no time information is shown in these views.
727// See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact
728// formating rules.
729// Example:
730//var globalTimeFormatAgenda='';
731
732
733// globalDisplayHiddenEvents
734// This option defined whether events from unechecked calendars are displayed
735// with certain transparency (true) or completely hidden (false).
736// Example:
737var globalDisplayHiddenEvents=false;
738
739
740// globalTimeZoneSupport
741// This option enables timezone support in the client.
742// NOTE: timezone cannot be specified for all-day events because these don't
743// have start and end time.
744// If this option is disabled then local time is used.
745// Example:
746var globalTimeZoneSupport=true;
747
748
749// globalTimeZone
750// If timezone support is enabled, this option sets the default timezone.
751// See timezones.js or use the following command to get the list of supported
752// timezones (defined in timezones.js):
753// grep "'[^']\+': {" timezones.js | sed -Ee "s#(\s*'|':\s*\{)##g"
754// Example:
755var globalTimeZone='Europe/Berlin';
756
757
758// globalTimeZonesEnabled
759// This option sets the list of available timezones in the interface (for the 
760// list of supported timezones see the comment for the previous configuration
761// option).
762// NOTE: if there is at least one event/todo with a certain timezone defined,
763// that timezone is enabled (even if it is not present in this list).
764// Example:
765//   var globalTimeZonesEnabled=['America/New_York', 'Europe/Berlin'];	
766var globalTimeZonesEnabled=[];
767
768
769// globalRewriteTimezoneComponent
770// This options sets whether the client will enhance/replace (if you edit an
771// event or todo) the timezone information using the official IANA timezone
772// database information (recommended).
773// Example:
774var globalRewriteTimezoneComponent=true;
775
776
777// globalRemoveUnknownTimezone
778// This options sets whether the client will remove all non-standard timezone
779// names from events and todos (if you edit an event or todo)
780// (e.g.: /freeassociation.sourceforge.net/Tzfile/Europe/Vienna)
781// Example:
782var globalRemoveUnknownTimezone=false;
783
784
785// globalShowHiddenAlarms
786// This option sets whether the client will show alarm notifications for
787// unchecked calendars. If this option is enabled and you uncheck a calendar
788// in the calendar list, alarm notifications will be temporary disabled for
789// unchecked calendar(s).
790// Example:
791var globalShowHiddenAlarms=false;
792
793
794// globalIgnoreCompletedOrCancelledAlarms
795// This options sets whether the client will show alarm notifications for
796// already completed or cancelled todos. If enabled then alarm notification
797// for completed and cancelled todos are disabled.
798// Example:
799var globalIgnoreCompletedOrCancelledAlarms=true;
800
801
802// globalMozillaSupport
803// Mozilla automatically treats custom repeating event calculations as if
804// the start day of the week is Monday, despite what day is chosen in settings.
805// Set this variable to true to use the same approach, ensuring compatible
806// event rendering in special cases.
807// Example:
808var globalMozillaSupport=false;
809
810
811// globalCalendarColorPropertyXmlns
812// This options sets the namespace used for storing the "calendar-color"
813// property by the client.
814// If true, undefined (or empty) "http://apple.com/ns/ical/" is used (Apple
815// compatible). If false, then the calendar color modification functionality
816// is completely disabled.
817// Example:
818//var globalCalendarColorPropertyXmlns=true;
819
820
821// globalWeekendDays
822// This option sets the list of days considered as weekend days (these
823// are faded out in the calendar interface). Non-weekend days are automatically
824// considered as business days.
825// Sunday is 0, Monday is 1, etc.
826// Example:
827var globalWeekendDays=[0, 6];
828
829
830// globalAppleRemindersMode
831// If this option is enabled then then client will use the same approach
832// for handling repeating reminders (todos) as Apple. It is STRONGLY
833// recommended to enabled this option if you use any Apple clients for
834// reminders (todos).
835// Supported options:
836// - 'iOS6'
837// - 'iOS7'
838// - true (support of the latest iOS version - 'iOS8')
839// - false
840// If this option is enabled:
841// - RFC todo support is SEVERELY limited and the client mimics the behaviour
842//   of Apple Reminders.app (to ensure maximum compatibility)
843// - when a single instance of repeating todo is edited, it becomes an
844//   autonomous non-repeating todo with NO relation to the original repeating
845//   todo
846// - capabilities of repeating todos are limited - only the first instance
847//   is ever visible in the interface
848// - support for todo DTSTART attribute is disabled
849// - support for todo STATUS attribute other than COMPLETED and NEEDS-ACTION
850//   is disabled
851// - [iOS6 only] support for LOCATION and URL attributes is disabled
852// Example:
853var globalAppleRemindersMode=true;
854
855
856// globalSubscribedCalendars
857// This option specifies a list of remote URLs to ics files (e.g.: used
858// for distributing holidays information). Subscribed calendars are
859// ALWAYS read-only. Remote servers where ics files are hosted MUST
860// return proper CORS headers (see readme.txt) otherwise this functionality
861// will not work!
862// NOTE: subsribed calendars are NOT "shared" calendars. For "shared"
863// calendars see the delegation option in globalAccountSettings,
864// globalNetworkCheckSettings and globalNetworkAccountSettings.
865// List of properties used in globalSubscribedCalendars variable:
866// - hrefLabel
867//   This options defines the header string above the subcsribed calendars.
868// - calendars
869//   This option specifies an array of remote calendar objects with the
870//   following properties:
871//   - href
872//     Set this option to the "full URL" of the remote calendar
873//   - userAuth
874//     NOTE: keep empty if remote authentication is not required!
875//     - userName
876//       Set the username you want to login.
877//     - userPassword
878//       Set the password for the given username.
879//   - typeList
880//     Set the list of objects you want to process from remote calendars;
881//     two options are available:
882//     - 'vevent' (show remote events in the interface) 
883//     - 'vtodo' (show remote todos in the interface) 
884//   - ignoreAlarm
885//     Set this option to true if you want to disable alarm notifications
886//     from the remote calendar.
887//   - displayName
888//     Set this option to the name of the calendar you want to see
889//     in the interface.
890//   - color
891//     Set the calendar color you want to see in the interface.
892// Example:
893//var globalSubscribedCalendars={
894//	hrefLabel: 'Subscribed',
895//	calendars: [
896//		{
897//			href: 'http://something.com/calendar.ics',
898//			userAuth: {
899//				userName: '',
900//				userPassword: ''
901//			},
902//			typeList: ['vevent', 'vtodo'],
903//			ignoreAlarm: true,
904//			displayName: 'Remote Calendar 1',
905//			color: '#ff0000'
906//		},
907//		{
908//			href: 'http://calendar.com/calendar2.ics',
909//			...
910//			...
911//		}
912//	]
913//};
914
915
916
917// ******* CardDAV (CardDavMATE) related settings ******* //
918
919
920// globalLoadedAddressbookCollections
921// This option sets the list of addressbook collections (down)loaded after
922// login. If empty then all addressbook collections for the currently logged
923// user are loaded.
924// NOTE: settings stored on the server (see settingsAccount) overwrite this
925// option.
926// Example:
927var globalLoadedAddressbookCollections=[];
928
929
930// globalActiveAddressbookCollections
931// This options sets the list of addressbook collections checked (enabled
932// checkbox => data visible in the interface) by default after login.
933// If empty then all loaded addressbook collections for the currently logged
934// user are checked.
935// NOTE: only already (down)loaded collections can be checked (see
936// the globalLoadedAddressbookCollections option).
937// NOTE: settings stored on the server (see settingsAccount) overwrite this
938// option.
939// Example:
940var globalActiveAddressbookCollections=[];
941
942
943// globalAddressbookSelected
944// This option sets which addressbook collection will be pre-selected
945// (if you create a new contact) by default after login.
946// The value must be URL encoded path to an addressbook collection,
947// for example: 'USER/addressbook/'
948// If empty or undefined then the first available addressbook collection
949// is selected automatically.
950// NOTE: only already (down)loaded collections can be pre-selected (see
951// the globalLoadedAddressbookCollections option).
952// NOTE: settings stored on the server (see settingsAccount) overwrite this
953// option.
954// Example:
955//var globalAddressbookSelected='';
956
957
958// globalCompatibility
959// This options is reserved for various compatibility settings.
960// NOTE: if this option is used the value must be an object.
961// Currently there is only one supported option:
962// - anniversaryOutputFormat
963//   Different clients use different (and incompatible) approach
964//   to store anniversary date in vCards. Apple stores this attribute as:
965//     itemX.X-ABDATE;TYPE=pref:2000-01-01\r\n
966//     itemX.X-ABLabel:_$!<Anniversary>!$_\r\n'
967//   other clients store this attribute as:
968//     X-ANNIVERSARY:2000-01-01\r\n
969//   Choose 'apple' or 'other' (lower case) for your 3rd party client
970//   compatibility. You can chose both: ['apple', 'other'], but it may
971//   cause many problems in the future, for example: duplicate anniversary
972//   dates, invalid/old anniversary date in your clients, ...)
973//   Examples:
974//     anniversaryOutputFormat: ['other']
975//     anniversaryOutputFormat: ['apple', 'other']
976// Example:
977var globalCompatibility={anniversaryOutputFormat: ['apple']};
978
979
980// globalUriHandler{Tel,Email,Url,Profile}
981// These options set the URI handlers for TEL, EMAIL, URL and X-SOCIALPROFILE
982// vCard attributes. Set them to null (or comment out) to disable.
983// NOTE: for globalUriHandlerTel is recommended to use 'tel:', 'callto:'
984// or 'skype:'. The globalUriHandlerUrl value is used only if no URI handler
985// is defined in the URL.
986// NOTE: it is safe to keep these values unchanged!
987// Example:
988var globalUriHandlerTel='tel:';
989var globalUriHandlerEmail='mailto:';
990var globalUriHandlerUrl='http://';
991var globalUriHandlerProfile={
992	'twitter': 'http://twitter.com/%u',
993	'facebook': 'http://www.facebook.com/%u',
994	'flickr': 'http://www.flickr.com/photos/%u',
995	'linkedin': 'http://www.linkedin.com/in/%u',
996	'myspace': 'http://www.myspace.com/%u',
997	'sinaweibo': 'http://weibo.com/n/%u'
998};
999
1000
1001// globalDefaultAddressCountry
1002// This option sets the default country for new address fields.
1003// See common.js or use the following command to get the list of
1004// all supported country codes (defined in common.js):
1005// grep -E "'[a-z]{2}':\s+\[" common.js | sed -Ee 's#^\s+|\s+\[\s+# #g'
1006// Example:
1007var globalDefaultAddressCountry='us';
1008
1009
1010// globalAddressCountryEquivalence
1011// This option sets the processing of the country field specified
1012// in the vCard ADR attribute.
1013// By default the address field in vCard looks like:
1014//   ADR;TYPE=WORK:;;1 Waters Edge;Baytown;LA;30314;USA\r\n
1015// what cause a problem, because the country field is a plain
1016// text and can contain any value, e.g.:
1017//   USA
1018//   United States of America
1019//   US
1020// and because the address format can be completely different for
1021// each country, e.g.:
1022//   China address example:
1023//     [China]
1024//     [Province] [City]
1025//     [Street]
1026//     [Postal]
1027//   Japan address example:
1028//     [Postal]
1029//     [Prefecture] [County/City]
1030//     [Further Divisions]
1031//     [Japan]
1032// the client needs to correctly detect the country from the ADR
1033// attribute. Apple solved this problem by using:
1034//   item1.ADR;TYPE=WORK:;;1 Waters Edge;Baytown;LA;30314;USA\r\n
1035//   item1.X-ABADR:us\r\n
1036// where the second "related" attribute defines the country code
1037// for the ADR attribute. This client uses the same approach, but
1038// if the vCard is created by 3rd party clients and the X-ABADR
1039// is missing, it is possible to define additional "rules" for
1040// country matching. These rules are specied by the country code
1041// (for full list of country codes see the comment for pre previous
1042// option) and a case insensitive regular expression (which matches
1043// the plain text value in the country field).
1044// NOTE: if X-ABADR is not present and the country not matches any
1045// country defined in this option, then globalDefaultAddressCountry
1046// is used by default.
1047// Example:
1048var globalAddressCountryEquivalence=[
1049	{country: 'de', regex: '^\\W*Deutschland\\W*$'},
1050	{country: 'sk', regex: '^\\W*Slovensko\\W*$'}
1051];
1052
1053
1054// globalAddressCountryFavorites
1055// This option defines the list of countries which are shown at the top
1056// of the country list in the interface (for full list of country codes
1057// see the comment for pre globalDefaultAddressCountry option).
1058// Example:
1059//   var globalAddressCountryFavorites=['de','sk'];
1060var globalAddressCountryFavorites=[];
1061
1062
1063// globalAddrColorPropertyXmlns
1064// This options sets the namespace used for storing the "addressbook-color"
1065// property by the client.
1066// If true, undefined (or empty) "http://inf-it.com/ns/ab/" is used.
1067// If false, then the addressbook color modification functionality
1068// is completely disabled, and addressbook colors in the interface are
1069// generated automatically.
1070// Example:
1071//var globalAddrColorPropertyXmlns=true;
1072
1073
1074// globalContactStoreFN
1075// This option specifies how the FN (formatted name) is stored into vCard.
1076// The value for this options must be an array of strings, that can contain
1077// the following variables:
1078//   prefix
1079//   last
1080//   middle
1081//   first
1082//   suffix
1083// The string element of the array can contain any other characters (usually
1084// space or colon). Elements are added into FN only if the there is
1085// a variable match, for example if:
1086//     last='Lastname'
1087//     first='Firstname'
1088//     middle='' (empty)
1089//   and this option is set to:
1090//     ['last', ' middle', ' first'] (space in the second and third element)
1091//   the resulting value for FN will be: 'Lastname Firstname' and not
1092//   'Lastname  Firstname' (two spaces), because the middle name is empty (so
1093//   the second element is completely ignored /not added into FN/).
1094// NOTE: this attribute is NOT used by this client, and it is also NOT
1095// possible to directly edit it in the interface.
1096// Examples:
1097//   var globalContactStoreFN=[' last', ' middle', ' first'];
1098//   var globalContactStoreFN=['last', ', middle', ' ,first'];
1099var globalContactStoreFN=['prefix',' last',' middle',' first',' suffix'];
1100
1101
1102// globalGroupContactsByCompanies
1103// This options specifies how contacts are grouped in the interface.
1104// By default the interface looks like (very simple example):
1105//   A
1106//    Adams Adam
1107//    Anderson Peter
1108//   B
1109//    Brown John
1110//    Baker Josh
1111// if grouped by company/deparment the result is:
1112//   Company A [Department X]
1113//    Adams Adam
1114//    Brown John
1115//   Company B [Department Y]
1116//    Anderson Peter
1117//    Baker Josh
1118// If this option is set to true contacts are grouped by company/department,
1119// otherwise (default) contacts are grouped by letters of the alphabet.
1120// If undefined or not true, grouping by alphabet letters is used.
1121// NOTE: see also the globalCollectionDisplay option below.
1122var globalGroupContactsByCompanies=false;
1123
1124
1125// globalCollectionDisplay
1126// This options specifies how data columns in the contact list are displayed.
1127//
1128// NOTE: columns are displayed ONLY if there is enought horizontal place in
1129// the browser window (e.g. if you define 5 columns here, but your browser
1130// window is not wide enough, you will see only first 3 columns instead of 5).
1131//
1132// NOTE: see the globalContactDataMinVisiblePercentage option which defines the
1133// width for columns.
1134//
1135// The value must be an array of columns, where each column is represented by
1136// an object with the following properties:
1137//   label => the value of this option is a string used as column header
1138//     You can use the following localized variables in the label string:
1139//     - {Name}
1140//     - {FirstName}
1141//     - {LastName}
1142//     - {MiddleName}
1143//     - {NickName}
1144//     - {Prefix}
1145//     - {Suffix}
1146//     - {BirthDay}
1147//     - {PhoneticLastName}
1148//     - {PhoneticFirstName}
1149//     - {JobTitle}
1150//     - {Company}
1151//     - {Department}
1152//     - {Categories}
1153//     - {NoteText}
1154//     - {Address}, {AddressWork}, {AddressHome}, {AddressOther}
1155//     - {Phone}, {PhoneWork}, {PhoneHome}, {PhoneCell}, {PhoneMain},
1156//       {PhonePager}, {PhoneFax}, {PhoneIphone}, {PhoneOther}
1157//     - {Email}, {EmailWork}, {EmailHome}, {EmailMobileme}, {EmailOther}
1158//     - {URL}, {URLWork}, {URLHome}, {URLHomepage}, {URLOther}
1159//     - {Dates}, {DatesAnniversary}, {DatesOther}
1160//     - {Related}, {RelatedManager}, {RelatedAssistant}, {RelatedFather},
1161//       {RelatedMother}, {RelatedParent}, {RelatedBrother}, {RelatedSister},
1162//       {RelatedChild}, {RelatedFriend}, {RelatedSpouse}, {RelatedPartner},
1163//       {RelatedOther}
1164//     - {Profile}, {ProfileTwitter}, {ProfileFacebook}, {ProfileFlickr},
1165//       {ProfileLinkedin}, {ProfileMyspace}, {ProfileSinaweibo}
1166//     - {IM}, {IMWork}, {IMHome}, {IMMobileme}, {IMOther}, {IMAim}, {IMIcq},
1167//       {IMIrc}, {IMJabber}, {IMMsn}, {IMYahoo}, {IMFacebook}, {IMGadugadu},
1168//       {IMGoogletalk}, {IMQq}, {IMSkype}
1169//   value => the value of this option is an array of format strings, or
1170//     an object with the following properties:
1171//     - company (used for company contacts)
1172//     - personal (used for user contacts)
1173//     where the value of these properties is an array of format strings used
1174//     for company or user contacts (you can have different values in the same
1175//     column for personal and company contacts).
1176//     You can use the following simple variables in the format string:
1177//     - {FirstName}
1178//     - {LastName}
1179//     - {MiddleName}
1180//     - {NickName}
1181//     - {Prefix}
1182//     - {Suffix}
1183//     - {BirthDay}
1184//     - {PhoneticLastName}
1185//     - {PhoneticFirstName}
1186//     - {JobTitle}
1187//     - {Company}
1188//     - {Department}
1189//     - {Categories}
1190//     - {NoteText}
1191//     You can also use parametrized variables, where the parameter is enclosed
1192//     in square bracket. Paramatrized variables are useful to extract data
1193//     such as home phone {Phone[type=home]}, extract the second phone number
1194//     {Phone[:1]} (zero based indexing) or extract the third home phone number
1195//     {Phone[type=home][:2]} from the vCard.
1196//     NOTE: if the parametrized variable matches multiple items, e.g.:
1197//     {Phone[type=work]} (if the contact has multiple work phones) then the
1198//     first one is used!
1199//
1200//     The following parametrized variables are supported (note: you can use
1201//     all of them also without parameters /the first one will be used/):
1202//     - {Address[type=XXX]} or {Address[:NUM]} or {Address[type=XXX][:NUM]}
1203//       where supported values for XXX are:
1204//       - work
1205//       - home
1206//       - other
1207//       - any other custom value
1208//     - {Phone[type=XXX]} or {Phone[:NUM]} or {Phone[type=XXX][:NUM]}
1209//       where supported values for XXX are:
1210//       - work
1211//       - home
1212//       - cell
1213//       - main
1214//       - pager
1215//       - fax
1216//       - iphone
1217//       - other
1218//       - any other custom value
1219//     - {Email[type=XXX]} or {Email[:NUM]} or {Email[type=XXX][:NUM]}
1220//       where supported values for XXX are:
1221//       - work
1222//       - home
1223//       - mobileme
1224//       - other
1225//       - any other custom value
1226//     - {URL[type=XXX]} or {URL[:NUM]} or {URL[type=XXX][:NUM]}
1227//       where supported values for XXX are:
1228//       - work
1229//       - home
1230//       - homepage
1231//       - other
1232//       - any other custom value
1233//     - {Dates[type=XXX]} or {Dates[:NUM]} or {Dates[type=XXX][:NUM]}
1234//       where supported values for XXX are:
1235//       - anniversary
1236//       - other
1237//       - any other custom value
1238//     - {Related[type=XXX]} or {Related[:NUM]} or {Related[type=XXX][:NUM]}
1239//       where supported values for XXX are:
1240//       - manager
1241//       - assistant
1242//       - father
1243//       - mother
1244//       - parent
1245//       - brother
1246//       - sister
1247//       - child
1248//       - friend
1249//       - spouse
1250//       - partner
1251//       - other
1252//       - any other custom value
1253//     - {Profile[type=XXX]} or {Profile[:NUM]} or {Profile[type=XXX][:NUM]}
1254//       where supported values for XXX are:
1255//       - twitter
1256//       - facebook
1257//       - flickr
1258//       - linkedin
1259//       - myspace
1260//       - sinaweibo
1261//       - any other custom value
1262//     - {IM[type=XXX]} or {IM[service-type=YYY]} or {IM[:NUM]}
1263//       where supported values for XXX are:
1264//       - work
1265//       - home
1266//       - mobileme
1267//       - other
1268//       - any other custom value
1269//       and supported values for YYY are:
1270//       - aim
1271//       - icq
1272//       - irc
1273//       - jabber
1274//       - msn
1275//       - yahoo
1276//       - facebook
1277//       - gadugadu
1278//       - googletalk
1279//       - qq
1280//       - skype
1281//       - any other custom value
1282//
1283//   NOTE: if you want to use the "any other custom value" option (for XXX
1284//   or YYY above) you MUST double escape the following characters:
1285//     =[]{}\
1286//   for example:
1287//   - for profile type "=XXX=" use: '{Profile[type=\\=XXX\\=]}'
1288//   - for profile type "\XXX\" use: '{Profile[type=\\\\XXX\\\\]}'
1289//
1290//   NOTE: if you want to use curly brackets in the format string you must
1291//   double escape it, e.g.: ['{Company}', '\\{{Department}\\}']
1292//
1293//   The format string (for the value option) is an array to allow full
1294//   customization of the interface. For example if:
1295//     value: ['{LastName} {MiddleName} {FirstName}']
1296//   and the person has no middle name, then the result in the column
1297//   will be (without quotes):
1298//     "Parker  Peter" (note: two space characters)
1299//   but if you use:
1300//     value: ['{LastName}', ' {MiddleName}', ' {FirstName}']
1301//   then the result will be (without quotes):
1302//     "Parker Peter" (note: only one space character)
1303//   The reason is that only those elements of the array are appended
1304//   into the result where non-empty substitution was performed (so the
1305//   ' {MiddleName}' element in this case is ignored, because the person
1306//   in the example above has no /more precisely has empty/ middle name).
1307//
1308// Examples:
1309// To specify two columns (named "Company" and "Department / LastName"),
1310// where the first will display the company name, and the second will display
1311// department for company contacts (with "Dep -" prefix), and lastname for
1312// personal contacts (with "Name -" prefix) use:
1313// var globalCollectionDisplay=[
1314// 	{
1315// 		label: 'Company',
1316// 		value: ['{Company}']
1317// 	},
1318// 	{
1319// 		label: 'Department / LastName',
1320// 		value: {
1321// 			company: ['Dep - {Department}'],
1322// 			personal: ['Name - {LastName}']
1323// 		}
1324// 	}
1325// ];
1326// To specify 3 columns (named "Categories", "URL" and "IM"), where the first
1327// will display categories, second will display the third work URL, and third
1328// will display ICQ IM use:
1329// var globalCollectionDisplay=[
1330// 	{
1331// 		label: 'Categories',
1332// 		value: ['{Categories}']
1333// 	},
1334// 	{
1335// 		label: 'URL',
1336// 		value: ['{URL[type=WORK][:2]}']
1337// 	},
1338// 	{
1339// 		label: 'IM',
1340// 		value: ['{IM[service-type=ICQ]}']
1341// 	}
1342// ];
1343//
1344// Recommended settings if globalGroupContactsByCompanies
1345// is set to false:
1346// var globalCollectionDisplay=[
1347// 	{
1348// 		label: '{Name}',
1349// 		value: ['{LastName}', ' {MiddleName}', ' {FirstName}']
1350// 	},
1351// 	{
1352// 		label: '{Company} [{Department}]',
1353// 		value: ['{Company}', ' [{Department}]']
1354// 	},
1355// 	{
1356// 		label: '{JobTitle}',
1357// 		value: ['{JobTitle}']
1358// 	},
1359// 	{
1360// 		label: '{Email}',
1361// 		value: ['{Email[:0]}']
1362// 	},
1363// 	{
1364// 		label: '{Phone} 1',
1365// 		value: ['{Phone[:0]}']
1366// 	},
1367// 	{
1368// 		label: '{Phone} 2',
1369// 		value: ['{Phone[:1]}']
1370// 	},
1371// 	{
1372// 		label: '{NoteText}',
1373// 		value: ['{NoteText}']
1374// 	}
1375// ];
1376//
1377// Recommended settings if globalGroupContactsByCompanies
1378// is set to true:
1379// var globalCollectionDisplay=[
1380// 	{
1381// 		label: '{Name}',
1382// 		value: {
1383// 			personal: ['{LastName}', ' {MiddleName}', ' {FirstName}'],
1384// 			company: ['{Company}', ' [{Department}]']
1385// 		}
1386// 	},
1387// 	{
1388// 		label: '{JobTitle}',
1389// 		value: ['{JobTitle}']
1390// 	},
1391// 	{
1392// 		label: '{Email}',
1393// 		value: ['{Email[:0]}']
1394// 	},
1395// 	{
1396// 		label: '{Phone} 1',
1397// 		value: ['{Phone[:0]}']
1398// 	},
1399// 	{
1400// 		label: '{Phone} 2',
1401// 		value: ['{Phone[:1]}']
1402// 	},
1403// 	{
1404// 		label: '{NoteText}',
1405// 		value: ['{NoteText}']
1406// 	}
1407// ];
1408//
1409// NOTE: if left undefined, the recommended settings will be used.
1410
1411
1412// globalCollectionSort
1413// This options sets the ordering of contacts in the interface. In general
1414// contacts are ordered alphabetically by an internal "sort string" which
1415// is created for each contact. Here you can specify how this internal string
1416// is created. The value is a simple array holding only the values from the
1417// value property defined in the globalCollectionDisplay option.
1418// If undefined, the definition from globalCollectionDisplay is used.
1419// Example:
1420// var globalCollectionSort = [
1421// 	['{LastName}'],
1422// 	['{FirstName}'],
1423// 	['{MiddleName}'],
1424// 	{
1425// 		company: ['{Categories}'],
1426// 		personal: ['{Company}']
1427// 	}
1428// ];
1429
1430
1431// globalContactDataMinVisiblePercentage
1432// This option defines how the width for columns are computed. If you set
1433// it to 1 then 100% of all data in the column will be visible (the column
1434// width is determined by the longest string in the column). If you set it
1435// to 0.95 then 95% of data will fit into the column width, and the remaining
1436// 5% will be truncated (" ...").
1437// Example:
1438var globalContactDataMinVisiblePercentage=0.95;
1439
1440

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.