
#import <Cocoa/Cocoa.h>


@interface Syncing : NSObject {
	
	IBOutlet NSPanel *progressSheet;
	IBOutlet NSTextField *progressLabel;
	IBOutlet NSProgressIndicator *progressBar;
	
}

- (id)init;
+ (Syncing *)sharedController;

#pragma mark -
#pragma mark Internet Syncing
- (void)uploadData;
- (void)uploadDataAsynchronously;
- (void)downloadData;

#pragma mark -
#pragma mark Progress Sheet
- (void)showProgressSheetWithTitle:(NSString *)title;
- (IBAction)hideProgressSheet:(id)sender;
- (void)showErrorDialog:(NSString *)errorMessage;

#pragma mark -
#pragma mark Compression
- (void)compressData;
- (void)uncompressData;

#pragma mark -
#pragma mark Backups
- (void)backup;

#pragma mark -
#pragma mark Online Commands
- (void)onlineUpload;
- (void)onlineDownload;
- (BOOL)checkForValidOnlineUser;
- (BOOL)checkForValidOnlineUsername:(NSString *)username
						   password:(NSString *)password;

#pragma mark -
#pragma mark FTP Commands
- (void)ftpUpload;
- (void)ftpDownload;

#pragma mark -
#pragma mark Run Command
- (NSString *)runCommand:(NSString *)command
		   withArguments:(NSArray *)args;

@end
