//
//  BIApplicationDefines.h
//  BIViews
//
//  Created by Eric Hochmeister on 03/01/05.
//  Copyright 2005 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>

extern NSString* BISourceListSelectionChangedNotification;

extern NSString* BIMainWindowDisplayedNotification;
extern NSString* BIProjectDetailsSelectedTabChangedNotification;
extern NSString* BIClientSortMethodChangedNotification;
//extern NSString* BIProjectAddedNotification;
extern NSString* BIProjectDeletedNotification;
extern NSString* BIProjectsClientChangedNotification;
extern NSString* BISelectedProjectChangedNotification;
extern NSString* BITimeSlipConvertedToRealNotification;
extern NSString* BIInvoiceCreatedNotification;
extern NSString* BITimerSelectionDidChangeNotification;
extern NSString* BITimerAddSelectionDidChangeNotification;
extern NSString* BITimerAddMultiSelectionDidChangeNotification;
extern NSString* BITimeSlipAddedNotification;
extern NSString* BITimeSlipsAddedNotification;
extern NSString* BITimeSlipsDeletedNotification;
extern NSString* BIEstimateSlipsDeletedNotification;
extern NSString* BIUnlinkedTimeSlipsDeletedNotification;
extern NSString* BIEstimateSlipAddedNotification;
extern NSString* BIAddNotLinkedTimerNotification;

extern NSString* BITimeSlipAddedForEstimateNotification;
extern NSString* BITimeSlipAddedFromDeletedInvoiceNotification;

extern NSString* BIClientAddedNotification;
extern NSString* BIClientChangedNotification;
extern NSString* BIClientDeletedNotification;

extern NSString* BIEstimateCreatedNotification;
extern NSString* BIEstimateDeletedNotification;
extern NSString* BIPaymentAddedNotification;
extern NSString* BIPaymentChangedNotification;
extern NSString* BIPaymentDeletedNotification;
extern NSString* BIInvoiceDeletedNotification;
extern NSString* BIStatementCreatedNotification;
extern NSString* BIStatementDeletedNotification;
extern NSString* BIRetainerAddedNotification;
extern NSString* BIRetainerChangedNotification;
extern NSString* BIRetainerDeletedNotification;
extern NSString* BIProFormaInvoiceCreatedNotification;
extern NSString* BIProFormaInvoiceDeletedNotification;

extern NSString* BIRecurringInvoiceAddedNotification;
extern NSString* BIRecurringInvoiceChangedNotification;
extern NSString* BIRecurringInvoiceDeletedNotification;

extern NSString* BIGoToTimerSlipNotification;

extern NSString* BIPunchOutSlipNotification;
extern NSString* BIReLinkedSlipToProjectNotification;

extern NSString* BIShouldFloatTimerWindowNotification;

extern NSString* BISlipTemplateAddedNotification;
extern NSString* BISlipTemplateDeletedNotification;
extern NSString* BISlipTemplateChangedNotification;

extern NSString* BICategoryAddedNotification;
extern NSString* BICategoryDeletedNotification;

extern NSString* BIClientCategoryAddedNotification;
extern NSString* BIClientCategoryDeletedNotification;

extern NSString* BINextEstimateNumberChangedNotification;
extern NSString* BINextInvoiceNumberChangedNotification;
extern NSString* BINextStatementNumberChangedNotification;

extern NSString* BICurrentTimerSlipChangedNotification;
extern NSString* BICurrentMenuTimerSlipChangedNotification;

extern NSString* BIDisplayClientGeoAddressNotification;
extern NSString* BISelectedAccountItemChangedNotification;

extern NSString* BIInvoiceSlipsRestoredNotification;

extern NSString* BIReportsLoadedNotification;
extern NSString* BIAllSlipsResultsChangedNotification;

extern NSString* BIClientSideBarSplitViewStateChangedNotification;

extern NSString *BISyncStatusChangedNotification;
extern NSString* BISyncCompletedNotification;
extern NSString* BISyncStartedNotification;
extern NSString* BIPairCompletedUnsuccessfullyNotification;
extern NSString* BIPairCompletedSuccessfullyNotification;
extern NSString* BIPairCompletedNotification;

extern NSString *BISharedDocumentWillCloseNotification;
extern NSString *BISharedDocumentDidOpenNotification;

extern NSString* BICurrencyAddedNotification;
extern NSString* BICurrencyDeletedNotification;


extern NSString* BillingsPrimeWindowToolbarIdentifier;
extern NSString* BILinkFileToolbarItemIdentifier;
extern NSString* BIAddNoteToolbarItemIdentifier;
extern NSString* BIShowTimerToolbarItemIdentifier;
extern NSString* BILinkWebURLToolbarItemIdentifier;
extern NSString* BINewProjectToolbarItemIdentifier;
extern NSString* BISearchFieldItemIdentifier;
extern NSString* BIDayliteUpdateToolbarItemIdentifier;
extern NSString* BIStartTimerToolbarItemIdentifier;
extern NSString* BITouchSyncToolbarItemIdentifier;

extern NSString* BIPrimeWindowModeToolbarItemIdentifier;

extern NSString *BIAddressBookDidChangeNotification;

/* PASTEBOARD TYPES -- BEGIN */
extern NSString* BIClientPBType;
extern NSString* BIProjectPBType;
extern NSString* BISlipPBType;
extern NSString* BIEstimateSlipPBType;
extern NSString* BIConsolidatedTaxPBType;
extern NSString* BITaxPBType;
/* PASTEBOARD TYPES -- END */

#ifdef BILLINGS_PRO
extern NSString* BPSyncCompletedNoChangesNotification;
extern NSString* BPSyncCompletedNotification;
extern NSString* BPSyncFailedNotification;
extern NSString* BPLastOfflineSyncDateIdentifier;
extern NSString* BPCredentialVerificationPassedNotification;
#endif

/* SOURCE LIST ITEMS */
#define kGeneralGroupIdentifier 			@"GENERAL"
#define kOtherClientsIdentifier				@"OTHER_CLIENTS"
#define kAllClientsIdentifier				@"ALL_CLIENTS"
#define kMeIdentifier						@"ME_ABPERSON"
#define kRecurringIdentifier				@"RECURRING"
#define kAllSlipsIdentifier					@"ALL_SLIPS"
#define kUnfiledSlipsIdentifier				@"UNFILED_SLIPS"
#define kReportsIdentifier					@"REPORTS"
#define kUnapprovedSlipsIdentifier			@"UNAPPROVED_SLIPS"


/* KEYED SEARCH RESULTS */
extern NSString *BIClientsSearchResults;
extern NSString *BIActiveProjectsSearchResults;
extern NSString *BIEstimateProjectsSearchResults;
extern NSString *BIInactiveProjectsSearchResults;
extern NSString *BIWorkingSlipsSearchResults;
extern NSString *BIEstimateSlipsSearchResults;
extern NSString *BIInvoicedSlipsSearchResults;
extern NSString *BIInvoicesSearchResults;
extern NSString *BIEstimatesSearchResults;
extern NSString *BIPaymentsSearchResults;
extern NSString *BIRetainersSearchResults;
extern NSString *BIStatementsSearchResults;
extern NSString *BINotesSearchResults;
extern NSString *BIFilesSearchResults;
extern NSString *BIRecurringInvoiceResults;


extern int NO_TABLEVIEW_ROWS_IN_EDIT_MODE;


extern const int NEW_WORKING_SLIP_MENU_ITEM;
extern const int NEW_ESTIMATE_SLIP_MENU_ITEM;

// MAIN WINDOW SPLIT VIEW CONSTRAINTS
#define BIABClientListMinimumWidth 152.0f
#define BIABClientListMaximumWidth 242.0f

#define BIProjectListMinimumHeight 149.0f
#define BIProjectListMinimumWidth  648.0f

//#define BIClientProjectsMinimumHeight 180.0f
#define BIProjectDetailMinimumHeight 374.0f

// TIMER WINDOW SIZING CONSTRAINTS
#define BITimerWindowMinimumTableviewHeight 32.0f
#define BITimerWindowMaximumTableviewHeight 540.0f

extern NSString *kBPClientInfoLastNonCollapsedHeightStateKey;

// SLIP CARD DEFINES
#define BINOTEMPLATES_MENUITEM_TAG  -1 
#define BICREATE_TEMPLATE_MENUITEM_TAG -2

// PRIME WINDOW MODES
#define BIPROJECTS_VIEWMODE		0
#define BIACCOUNT_VIEWMODE		1

//AUTO Backup Periods
#define BIAutoBackupAlways		0
#define BIAutoBackupDaily		1
#define BIAutoBackupWeekly		2

// Convenience for quasy bulk invoicing/estimating while in all clients view
#define BIRegularProjectsMode	0
#define BIAllClientsMode		1

extern NSNumber* BIESTIMATE_TABVIEW_INDEX;
extern NSNumber* BISLIPS_TABVIEW_INDEX;

/* Cached Values */
extern NSString *kBPDidClearCacheValuesDefaultsKey;

@interface BIApplicationDefines : NSObject {
}

@end
