/* ***** BEGIN LICENSE BLOCK *****
 * Version: GPL 3.0
 *
 * The contents of this file are subject to the General Public License
 * 3.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.gnu.org/licenses/gpl.html
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * Author: Michel Verbraak (info@1st-setup.nl)
 * Website: http://www.1st-setup.nl/
 * email: info@1st-setup.nl
 *
 * This interface can be used to for updates
 *
 * ***** BEGIN LICENSE BLOCK *****/

#include "calICalendar.idl"

[scriptable, uuid(720a458e-b6cd-4883-8a4d-5be27ec454d8)]
interface mivExchangeCalendar : calICalendar
{
	attribute AUTF8String user;
	attribute AUTF8String domain;
	readonly attribute AUTF8String mailbox;
	readonly attribute AUTF8String serverUrl;
	readonly attribute AUTF8String userDisplayName;
	readonly attribute AUTF8String folderBase;
	readonly attribute AUTF8String folderPath;
	attribute AUTF8String folderID;
	attribute AUTF8String changeKey;
	readonly attribute AUTF8String folderIDOfShare;
	readonly attribute boolean isPublicFolder;
	readonly attribute boolean doPollInbox;

	readonly attribute long pollInboxInterval;
	readonly attribute boolean doAutoRespondMeeting;
	readonly attribute AUTF8String autoResponseAnswer;
	readonly attribute boolean doAutoRemoveInvitationCancelation1;
	readonly attribute boolean doAutoRemoveInvitationCancelation2;
	readonly attribute boolean doAutoRemoveInvitationResponse1;
	readonly attribute boolean sendAutoRespondMeetingRequestMessage;
	readonly attribute AUTF8String autoRespondMeetingRequestMessage;
	readonly attribute long cacheStartupBefore;
	readonly attribute long cacheStartupAfter;

	void resetCalendar();

	readonly attribute boolean isVersion2013;
	readonly attribute boolean isVersion2010;
	readonly attribute boolean isVersion2007;

	//attribute boolean weAreSyncing;
	attribute boolean useOfflineCache;
	attribute boolean isOffline;

	readonly attribute calIDateTime offlineStartDate;
	readonly attribute calIDateTime offlineEndDate;
	readonly attribute unsigned long long offlineEventItemCount;
	readonly attribute unsigned long long offlineToDoItemCount;

	readonly attribute AUTF8String connectionStateDescription;

	readonly attribute jsval notifyObservers;

	readonly attribute boolean canCreateContent;
	readonly attribute boolean canDelete;
	readonly attribute boolean canRead;
	readonly attribute boolean canModify;
};
