aboutsummaryrefslogtreecommitdiff
path: root/radicale_web/web/infcloud/main.js
diff options
context:
space:
mode:
authorUnrud <unrud@openaliasbox.org>2017-06-04 17:16:11 +0200
committerUnrud <unrud@openaliasbox.org>2017-06-04 17:16:36 +0200
commit10eef51a0f086ad148928ba965c330599b4765cb (patch)
treed0283e55f1b4e66c49bf17461b5fee211b78768a /radicale_web/web/infcloud/main.js
parentUpdate license (diff)
downloadradicaleinfcloud-10eef51a0f086ad148928ba965c330599b4765cb.tar.gz
radicaleinfcloud-10eef51a0f086ad148928ba965c330599b4765cb.tar.bz2
radicaleinfcloud-10eef51a0f086ad148928ba965c330599b4765cb.zip
Update package for new web plugin interface
Diffstat (limited to 'radicale_web/web/infcloud/main.js')
-rw-r--r--radicale_web/web/infcloud/main.js2335
1 files changed, 0 insertions, 2335 deletions
diff --git a/radicale_web/web/infcloud/main.js b/radicale_web/web/infcloud/main.js
deleted file mode 100644
index 3687f64..0000000
--- a/radicale_web/web/infcloud/main.js
+++ /dev/null
@@ -1,2335 +0,0 @@
-/*
-InfCloud - the open source CalDAV/CardDAV Web Client
-Copyright (C) 2011-2015
- Jan Mate <jan.mate@inf-it.com>
- Andrej Lezo <andrej.lezo@inf-it.com>
- Matej Mihalik <matej.mihalik@inf-it.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-var globalSettings={
- version: {value: (typeof globalSettingsVersion!='undefined' && globalSettingsVersion!=null) ? globalSettingsVersion : 1, locked:false},
- resourcealphabetsorting: {value: (typeof globalResourceAlphabetSorting!='undefined' && globalResourceAlphabetSorting!=null) ? globalResourceAlphabetSorting : true, locked:false},
- usejqueryauth: {value: (typeof globalUseJqueryAuth!='undefined' && globalUseJqueryAuth!=null) ? globalUseJqueryAuth : false, locked:false},
- settingstype: {value: (typeof globalSettingsType!='undefined' && globalSettingsType!=null && globalSettingsType!='') ? globalSettingsType : 'principal-URL', locked:false},
- defaultactiveapp: {value: (typeof globalDefaultActiveApp!='undefined' && globalDefaultActiveApp!=null && globalDefaultActiveApp!='') ? globalDefaultActiveApp : null, locked:false},
- islastdefaultactiveapp: {value: false, locked:false},
- datepickerfirstdayofweek: {value: (typeof globalDatepickerFirstDayOfWeek!='undefined' && globalDatepickerFirstDayOfWeek!=null) ? globalDatepickerFirstDayOfWeek : 1, locked:false},
- syncresourcesinterval: {value: (typeof globalSyncResourcesInterval!='undefined' && globalSyncResourcesInterval!=null) ? globalSyncResourcesInterval :300000, locked:false},
- datepickerformat: {value: (typeof globalDatepickerFormat!='undefined' && globalDatepickerFormat!=null && globalDatepickerFormat!='') ? globalDatepickerFormat : localization[globalInterfaceLanguage]._default_datepicker_format_, locked:false},
- backgroundsync: {value: (typeof globalBackgroundSync!='undefined' && globalBackgroundSync!=null) ? globalBackgroundSync : true, locked:false},
- enablekbnavigation: {value: (typeof globalEnableKbNavigation!='undefined' && globalEnableKbNavigation!=null) ? globalEnableKbNavigation : true, locked:false},
- rewritetimezonecomponent: {value: (typeof globalRewriteTimezoneComponent!='undefined' && globalRewriteTimezoneComponent!=null) ? globalRewriteTimezoneComponent : true, locked:false},
- removeunknowntimezone: {value: (typeof globalRemoveUnknownTimezone!='undefined' && globalRemoveUnknownTimezone!=null) ? globalRemoveUnknownTimezone : false, locked:false},
- mozillasupport: {value: (typeof globalMozillaSupport!='undefined' && globalMozillaSupport!=null) ? globalMozillaSupport : false, locked:false},
- appleremindersmode: {value: (typeof globalAppleRemindersMode!='undefined' && globalAppleRemindersMode!=null) ? globalAppleRemindersMode : false, locked:false},
- titleformatmonth: {value: localization[globalInterfaceLanguage]._default_title_format_month_, locked:false},
- titleformatweek: {value: localization[globalInterfaceLanguage]._default_title_format_week_, locked:false},
- titleformatday: {value: localization[globalInterfaceLanguage]._default_title_format_day_, locked:false},
- titleformattable: {value: localization[globalInterfaceLanguage]._default_title_format_table_, locked:false},
- columnformatagenda: {value: localization[globalInterfaceLanguage]._default_column_format_agenda_, locked:false},
- activecalendarcollections: {value: (typeof globalActiveCalendarCollections!='undefined' && globalActiveCalendarCollections!=null) ? globalActiveCalendarCollections : new Array(), locked:false},
- activetodocollections: {value: (typeof globalActiveTodoCollections!='undefined' && globalActiveTodoCollections!=null) ? globalActiveTodoCollections : new Array(), locked:false},
- loadedcalendarcollections: {value: (typeof globalLoadedCalendarCollections!='undefined' && globalLoadedCalendarCollections!=null) ? globalLoadedCalendarCollections : new Array(), locked:false},
- loadedtodocollections: {value: (typeof globalLoadedTodoCollections!='undefined' && globalLoadedTodoCollections!=null) ? globalLoadedTodoCollections : new Array(), locked:false},
- todolistfilterselected: {value: (typeof globalTodoListFilterSelected!='undefined' && globalTodoListFilterSelected!=null && globalTodoListFilterSelected!='') ? globalTodoListFilterSelected : ['filterAction', 'filterProgress'], locked:false},
- activeview: {value: (typeof globalActiveView!='undefined' && globalActiveView!=null && globalActiveView!='') ? globalActiveView : 'multiWeek', locked:false},
- islastactiveview: {value: true, locked:false},
- calendarselected: {value: (typeof globalCalendarSelected!='undefined' && globalCalendarSelected!=null && globalCalendarSelected!='') ? globalCalendarSelected : '', locked:false},
- todocalendarselected: {value: (typeof globalTodoCalendarSelected!='undefined' && globalTodoCalendarSelected!=null && globalTodoCalendarSelected!='') ? globalTodoCalendarSelected : '', locked:false},
- timezone: {value: (typeof globalTimeZone!='undefined' && globalTimeZone!=null && globalTimeZone!='') ? globalTimeZone : 'local', locked:false},
- islasttimezone: {value: true, locked:false},
- openformmode: {value: (typeof globalOpenFormMode!='undefined' && globalOpenFormMode!=null && globalOpenFormMode!='') ? globalOpenFormMode : 'double', locked:false},
- calendarstartofbusiness: {value: (typeof globalCalendarStartOfBusiness!='undefined' && globalCalendarStartOfBusiness!=null) ? globalCalendarStartOfBusiness : 8, locked:false},
- calendarendofbusiness: {value: (typeof globalCalendarEndOfBusiness!='undefined' && globalCalendarEndOfBusiness!=null) ? globalCalendarEndOfBusiness : 17, locked:false},
- defaulteventduration: {value: (typeof globalDefaultEventDuration!='undefined' && globalDefaultEventDuration!=null && globalDefaultEventDuration>=0) ? globalDefaultEventDuration : null, locked:false},
- ampmformat: {value: (typeof globalAMPMFormat!='undefined' && globalAMPMFormat!=null) ? globalAMPMFormat : localization[globalInterfaceLanguage]._default_AMPM_format_, locked:false},
- timeformatagenda: {value: (typeof globalTimeFormatAgenda!='undefined' && globalTimeFormatAgenda!=null && globalTimeFormatAgenda!='') ? globalTimeFormatAgenda : null, locked:false},
- timeformatbasic: {value: (typeof globalTimeFormatBasic!='undefined' && globalTimeFormatBasic!=null && globalTimeFormatBasic!='') ? globalTimeFormatBasic : null, locked:false},
- displayhiddenevents: {value: (typeof globalDisplayHiddenEvents!='undefined' && globalDisplayHiddenEvents!=null) ? globalDisplayHiddenEvents : false, locked:false},
- timezonesupport: {value: (typeof globalTimeZoneSupport!='undefined' && globalTimeZoneSupport!=null) ? globalTimeZoneSupport : true, locked:false},
- timezonesenabled: {value: (typeof globalTimeZonesEnabled!='undefined' && globalTimeZonesEnabled!=null && globalTimeZonesEnabled!='') ? globalTimeZonesEnabled : [], locked:false},
- showhiddenalarms: {value: (typeof globalShowHiddenAlarms!='undefined' && globalShowHiddenAlarms!=null) ? globalShowHiddenAlarms : false, locked:false},
- ignorecompletedorcancelledalarms: {value: (typeof globalIgnoreCompletedOrCancelledAlarms!='undefined' && globalIgnoreCompletedOrCancelledAlarms!=null) ? globalIgnoreCompletedOrCancelledAlarms : true, locked:false},
- weekenddays: {value: (typeof globalWeekendDays!='undefined' && globalWeekendDays!=null && globalWeekendDays!='') ? globalWeekendDays : [0, 6], locked:false},
- eventstartpastlimit: {value: (typeof globalEventStartPastLimit!='undefined' && globalEventStartPastLimit!=null) ? globalEventStartPastLimit : 3, locked:false},
- todopastlimit: {value: (typeof globalTodoPastLimit!='undefined' && globalTodoPastLimit!=null) ? globalTodoPastLimit : 3, locked:false},
- eventstartfuturelimit: {value: (typeof globalEventStartFutureLimit!='undefined' && globalEventStartFutureLimit!=null) ? globalEventStartFutureLimit : 3, locked:false},
- compatibility: {value: (typeof globalCompatibility!='undefined' && globalCompatibility!=null && globalCompatibility!='') ? globalCompatibility : {anniversaryOutputFormat: ['apple']}, locked:false},
- contactstorefn: {value: (typeof globalContactStoreFN!='undefined' && globalContactStoreFN!=null && globalContactStoreFN!='') ? globalContactStoreFN : ['prefix',' last',' middle',' first',' suffix'], locked:false},
- urihandlertel: {value: (typeof globalUriHandlerTel!='undefined' && globalUriHandlerTel!=null && globalUriHandlerTel!='') ? globalUriHandlerTel : 'tel:', locked:false},
- urihandleremail: {value: (typeof globalUriHandlerEmail!='undefined' && globalUriHandlerEmail!=null && globalUriHandlerEmail!='') ? globalUriHandlerEmail : 'mailto:', locked:false},
- urihandlerurl: {value: (typeof globalUriHandlerUrl!='undefined' && globalUriHandlerUrl!=null && globalUriHandlerUrl!='') ? globalUriHandlerUrl : 'http://', locked:false},
- urihandlerprofile: {value: (typeof globalUriHandlerProfile!='undefined' && globalUriHandlerProfile!=null && globalUriHandlerProfile!='') ? globalUriHandlerProfile : {'twitter': 'http://twitter.com/%u', 'facebook': 'http://www.facebook.com/%u', 'flickr': 'http://www.flickr.com/photos/%u', 'linkedin': 'http://www.linkedin.com/in/%u', 'myspace': 'http://www.myspace.com/%u', 'sinaweibo': 'http://weibo.com/n/%u'}, locked:false},
- addresscountryequivalence: {value: (typeof globalAddressCountryEquivalence!='undefined' && globalAddressCountryEquivalence!=null && globalAddressCountryEquivalence!='') ? globalAddressCountryEquivalence : [{country: 'de', regex: '^\\W*Deutschland\\W*$'}, {country: 'sk', regex: '^\\W*Slovensko\\W*$'}], locked:false},
- addressbookselected: {value: (typeof globalAddressbookSelected!='undefined' && globalAddressbookSelected!=null && globalAddressbookSelected!='') ? globalAddressbookSelected : '', locked:false},
- collectiondisplay: {value: (typeof globalCollectionDisplay!='undefined' && globalCollectionDisplay!=null && globalCollectionDisplay!='') ? globalCollectionDisplay : (
- (typeof globalGroupContactsByCompanies!='undefined' && globalGroupContactsByCompanies) ?
- [{label: '{Name}', value: {company: ['{Company}', ' [{Department}]'], personal: ['{LastName}', ' {MiddleName}', ' {FirstName}']}}, {label: '{JobTitle}', value: ['{JobTitle}']}, {label: '{Email}', value: ['{Email[:0]}']}, {label: '{Phone} 1', value: ['{Phone[:0]}']}, {label: '{Phone} 2', value: ['{Phone[:1]}']}, {label: '{NoteText}', value: ['{NoteText}']}] :
- [{label: '{Name}', value: ['{LastName}', ' {MiddleName}', ' {FirstName}']}, {label: '{Company} [{Department}]', value: ['{Company}', ' [{Department}]']}, {label: '{JobTitle}', value: ['{JobTitle}']}, {label: '{Email}', value: ['{Email[:0]}']}, {label: '{Phone} 1', value: ['{Phone[:0]}']}, {label: '{Phone} 2', value: ['{Phone[:1]}']}, {label: '{NoteText}', value: ['{NoteText}']}]
- ), locked:false},
- collectionsort: {value: (typeof globalCollectionSort!='undefined' && globalCollectionSort!=null && globalCollectionSort!='') ? globalCollectionSort : '', locked:false},
- defaultaddresscountry: {value: (typeof globalDefaultAddressCountry!='undefined' && globalDefaultAddressCountry!=null && globalDefaultAddressCountry!='') ? globalDefaultAddressCountry :'us', locked:false},
- addresscountryfavorites: {value: (typeof globalAddressCountryFavorites!='undefined' && globalAddressCountryFavorites!=null && globalAddressCountryFavorites!='') ? globalAddressCountryFavorites :[], locked:false},
- activeaddressbookcollections: {value: (typeof globalActiveAddressbookCollections!='undefined' && globalActiveAddressbookCollections!=null) ? globalActiveAddressbookCollections : new Array(), locked:false},
- loadedaddressbookcollections: {value: (typeof globalLoadedAddressbookCollections!='undefined' && globalLoadedAddressbookCollections!=null) ? globalLoadedAddressbookCollections : new Array(), locked:false}
-};
-
-
-function resetSettings()
-{
- globalSettings={
- version: {value: (typeof globalSettingsVersion!='undefined' && globalSettingsVersion!=null) ? globalSettingsVersion : 1, locked:false},
- resourcealphabetsorting: {value: (typeof globalResourceAlphabetSorting!='undefined' && globalResourceAlphabetSorting!=null) ? globalResourceAlphabetSorting : true, locked:false},
- usejqueryauth: {value: (typeof globalUseJqueryAuth!='undefined' && globalUseJqueryAuth!=null) ? globalUseJqueryAuth : false, locked:false},
- settingstype: {value: (typeof globalSettingsType!='undefined' && globalSettingsType!=null && globalSettingsType!='') ? globalSettingsType : 'principal-URL', locked:false},
- defaultactiveapp: {value: (typeof globalDefaultActiveApp!='undefined' && globalDefaultActiveApp!=null && globalDefaultActiveApp!='') ? globalDefaultActiveApp : null, locked:false},
- islastdefaultactiveapp: {value: false, locked:false},
- datepickerfirstdayofweek: {value: (typeof globalDatepickerFirstDayOfWeek!='undefined' && globalDatepickerFirstDayOfWeek!=null) ? globalDatepickerFirstDayOfWeek : 1, locked:false},
- syncresourcesinterval: {value: (typeof globalSyncResourcesInterval!='undefined' && globalSyncResourcesInterval!=null) ? globalSyncResourcesInterval :300000, locked:false},
- datepickerformat: {value: (typeof globalDatepickerFormat!='undefined' && globalDatepickerFormat!=null && globalDatepickerFormat!='') ? globalDatepickerFormat : localization[globalInterfaceLanguage]._default_datepicker_format_, locked:false},
- backgroundsync: {value: (typeof globalBackgroundSync!='undefined' && globalBackgroundSync!=null) ? globalBackgroundSync : true, locked:false},
- enablekbnavigation: {value: (typeof globalEnableKbNavigation!='undefined' && globalEnableKbNavigation!=null) ? globalEnableKbNavigation : true, locked:false},
- rewritetimezonecomponent: {value: (typeof globalRewriteTimezoneComponent!='undefined' && globalRewriteTimezoneComponent!=null) ? globalRewriteTimezoneComponent : true, locked:false},
- removeunknowntimezone: {value: (typeof globalRemoveUnknownTimezone!='undefined' && globalRemoveUnknownTimezone!=null) ? globalRemoveUnknownTimezone : false, locked:false},
- mozillasupport: {value: (typeof globalMozillaSupport!='undefined' && globalMozillaSupport!=null) ? globalMozillaSupport : false, locked:false},
- appleremindersmode: {value: (typeof globalAppleRemindersMode!='undefined' && globalAppleRemindersMode!=null) ? globalAppleRemindersMode : false, locked:false},
- titleformatmonth: {value: localization[globalInterfaceLanguage]._default_title_format_month_, locked:false},
- titleformatweek: {value: localization[globalInterfaceLanguage]._default_title_format_week_, locked:false},
- titleformatday: {value: localization[globalInterfaceLanguage]._default_title_format_day_, locked:false},
- titleformattable: {value: localization[globalInterfaceLanguage]._default_title_format_table_, locked:false},
- columnformatagenda: {value: localization[globalInterfaceLanguage]._default_column_format_agenda_, locked:false},
- activecalendarcollections: {value: (typeof globalActiveCalendarCollections!='undefined' && globalActiveCalendarCollections!=null) ? globalActiveCalendarCollections : new Array(), locked:false},
- activetodocollections: {value: (typeof globalActiveTodoCollections!='undefined' && globalActiveTodoCollections!=null) ? globalActiveTodoCollections : new Array(), locked:false},
- loadedcalendarcollections: {value: (typeof globalLoadedCalendarCollections!='undefined' && globalLoadedCalendarCollections!=null) ? globalLoadedCalendarCollections : new Array(), locked:false},
- loadedtodocollections: {value: (typeof globalLoadedTodoCollections!='undefined' && globalLoadedTodoCollections!=null) ? globalLoadedTodoCollections : new Array(), locked:false},
- todolistfilterselected: {value: (typeof globalTodoListFilterSelected!='undefined' && globalTodoListFilterSelected!=null && globalTodoListFilterSelected!='') ? globalTodoListFilterSelected : ['filterAction', 'filterProgress'], locked:false},
- activeview: {value: (typeof globalActiveView!='undefined' && globalActiveView!=null && globalActiveView!='') ? globalActiveView : 'multiWeek', locked:false},
- islastactiveview: {value: true, lockedlocked:false},
- calendarselected: {value: (typeof globalCalendarSelected!='undefined' && globalCalendarSelected!=null && globalCalendarSelected!='') ? globalCalendarSelected : '', locked:false},
- todocalendarselected: {value: (typeof globalTodoCalendarSelected!='undefined' && globalTodoCalendarSelected!=null && globalTodoCalendarSelected!='') ? globalTodoCalendarSelected : '', locked:false},
- timezone: {value: (typeof globalTimeZone!='undefined' && globalTimeZone!=null && globalTimeZone!='') ? globalTimeZone : 'local', locked:false},
- islasttimezone: {value: true, locked:false},
- openformmode: {value: (typeof globalOpenFormMode!='undefined' && globalOpenFormMode!=null && globalOpenFormMode!='') ? globalOpenFormMode : 'double', locked:false},
- calendarstartofbusiness: {value: (typeof globalCalendarStartOfBusiness!='undefined' && globalCalendarStartOfBusiness!=null) ? globalCalendarStartOfBusiness : 8, locked:false},
- calendarendofbusiness: {value: (typeof globalCalendarEndOfBusiness!='undefined' && globalCalendarEndOfBusiness!=null) ? globalCalendarEndOfBusiness : 17, locked:false},
- defaulteventduration: {value: (typeof globalDefaultEventDuration!='undefined' && globalDefaultEventDuration!=null && globalDefaultEventDuration>=0) ? globalDefaultEventDuration : null, locked:false},
- ampmformat: {value: (typeof globalAMPMFormat!='undefined' && globalAMPMFormat!=null) ? globalAMPMFormat : localization[globalInterfaceLanguage]._default_AMPM_format_, locked:false},
- timeformatagenda: {value: (typeof globalTimeFormatAgenda!='undefined' && globalTimeFormatAgenda!=null && globalTimeFormatAgenda!='') ? globalTimeFormatAgenda : null, locked:false},
- timeformatbasic: {value: (typeof globalTimeFormatBasic!='undefined' && globalTimeFormatBasic!=null && globalTimeFormatBasic!='') ? globalTimeFormatBasic : null, locked:false},
- displayhiddenevents: {value: (typeof globalDisplayHiddenEvents!='undefined' && globalDisplayHiddenEvents!=null) ? globalDisplayHiddenEvents : false, locked:false},
- timezonesupport: {value: (typeof globalTimeZoneSupport!='undefined' && globalTimeZoneSupport!=null) ? globalTimeZoneSupport : true, locked:false},
- timezonesenabled: {value: (typeof globalTimeZonesEnabled!='undefined' && globalTimeZonesEnabled!=null && globalTimeZonesEnabled!='') ? globalTimeZonesEnabled : [], locked:false},
- showhiddenalarms: {value: (typeof globalShowHiddenAlarms!='undefined' && globalShowHiddenAlarms!=null) ? globalShowHiddenAlarms : false, locked:false},
- ignorecompletedorcancelledalarms: {value: (typeof globalIgnoreCompletedOrCancelledAlarms!='undefined' && globalIgnoreCompletedOrCancelledAlarms!=null) ? globalIgnoreCompletedOrCancelledAlarms : true, locked:false},
- weekenddays: {value: (typeof globalWeekendDays!='undefined' && globalWeekendDays!=null && globalWeekendDays!='') ? globalWeekendDays : [0, 6], locked:false},
- eventstartpastlimit: {value: (typeof globalEventStartPastLimit!='undefined' && globalEventStartPastLimit!=null) ? globalEventStartPastLimit : 3, locked:false},
- todopastlimit: {value: (typeof globalTodoPastLimit!='undefined' && globalTodoPastLimit!=null) ? globalTodoPastLimit : 3, locked:false},
- eventstartfuturelimit: {value: (typeof globalEventStartFutureLimit!='undefined' && globalEventStartFutureLimit!=null) ? globalEventStartFutureLimit : 3, locked:false},
- compatibility: {value: (typeof globalCompatibility!='undefined' && globalCompatibility!=null && globalCompatibility!='') ? globalCompatibility : {anniversaryOutputFormat: ['apple']}, locked:false},
- contactstorefn: {value: (typeof globalContactStoreFN!='undefined' && globalContactStoreFN!=null && globalContactStoreFN!='') ? globalContactStoreFN : ['prefix',' last',' middle',' first',' suffix'], locked:false},
- urihandlertel: {value: (typeof globalUriHandlerTel!='undefined' && globalUriHandlerTel!=null && globalUriHandlerTel!='') ? globalUriHandlerTel : 'tel:', locked:false},
- urihandleremail: {value: (typeof globalUriHandlerEmail!='undefined' && globalUriHandlerEmail!=null && globalUriHandlerEmail!='') ? globalUriHandlerEmail : 'mailto:', locked:false},
- urihandlerurl: {value: (typeof globalUriHandlerUrl!='undefined' && globalUriHandlerUrl!=null && globalUriHandlerUrl!='') ? globalUriHandlerUrl : 'http://', locked:false},
- urihandlerprofile: {value: (typeof globalUriHandlerProfile!='undefined' && globalUriHandlerProfile!=null && globalUriHandlerProfile!='') ? globalUriHandlerProfile : {'twitter': 'http://twitter.com/%u', 'facebook': 'http://www.facebook.com/%u', 'flickr': 'http://www.flickr.com/photos/%u', 'linkedin': 'http://www.linkedin.com/in/%u', 'myspace': 'http://www.myspace.com/%u', 'sinaweibo': 'http://weibo.com/n/%u'}, locked:false},
- addresscountryequivalence: {value: (typeof globalAddressCountryEquivalence!='undefined' && globalAddressCountryEquivalence!=null && globalAddressCountryEquivalence!='') ? globalAddressCountryEquivalence : [{country: 'de', regex: '^\\W*Deutschland\\W*$'}, {country: 'sk', regex: '^\\W*Slovensko\\W*$'}], locked:false},
- addressbookselected: {value: (typeof globalAddressbookSelected!='undefined' && globalAddressbookSelected!=null && globalAddressbookSelected!='') ? globalAddressbookSelected : '', locked:false},
- collectiondisplay: {value: (typeof globalCollectionDisplay!='undefined' && globalCollectionDisplay!=null && globalCollectionDisplay!='') ? globalCollectionDisplay : (
- (typeof globalGroupContactsByCompanies!='undefined' && globalGroupContactsByCompanies) ?
- [{label: '{Name}', value: {company: ['{Company}', ' [{Department}]'], personal: ['{LastName}', ' {MiddleName}', ' {FirstName}']}}, {label: '{JobTitle}', value: ['{JobTitle}']}, {label: '{Email}', value: ['{Email[:0]}']}, {label: '{Phone} 1', value: ['{Phone[:0]}']}, {label: '{Phone} 2', value: ['{Phone[:1]}']}, {label: '{NoteText}', value: ['{NoteText}']}] :
- [{label: '{Name}', value: ['{LastName}', ' {MiddleName}', ' {FirstName}']}, {label: '{Company} [{Department}]', value: ['{Company}', ' [{Department}]']}, {label: '{JobTitle}', value: ['{JobTitle}']}, {label: '{Email}', value: ['{Email[:0]}']}, {label: '{Phone} 1', value: ['{Phone[:0]}']}, {label: '{Phone} 2', value: ['{Phone[:1]}']}, {label: '{NoteText}', value: ['{NoteText}']}]
- ), locked:false},
- collectionsort: {value: (typeof globalCollectionSort!='undefined' && globalCollectionSort!=null && globalCollectionSort!='') ? globalCollectionSort : '', locked:false},
- defaultaddresscountry: {value: (typeof globalDefaultAddressCountry!='undefined' && globalDefaultAddressCountry!=null && globalDefaultAddressCountry!='') ? globalDefaultAddressCountry :'us', locked:false},
- addresscountryfavorites: {value: (typeof globalAddressCountryFavorites!='undefined' && globalAddressCountryFavorites!=null && globalAddressCountryFavorites!='') ? globalAddressCountryFavorites :[], locked:false},
- activeaddressbookcollections: {value: (typeof globalActiveAddressbookCollections!='undefined' && globalActiveAddressbookCollections!=null) ? globalActiveAddressbookCollections : new Array(), locked:false},
- loadedaddressbookcollections: {value: (typeof globalLoadedAddressbookCollections!='undefined' && globalLoadedAddressbookCollections!=null) ? globalLoadedAddressbookCollections : new Array(), locked:false}
- };
-}
-
-function transformToServer(inSettings)
-{
- var serverSettings={};
-
- for(var prop in inSettings)
- {
- serverSettings[prop]=inSettings[prop].value;
- }
-
- return serverSettings;
-}
-var globalWindowFocus=true;
-var globalLoginUsername='';
-var globalLoginPassword='';
-var isUserLogged=false;
-var isDelegationLoaded=false;
-var globalActiveApp='';
-var globalAvailableAppsArray=new Array();
-var globalEnableAppSwitch=true;
-var globalAppName='InfCloud';
-var globalVersion='0.13.2rc1';
-var globalBuildNo=1448196611;
-var globalXMLCache=null;
-var globalVersionCheckURL=(location.protocol=='file:' ? 'http:' : location.protocol)+'//www.inf-it.com/versioncheck/'+globalAppName+'/?v='+globalVersion;
-var globalXClientHeader=globalAppName+' '+globalVersion+' (Inf-IT CalDAV/CardDAV Web Client)';
-var globalResourceNumberCount=0;
-var globalResourceNumber=0;
-var globalResourceIntervalID=null;
-var globalFirstLoadNextApp=false;
-var globalObjectLoading=false;
-var settingsLoaded=false;
-var globalKBNavigationPaddingRate=0.2;
-var globalParallelAjaxCallCardDAVEnabled=true;
-var globalParallelAjaxCallCalDAVEnabled=true;
-var globalCacheUpdateInterval=null;
-var isIntegrated=false;
-var SVG_select='<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" x="0px" y="0px" width="19px" height="19px" viewBox="0 0 19 19" overflow="visible" enable-background="new 0 0 19 19" xml:space="preserve"><defs></defs><rect x="2" fill="#585858" width="17" height="19"/><polygon fill="#FFFFFF" points="14,7 10.5,13 7,7 "/><rect fill="#FFFFFF" width="2" height="19"/></svg>';
-var SVG_select_inv='<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" x="0px" y="0px" width="19px" height="19px" viewBox="0 0 19 19" overflow="visible" enable-background="new 0 0 19 19" xml:space="preserve"><defs></defs><rect x="2" fill="#585858" width="17" height="19"/><polygon fill="#FFFFFF" points="14,13 10.5,7 7,13"/><rect fill="#FFFFFF" width="2" height="19"/></svg>';
-var SVG_select_b='<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" x="0px" y="0px" width="19px" height="19px" viewBox="0 0 19 19" overflow="visible" enable-background="new 0 0 19 19" xml:space="preserve"><defs></defs><rect x="2" fill="#585858" width="17" height="19"/><polygon fill="#FFFFFF" points="14,7 10.5,13 7,7 "/><rect fill="#F0F0F0" width="2" height="19"/></svg>';
-var SVG_select_login='<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" x="0px" y="0px" width="19px" height="28px" viewBox="0 0 19 28" overflow="visible" enable-background="new 0 0 19 28" xml:space="preserve"><defs></defs><rect fill="#FFFFFF" width="19" height="28"/></svg>';
-var SVG_select_dis='<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" x="0px" y="0px" width="22px" height="19px" viewBox="0 0 22 19" overflow="visible" enable-background="new 0 0 22 19" xml:space="preserve"><defs></defs><rect fill="#FFFFFF" width="22" height="19"/></svg>';
-var globalDefinedSettings = new Array();
-var globalLoadedPrincipals = new Array();
-var globalEnableAllResourceSync = true;
-if(typeof isSettingsAvaible == 'undefined')
- var globalPreviousSupportedSettings = ['activecalendarcollections','activetodocollections', 'activeaddressbookcollections','todolistfilterselected','activeview','defaultactiveapp','calendarselected', 'todocalendarselected','addressbookselected','timezone', 'loadedtodocollections', 'loadedcalendarcollections', 'loadedaddressbookcollections', 'version'];
-var globalSettingsSaving = '';
-var globalFirstHideLoader = true;
-var globalLoadedCollectionsNumber = 0;
-var globalLoadedCollectionsCount = 0;
-var ignoreServerSettings=false;
-var globalPreventLogoutSync=false;
-var globalEmailAddress='';
-var globalSettingsVersion=3;
-var globalSyncSettingsSave=false;
-
-// Timepicker hack (prevent IE to re-open the datepicker on date click + focus)
-var globalTmpTimePickerHackTime=new Object();
-
-function isAvaible(app)
-{
- return globalAvailableAppsArray.indexOf(app)!=-1
-}
-
-function loadAllResources()
-{
- if(globalResourceIntervalID==null)
- netFindResource(globalAccountSettings[0], 0, true, 0);
-}
-
-function getAccount(accountUID)
-{
- // find the original settings for the resource and user
- var tmp=accountUID.match(RegExp('^(https?://)([^@/]+(?:@[^@/]+)?)@([^/]+)(.*/)','i'));
- var resource_href=tmp[1]+tmp[3]+tmp[4];
- var resource_user=tmp[2];
-
- for(var i=0;i<globalAccountSettings.length;i++)
- if(globalAccountSettings[i].href==resource_href && globalAccountSettings[i].userAuth.userName==resource_user)
- resourceSettings=globalAccountSettings[i];
- return resourceSettings;
-}
-
-function checkForUnloadedResources()
-{
- var rex=new RegExp('^(https?://)([^@/]+(?:@[^@/]+)?)@([^/]+)(.*/)', 'i');
-
- for(var i=globalLoadedPrincipals.length-1; i>=0;i--)
- {
- var resourceCounter = 0;
- if(isAvaible('CardDavMATE'))
- for(var j=0; j<globalResourceCardDAVList.collections.length;j++)
- if(globalResourceCardDAVList.collections[j].uid!=undefined&&globalResourceCardDAVList.collections[j].makeLoaded)
- {
- var tmp=globalResourceCardDAVList.collections[j].accountUID.match(rex);
- var resourceCalDAV_href=tmp[1]+tmp[3]+tmp[4];
- if(globalLoadedPrincipals[i]==resourceCalDAV_href)
- resourceCounter++;
- }
-
- if(isAvaible('CalDavZAP'))
- {
- for(var j=0; j<globalResourceCalDAVList.collections.length;j++)
- if(globalResourceCalDAVList.collections[j].uid!=undefined&&globalResourceCalDAVList.collections[j].makeLoaded)
- {
- var tmp=globalResourceCalDAVList.collections[j].accountUID.match(rex);
- var resourceCalDAV_href=tmp[1]+tmp[3]+tmp[4];
- if(globalLoadedPrincipals[i]==resourceCalDAV_href)
- resourceCounter++;
- }
-
- for(var j=0; j<globalResourceCalDAVList.TodoCollections.length;j++)
- if(globalResourceCalDAVList.TodoCollections[j].uid!=undefined&&globalResourceCalDAVList.TodoCollections[j].makeLoaded)
- {
- var tmp=globalResourceCalDAVList.TodoCollections[j].accountUID.match(rex);
- var resourceCalDAV_href=tmp[1]+tmp[3]+tmp[4];
- if(globalLoadedPrincipals[i]==resourceCalDAV_href)
- resourceCounter++;
- }
- }
- if(resourceCounter==0)
- globalLoadedPrincipals.splice(i,1);
- }
-}
-
-function reloadResources(dontSaveSettings, loadArray)
-{
- if((isAvaible('CardDavMATE')&&(globalCardDAVInitLoad||globalCardDAVResourceSync)) || (isAvaible('CalDavZAP')&&(globalCalDAVInitLoad||globalCalDAVResourceSync))
- || (isAvaible('Projects')&&!isProjectsLoaded) || (isAvaible('Settings')&&(!isSettingsLoaded || (globalSettingsSaving!=''&&!dontSaveSettings))) || (isAvaible('CalDavZAP')&&(globalLimitLoading!='' || globalLimitTodoLoading!='')))
- return false;
- if(globalWindowFocus==false)
- return false;
- globalCardDAVResourceSync=true;
- globalCalDAVResourceSync=true;
- if(isAvaible('CalDavZAP'))
- {
- globalCalDAVResourceSync = true;
- globalToday.setHours(0);
- globalToday.setMinutes(0);
- globalToday.setSeconds(0);
- globalToday.setMilliseconds(0);
-
- var currentToday=new Date();
- currentToday.setHours(0);
- currentToday.setMinutes(0);
- currentToday.setSeconds(0);
- currentToday.setMilliseconds(0);
- if(currentToday.getTime()!=globalToday.getTime())
- {
- if(isAvaible('CalDavZAP'))
- $('.date').datepicker('refresh');
- if(isAvaible('CardDavMATE'))
- $('#vCardEditor').find('input[data-type^="date_"]').datepicker('refresh');
- if(isAvaible('Projects'))
- $('.project_date').datepicker('refresh');
- $('#calendar').fullCalendar('updateToday');
- $('#calendar').fullCalendar('gotoDate', currentToday);
- $('#todoList').fullCalendar('gotoDate', currentToday);
- if(currentToday.getTime()>globalToday.getTime())
- {
- getNextMonths($('#calendar').fullCalendar('getView').end);
- getNextMonthsTodo();
- }
- else //support for timezone with backward time flow
- {
- getPrevMonths($('#calendar').fullCalendar('getView').start);
- getPrevMonthsTodo();
- }
- globalToday=currentToday;
- }
- }
- checkForUnloadedResources();
- if(!globalEnableAllResourceSync&&(typeof loadArray=='undefined' || loadArray==null))
- netFindResource(globalAccountSettings[0], 0, false, 0, globalLoadedPrincipals);
- else
- netFindResource(globalAccountSettings[0], 0, false, 0, loadArray);
-}
-function ifLoadCollections()
-{
- if((isAvaible('CardDavMATE') && (globalCardDAVInitLoad || globalCardDAVResourceSync)) || (isAvaible('CalDavZAP') && (globalCalDAVInitLoad || globalCalDAVResourceSync)))
- return false;
-
- var changeCounter = 0;
- if(isAvaible('CardDavMATE'))
- for(var i=0; i<globalResourceCardDAVList.collections.length;i++)
- if(globalResourceCardDAVList.collections[i].uid!=undefined && globalResourceCardDAVList.collections[i].someChanged)
- changeCounter++;
-
- if(isAvaible('CalDavZAP'))
- {
- for(var i=0; i<globalResourceCalDAVList.collections.length;i++)
- if(globalResourceCalDAVList.collections[i].uid!=undefined && globalResourceCalDAVList.collections[i].someChanged)
- changeCounter++;
-
- for(var i=0; i<globalResourceCalDAVList.TodoCollections.length;i++)
- if(globalResourceCalDAVList.TodoCollections[i].uid!=undefined && globalResourceCalDAVList.TodoCollections[i].someChanged)
- changeCounter++;
- }
-
- if(changeCounter>0 || globalSettingsSaving!='')
- loadNextApplication(false);
-}
-
-function bindColorPickerClick(newElement)
-{
- newElement.click(function(event){
- var collectionType=null;
- var resourceSelectedClass=null;
- var resourceItems=null;
-
- if(newElement.parent().hasClass('resourceCalDAV_item'))
- {
- if(globalEventCollectionsLoading)
- return false;
- collectionType='event';
- resourceSelectedClass='resourceCalDAV_item_selected';
- resourceItems=newElement.parent().siblings('.resourceCalDAV_item_selected');
- }
- else if(newElement.parent().hasClass('resourceCalDAVTODO_item'))
- {
- if(globalTodoCollectionsLoading)
- return false;
- collectionType='todo';
- resourceSelectedClass='resourceCalDAV_item_selected';
- resourceItems=newElement.parent().siblings('.resourceCalDAV_item_selected');
- }
- else if(newElement.hasClass('resourceCardDAVColor'))
- {
- if(globalAddressbookCollectionsLoading)
- return false;
- collectionType='addressbook';
- resourceSelectedClass='resourceCardDAV_selected';
- resourceItems=newElement.parent().parent().siblings().find('.resourceCardDAV_selected');
- }
-
- var showInput = event.shiftKey;
- var colorpicker=$(this).siblings('.colorPicker');
-
- if(!$(this).hasClass('hasColorpicker'))
- {
- $(this).addClass('hasColorpicker');
- colorpicker.spectrum({
- chooseText: localization[globalInterfaceLanguage].buttonSave,
- cancelText: localization[globalInterfaceLanguage].buttonCancel,
- color: newElement.css('background-color'),
- showInput: showInput,
- preferredFormat: 'hex6',
- move: function(color)
- {
- newElement.css('background', color);
- },
- hide: function(color)
- {
- if(newElement.css('background-color') != colorpicker.spectrum('get').toRgbString())
- newElement.css('background', colorpicker.spectrum('get').toRgbString());
- },
- change: function(color)
- {
- newElement.css('background', color);
- if(collectionType=='event')
- {
- var coll = globalResourceCalDAVList.getEventCollectionByUID($(this).parent().attr('data-id'));
- netSaveProperty(coll, (typeof globalCalendarColorPropertyXmlns!='undefined'&&globalCalendarColorPropertyXmlns!=null&&globalCalendarColorPropertyXmlns!='' ? globalCalendarColorPropertyXmlns : 'http://apple.com/ns/ical/'), 'calendar-color', color.toHexString())
- }
- else if(collectionType=='todo')
- {
- var coll = globalResourceCalDAVList.getTodoCollectionByUID($(this).parent().attr('data-id'));
- netSaveProperty(coll, (typeof globalCalendarColorPropertyXmlns!='undefined'&&globalCalendarColorPropertyXmlns!=null&&globalCalendarColorPropertyXmlns!='' ? globalCalendarColorPropertyXmlns : 'http://apple.com/ns/ical/'), 'calendar-color', color.toHexString())
- }
- else if(collectionType=='addressbook')
- {
- var coll = globalResourceCardDAVList.getCollectionByUID($(this).parent().attr('data-id'));
- netSaveProperty(coll, (typeof globalAddrColorPropertyXmlns!='undefined'&&globalAddrColorPropertyXmlns!=null&&globalAddrColorPropertyXmlns!='' ? globalAddrColorPropertyXmlns : 'http://inf-it.com/ns/ab/'), 'addressbook-color', color.toHexString())
- }
- }
- });
- }
- else if(showInput!=colorpicker.spectrum('option', 'showInput'))
- colorpicker.spectrum('option', 'showInput',showInput);
-
- var container = colorpicker.spectrum('container');
- if(container.is(':visible')) {
- colorpicker.spectrum('hide');
- }
- else {
- var offset=$(this).offset();
- colorpicker.spectrum('show');
-
- if(event.pageY<$(window).height()/2) {
- offset.top+=$(this).outerHeight();
- container.removeClass('sp-inverse');
- }
- else {
- offset.top-=container.outerHeight();
- container.addClass('sp-inverse');
- }
- container.offset(offset);
- }
-
- resourceItems.removeClass(resourceSelectedClass);
- newElement.parent().addClass(resourceSelectedClass);
-
- return false;
- });
-}
-
-function loadNextApplication(forceLoad)
-{
- if(!globalFirstLoadNextApp)
- {
- if(isAvaible('CardDavMATE'))
- setAddressbookNumber();
- if(isAvaible('CalDavZAP'))
- setCalendarNumber(true);
- globalFirstLoadNextApp=true;
- }
- if(isAvaible('CardDavMATE') && !globalCardDAVCollectionSync && globalResourceCardDAVList.collections.length>0)
- {
- globalCardDAVCollectionSync=true;
- CardDAVnetLoadCollection(globalResourceCardDAVList.collections[0], forceLoad, false, null, 0, globalResourceCardDAVList.collections,true);
- }
- else if(isAvaible('CalDavZAP') && !globalCalDAVCollectionSync && globalResourceCalDAVList.collections.length>0)
- {
- globalCalDAVCollectionSync=true;
- CalDAVnetLoadCollection(globalResourceCalDAVList.collections[0], forceLoad, true, 0, globalResourceCalDAVList.collections);
- }
- else if(isAvaible('Projects') && !globalProjectSync && !isProjectsLoaded && getLoggedUser()!=null)
- {
- $('#MainLoaderInner').html('Loading projects');
- globalProjectSync=true;
- if(typeof globalCRMSettings != 'undefined')
- netLoadXSLT(globalCRMSettings.XSLTHref);
- else
- {
- console.log("Error: globalCRMSettings is not defined");
- loadNextApplication(false);
- }
- }
- else if(isAvaible('Reports') && !globalReportsSync && !isReportsLoaded && getLoggedUser()!=null)
- {
- $('#MainLoaderInner').html('Loading Reports');
- globalReportsSync=true;
- if(typeof globalCRMSettings != 'undefined')
- netLoadReportList(globalCRMSettings);
- else
- {
- console.log("Error: globalCRMSettings is not defined");
- loadNextApplication(false);
- }
- }
- else if(isAvaible('Settings') && !globalSettingsSync && !isSettingsLoaded && getLoggedUser()!=null)
- {
- globalSettingsSync = true;
- if(!isSettingsLoaded)
- loadNextApplication(false);
- if($('#ResourceSettingsList').children('.resourceSettings_item').length)
- $('#ResourceSettingsList').children().eq(0).trigger('click');
- }
- else
- {
- if((isAvaible('CalDavZAP') && !isCalDAVLoaded) || (isAvaible('CardDavMATE') && !isCardDAVLoaded))
- $('#MainLoader').fadeOut(1200, function(){$('#MainLoader').css('left','50px');});
- if(isAvaible('CardDavMATE'))
- {
- globalCardDAVCollectionSync=false;
- if(!isCardDAVLoaded)
- isCardDAVLoaded=true;
- }
- if(isAvaible('CalDavZAP'))
- {
- globalCalDAVCollectionSync=false;
- if(!isCalDAVLoaded)
- isCalDAVLoaded=true;
- }
- if(isAvaible('Projects'))
- {
- globalProjectSync=false;
- isProjectsLoaded = true;
- }
- if(isAvaible('Reports'))
- {
- globalReportsSync=false;
- isReportsLoaded = true;
- }
- if(isAvaible('Settings'))
- {
- globalSettingsSync=false;
- isSettingsLoaded = true;
- }
- }
-}
-
-function checkForApplication(inputApp)
-{
- if(!globalEnableAppSwitch || globalObjectLoading)
- return false;
-
- globalEnableAppSwitch=false;
- globalActiveApp=inputApp;
-
- var inputID = 'System'+inputApp;
- $('.System').not('#'+inputID).each(function(){
- $(this).animate({opacity : 0}, 666, function(){
- /* XXX - System display:none changes
- if($(this).attr('id').indexOf('CalDav')==-1)
- $(this).css('display','none');
- else*/
- $(this).css('visibility','hidden');
- });
- });
-
- /* XXX - System display:none changes
- if(inputID.indexOf('CalDav')==-1)
- $('#'+inputID).css('display','block').animate({opacity : 1}, 666, function(){globalEnableAppSwitch=true;});
- else*/
- $('#'+inputID).css('visibility','visible').animate({opacity : 1}, 666, function(){globalEnableAppSwitch=true;});
-}
-
-function getLoggedUser()
-{
- for(var i=0; i<globalAccountSettings.length;i++)
- if(globalAccountSettings[i].href.indexOf(globalLoginUsername)!=-1)
- return globalAccountSettings[i];
- return globalAccountSettings[0];
-}
-
-function login()
-{
- $('#LoginLoader').fadeTo(1200, 1, function(){
- globalLoginUsername=$('#LoginPage').find('[data-type="system_username"]').val();
- globalLoginPassword=$('#LoginPage').find('[data-type="system_password"]').val();
- loadConfig();
- });
-}
-
-function logout(forceLogout)
-{
- if((typeof forceLogout=='undefined' || forceLogout==null ) && (
- (isAvaible('CardDavMATE') && (!isCardDAVLoaded || globalCardDAVResourceSync)) ||
- (isAvaible('CalDavZAP') && (!isCalDAVLoaded || globalCalDAVResourceSync)) ||
- (isAvaible('Projects') && !isProjectsLoaded) ||
- (isAvaible('Settings') && (!isSettingsLoaded || (globalSettingsSaving!='' && !dontSaveSettings))) ||
- (isAvaible('CalDavZAP') && (globalLimitLoading!='' || globalLimitTodoLoading!=''))
- ))
- {
- globalPreventLogoutSync=true;
- return false;
- }
- clearInterval(globalResourceIntervalID);
- if(globalFirstLoadNextApp)
- globalFirstLoadNextApp=false;
- settingsLoaded=false;
- ignoreServerSettings=false;
- //save settings
- checkBeforeClose(false);
- globalResourceIntervalID=null;
- globalLoginUsername='';
- globalLoginPassword='';
- globalXMLCache=null;
- globalResourceNumber=0;
- globalResourceNumberCount=0;
- globalLoadedPrincipals=new Array();
- globalEmailAddress='';
- globalPreventLogoutSync=false;
- globalSyncSettingsSave=false;
-
- $(document.documentElement).unbind();
- // reset page title
- var tmpMatch = document.title.match('^(.*) \\[.*\\]$');
- if(tmpMatch!=null)
- document.title = tmpMatch[1];
-
- $('#LoginPage').fadeTo(2000, 1, function(){
- if(typeof isCalDAVLoaded!='undefined' && isCalDAVLoaded)
- {
- logoutCalDAV();
- isCalDAVLoaded=false;
- }
-
- if(typeof isCardDAVLoaded!='undefined' && isCardDAVLoaded)
- {
- logoutCardDAV();
- isCardDAVLoaded=false;
- }
- if(typeof isProjectsLoaded!='undefined' && isProjectsLoaded)
- {
- logoutProjects();
- isProjectsLoaded = false;
- }
- if(typeof isReportsLoaded!='undefined' && isReportsLoaded)
- {
- logoutReports();
- isReportsLoaded = false;
- }
- if(typeof isSettingsLoaded!='undefined' && isSettingsLoaded)
- {
- logoutSettings();
- isSettingsLoaded = false;
- }
-
- for(var i=globalAccountSettings.length-1;i>=0;i--)
- if(globalAccountSettings[i].type=='network')
- globalAccountSettings.splice(i, 1);
-
- if(typeof globalDemoMode=='undefined')
- {
- $('[data-type="system_username"]').val('').change();
- $('[data-type="system_password"]').val('').change();
- }
-
- $('.integration_d').hide();
-
- isUserLogged=false;
-
- if(globalSettings.defaultactiveapp.value==null)
- {
- if(isAvaible('CalDavZAP'))
- globalActiveApp='CalDavZAP';
- else if(isAvaible('CardDavMATE'))
- globalActiveApp='CardDavMATE';
- }
- else
- globalActiveApp=globalSettings.defaultactiveapp.value;
-
- resetSettings();
- if(isAvaible('CardDavMATE'))
- mainCardDAV();
- if(isAvaible('CalDavZAP'))
- mainCalDAV();
- if(isAvaible('Settings'))
- mainSettings();
- if(isAvaible('Projects'))
- mainProjects();
- if(isAvaible('Reports'))
- mainReports();
- init();
- });
-}
-
-function init()
-{
- // browser check
- if(($.browser.msie && parseInt($.browser.version, 10)<9) || $.browser.opera)
- $('#login_message').css('display','').text(localization[globalInterfaceLanguage].unsupportedBrowser);
-
- if(typeof globalDemoMode!='undefined')
- {
- if(typeof globalDemoMode.userName!=undefined)
- $('[data-type="system_username"]').val(globalDemoMode.userName).change();
- if(typeof globalDemoMode.userPassword!=undefined)
- $('[data-type="system_password"]').val(globalDemoMode.userPassword).change();
- }
-
- loadConfig();
-}
-
-function run()
-{
- isUserLogged=true;
- window.onfocus=function(){globalWindowFocus=true;}
- window.onblur=function(){if(globalSettings.backgroundsync.value==false) globalWindowFocus=false;}
- $('#LoginPage').fadeOut(2000);
-
- if(typeof globalAccountSettings=='undefined')
- {
- console.log('Error: \'no account configured\': see config.js!');
- return false;
- }
-
- if(typeof globalNewVersionNotifyUsers=='undefined' || globalNewVersionNotifyUsers!=null)
- netVersionCheck();
-
- document.title+=' ['+globalAccountSettings[0].userAuth.userName+']';
- // Automatically detect crossDomain settings
- var detectedHref=location.protocol+'//'+location.hostname+(location.port ? ':'+location.port : '');
- for(var i=0;i<globalAccountSettings.length;i++)
- {
- if(globalAccountSettings[i].crossDomain==undefined || typeof globalAccountSettings[i].crossDomain!='boolean')
- {
- if(globalAccountSettings[i].href.indexOf(detectedHref)==0)
- globalAccountSettings[i].crossDomain=false;
- else
- globalAccountSettings[i].crossDomain=true;
-
- console.log("Info: [userAccount: '"+globalAccountSettings[i].href.replace('\/\/', '//'+globalAccountSettings[i].userAuth.userName+'@')+"']: crossDomain set to: '"+(globalAccountSettings[i].crossDomain==true ? 'true' : 'false')+"'");
- }
- }
-
- if(typeof globalAvailableAppsArray!='undefined' && globalAvailableAppsArray!=null && globalAvailableAppsArray.length>1) {
- // show integration banner
- $('.integration_d').css('display', 'block');
-
- // show app buttons for available apps only
- if(globalAvailableAppsArray.indexOf('CalDavZAP')!=-1)
- $('#intCaldav').attr('title',localization[globalInterfaceLanguage].txtCalendars).css('display', 'block').find('.int_error').attr('alt',localization[globalInterfaceLanguage].txtError);
- if(globalAvailableAppsArray.indexOf('CalDavTODO')!=-1)
- $('#intCaldavTodo').attr('title',localization[globalInterfaceLanguage].txtTodos).css('display', 'block').find('.int_error').attr('alt',localization[globalInterfaceLanguage].txtError);
- if(globalAvailableAppsArray.indexOf('CardDavMATE')!=-1)
- $('#intCarddav').attr('title',localization[globalInterfaceLanguage].txtContacts).css('display', 'block').find('.int_error').attr('alt',localization[globalInterfaceLanguage].txtError);
- if(globalAvailableAppsArray.indexOf('Projects')!=-1)
- $('#intProjects').attr('title',localization[globalInterfaceLanguage].txtProjects).css('display', 'block').find('.int_error').attr('alt',localization[globalInterfaceLanguage].txtError);
- if(globalAvailableAppsArray.indexOf('Reports')!=-1)
- $('#intReports').attr('title',localization[globalInterfaceLanguage].txtReports).css('display', 'block').find('.int_error').attr('alt',localization[globalInterfaceLanguage].txtError);
- if(globalAvailableAppsArray.indexOf('Settings')!=-1)
- $('#intSettings').attr('title',localization[globalInterfaceLanguage].txtSettings).css('display', 'block').find('.int_error').attr('alt',localization[globalInterfaceLanguage].txtError);
-
- // show the refresh button
- if(typeof globalEnableRefresh==='boolean' && globalEnableRefresh && (globalAvailableAppsArray.indexOf('CalDavZAP')!=-1 || globalAvailableAppsArray.indexOf('CalDavTODO')!=-1 || globalAvailableAppsArray.indexOf('CardDavMATE')!=-1)) {
- $('#intRefresh').attr('title',localization[globalInterfaceLanguage].txtRefresh).find('.int_error').attr('alt',localization[globalInterfaceLanguage].txtError);
- $('#intRefresh').prev().addBack().css('display', 'block');
- }
- }
-
- $('#cacheDialogText').text(localization[globalInterfaceLanguage].txtCacheText);
- $('#cacheDialogButton').attr('value',localization[globalInterfaceLanguage].txtCacheButton);
-}
-
-function loadConfig()
-{
- if(isUserLogged)// !!!!!! kedy moze toto nastat? nexapem ...
- return false;
-
- var configLoaded=true;
- // Automatically detect crossDomain settings
- var detectedHref=location.protocol+'//'+location.hostname+(location.port ? ':'+location.port : '');
-
- // check username and password against the server and create config from globalNetworkCheckSettings
- if(typeof globalNetworkCheckSettings!='undefined' && globalNetworkCheckSettings!=null)
- {
- if(globalLoginUsername=='')
- {
- $('#LoginPage').fadeTo(500, 1, function(){if(typeof globalDemoMode=='undefined') $('[data-type="system_username"]').focus()});
- $('#LoginLoader').fadeOut(1200);
- return false;
- }
- else
- {
- if(globalNetworkCheckSettings.crossDomain==undefined || typeof globalNetworkCheckSettings.crossDomain!='boolean')
- {
- if(globalNetworkCheckSettings.href.indexOf(detectedHref)==0)
- globalNetworkCheckSettings.crossDomain=false;
- else
- globalNetworkCheckSettings.crossDomain=true;
-
- console.log("Info: [globalNetworkCheckSettings: '"+globalNetworkCheckSettings.href+"']: crossDomain set to: '"+(globalNetworkCheckSettings.crossDomain==true ? 'true' : 'false')+"'");
- }
-
-// !!!! preco sa riesi s logout buttonom prave tu?
- // show the logout button
- if(typeof globalAvailableAppsArray!='undefined' && globalAvailableAppsArray!=null && globalAvailableAppsArray.length>1) {
- $('#intLogout').prev().addBack().css('display', 'block');
- $('#intLogout').attr('title',localization[globalInterfaceLanguage].altLogout);
- }
- else {
- $('#Logout').css('display', 'block');
- }
-
- netCheckAndCreateConfiguration(globalNetworkCheckSettings);
- return true;
- }
- }
-
- // load the configuration XML(s) from the network
- if(typeof globalNetworkAccountSettings!='undefined' && globalNetworkAccountSettings!=null)
- {
- if(globalLoginUsername=='')
- {
- $('#LoginPage').fadeTo(500, 1, function(){if(typeof globalDemoMode=='undefined') $('[data-type="system_username"]').focus()});
- $('#LoginLoader').fadeOut(1200);
- return false;
- }
- else
- {
- if(globalNetworkAccountSettings.crossDomain==undefined || typeof globalNetworkAccountSettings.crossDomain!='boolean')
- {
- if(globalNetworkAccountSettings.href.indexOf(detectedHref)==0)
- globalNetworkAccountSettings.crossDomain=false;
- else
- globalNetworkAccountSettings.crossDomain=true;
-
- console.log("Info: [globalNetworkAccountSettings: '"+globalNetworkAccountSettings.href+"']: crossDomain set to: '"+(globalNetworkAccountSettings.crossDomain==true ? 'true' : 'false')+"'");
- }
-// !!!! preco sa riesi s logout buttonom prave tu?
- // show the logout button
- if(typeof globalAvailableAppsArray!='undefined' && globalAvailableAppsArray!=null && globalAvailableAppsArray.length>1) {
- $('#intLogout').prev().addBack().css('display', 'block');
- $('#intLogout').attr('title',localization[globalInterfaceLanguage].altLogout);
- }
- else {
- $('#Logout').css('display', 'block');
- }
-
- netLoadConfiguration(globalNetworkAccountSettings);
- return true;
- }
- }
-
- if((typeof globalNetworkAccountSettings=='undefined' || globalNetworkAccountSettings==null) && (typeof globalNetworkCheckSettings=='undefined' || globalNetworkCheckSettings==null) && (typeof globalAccountSettings!='undefined' && globalAccountSettings!=null) && globalAccountSettings.length>0)
- {
- var delegCount=0, delegIndex=0;
- if(!isDelegationLoaded)
- {
- for(var i=0; i<globalAccountSettings.length; i++)
- if((typeof globalAccountSettings[i].delegation=='boolean' && globalAccountSettings[i].delegation) || (globalAccountSettings[i].delegation instanceof Array && globalAccountSettings[i].delegation.length>0))
- delegIndex=i;
- for(var i=0; i<globalAccountSettings.length; i++)
- if((typeof globalAccountSettings[i].delegation=='boolean' && globalAccountSettings[i].delegation) || (globalAccountSettings[i].delegation instanceof Array && globalAccountSettings[i].delegation.length>0))
- {
- delegCount++;
- DAVresourceDelegation(globalAccountSettings[i], i, delegIndex);
- }
- if(delegCount>0)
- isDelegationLoaded = true;
- }
- if(delegCount==0 && !isDelegationLoaded)
- {
- // start the client
- if(isAvaible('CardDavMATE'))
- runCardDAV();
- if(isAvaible('CalDavZAP'))
- runCalDAV();
- if(isAvaible('Projects'))
- runProjects();
- if(isAvaible('Settings'))
- runSettings();
-
- globalResourceNumber=globalAccountSettings.length;
- loadAllResources();
- }
- }
-}
-
-function globalMain()
-{
- for(var prop in globalSettings)
- globalDefinedSettings.push(prop);
-
- if(typeof globalEnabledApps=='undefined' || globalEnabledApps==null)
- {
- if(typeof isCalDAVAvaible!='undefined' && isCalDAVAvaible!=null && isCalDAVAvaible)
- {
- globalAvailableAppsArray[globalAvailableAppsArray.length]='CalDavZAP';
- globalAvailableAppsArray[globalAvailableAppsArray.length]='CalDavTODO';
- }
- if(typeof isCardDAVAvaible!='undefined' && isCardDAVAvaible!=null && isCardDAVAvaible)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='CardDavMATE';
- if(typeof isSettingsAvaible!='undefined' && isSettingsAvaible!=null && isSettingsAvaible)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='Settings';
- if(typeof isProjectsAvaible!='undefined' && isProjectsAvaible!=null && isProjectsAvaible)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='Projects';
- if(typeof isReportsAvaible!='undefined' && isReportsAvaible!=null && isReportsAvaible)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='Reports';
- }
- else
- {
- if(typeof isCalDAVAvaible!='undefined' && isCalDAVAvaible!=null && isCalDAVAvaible && (globalEnabledApps.indexOf('CalDavZAP')!=-1 || globalEnabledApps.indexOf('CalDavTODO')!=-1 ))
- {
- globalAvailableAppsArray[globalAvailableAppsArray.length]='CalDavZAP';
- globalAvailableAppsArray[globalAvailableAppsArray.length]='CalDavTODO';
- }
- if(typeof isCardDAVAvaible!='undefined' && isCardDAVAvaible!=null && isCardDAVAvaible && globalEnabledApps.indexOf('CardDavMATE')!=-1)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='CardDavMATE';
- if(typeof isSettingsAvaible!='undefined' && isSettingsAvaible!=null && isSettingsAvaible && globalEnabledApps.indexOf('Settings')!=-1)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='Settings';
- if(typeof isProjectsAvaible!='undefined' && isProjectsAvaible!=null && isProjectsAvaible && globalEnabledApps.indexOf('Projects')!=-1)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='Projects';
- if(typeof isReportsAvaible!='undefined' && isReportsAvaible!=null && isReportsAvaible)
- globalAvailableAppsArray[globalAvailableAppsArray.length]='Reports';
- }
-
- if(globalAvailableAppsArray.length>1)
- isIntegrated=true;
-
- if(globalSettings.defaultactiveapp.value==null)
- {
- if(isAvaible('CardDavMATE'))
- globalActiveApp='CardDavMATE';
- else if(isAvaible('CalDavZAP'))
- globalActiveApp='CalDavZAP';
- }
- else
- globalActiveApp=globalSettings.defaultactiveapp.value;
-
- if(isAvaible('CardDavMATE'))
- {
- // Modify available inputs before making additional changes to vCard form
- if(typeof globalDisabledContactAttributes!='undefined' && globalDisabledContactAttributes instanceof Array)
- for(var i=0;i<globalDisabledContactAttributes.length;i++)
- $('#vCardTemplate').find('[data-attr-name="'+jqueryEscapeSelector(globalDisabledContactAttributes[i])+'"]').remove();
-
- // hook for vCard template extension
- if(typeof(globalContactsExtInitMain)=='function')
- globalContactsExtInitMain($('#vCardTemplate'));
- }
-
- /*************************** BAD HACKS SECTION ***************************/
- // here we fix the cross OS/cross broser problems (unfixable in pure CSS)
- if($.browser.webkit && !!window.chrome) /* Chrome */
- {
- if(navigator.platform.toLowerCase().indexOf('win')==0) /* Windows version */
- {
- $('#LoginPage, #vCardTemplate, #event_details_template, #todo_details_template, #EditorBoxSettings').find('input').css('text-indent', '2px');
- $('#LoginPage, #vCardTemplate, #event_details_template, #todo_details_template, #EditorBoxSettings').find('select').css({'padding-left': '0px', 'padding-right': '13px'});
- }
- else /* non-Windows version */
- $('#LoginPage, #vCardTemplate, #event_details_template, #todo_details_template, #EditorBoxSettings').find('input').css('text-indent', '1px');
- }
- else if($.browser.safari)
- {
- $('#LoginPage, #vCardTemplate, #event_details_template, #todo_details_template, #EditorBoxSettings').find('textarea').addClass('safari_hack');
- $('#LoginPage, #vCardTemplate, #event_details_template, #todo_details_template, #EditorBoxSettings').find('input').addClass('safari_hack');
- }
- else if($.browser.msie) /* IE */
- {
- if(parseInt($.browser.version, 10)==10) /* IE 10 (because there are no more conditional comments) */
- {
- $('select').css({'padding-top': '1px', 'padding-left': '0px', 'padding-right': '0px'});
- $('textarea').css('padding-top', '3px');
- $('input[type=button]').css('padding-top', '2px');
- }
-
- // ADD SVG to login screen
- var newSVG=$(SVG_select_login).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-19px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug
- $('#Login').find('select[data-type="language"]').after($($('<div>').append($(newSVG).clone()).html()));
- }
- else if($.browser.mozilla)
- {
- // ADD SVG to login screen
- var newSVG=$(SVG_select_login).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-19px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug
- $('#Login').find('select[data-type="language"]').after($($('<div>').append($(newSVG).clone()).html()));
- }
- /*************************** END OF BAD HACKS SECTION ***************************/
-
- /* language selector */
- var lang_num=0;
- var language_option=$('#Login').find('[data-type="language"]').find('option');
- $('#Login').find('[data-type="language"]').html('');
-
- if(typeof globalInterfaceCustomLanguages!='undefined' && globalInterfaceCustomLanguages.length!=undefined && globalInterfaceCustomLanguages.length>0)
- {
- for(var i=0; i<globalInterfaceCustomLanguages.length; i++)
- if(localization[globalInterfaceCustomLanguages[i]]!=undefined)
- {
- var tmp=language_option;
- tmp.attr('data-type',globalInterfaceCustomLanguages[i]);
- tmp.text(localization[globalInterfaceCustomLanguages[i]]['_name_']);
- $('#Login').find('[data-type="language"]').append(tmp.clone());
- lang_num++;
- }
- }
-
- if(lang_num==0) // no language option, use the default (all languages from localization.js)
- for(var loc in localization)
- {
- var tmp=language_option;
- tmp.attr('data-type',loc);
- tmp.text(localization[loc]['_name_']); // translation
- $('#Login').find('[data-type="language"]').append(tmp.clone());
- }
-
- // select the globalInterfaceLanguage in the interface
- $('[data-type="language"]').find('[data-type='+globalInterfaceLanguage+']').prop('selected',true);
-
- // set login screen logo
- if(isAvaible('CalDavZAP') && !isAvaible('CardDavMATE'))
- {
- $('[data-size="login_logo"]').find('img').attr('src', "images/cdz_logo.svg");
- $('#LoginPage').find('.footer').text('CalDavZAP - the open source CalDAV web client');
- }
- else if(isAvaible('CardDavMATE') && !isAvaible('CalDavZAP'))
- {
- $('[data-size="login_logo"]').find('img').attr('src', "images/cdm_logo.svg");
- $('#LoginPage').find('.footer').text('CardDavMATE - the open source CardDAV web client');
- }
- else
- {
- $('#Login').css('margin-top', '41px');
- $('[data-size="login_logo"]').find('img').attr('src', "images/infcloud_logo.svg");
- $('#LoginPage').find('.footer').text('InfCloud - the open source CalDAV/CardDAV web client');
- }
- $('#LoginPage').find('.footer').attr('title', globalVersion);
-
- if(isAvaible('CardDavMATE'))
- globalMainCardDAV();
- if(isAvaible('CalDavZAP'))
- globalMainCalDAV();
- if(isAvaible('Projects'))
- globalMainProjects();
- if(isAvaible('Reports'))
- globalMainReports();
- if(isAvaible('Settings'))
- globalMainSettings();
-
- if(isAvaible('CardDavMATE'))
- mainCardDAV();
- if(isAvaible('CalDavZAP'))
- mainCalDAV();
- if(isAvaible('Projects'))
- mainProjects();
- if(isAvaible('Reports'))
- mainReports();
- if(isAvaible('Settings'))
- mainSettings();
-
- init();
-}
-
-function saveSettings(isFormSave)
-{
-
- if(globalSettings.islastdefaultactiveapp.value)
- globalSettings.defaultactiveapp.value=globalActiveApp;
-
- globalSettings.version.value=globalSettingsVersion;
-
- var rex = new RegExp('^(https?://)([^@/]+(?:@[^@/]+)?)@(.*)');
- if(isAvaible('CalDavZAP'))
- {
- globalSettings.activecalendarcollections.value.splice(0, globalSettings.activecalendarcollections.value.length);
- globalSettings.activetodocollections.value.splice(0, globalSettings.activetodocollections.value.length);
- globalSettings.todolistfilterselected.value.splice(0, globalSettings.todolistfilterselected.value.length);
-
- for(var i=0;i<globalVisibleCalDAVCollections.length;i++)
- {
- var uidParts=globalVisibleCalDAVCollections[i].match(rex)
- globalSettings.activecalendarcollections.value.splice(globalSettings.activecalendarcollections.value.length , 0, uidParts[1]+uidParts[3]);
- }
-
- for(var i=0;i<globalVisibleCalDAVTODOCollections.length;i++)
- {
- var uidParts=globalVisibleCalDAVTODOCollections[i].match(rex);
- globalSettings.activetodocollections.value.splice(globalSettings.activetodocollections.value.length , 0, uidParts[1]+uidParts[3]);
- }
- if(globalSettings.islastactiveview.value)
- {
- var view= $('#calendar').fullCalendar('getView');
- globalSettings.activeview.value=view.name;
- }
-
- if(globalSettings.islasttimezone.value)
- globalSettings.timezone.value=globalSessionTimeZone;
-
- var uidSelected=$('#ResourceCalDAVList').find('.resourceCalDAV_item_selected').attr('data-id');
- if(uidSelected!=undefined && uidSelected!='')
- {
- var par=uidSelected.split('/');
- globalSettings.calendarselected.value=par[par.length-3]+'/'+par[par.length-2]+'/';
- }
-
- uidSelected=$('#ResourceCalDAVTODOList').find('.resourceCalDAV_item_selected').attr('data-id');
- if(uidSelected!=undefined && uidSelected!='')
- {
- var par=uidSelected.split('/');
- globalSettings.todocalendarselected.value=par[par.length-3]+'/'+par[par.length-2]+'/';
- }
-
- var filterArray = $('.fc-filter-option-selected');
- for(var i=0; i<filterArray.length; i++)
- globalSettings.todolistfilterselected.value.splice(globalSettings.todolistfilterselected.value.length,0,$($('.fc-filter-option-selected')[i]).attr('data-type'));
- }
-
- if(isAvaible('CardDavMATE'))
- {
- globalSettings.activeaddressbookcollections.value.splice(0, globalSettings.activeaddressbookcollections.value.length);
- var visAddrs = dataGetChecked('#ResourceCardDAVList');
- for(var i=0;i<visAddrs.length;i++)
- {
- if(visAddrs[i]!='undefined')
- {
- var uidPart=visAddrs[i].match(RegExp('^(https?://)(.*)', 'i'))[1];
- var uidPart2= visAddrs[i].match(RegExp('^(https?://)(.*)', 'i'))[2].split('@')[2];
- globalSettings.activeaddressbookcollections.value.splice(globalSettings.activeaddressbookcollections.value.length , 0, uidPart+uidPart2);
- }
- }
-
- if($('#ResourceCardDAVList').find('.group.resourceCardDAV_selected').length>0)
- var uidASelected=$('#ResourceCardDAVList').find('.group.resourceCardDAV_selected').attr('data-id');
- else if($('#ResourceCardDAVList').find('.resourceCardDAV_selected').length>0)
- var uidASelected=$('#ResourceCardDAVList').find('.resourceCardDAV_selected').attr('data-id');
- else
- var uidASelected='';
- if(uidASelected!=undefined && uidASelected!='')
- globalSettings.addressbookselected.value=uidASelected;
- }
- if(isAvaible('Settings') && isFormSave)
- return applyFormSettings();
- else
- return globalSettings;
-}
-
-function loadXMLSetings(settingsXML)
-{
- $(settingsXML).children().each(
- function(ind,elm)
- {
- var type = $(elm).attr('type');
- var locked = typeof $(elm).attr('locked')!='undefined'&&$(elm).attr('locked')!=null&&$(elm).attr('locked')=='true' ? true : false;
- if(typeof globalSettings[$(elm).prop('tagName').toLowerCase()] == 'undefined')
- return true;
- if(locked)
- globalSettings[$(elm).prop('tagName').toLowerCase()].locked=true;
-
- if($(elm).children().length>0)
- {
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = new Array();
- $(elm).children().each(function(pind,pelm)
- {
- if($(elm).prop('tagName').toLowerCase() == 'urihandlerprofile')
- {
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = {};
- globalSettings[$(elm).prop('tagName').toLowerCase()].value[$(pelm).text().toLowerCase()] = $(pelm).attr('url');
- }
- else if($(elm).prop('tagName').toLowerCase() == 'addresscountryequivalence')
- {
- var eqObject = {};
- eqObject['country'] = $(pelm).attr('name');
- eqObject['regex'] = $(pelm).attr('regex');
- globalSettings[$(elm).prop('tagName').toLowerCase()].value.push(eqObject);
- }
- else if($(elm).prop('tagName').toLowerCase() == 'compatibility')
- {
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = {};
- globalSettings[$(elm).prop('tagName').toLowerCase()].value[$(pelm).attr('name')] = new Array();
- $(pelm).children().each(function(rind,relm)
- {
- globalSettings[$(elm).prop('tagName').toLowerCase()].value[$(pelm).attr('name')].push($(relm).text());
- });
- }
- else if($(pelm).text()!='')
- {
- switch(type)
- {
- case 'integer':
- globalSettings[$(elm).prop('tagName').toLowerCase()].value.push(parseInt($(pelm).text(),10));
- break;
- case 'string':
- if($(pelm).text()!='null')
- globalSettings[$(elm).prop('tagName').toLowerCase()].value.push($(pelm).text());
- else
- globalSettings[$(elm).prop('tagName').toLowerCase()].value.push(null);
- break;
- case 'boolean':
- if($(pelm).text() == 'true')
- globalSettings[$(elm).prop('tagName').toLowerCase()].value.push(true);
- else
- globalSettings[$(elm).prop('tagName').toLowerCase()].value.push(false);
- break;
- default:
- break;
- }
- }
- });
- }
- else if($(elm).text()!='')
- {
- switch(type)
- {
- case 'integer':
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = parseInt($(elm).text(),10);
- break;
- case 'string':
- if($(elm).text()!='null')
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = $(elm).text();
- else
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = null;
- break;
- case 'boolean':
- if($(elm).text() == 'true')
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = true;
- else if($(elm).text() == 'false')
- globalSettings[$(elm).prop('tagName').toLowerCase()].value = false;
- break;
- default:
- break;
- }
- }
- });
-}
-
-function applyServerSettings(inputSettings)
-{
- if(typeof inputSettings.activecalendarcollections == 'undefined' || inputSettings.activecalendarcollections==null)
- inputSettings.activecalendarcollections = new Array();
-
- if(typeof inputSettings.activetodocollections == 'undefined' || inputSettings.activetodocollections==null)
- inputSettings.activetodocollections = new Array();
-
- if(typeof inputSettings.loadedcalendarcollections == 'undefined' || inputSettings.loadedcalendarcollections==null)
- {
- inputSettings.loadedcalendarcollections = new Array();
- if(isAvaible('CalDavZAP'))
- $('#showUnloadedCalendars').css('display','none');
- }
-
- if(typeof inputSettings.loadedtodocollections == 'undefined' || inputSettings.loadedtodocollections==null)
- {
- inputSettings.loadedtodocollections = new Array();
- if(isAvaible('CalDavZAP'))
- $('#showUnloadedCalendarsTODO').css('display','none');
- }
- if(typeof inputSettings.activeaddressbookcollections == 'undefined' || inputSettings.activeaddressbookcollections==null)
- inputSettings.activeaddressbookcollections = new Array();
-
- if(typeof inputSettings.loadedaddressbookcollections == 'undefined' || inputSettings.loadedaddressbookcollections==null)
- {
- inputSettings.loadedaddressbookcollections = new Array();
- if(isAvaible('CardDavMATE'))
- $('#showUnloadedAddressbooks').css('display','none');
- }
-
- transformSettings(inputSettings);
-
- for(var prop in inputSettings)
- {
- if(globalDefinedSettings.indexOf(prop)==-1 || (typeof globalPreviousSupportedSettings !='undefined' && globalPreviousSupportedSettings.indexOf(prop)==-1))
- {
- if(globalDefinedSettings.indexOf(prop)==-1)
- console.log('Warning: Unsupported property: \''+prop+'\' (you can safely ignore this message)');
- continue;
- }
- if(typeof globalSettings[prop] !='undefined' && !globalSettings[prop].locked)
- globalSettings[prop].value=inputSettings[prop];
- }
-}
-
-function transformSettings(settings) {
- if(!settings.version) {
- settings.version = 1;
- }
-
- while(settings.version<globalSettingsVersion) {
- console.log('Warning: Detected outdated server settings (version ' + settings.version++ +') - transforming to version ' + settings.version);
-
- switch(settings.version) {
- case 2:
- if(typeof globalActiveCalendarCollections!='undefined' && globalActiveCalendarCollections!=null)
- settings.activecalendarcollections=globalActiveCalendarCollections.slice();
- else
- settings.activecalendarcollections.splice(0, settings.activecalendarcollections.length);
-
- if(typeof globalActiveTodoCollections!='undefined' && globalActiveTodoCollections!=null)
- settings.activetodocollections=globalActiveTodoCollections.slice();
- else
- settings.activetodocollections.splice(0, settings.activetodocollections.length);
-
- if(typeof globalLoadedCalendarCollections!='undefined' && globalLoadedCalendarCollections!=null)
- settings.loadedcalendarcollections=globalLoadedCalendarCollections.slice();
- else
- settings.loadedcalendarcollections.splice(0, settings.loadedcalendarcollections.length);
-
- if(typeof globalLoadedTodoCollections!='undefined' && globalLoadedTodoCollections!=null)
- settings.loadedtodocollections=globalLoadedTodoCollections.slice();
- else
- settings.loadedtodocollections.splice(0, settings.loadedtodocollections.length);
-
- if(typeof globalActiveAddressbookCollections!='undefined' && globalActiveAddressbookCollections!=null)
- settings.activeaddressbookcollections=globalActiveAddressbookCollections.slice();
- else
- settings.activeaddressbookcollections.splice(0, settings.activeaddressbookcollections.length);
-
- if(typeof globalLoadedAddressbookCollections!='undefined' && globalLoadedAddressbookCollections!=null)
- settings.loadedaddressbookcollections=globalLoadedAddressbookCollections.slice();
- else
- settings.loadedaddressbookcollections.splice(0, settings.loadedaddressbookcollections.length);
-
- if(typeof globalContactStoreFN!='undefined' && globalContactStoreFN!=null)
- settings.contactstorefn=globalContactStoreFN.slice();
- else
- settings.contactstorefn=['prefix', ' last', ' middle', ' first', ' suffix'];
- break;
- case 3:
- settings.collectiondisplay=(typeof globalCollectionDisplay!='undefined' && globalCollectionDisplay!=null && globalCollectionDisplay!='') ? globalCollectionDisplay : (
- (typeof globalGroupContactsByCompanies!='undefined' && globalGroupContactsByCompanies) ?
- [{label: '{Name}', value: {company: ['{Company}', ' [{Department}]'], personal: ['{LastName}', ' {MiddleName}', ' {FirstName}']}}, {label: '{JobTitle}', value: ['{JobTitle}']}, {label: '{Email}', value: ['{Email[:0]}']}, {label: '{Phone} 1', value: ['{Phone[:0]}']}, {label: '{Phone} 2', value: ['{Phone[:1]}']}, {label: '{NoteText}', value: ['{NoteText}']}] :
- [{label: '{Name}', value: ['{LastName}', ' {MiddleName}', ' {FirstName}']}, {label: '{Company} [{Department}]', value: ['{Company}', ' [{Department}]']}, {label: '{JobTitle}', value: ['{JobTitle}']}, {label: '{Email}', value: ['{Email[:0]}']}, {label: '{Phone} 1', value: ['{Phone[:0]}']}, {label: '{Phone} 2', value: ['{Phone[:1]}']}, {label: '{NoteText}', value: ['{NoteText}']}]
- );
-
- settings.collectionsort=(typeof globalCollectionSort!='undefined' && globalCollectionSort!=null && globalCollectionSort!='') ? globalCollectionSort : '';
- break;
- default:
- break;
- }
- }
-}
-
-function loadSettings(strobj, fromServer, syncMode)
-{
- if(settingsLoaded && !syncMode)
- return false;
- try
- {
- objNew = jQuery.parseJSON(strobj);
- if(typeof objNew=='object')
- {
- if(!syncMode && typeof globalSettingsXML!='undefined' && globalSettingsXML!=null && globalSettingsXML!='')
- loadXMLSetings($(globalSettingsXML));
- if(fromServer)
- applyServerSettings(objNew);
-// $.extend(globalSettings,objNew);
- }
- }
- catch(err)
- {
- console.log('load settings - JSON parsing error: '+err);
- delete globalSettings.version.value;
- loadSettings(JSON.stringify(globalSettings), false, false);
- return false;
- }
- if(syncMode)
- return false;
- if(isAvaible('CalDavZAP'))
- {
- for(var i=0;i<globalSettings.timezonesenabled.value.length;i++)
- if(timeZonesEnabled.indexOf(globalSettings.timezonesenabled.value[i])==-1)
- timeZonesEnabled.push(globalSettings.timezonesenabled.value[i]);
-
- if(globalSettings.timezonesupport.value)
- {
- globalSessionTimeZone=globalSettings.timezone.value;
- if(globalSessionTimeZone != null && timeZonesEnabled.indexOf(globalSessionTimeZone)==-1)
- timeZonesEnabled.push(globalSessionTimeZone);
- }
- else
- {
- globalSessionTimeZone = 'local';
- timeZonesEnabled.push('local');
- }
-
- initTimepicker(globalSettings.ampmformat.value);
-
- if(globalSettings.timeformatagenda.value==null)
- {
- if(globalSettings.ampmformat.value)
- globalSettings.timeformatagenda.value='h:mm TT{ - h:mm TT}';
- else
- globalSettings.timeformatagenda.value='H:mm{ - H:mm}';
- }
-
- if(globalSettings.timeformatbasic.value==null)
- {
- if(globalSettings.ampmformat.value)
- globalSettings.timeformatbasic.value = 'h:mmT{-h:mmT}';
- else
- globalSettings.timeformatbasic.value = 'H:mm{-H:mm}';
- }
-
- if(globalSettings.appleremindersmode.value)
- {
- if(globalSettings.todolistfilterselected.value.indexOf('filterAction')==-1 && globalSettings.todolistfilterselected.value.indexOf('filterCompleted')==-1)
- {
- if(globalSettings.todolistfilterselected.value.indexOf('filterProgress')!=-1)
- globalSettings.todolistfilterselected.value[globalSettings.todolistfilterselected.value.indexOf('filterProgress')] = 'filterAction';
- if(globalSettings.todolistfilterselected.value.indexOf('filterCanceled')!=-1)
- globalSettings.todolistfilterselected.value[globalSettings.todolistfilterselected.value.indexOf('filterCanceled')] = 'filterAction';
- }
- }
- if(globalSettings.eventstartfuturelimit.value == null)
- {
- var now=new Date();
- globalToLoadedLimit = new Date(now.getFullYear(), now.getMonth()+12, 1, 0, 0, 0);
- globalToLoadedLimit.setMilliseconds(0);
- globalBeginFuture = new Date(globalToLoadedLimit.getTime());
- globalBeginFuture.setDate(globalBeginFuture.getDate()+14);
- globalToLoadedLimitTodo = new Date(now.getFullYear(), now.getMonth()+12, 1, 0, 0, 0);
- globalToLoadedLimitTodo.setMilliseconds(0);
- }
- if(globalSettings.enablekbnavigation.value!==false)
- initKbTodoNavigation();
- initFullCalendar();
- initTodoList();
-
- $('#SystemCalDavZAP .fc-header-title').css('width', $('#main_h_placeholder').width()-$('#SystemCalDavZAP .fc-header-left').outerWidth()-$('#SystemCalDavZAP .fc-header-right').outerWidth());
- $('#ResourceCalDAVList, #ResourceCalDAVTODOList').css('bottom',(globalSettings.timezonesupport.value ? 20 : 0));
- $('#alertBox').css('left', ($(window).width()/2)-($('#alertBox').width()/2));
- }
- if(isAvaible('CardDavMATE'))
- {
- // set ABListTableLayout
- globalRefAbListTableHeader = $('#ABListTable').find('.ablist_table_header');
- var colgroups = $('#ABListTable').find('colgroup');
-
- for(var i=0; i<getDataColumnCount(); i++) {
- globalRefAbListTableHeader.append('<th>');
- colgroups.append('<col>');
- }
-
- globalRefAbListTableHeader.children().slice(globalFixedContactDataColumnsCount).each(function(ind) {
- $(this).text(getDataColumnLabelAtIndex(ind));
- });
-
- globalRefABListTableCols=$('#ABListTable').find('colgroup').first().children();
- globalRefABListInnerTableCols=$('#ABListTableInner').find('colgroup').children();
- $('#ABListTable').find('.ablist_table_container').children().attr('colspan', getDataColumnCount()+globalFixedContactDataColumnsCount);
- globalRefABListTable.children('.ablist_header').children().attr('colspan', getDataColumnCount()+globalFixedContactDataColumnsCount);
-
- if(!globalOrigABListHeader) {
- globalOrigABListHeader=globalRefABListTable.children('.ablist_header').remove();
- }
- if(!globalOrigABListItem) {
- globalOrigABListItem=globalRefABListTable.children('.ablist_item').remove();
- }
-
- if(globalSettings.enablekbnavigation.value!==false)
- initKbAddrNavigation();
-
- applyAddrSettings(globalTranslVcardTemplate);
- applyAddrSettings($('#vCardEditor'));
- }
- if(isAvaible('Projects'))
- if(globalSettings.enablekbnavigation.value!==false)
- initKbProjectNavigation();
- settingsLoaded=true;
- if(!isAvaible(globalSettings.defaultactiveapp.value))
- globalActiveApp = globalAvailableAppsArray[0];
- else
- globalActiveApp = globalSettings.defaultactiveapp.value;
-}
-
-function checkForLoadedCollections(inputSettings)
-{
- var val='', triggerSync=true;
- globalLoadedCollectionsNumber=0;
- globalLoadedCollectionsCount=0;
- if(globalSettingsSaving=='event')
- {
- hideUnloadedCollections('event');
- val = inputSettings.loadedcalendarcollections.value;
- if(val.length>0)
- globalLoadedCollectionsNumber+=$(val).not(globalSettings.loadedcalendarcollections.value).length;
- else
- globalLoadedCollectionsNumber++;
- if($(globalSettings.loadedcalendarcollections.value).not(val).length>0)
- {
- if(globalLoadedCollectionsNumber==0)
- {
- triggerSync=false;
- globalFirstHideLoader=false;
- }
- var unloadArray = $(globalSettings.loadedcalendarcollections.value).not(val);
- unloadCalDAVCollection(unloadArray.toArray(),true);
- }
- if(triggerSync)
- addLoadCalDAVCollection(val, true);
- globalSettings.loadedcalendarcollections.value = val;
- }
- else if(globalSettingsSaving=='todo')
- {
- hideUnloadedCollections('todo');
- val = inputSettings.loadedtodocollections.value;
- if(val.length>0)
- globalLoadedCollectionsNumber+=$(val).not(globalSettings.loadedtodocollections.value).length;
- else
- globalLoadedCollectionsNumber++;
- if($(globalSettings.loadedtodocollections.value).not(val).length>0)
- {
- if(globalLoadedCollectionsNumber==0)
- {
- triggerSync=false;
- globalFirstHideLoader=false;
- }
- var unloadArray = $(globalSettings.loadedtodocollections.value).not(val);
- unloadCalDAVCollection(unloadArray.toArray(),false);
- }
- if(triggerSync)
- addLoadCalDAVCollection(val, false);
- globalSettings.loadedtodocollections.value = val;
- }
- else if(globalSettingsSaving=='addressbook')
- {
- hideUnloadedCardDAVCollections();
- val = inputSettings.loadedaddressbookcollections.value;
- if(val.length>0)
- globalLoadedCollectionsNumber+=$(val).not(globalSettings.loadedaddressbookcollections.value).length;
- else
- globalLoadedCollectionsNumber++;
- if($(globalSettings.loadedaddressbookcollections.value).not(val).length>0)
- {
- if(globalLoadedCollectionsNumber==0)
- {
- triggerSync=false;
- globalFirstHideLoader=false;
- }
- var unloadArray = $(globalSettings.loadedaddressbookcollections.value).not(val);
- unloadCardDAVCollection(unloadArray.toArray());
- }
- if(triggerSync)
- addLoadCardDAVCollection(val)
- globalSettings.loadedaddressbookcollections.value = val;
- }
- if(triggerSync)
- ifLoadCollections();
-}
-
-function checkBeforeClose(isFormSave)
-{
- if((isAvaible('CalDavZAP') && globalCalDAVInitLoad) || (isAvaible('CardDavMATE') && globalCardDAVInitLoad))
- return false;
- var old_settings=JSON.stringify(globalSettings);
- var settings=saveSettings(isFormSave);
- var new_settings = JSON.stringify(settings);
- if(old_settings == new_settings)
- return false;
- for(var i=0;i<globalAccountSettings.length;i++)
- if(globalAccountSettings[i].href.indexOf(globalLoginUsername)!=-1 && globalAccountSettings[i].settingsAccount)
- {
- netSaveSettings(globalAccountSettings[i], settings, isFormSave,false);
- break;
- }
-}
-
-function isEachResourceLoaded()
-{
- var loaded = true;
- for(var i=0; i< globalAccountSettings.length; i++)
- if(typeof globalAccountSettings[i].errorLoaded!='undefined' && globalAccountSettings[i].errorLoaded!=null && globalAccountSettings[i].errorLoaded===true)
- loaded=false;
- return loaded;
-}
-
-window.onload=globalMain;
-
-window.onkeydown=function(event)
-{
- switch(event.which) {
- case 13:
- if(!isUserLogged)
- $('#Login').find('[data-type="system_login"]').trigger('click');
- break;
- case 27:
- if(globalActiveApp=='CalDavZAP' && $('#CAEvent').is(':visible') && $('#EventDisabler').is(':hidden'))
- $('#closeButton').trigger('click');
- if(globalActiveApp=='Projects' && $('#ProjectEventForm').is(':visible') && $('#ProjectsDisabler').is(':hidden'))
- $('#cancelActivity').trigger('click');
- if($('.sp-container').is(':visible'))
- $('html').trigger('click');
- break;
- default:
- break;
- }
-};
-
-var globalEventList=new EventList();
-var globalAppleSupport = new AppleSupportNextDateArray();
-var globalResourceCalDAVList=new ResourceCalDAVList();
-var maxAlarmValue=2147000000;
-var globalMultiWeekSize=3;
-var globalMaxNextInstanesTodoCheckingNumber=60;
-
-var globalEventIntervalID=null;
-var globalResourceRefreshNumber=0;
-var globalResourceRefreshNumberTodo=0;
-var globalCalDAVInitLoad=true;
-var globalCalDAVResourceSync=false;
-var globalCalDAVCollectionSync=false;
-var globalCalendarNumber=0;
-var globalOnlyCalendarNumber=0;
-var globalTodoCalendarNumber=0;
-var globalOnlyCalendarNumberCount=0;
-var globalOnlyTodoCalendarNumberCount=0;
-var globalCalendarNumberCount=0;
-var globalEventTimeoutID=0;
-
-var cleanResourceCalDAVListTemplate=null;
-var cleanResourceCalDAVTODOListTemplate=null;
-var cleanVcalendarTemplate=null;
-var cleanVtodoTemplate=null;
-var origResourceCalDAVListTemplate=null;
-var origResourceCalDAVTODOListTemplate=null;
-var origVcalendarTemplate=null;
-var origVtodoTemplate=null;
-var origVtodoLoaderTemplate=null;
-var globalSessionTimeZone=null;
-var globalCalDAVQs=null;
-var globalCalDAVTODOQs=null;
-var globalVisibleCalDAVCollections=new Array();
-var globalVisibleCalDAVTODOCollections=new Array();
-var isResourceComplete=false;
-var prevFunctionArray=new Array();
-var prevFunctionArrayIterator=0;
-var globalWorkerArray=new Array();
-var globalIntervalArray=new Array();
-var globalCurrentLoadingResource='';
-var timeZonesEnabled=new Array();
-var cLcouny=42;
-var processedTimezones = Array();
-var timelist=new Array();
-var minelems=[0,15,30,45];
-var frequencies = ["SECONDLY", "MINUTELY", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"];
-var globalToday=new Date();
-var isCalDAVLoaded=false;
-var isCalDAVAvaible=true;
-var globalLoadedLimit = new Date();
-var globalToLoadedLimit = new Date();
-var globalLimitLoading='';
-var globalLimitTodoLoading='';
-var globalBeginPast = new Date();
-var globalBeginFuture = new Date();
-var globalLoadedLimitTodo = new Date();
-var globalToLoadedLimitTodo = new Date();
-var globalDefaultCalendarCollectionActiveAll = false;
-var globalDefaultTodoCalendarCollectionActiveAll = false;
-var globalDefaultCalendarCollectionLoadAll = false;
-var globalDefaultTodoCalendarCollectionLoadAll = false;
-var globalTodoLoaderHide='';
-var globalEventCollectionsLoading=false;
-var globalTodoCollectionsLoading=false;
-
-var globalCalEvent=null;
-var globalCalTodo=null;
-var globalJsEvent=null;
-var globalRevertFunction=null;
-var globalPrevDragEventAllDay=null;
-var globalPrevDate='';
-var globalAllowFcRerender=true;
-var globalCalWidth=0;
-var globalTodoCheckTimeout=null;
-var globalTodoCheckTimeoutDelay=1000;
-var globalTodolistStatusArray={};
-
-
-function logoutCalDAV()
-{
- globalTodolistStatusArray={};
- globalTodoCheckTimeout=null;
- globalVisibleCalDAVCollections.splice(0, globalVisibleCalDAVCollections.length);
- globalVisibleCalDAVTODOCollections.splice(0, globalVisibleCalDAVTODOCollections.length);
- processedTimezones.splice(0, processedTimezones.length);
- globalCalendarNumber=0;
- globalOnlyCalendarNumber=0;
- globalTodoCalendarNumber=0;
- globalCalendarNumberCount=0;
- globalLoadedLimit = new Date();
- globalToLoadedLimit = new Date();
- globalLimitLoading='';
- globalLimitTodoLoading='';
- globalBeginPast = new Date();
- globalBeginFuture = new Date();
- globalLoadedLimitTodo = new Date();
- globalToLoadedLimitTodo = new Date();
- globalDefaultCalendarCollectionActiveAll = false;
- globalDefaultTodoCalendarCollectionActiveAll = false;
- globalDefaultCalendarCollectionLoadAll = false;
- globalDefaultTodoCalendarCollectionLoadAll = false;
- globalCalDAVCollectionSync=false;
- globalAllowFcRerender=true;
- globalEventList.reset();
- globalResourceCalDAVList.reset();
- timeZonesEnabled.splice(0,timeZonesEnabled.length);
- if(globalEventIntervalID!=null)
- clearInterval(globalEventIntervalID);
-
- $('#EventDisabler, #TodoDisabler, #AlertDisabler').fadeOut(2000);
- $('#SystemCalDavZAP, #SystemCalDavTODO').animate({opacity : 0},200).promise().done(function(){
- $('#SystemCalDavZAP, #SystemCalDavTODO').css('visibility','hidden');
- $('#main, #mainTODO').animate({top: 25}, 0);
- $('#searchForm, #searchFormTODO').hide();
- $('#searchInput, #searchInputTODO').val('').trigger('keyup').trigger('blur');
- $('#calendar').fullCalendar('destroy');
- $('#todoList').fullCalendar('destroy');
- $('#timezonePicker, #timezonePickerTODO').prop('disabled', false).empty();
- $('#eventColor, #todoColor').css('background-color','');
- if($('#ResourceCalDAVList').width()<1)
- $('#ResourceCalDAVToggle').trigger('click');
- if($('#ResourceCalDAVTODOList').width()<1)
- $('#ResourceCalDAVTODOToggle').trigger('click');
- });
-}
-
-function mainCalDAV()
-{
- localizeCalDAV();
- // init();
-}
-
-function localizeCalDAV()
-{
- globalCalDAVInitLoad = true;
- $('#ResourceCalDAVList').html(origResourceCalDAVListTemplate);
- $('#ResourceCalDAVTODOList').html(origResourceCalDAVTODOListTemplate);
- $('#CAEvent').html(origVcalendarTemplate);
- $('#CATodo').html(origVtodoTemplate);
- $('#todoLoader').html(origVtodoLoaderTemplate);
- translate();
- $('input[placeholder],textarea[placeholder]').placeholder();
- cleanResourceCalDAVListTemplate=$('#ResourceCalDAVListTemplate').clone().wrap('<div>').parent().html();
- cleanResourceCalDAVTODOListTemplate=$('#ResourceCalDAVTODOListTemplate').clone().wrap('<div>').parent().html();
- cleanVcalendarTemplate=$('#CAEvent .saveLoader').clone().wrap('<div>').parent().html() + $('#repeatConfirmBox').clone().wrap('<div>').parent().html() + $('#event_details_template').clone().wrap('<div>').parent().html();
- cleanVtodoTemplate=$('#repeatConfirmBoxTODO').clone().wrap('<div>').parent().html() + $('#todo_details_template').clone().wrap('<div>').parent().html();
- $('#searchInput, #searchInputTODO').val('');
- globalSettings.titleformatmonth.value = localization[globalInterfaceLanguage]._default_title_format_month_;
- globalSettings.titleformatweek.value = localization[globalInterfaceLanguage]._default_title_format_week_;
- globalSettings.titleformatday.value = localization[globalInterfaceLanguage]._default_title_format_day_;
- globalSettings.titleformattable.value = localization[globalInterfaceLanguage]._default_title_format_table_;
- globalSettings.columnformatagenda.value = localization[globalInterfaceLanguage]._default_column_format_agenda_;
-}
-
-function runCalDAV()
-{
- if(!isUserLogged)
- run();
-
- globalResourceRefreshNumber=0;
- globalResourceRefreshNumberTodo=0;
-
- $('#MainLoader').css('left','0px');
- $('#MainLoader').fadeIn(200);
-
- if(typeof globalSubscribedCalendars!='undefined' && globalSubscribedCalendars!=null)
- {
- globalAccountSettings[globalAccountSettings.length]=$.extend({},globalAccountSettings[0]);
- globalAccountSettings[globalAccountSettings.length-1].hrefLabel = globalSubscribedCalendars.hrefLabel;
- globalAccountSettings[globalAccountSettings.length-1].calendars = globalSubscribedCalendars.calendars;
- globalAccountSettings[globalAccountSettings.length-1].ignoreAlarms = '';
- }
-}
-
-function globalMainCalDAV()
-{
- $(window).resize(function(evt){
- if(evt.target!=window)
- return;
-
- if(typeof globalCalDAVInitLoad!='undefined' && !globalCalDAVInitLoad && !globalResourceRefreshNumber && $('#main').width()!=globalCalWidth)
- $('#CalendarLoader').children('.loaderInfo').text(localization[globalInterfaceLanguage].resizeLoader).parent().css('display','block');
-
- $('#SystemCalDavZAP .fc-header-title').css('width', $('#main_h_placeholder').width()-$('#SystemCalDavZAP .fc-header-left').outerWidth()-$('#SystemCalDavZAP .fc-header-right').outerWidth());
- $('#ResourceCalDAVList, #ResourceCalDAVTODOList').css('bottom',(globalSettings.timezonesupport.value ? 20 : 0));
- $('#alertBox').css('left', ($(window).width()/2)-($('#alertBox').width()/2));
- $('#calendar').fullCalendar('option', 'contentHeight', $('#main').height() - 14);
- $('#todoList').fullCalendar('allowSelectEvent',false);
- $('#todoList').fullCalendar('option', 'contentHeight', $('#mainTODO').height() - 14);
- $('#todoList').fullCalendar('allowSelectEvent',true);
- $('#todoList').fullCalendar('selectEvent', null, true);
-
- if($('#CATodo').is(':visible')) {
- checkTodoFormScrollBar();
- }
-
- if(globalSettings.displayhiddenevents.value)
- {
- hideEventCalendars();
- hideTodoCalendars();
- }
- globalCalWidth = $('#main').width();
- });
-
- $('#ResourceCalDAVToggle').click(function(){
- var transSpeedResource=70;
- var isResourceVisible=$('#ResourceCalDAVList').width()>1;
- var col0=isResourceVisible? 0:218;
- var col1=isResourceVisible? 0:224;
- var col2=isResourceVisible? 0:224;
- var col3=isResourceVisible? 0:225;
-
- if(isIntegrated)
- {
- col2+=isResourceVisible? 49:50;
- col3+=50;
- }
-
- if(typeof globalCalDAVInitLoad!='undefined' && !globalCalDAVInitLoad && !globalResourceRefreshNumber)
- $('#CalendarLoader').children('.loaderInfo').text(localization[globalInterfaceLanguage].resizeLoader).parent().css('display','block');
-
- if(globalSettings.timezonesupport.value)
- $('#timezoneWrapper').animate({width: col0}, transSpeedResource);
-
- $('#resourceCalDAV_h, #ResourceCalDAVList').animate({width: col1}, transSpeedResource);
- $('#CalendarLoader').animate({left: col3}, transSpeedResource);
- $('#main_h, #searchForm, #main').animate({left: col2}, transSpeedResource).promise().done(function(){
- $('#SystemCalDavZAP .fc-header-title').width($('#main_h_placeholder').width()-$('#SystemCalDavZAP .fc-header-left').width()-$('#SystemCalDavZAP .fc-header-right').width()-20);
- $(window).resize();
- });
- });
-
- $('#ResourceCalDAVTODOToggle').click(function(){
- var transSpeedResource=70;
- var isResourceVisible=$('#ResourceCalDAVTODOList').width()>1;
- var col0=isResourceVisible? 0:218;
- var col1=isResourceVisible? 0:224;
- var col2=isResourceVisible? 0:224;
- var col3=isResourceVisible? 0:225;
-
- if(isIntegrated)
- {
- col2+=isResourceVisible? 49:50;
- col3+=50;
- }
-
- if(globalSettings.timezonesupport.value)
- $('#timezoneWrapperTODO').animate({width: col0}, transSpeedResource);
-
- $('#resourceCalDAVTODO_h, #ResourceCalDAVTODOList').animate({width: col1}, transSpeedResource);
- $('#CalendarLoaderTODO').animate({left: col3}, transSpeedResource);
- $('#main_h_TODO, #searchFormTODO').animate({left: col2}, transSpeedResource);
- $('#mainTODO').animate({left: col2}, transSpeedResource, function(){
- $('#todoList').fullCalendar('allowSelectEvent',false);
- $(window).resize();
- $('#todoList').fullCalendar('allowSelectEvent',true);
- $('#todoList').fullCalendar('selectEvent', null, true);
- });
- });
-
- $('#eventFormShowerTODO').click(function(){
- showNewEvent('TODO');
- });
-
- $('#eventFormShower').click(function(){
- showNewEvent('');
- });
-
- $('#searchInput').bind('keyup change', function(){
- if($(this).val()!='')
- $('#reserButton').css('visibility', 'visible');
- else
- $('#reserButton').css('visibility', 'hidden');
- });
-
- $('#searchInputTODO').bind('keyup change', function(){
- if($(this).val()!='')
- $('#resetButtonTODO').css('visibility', 'visible');
- else
- $('#resetButtonTODO').css('visibility', 'hidden');
- });
-
- $('#timezonePicker, #timezonePickerTODO').change(function(){
- var previousTimezone=globalSessionTimeZone;
- globalSessionTimeZone=$(this).val();
- $('#timezonePicker').val($(this).val());
- $('#timezonePickerTODO').val($(this).val());
- applyTimezone(previousTimezone);
- });
-
- /*************************** BAD HACKS SECTION ***************************/
- if($.browser.msie || $.browser.mozilla)
- {
- var newSVG=$(SVG_select_b).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-19px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug
- $('#timezoneWrapper, #timezoneWrapperTODO').find('select').after($($('<div>').append($(newSVG).clone()).html()));
- }
- // INFO LABEL ALIGN WITH UNDELYING SELECT FIX
- if($.browser.webkit && !!$.browser.safari)
- $('.infoSpan[data-type="txt_interval"]').css('padding-left', '3px');
- /*************************** END OF BAD HACKS SECTION ***************************/
-
- globalCalWidth = $('#main').width();
- origResourceCalDAVListTemplate = $('#ResourceCalDAVListTemplate').clone().wrap('<div>').parent().html();
- origResourceCalDAVTODOListTemplate = $('#ResourceCalDAVTODOListTemplate').clone().wrap('<div>').parent().html();
- origVcalendarTemplate = $('#CAEvent .saveLoader').clone().wrap('<div>').parent().html() + $('#repeatConfirmBox').clone().wrap('<div>').parent().html() + $('#event_details_template').clone().wrap('<div>').parent().html();
- origVtodoTemplate = $('#repeatConfirmBoxTODO').clone().wrap('<div>').parent().html() + $('#todo_details_template').clone().wrap('<div>').parent().html();
- origVtodoLoaderTemplate=$('#todoLoader .saveLoader').clone().wrap('<div>').parent().html();
-
- populateTimezoneKeys();
-}
-
-function setCalendarNumber(initSearch)
-{
- /*if($('.resourceCalDAV_header:visible').length>1 || (!$('.resourceCalDAV_header:visible').length && $('.resourceCalDAV_item:visible').length>1))
- $('.addRemoveAllCalDAV').show();
- if($('.resourceCalDAVTODO_header:visible').length>1 || (!$('.resourceCalDAVTODO_header:visible').length && $('.resourceCalDAVTODO_item:visible').length>1))
- $('.addRemoveAllCalDAVTODO').show();*/
- if(initSearch)
- initSearchEngine();
-
- globalCalendarNumber=0;
- globalOnlyCalendarNumber=0;
- globalTodoCalendarNumber=0;
- for(var i=0; i<globalResourceCalDAVList.collections.length;i++)
- if(globalResourceCalDAVList.collections[i].uid!=undefined && globalResourceCalDAVList.collections[i].makeLoaded)
- {
- globalCalendarNumber++;
- globalOnlyCalendarNumber++;
- }
- for(var i=0; i<globalResourceCalDAVList.TodoCollections.length;i++)
- if(globalResourceCalDAVList.TodoCollections[i].uid!=undefined && globalResourceCalDAVList.TodoCollections[i].makeLoaded)
- {
- globalCalendarNumber++;
- globalTodoCalendarNumber++;
- }
-}
-var globalAddressbookList=new AddressbookList();
-var globalResourceCardDAVList=new ResourceCardDAVList();
-var globalQs=null;
-
-var globalRefABList=null;
-var globalRefABListTable=null;
-var globalRefAbListTableHeader=null;
-var globalRefABListTableCols=null;
-var globalRefABListInnerTableCols=null;
-var globalRefAddContact=null;
-var globalRefVcardEditor=null; // editor reference stored after each editor cleanup
-
-var globalOrigCardDAVListTemplate=null; // template for clean resource list
-var globalOrigABListHeader=null; // template for clean addressbook header
-var globalOrigABListItem=null; // template for clean addressbook item
-var globalOrigVcardTemplate=null; // template for clean editor object
-
-var globalTranslCardDAVListTemplate=null; // template for translated resource list
-var globalTranslCardDAVListHeader=null; // template for translated resource header
-var globalTranslCardDAVListItem=null; // template for translated resource item
-
-var globalTranslVcardTemplate=null; // template for translated editor object
-
-var globalCardDAVInitLoad=true;
-var globalCardDAVResourceSync=false;
-var globalCardDAVCollectionSync=false;
-var isCardDAVLoaded=false;
-var isCardDAVAvaible=true;
-var globalDefaultAddressbookCollectionActiveAll=false;
-var globalDefaultAddrCollectionLoadAll=false;
-var globalAddressbookNumber=0;
-var globalAddressbookNumberCount=0;
-var globalABEditorCounter=new Object();
-var globalAddressElementOldData=new Object();
-var globalAddressbookCollectionsLoading=false;
-var globalDisableAnimationMessageHiding='';
-
-if(typeof globalContactPhotoScaleFactor==='undefined')
- var globalContactPhotoScaleFactor=1.5;
-
-if(typeof globalContactPhotoType==='undefined' || globalContactPhotoType.match(RegExp('^(?:png|jpeg)$'))===null)
- var globalContactPhotoType='jpeg';
-
-var globalFixedContactDataColumnsCount = 1;
-var globalContactDataColumnDefs = {
- 'CATEGORIES': {
- 'property': 'cats',
- 'minWidth': 90
- },
- 'COMPANY': {
- 'property': 'company',
- 'minWidth': 135
- },
- 'DEPARTMENT': {
- 'property': 'department',
- 'minWidth': 90
- },
- 'LASTNAME': {
- 'property': 'lastname',
- 'minWidth': 90
- },
- 'FIRSTNAME': {
- 'property': 'firstname',
- 'minWidth': 45
- },
- 'MIDDLENAME': {
- 'property': 'middlename',
- 'minWidth': 45
- },
- 'PREFIX': {
- 'property': 'prefix',
- 'minWidth': 27
- },
- 'SUFFIX': {
- 'property': 'sufix',
- 'minWidth': 27
- },
- 'NICKNAME': {
- 'property': 'nickname',
- 'minWidth': 45
- },
- 'PHONETICLASTNAME': {
- 'property': 'phoneticLastName',
- 'minWidth': 90
- },
- 'PHONETICFIRSTNAME': {
- 'property': 'phoneticFirstName',
- 'minWidth': 45
- },
- 'BIRTHDAY': {
- 'property': 'birthday',
- 'minWidth': 90
- },
- 'JOBTITLE': {
- 'property': 'title',
- 'minWidth': 90
- },
- 'NOTETEXT': {
- 'property': 'note',
- 'minWidth': 180
- },
- 'ADDRESS': {
- 'property': 'address',
- 'filterProperities': {
- 'TYPE': 'type'
- },
- 'minWidth': 180
- },
- 'PHONE': {
- 'property': 'phone',
- 'filterProperities': {
- 'TYPE': 'type'
- },
- 'minWidth': 90
- },
- 'EMAIL': {
- 'property': 'email',
- 'filterProperities': {
- 'TYPE': 'type'
- },
- 'minWidth': 135
- },
- 'URL': {
- 'property': 'url',
- 'filterProperities': {
- 'TYPE': 'type'
- },
- 'minWidth': 135
- },
- 'DATES': {
- 'property': 'date',
- 'filterProperities': {
- 'TYPE': 'type'
- },
- 'minWidth': 90
- },
- 'RELATED': {
- 'property': 'related',
- 'filterProperities': {
- 'TYPE': 'type'
- },
- 'minWidth': 45
- },
- 'PROFILE': {
- 'property': 'social',
- 'filterProperities': {
- 'TYPE': 'type'
- },
- 'minWidth': 90
- },
- 'IM': {
- 'property': 'impp',
- 'filterProperities': {
- 'TYPE': 'type',
- 'SERVICE-TYPE': 'serviceType'
- },
- 'minWidth': 90
- }
-};
-
-globalContactDataColumnLabelVars = {
- 'Name': 'txtName',
-
- 'FirstName': 'pholderGiven',
- 'LastName': 'pholderFamily',
- 'MiddleName': 'pholderMiddle',
- 'NickName': 'pholderNickname',
- 'Prefix': 'pholderPrefix',
- 'Suffix': 'pholderSuffix',
- 'BirthDay': 'pholderBday',
- 'PhoneticLastName': 'pholderPhFamily',
- 'PhoneticFirstName': 'pholderPhGiven',
- 'JobTitle': 'pholderTitle',
- 'Company': 'pholderOrg',
- 'Department': 'pholderDepartment',
- 'Categories': 'txtCategories',
- 'NoteText': 'pholderNoteVal',
-
- 'Address': 'txtAddress',
- 'AddressWork': 'txtAddressWork',
- 'AddressHome': 'txtAddressHome',
- 'AddressOther': 'txtAddressOther',
-
- 'Phone': 'txtPhone',
- 'PhoneWork': 'txtPhoneWork',
- 'PhoneHome': 'txtPhoneHome',
- 'PhoneCell': 'txtPhoneCell',
- 'PhoneMain': 'txtPhoneMain',
- 'PhonePager': 'txtPhonePager',
- 'PhoneFax': 'txtPhoneFax',
- 'PhoneIphone': 'txtPhoneIphone',
- 'PhoneOther': 'txtPhoneOther',
-
- 'Email': 'txtEmail',
- 'EmailWork': 'txtEmailWork',
- 'EmailHome': 'txtEmailHome',
- 'EmailMobileme': 'txtEmailMobileme',
- 'EmailOther': 'txtEmailOther',
-
- 'URL': 'txtUrl',
- 'URLWork': 'txtUrlWork',
- 'URLHome': 'txtUrlHome',
- 'URLHomepage': 'txtUrlHomepage',
- 'URLOther': 'txtUrlOther',
-
- 'Dates': 'txtDates',
- 'DatesAnniversary': 'txtDatesAnniversary',
- 'DatesOther': 'txtDatesOther',
-
- 'Related': 'txtRelated',
- 'RelatedManager': 'txtRelatedManager',
- 'RelatedAssistant': 'txtRelatedAssistant',
- 'RelatedFather': 'txtRelatedFather',
- 'RelatedMother': 'txtRelatedMother',
- 'RelatedParent': 'txtRelatedParent',
- 'RelatedBrother': 'txtRelatedBrother',
- 'RelatedSister': 'txtRelatedSister',
- 'RelatedChild': 'txtRelatedChild',
- 'RelatedFriend': 'txtRelatedFriend',
- 'RelatedSpouse': 'txtRelatedSpouse',
- 'RelatedPartner': 'txtRelatedPartner',
- 'RelatedOther': 'txtRelatedOther',
-
- 'Profile': 'txtProfile',
- 'ProfileTwitter': 'txtProfileTwitter',
- 'ProfileFacebook': 'txtProfileFacebook',
- 'ProfileFlickr': 'txtProfileFlickr',
- 'ProfileLinkedin': 'txtProfileLinkedin',
- 'ProfileMyspace': 'txtProfileMyspace',
- 'ProfileSinaweibo': 'txtProfileSinaweibo',
-
- 'IM': 'txtIm',
- 'IMWork': 'txtImWork',
- 'IMHome': 'txtImHome',
- 'IMMobileme': 'txtImMobileme',
- 'IMOther': 'txtImOther',
- 'IMAim': 'txtImProtAim',
- 'IMIcq': 'txtImProtIcq',
- 'IMIrc': 'txtImProtIrc',
- 'IMJabber': 'txtImProtJabber',
- 'IMMsn': 'txtImProtMsn',
- 'IMYahoo': 'txtImProtYahoo',
- 'IMFacebook': 'txtImProtFacebook',
- 'IMGadugadu': 'txtImProtGadugadu',
- 'IMGoogletalk': 'txtImProtGoogletalk',
- 'IMQq': 'txtImProtQq',
- 'IMSkype': 'txtImProtSkype'
-};
-
-
-// called only once (after tha page is loaded)
-function globalMainCardDAV()
-{
- $(window).resize(function(evt){
- if(evt.target!=window)
- return;
-
- var columnLengths = [];
- for(var i=0; i<getDataColumnCount(); i++) {
- columnLengths.push([]);
- }
-
- globalRefABListTable.children('.ablist_item:visible').each(function() {
- $(this).children().slice(globalFixedContactDataColumnsCount).each(function(ind) {
- columnLengths[ind].push($(this).text().length);
- });
- });
-
- setDataColumnsWidth(columnLengths);
-
- $('.ablist_table_wrapper').css('max-height', $('#ABList').innerHeight() - $('.ablist_table_header').outerHeight() - 1);
- checkContactFormScrollBar();
- });
-
- // set the initial height to get vertical scrollbars working (used also in $(window).resize(...))
- $('.ablist_table_wrapper').css('max-height', $('#ABList').innerHeight() - $('.ablist_table_header').outerHeight() - 1);
-
- // toggle CardDAV resources
- $('#ResourceCardDAVToggle').click(function(){
- var transSpeedResource=70;
- var isResourceVisible=$('#ResourceCardDAVList').width()>1;
- var col1=isResourceVisible? 0:224;
- var col2=isResourceVisible? 0:225;
-
- if(isIntegrated)
- {
- col2+=50;
- }
-
- $('.resourcesCardDAV_d, #ResourceCardDAVList, #ResourceCardDAVListOverlay').animate({width: col1}, transSpeedResource);
- $('.collection_d, #SearchBox, #ABList, #ABListOverlay, #AddressbookOverlay').animate({left: col2}, transSpeedResource);
- });
-
- globalRefABList=$('#ABList');
- globalRefABListTable=$('#ABListTableInner').find('tbody');
- globalRefAddContact=$('#AddContact');
-
- // these are restored after each logout
- globalOrigCardDAVListTemplate=$('#ResourceCardDAVListTemplate').clone();
-
- // clone + cleanup the editor (autocomplete bug in some browsers) + store the reference in globalOrigVcardTemplate
- var tmp=$('#vCardTemplate').clone();
- tmp.find('input[type="text"]').val('');
- tmp.find('[data-type="isorg"]').prop('checked', false);
- tmp.find('textarea').val('');
- globalOrigVcardTemplate=tmp;
-}
-
-// called after the page is loaded and after each logout
-function mainCardDAV()
-{
- globalCardDAVInitLoad=true;
-
- // localize templates
- // + store translated templates (globalTranl*)
- // + initialize placeholder plugin
- localizeCardDAV();
-
- // cleanup the search field
- $('[data-type="search"]').val('');
-
- // Switch back to global Init (check for supported browser, demo login & password autofill
- // then performs loadConfig() /netCheckAndCreateConfiguration() or netLoadConfiguration() or loadAllResources()/
- // init();
-}
-
-// POZOR! login vola priamo loadConfig() ... nie je tym nahodou predxadzajuca funkcia zbytocna? ... overit!
-
-// called from loadConfig() and netCheckAndCreateConfiguration() and netLoadConfiguration() and DAVresourceDelegation()
-function runCardDAV()
-{
- if(!isUserLogged)
- run();
-
-// $('#SystemCardDavMATE').animate({opacity : 1},200,function(){
-// /* XXX - System display:none changes
-// $('#SystemCardDavMATE').css('display','block'); */
-// $('#SystemCardDavMATE').css('visibility','visible');
-// });
-
- $('#MainLoader').css('left','0px');
- $('#MainLoader').fadeIn(200);
- initSearchCardDav();
-}
-
-function logoutCardDAV()
-{
- globalAddressbookList.reset();
- globalResourceCardDAVList.reset();
- globalAddressbookNumber=0;
- globalAddressbookNumberCount=0;
- globalCardDAVCollectionSync=false;
- globalDefaultAddressbookCollectionActiveAll=false;
- globalDefaultAddrCollectionLoadAll=false;
- globalDisableAnimationMessageHiding='';
-
- // reset ABList
- globalRefABListTable.empty();
-
- // remove ABList table gutter
- $('.ablist_table_gutter').remove();
-
- // clear old ABList table column widths
- globalRefABListTableCols.width('');
- globalRefABListInnerTableCols.width('');
-
- // reset ABList table layout
- globalRefAbListTableHeader.children().slice(globalFixedContactDataColumnsCount).remove();
- globalRefABListTableCols.slice(globalFixedContactDataColumnsCount).remove();
- globalRefABListInnerTableCols.slice(globalFixedContactDataColumnsCount).remove();
- globalRefAbListTableHeader=null;
- globalRefABListTableCols=null;
- globalRefABListInnerTableCols=null;
-
- // hide update notification
- $('#SystemCardDavMATE').find('div.update_d').hide();
-
- // if the editor is in "edit" state during the logout,
- // we need to remove all overlays (for next login)
- $('#ResourceCardDAVListOverlay, #ABListOverlay').fadeOut(2000);
- $('#SystemCardDavMATE').animate({opacity : 0},200,function(){
- /* XXX - System display:none changes
- $('#SystemCardDavMATE').css('display','none');*/
- $('#SystemCardDavMATE').css('visibility', 'hidden');
- $('#ABContactColor').css('background-color', '');
- if($('#ResourceCardDAVList').width()<1)
- $('#ResourceCardDAVToggle').trigger('click');
- });
-}
-
-function setAddressbookNumber()
-{
- for(var i=0; i<globalResourceCardDAVList.collections.length;i++)
- if(globalResourceCardDAVList.collections[i].uid!=undefined && globalResourceCardDAVList.collections[i].makeLoaded)
- globalAddressbookNumber++;
-}
bgstack15