Index: /unk/main.m
===================================================================
--- /trunk/main.m (revision 2)
+++  (revision )
@@ -1,13 +1,0 @@
-//
-//  main.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 5/7/06.
-//  Copyright __MyCompanyName__ 2006. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-int main(int argc, char *argv[]) {
-    return NSApplicationMain(argc,  (const char **) argv);
-}
Index: /unk/Doxyfile
===================================================================
--- /trunk/Doxyfile (revision 22)
+++  (revision )
@@ -1,237 +1,0 @@
-# Doxyfile 1.4.6
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = Fence
-PROJECT_NUMBER         = 0.8
-OUTPUT_DIRECTORY       = /Users/ngerakines/dev/6a/code/Fence/trunk/docs
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-ALWAYS_DETAILED_SEC    = YES
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = /Applications/
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-SEPARATE_MEMBER_PAGES  = NO
-TAB_SIZE               = 8
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = NO
-OPTIMIZE_OUTPUT_JAVA   = NO
-BUILTIN_STL_SUPPORT    = NO
-DISTRIBUTE_GROUP_DOC   = NO
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-EXTRACT_LOCAL_METHODS  = YES
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = NO
-CASE_SENSE_NAMES       = NO
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = NO
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = NO
-SORT_BRIEF_DOCS        = NO
-SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 30
-SHOW_USED_FILES        = YES
-SHOW_DIRECTORIES       = NO
-FILE_VERSION_FILTER    = 
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = YES
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_NO_PARAMDOC       = NO
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = /Users/ngerakines/dev/6a/code/Fence/trunk
-FILE_PATTERNS          = *.h \
-                         *.hh \
-                         *.m \
-                         *.mm \
-                         *.dox
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = *
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = YES
-INLINE_SOURCES         = YES
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION    = YES
-USE_HTAGS              = NO
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = YES
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = NO
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = YES
-HAVE_DOT               = NO
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-GROUP_GRAPHS           = YES
-UML_LOOK               = NO
-TEMPLATE_RELATIONS     = NO
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-CALL_GRAPH             = NO
-GRAPHICAL_HIERARCHY    = YES
-DIRECTORY_GRAPH        = YES
-DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
-MAX_DOT_GRAPH_DEPTH    = 1000
-DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
Index: /unk/TypePadWeblog.h
===================================================================
--- /trunk/TypePadWeblog.h (revision 41)
+++  (revision )
@@ -1,55 +1,0 @@
-//
-//  TypePadWeblog.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 5/15/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "AtomApi.h"
-
-@interface TypePadWeblog : NSObject {
-	NSString *_WeblogTitle;
-	NSString *_WeblogID;
-	NSString *_WeblogURL;
-	NSMutableDictionary *_categories;
-	NSMutableArray *comments;
-	NSString *authuser;
-	NSString *authpass;
-	BOOL requiresAuth;
-}
-
-- (NSString *) weblogTitle;
-- (void) setWeblogTitle: (NSString *) WeblogTitle;
-
-- (NSString *) weblogID;
-- (void) setWeblogID: (NSString *) WeblogID;
-
-- (NSString *) weblogURL;
-- (void) setWeblogURL: (NSString *) WeblogURL;
-
-- (NSMutableDictionary *) categories;
-- (void) setCategories: (NSMutableDictionary *) Categories;
-
-- (NSMutableArray *) comments;
-- (void) setComments: (NSMutableArray *) Comments;
-
-- (NSString *) authuser;
-- (void) setAuthuser: (NSString *) Authuser;
-
-- (NSString *) authpass;
-- (void) setAuthpass: (NSString *) Authpass;
-
-- (BOOL) requiresAuth;
-- (void) setRequiresAuth: (BOOL) flag;
-
-- (void) setAuth: (NSString *) user pass:(NSString *) pass;
-
-- (void) discoverCategories;
-- (NSString *) parse_catid: (NSString *) tmpstr;
-
-- (void) getComments;
-- (NSString *) parse_commentid: (NSString *) tmpstr;
-
-@end
Index: /unk/CommentTable.h
===================================================================
--- /trunk/CommentTable.h (revision 41)
+++  (revision )
@@ -1,9 +1,0 @@
-/* CommentTable */
-
-#import <Cocoa/Cocoa.h>
-
-@interface CommentTable : NSTableView {
-	// ..
-}
-
-@end
Index: /unk/TypePadWeblog.m
===================================================================
--- /trunk/TypePadWeblog.m (revision 41)
+++  (revision )
@@ -1,230 +1,0 @@
-//
-//  TypePadWeblog.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 5/15/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TypePadWeblog.h"
-#import "TypePadAtomApi.h"
-#import "TypePadWeblogComment.h"
-
-@implementation TypePadWeblog
-
-- (id) init {
-    if (self = [super init]) {
-		_categories = [[NSMutableDictionary alloc] init];
-		[self setComments:[[NSMutableArray alloc] init]];
-		_WeblogTitle = [[NSString alloc] init];
-		_WeblogID = [[NSString alloc] init];
-		_WeblogURL = [[NSString alloc] init];
-		[self retain];
-    }
-    return self;
-}
-
-/* dealloc */
-- (void) dealloc {
-    [_WeblogTitle release];
-    [_WeblogID release];
-    [_WeblogURL release];
-    [_categories release];
-    [comments release];
-    [authuser release];
-    [authpass release];
-	
-    _WeblogTitle = nil;
-    _WeblogID = nil;
-    _WeblogURL = nil;
-    _categories = nil;
-    comments = nil;
-    authuser = nil;
-    authpass = nil;
-    [super dealloc];
-}
-
-- (void) encodeWithCoder: (NSCoder *)coder {
-    [coder encodeObject: [self weblogTitle] forKey: @"WeblogWeblogTitle"];
-    [coder encodeObject: [self weblogID] forKey: @"WeblogWeblogID"];
-    [coder encodeObject: [self weblogURL] forKey: @"WeblogWeblogURL"];
-    [coder encodeObject: [self categories] forKey: @"WeblogCategories"];
-    [coder encodeObject: [self comments] forKey: @"WeblogComments"];
-    [coder encodeObject: [self authuser] forKey: @"WeblogAuthuser"];
-    [coder encodeObject: [self authpass] forKey: @"WeblogAuthpass"];
-    [coder encodeBool: [self requiresAuth] forKey: @"WeblogRequiresAuth"];
-}
-
-- (id) initWithCoder: (NSCoder *)coder {
-	[self setWeblogTitle: [coder decodeObjectForKey: @"WeblogWeblogTitle"]];
-	[self setWeblogID: [coder decodeObjectForKey: @"WeblogWeblogID"]];
-	[self setWeblogURL: [coder decodeObjectForKey: @"WeblogWeblogURL"]];
-	[self setCategories: [coder decodeObjectForKey: @"WeblogCategories"]];
-	[self setComments: [coder decodeObjectForKey: @"WeblogComments"]];
-	[self setAuthuser: [coder decodeObjectForKey: @"WeblogAuthuser"]];
-	[self setAuthpass: [coder decodeObjectForKey: @"WeblogAuthpass"]];
-	[self setRequiresAuth: [coder decodeBoolForKey: @"WeblogRequiresAuth"]];
-    return self;
-}
-
-/* weblogTitle */
-- (NSString *) weblogTitle { return _WeblogTitle; }
-
-	/* -setWeblogTitle: */
-- (void) setWeblogTitle: (NSString *) WeblogTitle {
-    //NSLog(@"in -setWeblogTitle:, old value of _WeblogTitle: %@, changed to: %@", _WeblogTitle, WeblogTitle);
-	
-    if (_WeblogTitle != WeblogTitle) {
-        [_WeblogTitle autorelease];
-        _WeblogTitle = [WeblogTitle retain];
-    }
-}
-
-/* weblogID */
-- (NSString *) weblogID { return _WeblogID; }
-
-	/* -setWeblogID: */
-- (void) setWeblogID: (NSString *) WeblogID {
-    //NSLog(@"in -setWeblogID:, old value of _WeblogID: %@, changed to: %@", _WeblogID, WeblogID);
-	
-    if (_WeblogID != WeblogID) {
-        [_WeblogID autorelease];
-        _WeblogID = [WeblogID retain];
-    }
-}
-
-/* weblogURL */
-- (NSString *) weblogURL { return _WeblogURL; }
-
-	/* -setWeblogURL: */
-- (void) setWeblogURL: (NSString *) WeblogURL {
-    //NSLog(@"in -setWeblogURL:, old value of _WeblogURL: %@, changed to: %@", _WeblogURL, WeblogURL);
-    if (_WeblogURL != WeblogURL) {
-        [_WeblogURL autorelease];
-        _WeblogURL = [WeblogURL retain];
-    }
-}
-
-/* categories */
-- (NSMutableDictionary *) categories { return _categories; }
-
-	/* -setCategories: */
-- (void) setCategories: (NSMutableDictionary *) Categories {
-    //NSLog(@"in -setCategories:, old value of _categories: %@, changed to: %@", _categories, Categories);
-    if (_categories != Categories) {
-        [_categories autorelease];
-        _categories = [Categories retain];
-    }
-}
-
-/* comments */
-- (NSMutableArray *) comments { return comments; }
-
-/* -setComments: */
-- (void) setComments: (NSMutableArray *) Comments {
-    //NSLog(@"in -setComments:, old value of comments: %@, changed to: %@", comments, Comments);
-    if (comments != Comments) {
-        [comments autorelease];
-        comments = [Comments retain];
-    }
-}
-
-
-/* authuser */
-- (NSString *) authuser { return authuser; }
-
-	/* -setAuthuser: */
-- (void) setAuthuser: (NSString *) Authuser {
-	//NSLog(@"in -setAuthuser:, old value of authuser: %@, changed to: %@", authuser, Authuser);
-	[self setRequiresAuth:YES];
-    if (authuser != Authuser) {
-        [authuser autorelease];
-        authuser = [Authuser retain];
-    }
-}
-
-/* authpass */
-- (NSString *) authpass { return authpass; }
-
-	/* -setAuthpass: */
-- (void) setAuthpass: (NSString *) Authpass {
-	[self setRequiresAuth:YES];
-    //NSLog(@"in -setAuthpass:, old value of authpass: %@, changed to: %@", authpass, Authpass);
-    if (authpass != Authpass) {
-        [authpass autorelease];
-        authpass = [Authpass retain];
-    }
-}
-
-- (void) setAuth: (NSString *) user pass:(NSString *) pass {
-	[self setAuthuser:user];
-	[self setAuthpass:pass];
-	[self setRequiresAuth:YES];
-}
-
-/* requiresAuth */
-- (BOOL) requiresAuth { return requiresAuth; }
-
-	/* -setRequiresAuth: */
-- (void) setRequiresAuth: (BOOL) flag {
-    //NSLog(@"in -setRequiresAuth, old value of requiresAuth: %@, changed to: %@", (requiresAuth ? @"YES": @"NO"), (flag ? @"YES": @"NO") );
-    requiresAuth = flag;
-}
-
-///
-- (void) discoverCategories {
-	TypePadAtomAPI *client = [[[TypePadAtomAPI alloc] init] autorelease];
-	[client setAuth:[self authuser] pass:[self authpass]];
-	[client setDataarg:@""];
-	[client newpost:@"4" args:[NSDictionary dictionaryWithObjectsAndKeys: [self weblogID], @"blog_id", nil]];
-	NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithXMLString:[client resdata] options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:nil];
-	NSArray *nodes = [xmlDoc nodesForXPath:@"/feed/entry" error:nil];
-	int arrayCount = [nodes count];
-	int i = 0;
-	for (i = 0; i < arrayCount; i++) {
-		NSXMLElement *token = [nodes objectAtIndex:i];
-		[_categories setObject: [self parse_catid:[[[token nodesForXPath:@"id" error:nil] objectAtIndex:0] stringValue]] forKey:[[[token nodesForXPath:@"title" error:nil] objectAtIndex:0] stringValue]];
-	}
-}
-
-- (void) getComments {
-	TypePadAtomAPI *client = [[[TypePadAtomAPI alloc] init] autorelease];
-	[client setDataarg:@""];
-	[client setAuth:[self authuser] pass:[self authpass]];
-	[client newpost:@"6" args:[NSDictionary dictionaryWithObjectsAndKeys: [self weblogID], @"blog_id", nil]];
-	NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithXMLString:[client resdata] options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:nil];
-	NSArray *nodes = [xmlDoc nodesForXPath:@"/feed/entry" error:nil];
-	int arrayCount = [nodes count];
-	int i = 0;
-	for (i = 0; i < arrayCount; i++) {
-		NSXMLElement *token = [nodes objectAtIndex:i];
-		TypePadWeblogComment *tpobj = [[TypePadWeblogComment alloc] init];
-		[tpobj setCommentid:[self parse_commentid:[[[token nodesForXPath:@"id" error:nil] objectAtIndex:0] stringValue]]];
-		[tpobj setText:[[[token nodesForXPath:@"content" error:nil] objectAtIndex:0] stringValue]];
-		[comments addObject:tpobj];
-		NSLog(@"Id '%@ - %@\n", [tpobj commentid], [tpobj text]);
-	}
-}
-
-- (NSString *) parse_catid: (NSString *) tmpstr {
-	NSArray *lines = [tmpstr componentsSeparatedByString:@"-"];
-	return [lines objectAtIndex:1];
-}
-
-- (NSString *) parse_commentid: (NSString *) tmpstr {
-	NSArray *lines = [tmpstr componentsSeparatedByString:@"omment-"];
-	return [lines objectAtIndex:1];
-}
-
-// TODO -- remove this and replace it with something better
-- (void) check_categories: (NSString *) categories {
-	NSArray *lines = [categories componentsSeparatedByString:@"-"];
-	int i, count = [lines count];
-	for (i = 0; i < count; i++) {
-		if ( [_categories objectForKey:[lines objectAtIndex:i]] == nil) {
-			// NSLog(@"Category '%@' does not exist!\n", [lines objectAtIndex:i]);
-		}
-	}
-}
-
-@end
Index: /unk/CommentTable.m
===================================================================
--- /trunk/CommentTable.m (revision 41)
+++  (revision )
@@ -1,5 +1,0 @@
-#import "CommentTable.h"
-
-@implementation CommentTable
-
-@end
Index: /unk/Fence_Prefix.pch
===================================================================
--- /trunk/Fence_Prefix.pch (revision 2)
+++  (revision )
@@ -1,7 +1,0 @@
-//
-// Prefix header for all source files of the 'Fence' target in the 'Fence' project
-//
-
-#ifdef __OBJC__
-    #import <Cocoa/Cocoa.h>
-#endif
Index: /unk/VoxController.h
===================================================================
--- /trunk/VoxController.h (revision 30)
+++  (revision )
@@ -1,8 +1,0 @@
-/* VoxController */
-
-#import <Cocoa/Cocoa.h>
-
-@interface VoxController : NSObject
-{
-}
-@end
Index: /unk/TypePadAtomAPI.h
===================================================================
--- /trunk/TypePadAtomAPI.h (revision 41)
+++  (revision )
@@ -1,25 +1,0 @@
-//
-//  TypePadAtomAPI.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "AtomApi.h"
-
-@interface TypePadAtomAPI : AtomApi {
-
-}
-
-- (void) newpost:(NSString *) to args:(NSMutableDictionary *) args;
-
-- (NSString *) gallery_upload: (NSString *) file;
-- (NSString *) weblog_discover;
-- (NSString *) weblog_upload: (NSString *) file;
-- (NSString *) weblog_newpost: (NSString *) title content: (NSString *) content;
-- (NSString *) weblog_postcategories;
-- (NSString *) comments_get;
-
-@end
Index: /unk/VoxController.m
===================================================================
--- /trunk/VoxController.m (revision 30)
+++  (revision )
@@ -1,5 +1,0 @@
-#import "VoxController.h"
-
-@implementation VoxController
-
-@end
Index: /unk/TypePadAtomAPI.m
===================================================================
--- /trunk/TypePadAtomAPI.m (revision 41)
+++  (revision )
@@ -1,115 +1,0 @@
-//
-//  TypePadAtomAPI.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TypePadAtomAPI.h"
-#import "AtomExtensions.h"
-#import "NSDataAdditions.h"
-
-@implementation TypePadAtomAPI
-
-- (void) newpost:(NSString *) to args:(NSMutableDictionary *) args {
-// NSLog(@"-(void) newpost:(NSString *)to - called\n");
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSString *reqtype;
-	if ([to isEqualToString:@"weblog"] || [to isEqualToString:@"0"]) {
-// NSLog(@"set as weblog post type\n");
-		reqtype = @"POST";
-		[self setApiurl:[NSString stringWithFormat:@"%@weblog/blog_id=%@",@"http://www.typepad.com/t/atom/", [args objectForKey:@"destinationid"]]];
-		[self weblog_upload: dataarg];
-	}
-	if ([to isEqualToString:@"gallery"] || [to isEqualToString:@"1"]) {
-// NSLog(@"set as gallery post type\n");
-		reqtype = @"POST";
-		[self setApiurl:[NSString stringWithFormat:@"%@gallery/set_id=%@", @"http://www.typepad.com/t/atom/", [args objectForKey:@"destinationid"]]];
-		[self gallery_upload: dataarg];
-	}
-	if ([to isEqualToString:@"quickpost"] || [to isEqualToString:@"2"]) {
-// NSLog(@"set as quickpost post type\n");
-		reqtype = @"POST";
-		[self setApiurl:[NSString stringWithFormat:@"%@weblog/blog_id=%@", @"http://www.typepad.com/t/atom/", [args objectForKey:@"destinationid"]]];
-		[self weblog_newpost:@"Quick Post" content:dataarg];
-	}
-	if ([to isEqualToString:@"weblogdiscovery"] || [to isEqualToString:@"3"]) {
-// NSLog(@"set as weblogdiscovery post type\n");
-		reqtype = @"GET";
-		[self setApiurl:[NSString stringWithFormat:@"%@weblog", @"http://www.typepad.com/t/atom/"]];
-		[self weblog_discover];
-	} 
-	if ([to isEqualToString:@"categorydiscovery"] || [to isEqualToString:@"4"]) {
-// NSLog(@"set as categorydiscovery post type\n");
-		reqtype = @"GET";
-		[self setApiurl:[NSString stringWithFormat:@"%@categories/blog_id=%@", @"http://www.typepad.com/t/atom/", [args objectForKey:@"blog_id"] ]];
-		[self weblog_discover];
-	}
-	if ([to isEqualToString:@"gallerydiscovery"] || [to isEqualToString:@"5"]) {
-// NSLog(@"set as gallerydiscovery post type\n");
-		reqtype = @"GET";
-		[self setApiurl:[NSString stringWithFormat:@"%@gallery", @"http://www.typepad.com/t/atom/"]];
-		[self weblog_discover];
-	}
-	if ([to isEqualToString:@"commentlist"] || [to isEqualToString:@"6"]) {
-		// NSLog(@"set as gallerydiscovery post type\n");
-		reqtype = @"GET";
-		[self setApiurl:[NSString stringWithFormat:@"%@comments/blog_id=%@", @"http://www.typepad.com/t/atom/", [args objectForKey:@"blog_id"]]];
-		[self weblog_discover];
-	}
-// NSLog(@"Making request with request type %@\n", reqtype);
-	[self makerequest:reqtype];
-}
-
-- (NSString *) gallery_upload: (NSString *) file {
-// NSLog(@"- (NSString *) gallery_newitem - called");
-	NSData *data = [NSData dataWithContentsOfFile:file];
-	NSString *encodedFile = [data base64Encoding];
-	atomdata = [NSString stringWithFormat:@"<entry xmlns=\"http://purl.org/atom/ns#\" xmlns:photo=\"http://sixapart.com/atom/photo#\"><title>%@</title><summary></summary><content mode=\"base64\" type=\"image/%@\">%@</content></entry>", [file lastPathComponent], [file pathExtension], encodedFile];
-	// NSLog(@"Atom feed:\n%@\n", atomdata);
-	return atomdata;
-}
-
-- (NSString *) weblog_upload: (NSString *) file {
-// NSLog(@"- (NSString *) weblog_upload - called");
-	NSData *data = [NSData dataWithContentsOfFile:file];
-	NSString *encodedFile = [data base64Encoding];
-	// TODO: enable standalone mode - <standalone xmlns=\"http://sixapart.com/atom/typepad#\">1</standalone>
-	atomdata = [NSString stringWithFormat:@"<entry xmlns=\"http://purl.org/atom/ns#\" xmlns:photo=\"http://sixapart.com/atom/photo#\"><title>%@</title><summary></summary><photo:filename>%@</photo:filename><content mode=\"base64\" type=\"image/%@\">%@</content></entry>",[file lastPathComponent],[file lastPathComponent], [file pathExtension], encodedFile];
-	// NSLog(@"Atom feed:\n%@\n", atomdata);
-	return atomdata;
-}
-
-- (NSString *) weblog_newpost: (NSString *) title content: (NSString *) content {
-// NSLog(@"- (NSString *) weblog_newpost - called");
-	atomdata = [NSString stringWithFormat:@"<entry xmlns=\"http://purl.org/atom/ns#\"><title>%@</title><summary></summary><content mode=\"xml\"><div xmlns=\"http://www.w3.org/1999/xhtml\">%@</div></content>%@</entry>", title, content, [self weblog_postcategories]];
-	// NSLog(@"Atom feed:\n%@\n", atomdata);
-	return atomdata;
-}
-
-- (NSString *) weblog_discover {
-// NSLog(@"- (NSString *) weblog_newitem - called");
-	/* atomdata = [NSString stringWithFormat:@"<entry xmlns=\"http://purl.org/atom/ns#\"><title>%@</title><summary></summary><content mode=\"xml\"><div xmlns=\"http://www.w3.org/1999/xhtml\">%@</div></content></entry>", title, content]; */
-	atomdata = @"";
-	// NSLog(@"Atom feed:\n%@\n", atomdata);
-	return @"";
-}
-
-- (NSString *) weblog_postcategories {
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSArray *lines = [[userDefaults objectForKey:@"blogcategories"] componentsSeparatedByString:@","];
-	int i, count = [lines count];
-	NSString *output = @"";
-	for (i = 0; i < count; i++) {
-		[output stringByAppendingString:[NSString stringWithFormat:@"<category scheme=\"http://sixapart.com/ns/category#\" term\"%@\" />", [lines objectAtIndex:i]]];
-	}
-	return output;
-}
-
-- (NSString *) comments_get {
-	atomdata = @"";
-	return @"";
-}
-
-@end
Index: /unk/VoxCollection.h
===================================================================
--- /trunk/VoxCollection.h (revision 35)
+++  (revision )
@@ -1,22 +1,0 @@
-//
-//  VoxCollection.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-
-@interface VoxCollection : NSObject {
-	NSString *_collectionID;
-	NSString *_collectionTitle;
-}
-- (NSString *) collectionID;
-- (void) setCollectionID: (NSString *) CollectionID;
-
-- (NSString *) collectionTitle;
-- (void) setCollectionTitle: (NSString *) CollectionTitle;
-
-@end
Index: /unk/AtomApi.h
===================================================================
--- /trunk/AtomApi.h (revision 35)
+++  (revision )
@@ -1,51 +1,0 @@
-//
-//  AtomApi.h
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 5/1/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import <Growl/Growl.h>
-// #import "TypePad.h"
-
-@interface AtomApi: NSObject {
-	NSString *dataarg;
-	NSString *atomdata;
-	NSString *apiurl;
-	NSString *resdata;
-	NSString *authuser;
-	NSString *authpass;
-	BOOL requiresAuth;
-}
-
-- (NSString *) dataarg;
-- (void) setDataarg: (NSString *) Dataarg;
-
-- (NSString *) atomdata;
-- (void) setAtomdata: (NSString *) Atomdata;
-
-- (NSString *) apiurl;
-- (void) setApiurl: (NSString *) Apiurl;
-
-- (NSString *) resdata;
-- (void) setResdata: (NSString *) Resdata;
-
-- (NSString *) authuser;
-- (void) setAuthuser: (NSString *) Authuser;
-
-- (NSString *) authpass;
-- (void) setAuthpass: (NSString *) Authpass;
-
-- (BOOL) requiresAuth;
-- (void) setRequiresAuth: (BOOL) flag;
-
-- (void) setAuth: (NSString *) user pass:(NSString *) pass;
-
-- (void) makerequest:(NSString *) reqtype;
-
-- (NSString *) makeNonce;
-- (NSString *) filename;
-
-@end
Index: /unk/RoundedView.h
===================================================================
--- /trunk/RoundedView.h (revision 30)
+++  (revision )
@@ -1,16 +1,0 @@
-//
-//  RoundedView.h
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-
-#import <Cocoa/Cocoa.h>
-
-@interface RoundedView : NSView {
-}
-
-@end
-
Index: /unk/VoxCollection.m
===================================================================
--- /trunk/VoxCollection.m (revision 35)
+++  (revision )
@@ -1,71 +1,0 @@
-//
-//  VoxCollection.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "VoxCollection.h"
-
-
-@implementation VoxCollection
-
-// init
-- (id)init {
-    if (self = [super init]) {
-        [self setCollectionID:[[NSString alloc] init]];
-        [self setCollectionTitle:[[NSString alloc] init]];
-    }
-    return self;
-}
-
-- (void) encodeWithCoder: (NSCoder *)coder {
-    [coder encodeObject: [self collectionID] forKey: @"WeblogCollectionID"];
-    [coder encodeObject: [self collectionTitle] forKey: @"WeblogCollectionTitle"];
-}
-
-- (id) initWithCoder: (NSCoder *)coder {
-	[self setCollectionID: [coder decodeObjectForKey: @"WeblogCollectionID"]];
-	[self setCollectionTitle: [coder decodeObjectForKey: @"WeblogCollectionTitle"]];
-    return self;
-}
-
-/* collectionID */
-- (NSString *) collectionID { return _collectionID; }
-
-	/* -setCollectionID: */
-- (void) setCollectionID: (NSString *) CollectionID {
-    //NSLog(@"in -setCollectionID:, old value of _collectionID: %@, changed to: %@", _collectionID, CollectionID);
-	
-    if (_collectionID != CollectionID) {
-        [_collectionID autorelease];
-        _collectionID = [CollectionID retain];
-    }
-}
-
-/* collectionTitle */
-- (NSString *) collectionTitle { return _collectionTitle; }
-
-	/* -setCollectionTitle: */
-- (void) setCollectionTitle: (NSString *) CollectionTitle {
-    //NSLog(@"in -setCollectionTitle:, old value of _collectionTitle: %@, changed to: %@", _collectionTitle, CollectionTitle);
-	
-    if (_collectionTitle != CollectionTitle) {
-        [_collectionTitle autorelease];
-        _collectionTitle = [CollectionTitle retain];
-    }
-}
-
-
-/* dealloc */
-- (void) dealloc {
-    [_collectionID release];
-    [_collectionTitle release];
-	
-    _collectionID = nil;
-    _collectionTitle = nil;
-    [super dealloc];
-}
-
-@end
Index: /unk/AtomApi.m
===================================================================
--- /trunk/AtomApi.m (revision 41)
+++  (revision )
@@ -1,182 +1,0 @@
-//
-//  AtomApi.m
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 5/1/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "AtomApi.h"
-#import "AtomExtensions.h"
-#import "NSDataAdditions.h"
-
-#define APIURL @"http://www.typepad.com/t/atom/";
-
-@implementation AtomApi
-
-- (id) init {
-    if (self = [super init]) {
-		/* ... */
-		dataarg = [[NSString alloc] init];
-		atomdata = [[NSString alloc] init];
-		apiurl = [[NSString alloc] init];
-		resdata = [[NSString alloc] init];
-		authuser = [[NSString alloc] init];
-		authpass = [[NSString alloc] init];
-		[self setRequiresAuth:NO];
-		[self retain];
-    }
-    return self;
-}
-
-/* dataarg */
-- (NSString *) dataarg { return dataarg; }
-
-	/* -setDataarg: */
-- (void) setDataarg: (NSString *) Dataarg {
-    //NSLog(@"in -setDataarg:, old value of dataarg: %@, changed to: %@", dataarg, Dataarg);
-    if (dataarg != Dataarg) {
-        [dataarg autorelease];
-        dataarg = [Dataarg retain];
-    }
-}
-
-/* atomdata */
-- (NSString *) atomdata { return atomdata; }
-
-/* -setAtomdata: */
-- (void) setAtomdata: (NSString *) Atomdata {
-    //NSLog(@"in -setAtomdata:, old value of atomdata: %@, changed to: %@", atomdata, Atomdata);
-    if (atomdata != Atomdata) {
-        [atomdata autorelease];
-        atomdata = [Atomdata retain];
-    }
-}
-
-/* apiurl */
-- (NSString *) apiurl { return apiurl; }
-
-/* -setApiurl: */
-- (void) setApiurl: (NSString *) Apiurl {
-    //NSLog(@"in -setApiurl:, old value of apiurl: %@, changed to: %@", apiurl, Apiurl);
-    if (apiurl != Apiurl) {
-        [apiurl autorelease];
-        apiurl = [Apiurl retain];
-    }
-}
-
-/* resdata */
-- (NSString *) resdata { return resdata; }
-
-/* -setResdata: */
-- (void) setResdata: (NSString *) Resdata {
-    //NSLog(@"in -setResdata:, old value of resdata: %@, changed to: %@", resdata, Resdata);
-    if (resdata != Resdata) {
-        [resdata autorelease];
-        resdata = [Resdata retain];
-    }
-}
-
-/* authuser */
-- (NSString *) authuser { return authuser; }
-
-/* -setAuthuser: */
-- (void) setAuthuser: (NSString *) Authuser {
-	//NSLog(@"in -setAuthuser:, old value of authuser: %@, changed to: %@", authuser, Authuser);
-	[self setRequiresAuth:YES];
-    if (authuser != Authuser) {
-        [authuser autorelease];
-        authuser = [Authuser retain];
-    }
-}
-
-/* authpass */
-- (NSString *) authpass { return authpass; }
-
-/* -setAuthpass: */
-- (void) setAuthpass: (NSString *) Authpass {
-	[self setRequiresAuth:YES];
-    //NSLog(@"in -setAuthpass:, old value of authpass: %@, changed to: %@", authpass, Authpass);
-    if (authpass != Authpass) {
-        [authpass autorelease];
-        authpass = [Authpass retain];
-    }
-}
-
-- (void) setAuth: (NSString *) user pass:(NSString *) pass {
-	[self setAuthuser:user];
-	[self setAuthpass:pass];
-	[self setRequiresAuth:YES];
-}
-
-/* requiresAuth */
-- (BOOL) requiresAuth { return requiresAuth; }
-
-/* -setRequiresAuth: */
-- (void) setRequiresAuth: (BOOL) flag {
-    //NSLog(@"in -setRequiresAuth, old value of requiresAuth: %@, changed to: %@", (requiresAuth ? @"YES": @"NO"), (flag ? @"YES": @"NO") );
-    requiresAuth = flag;
-}
-
-/* dealloc */
-- (void) dealloc {
-    [dataarg release];
-    [atomdata release];
-    [apiurl release];
-    [resdata release];
-	[authuser release];
-    [authpass release];
-	
-    dataarg = nil;
-    atomdata = nil;
-    apiurl = nil;
-    resdata = nil;
-	authuser = nil;
-    authpass = nil;
-    [super dealloc];
-}
-
-/* begin class methods */
-- (NSString *) makeNonce {
-	NSDate *timestamp = [NSDate date];
-	NSString *nonce = [[NSString stringWithFormat:@"%@:%@", [timestamp descriptionWithCalendarFormat:@"%Y-%m-%dT%H:%M:%SZ" timeZone:nil locale:nil], @"private"] stringUsingSHA1HexadecimalHash];
-	return [NSString stringWithFormat:@"%@ %@", [timestamp descriptionWithCalendarFormat:@"%Y-%m-%dT%H:%M:%SZ" timeZone:nil locale:nil], nonce];
-}
-
-- (void) makerequest:(NSString *) reqtype {
-// NSLog(@"Making request to url '%@'\n", apiurl);
-	NSURL *aURL = [NSURL URLWithString:apiurl];
-	[aURL URLHandleUsingCache:NO];
-	NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:aURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
-	[request addValue:[aURL host] forHTTPHeaderField:@"Host"];
-	[request addValue:@"Fence/0.8" forHTTPHeaderField:@"User-Agent"];
-	// set auth if we need it.
-	if ([self requiresAuth]) {
-// NSLog(@" XXX Auth required\n");
-		NSString *login = [self authuser];
-		NSString *password = [self authpass];
-		NSString *nonce = [self makeNonce];
-		NSString *encodedNonce = [nonce stringUsingBase64Encoding];
-		NSString *created = [[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%dT%H:%M:%SZ" timeZone:nil locale:nil];
-		NSString *passwordDigest = [[[NSString stringWithFormat:@"%@%@%@", nonce, created, password] stringUsingSHA1RawHash] stringUsingBase64Encoding];
-		[request addValue:@"WSSE profile=\"UsernameToken\"" forHTTPHeaderField:@"Authorization"];
-		NSString *wsse = [NSString stringWithFormat:@"UsernameToken Username=\"%@\", PasswordDigest=\"%@\", Created=\"%@\", Nonce=\"%@\"", login, passwordDigest, created, encodedNonce];
-		[request addValue:wsse forHTTPHeaderField:@"X-WSSE"];
-	}
-	[request addValue:@"application/atom+xml" forHTTPHeaderField:@"Content-Type"];
-	[request addValue:[NSString stringWithFormat:@"%d", [atomdata length]] forHTTPHeaderField: @"Content-Length"];
-	[request setHTTPMethod:reqtype];
-	[request setHTTPBody:[atomdata dataUsingEncoding:NSUTF8StringEncoding]];
-	// [request addValue:@"close" forHTTPHeaderField:@"Connection"];
-	NSURLResponse* response;
-	NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
-	NSString *blork = [[NSString alloc] initWithData:responseData  encoding:NSASCIIStringEncoding];
-	[self setResdata:blork];
-	// NSLog(@"Response: \n%@\n", blork);
-}
-
-- (NSString *) filename {
-	return [dataarg lastPathComponent];
-}
-
-@end
Index: /unk/RoundedView.m
===================================================================
--- /trunk/RoundedView.m (revision 35)
+++  (revision )
@@ -1,73 +1,0 @@
-//
-//  RoundedView.m
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-#import "RoundedView.h"
-#import "TypePad.h"
-
-@implementation RoundedView
-
-- (id)initWithFrame:(NSRect)frameRect {
-	if ((self = [super initWithFrame:frameRect]) != nil) {
-		[self registerForDraggedTypes:[NSArray arrayWithObjects:
-			NSURLPboardType,
-			NSStringPboardType,
-			NSFilenamesPboardType,
-			NSHTMLPboardType,
-			nil
-			]
-		];
-	}
-	return self;
-}
-
-- (void)drawRect:(NSRect)rect {
-	NSColor *bgColor = [NSColor colorWithCalibratedWhite:0.0 alpha:0.35];
-	NSRect bgRect = rect;
-	int minX = NSMinX(bgRect);
-	int midX = NSMidX(bgRect);
-	int maxX = NSMaxX(bgRect);
-	int minY = NSMinY(bgRect);
-	int midY = NSMidY(bgRect);
-	int maxY = NSMaxY(bgRect);
-	float radius = 25.0;
-	NSBezierPath *bgPath = [NSBezierPath bezierPath];
-	[bgPath moveToPoint:NSMakePoint(midX, minY)];
-	[bgPath appendBezierPathWithArcFromPoint:NSMakePoint(maxX, minY) toPoint:NSMakePoint(maxX, midY) radius:radius];
-	[bgPath appendBezierPathWithArcFromPoint:NSMakePoint(maxX, maxY) toPoint:NSMakePoint(midX, maxY) radius:radius];
-	[bgPath appendBezierPathWithArcFromPoint:NSMakePoint(minX, maxY) toPoint:NSMakePoint(minX, midY) radius:radius];
-	[bgPath appendBezierPathWithArcFromPoint:bgRect.origin toPoint:NSMakePoint(midX, minY) radius:radius];
-	[bgPath closePath];
-	[bgColor set];
-	[bgPath fill];
-}
-
-- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
-    if ((NSDragOperationGeneric & [sender draggingSourceOperationMask]) == NSDragOperationGeneric) { return NSDragOperationGeneric; }
-	if ((NSDragOperationCopy & [sender draggingSourceOperationMask]) == NSDragOperationCopy) { return NSDragOperationCopy; }
-	return NSDragOperationNone;
-}
-
-- (void)draggingExited:(id <NSDraggingInfo>)sender { }
-
-- (void)draggingEnded:(id <NSDraggingInfo>)sender { }
-
-- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender { return YES; }
-
-- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender {
-	/* NSLog(@"- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender - called\n"); */
-	TypePad *tp = [[[TypePad alloc] init] autorelease];
-	[tp dispatchAction:[sender draggingPasteboard]];
-	[self setNeedsDisplay:YES];
-    return YES;
-}
-
-- (void)dealloc {
-    [self unregisterDraggedTypes];
-    [super dealloc];
-}
-
-@end
Index: /unk/PrefController.h
===================================================================
--- /trunk/PrefController.h (revision 38)
+++  (revision )
@@ -1,71 +1,0 @@
-/* PrefController */
-
-#import <Cocoa/Cocoa.h>
-#import <Growl/Growl.h>
-#import "TypePad.h"
-#import "TypePadAccount.h"
-#import "TypePadWeblog.h"
-#import "TypePadGallery.h"
-#import "Vox.h"
-#import "VoxAccount.h"
-#import "VoxCollection.h"
-
-@interface PrefController : NSObject {
-    IBOutlet id myWindow;
-	// typepad pref views //
-	IBOutlet id PrefsGeneral;
-	IBOutlet id PrefsTypePadImage;
-	/* - */ IBOutlet id tp_image_dropdown;
-	IBOutlet id PrefsTypePadText;
-	/* - */ IBOutlet id tp_text_dropdown;
-	// vox pref views //
-	IBOutlet id PrefsVoxAudio;
-	IBOutlet id PrefsVoxImage;
-	/* - */ IBOutlet id vx_image_dropdown;
-	IBOutlet id PrefsVoxText;
-	/* - */ IBOutlet id vx_text_dropdown;
-	// generic pref view //
-	IBOutlet id enable_growl;
-	IBOutlet id save_login;
-
-	NSToolbar *toolbar;
-	NSMutableDictionary *items;
-	NSMutableArray *allowedPanels;
-	NSString *service;
-	NSMutableDictionary *myCollections;
-}
-- (void) switchViews:(NSToolbarItem *)item;
-
-- (NSToolbarItem *) newItem:(NSString *) name image:(NSString *) image;
-
-- (void) windowWillClose:(id) sender;
-
-- (void) init_generic;
-- (void) init_typepad;
-- (void) init_vox;
-
-/** accessors **/
-- (NSToolbar *) toolbar;
-- (void) setToolbar: (NSToolbar *) Toolbar;
-
-- (NSMutableDictionary *) items;
-- (void) setItems: (NSMutableDictionary *) Items;
-
-- (NSMutableArray *) allowedPanels;
-- (void) setAllowedPanels: (NSMutableArray *) AllowedPanels;
-
-- (NSString *) service;
-- (void) setService: (NSString *) Service;
-
-- (NSMutableDictionary *) myCollections;
-- (void) setMyCollections: (NSMutableDictionary *) MyCollections;
-
-/* save methods */
-- (void) save_generic;
-- (void) save_typepad;
-- (void) save_vox;
-
-/* utility methods */
-- (NSArray *) parseTargetType: (NSString *) title;
-
-@end
Index: /unk/LoginWindowController.h
===================================================================
--- /trunk/LoginWindowController.h (revision 38)
+++  (revision )
@@ -1,29 +1,0 @@
-/* LoginWindowController */
-
-#import <Cocoa/Cocoa.h>
-#include "TypePad.h"
-#include "Vox.h"
-
-@interface LoginWindowController : NSObject {
-    IBOutlet id password;
-    IBOutlet id remeberme;
-    IBOutlet id services;
-    IBOutlet id usernamelist;
-	IBOutlet id mywindow;
-	NSMutableArray *recentlogins;
-	NSString *lastlogin;
-}
-
-- (NSMutableArray *) recentlogins;
-- (void) setRecentlogins: (NSMutableArray *) Recentlogins;
-
-- (NSString *) lastlogin;
-- (void) setLastlogin: (NSString *) Lastlogin;
-
-- (IBAction)login:(id)sender;
-
-- (void) init_login;
-- (void) init_typepad;
-- (void) init_vox;
-
-@end
Index: /unk/PrefController.m
===================================================================
--- /trunk/PrefController.m (revision 41)
+++  (revision )
@@ -1,386 +1,0 @@
-#import "PrefController.h"
-
-@implementation PrefController
-
-// init
-// 1
-- (id)init {
-// NSLog(@"PrefController - init -- called \n");
-    if (self = [super init]) {
-        [self setToolbar:[[NSToolbar alloc] initWithIdentifier:@"preferencePanes"]];
-        [self setItems:[[NSMutableDictionary alloc] init]];
-		[self setMyCollections:[[NSMutableDictionary alloc] init]];
-        [self setAllowedPanels:[[NSMutableArray alloc] init]];
-        [self setService:[[NSString alloc] init]];
-    }
-    return self;
-}
-
-// 2
-- (void)awakeFromNib {
-	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillClose:) name:@"NSWindowWillCloseNotification" object:myWindow];
-    	
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	// [self setService:[userDefaults objectForKey:@"service type"]];
-	[self setService:@"None"];
-
-	// Set the general pref view control values
-	[enable_growl setObjectValue:[userDefaults objectForKey:@"enable_growl"]];
-	[save_login setObjectValue:[userDefaults objectForKey:@"save_login"]];
-	
-	TypePad *tp = [[[TypePad alloc] init] autorelease];
-	Vox *vx = [[[Vox alloc] init] autorelease];
-	if ([[tp accounts] count] > 0) {
-		[self setService:@"TypePad"];
-	}
-	if ([[vx accounts] count] > 0) {
-		[self setService:@"Vox"];
-	}
-	
-	
-	if ([[self service] isEqualToString:@"None"]) {
-		[self init_generic];
-	} else {
-		if ([[self service] isEqualToString:@"TypePad"]) {
-			[self init_typepad];
-		}
-		if ([[self service] isEqualToString:@"Vox"]) {
-			[self init_vox];
-		}
-	}
-
-    toolbar = [[NSToolbar alloc] initWithIdentifier:@"preferencePanes"];
-    [toolbar setDelegate:self];
-    [toolbar setAllowsUserCustomization:NO];
-    [toolbar setAutosavesConfiguration:NO];
-    [myWindow setToolbar:toolbar];
-    [toolbar release];
-
-    [myWindow center];
-
-    [self switchViews:nil];
-}
-
-/* dealloc */
-- (void) dealloc {
-    [toolbar release]; toolbar = nil;
-    [items release]; items = nil;
-    [allowedPanels release]; allowedPanels = nil;
-    [service release]; service = nil;
-	[myCollections release]; myCollections = nil;
-    [super dealloc];
-}
-
-- (void) init_generic {
-	[items setObject:[self newItem:@"General" image:@"General"] forKey:@"General"];
-	allowedPanels = [NSArray arrayWithObjects:@"General", NSToolbarFlexibleSpaceItemIdentifier, nil];
-}
-
-- (void) init_typepad {
-	[items setObject:[self newItem:@"General" image:@"General"] forKey:@"General"];
-	[items setObject:[self newItem:@"Image" image:@"Weblog"] forKey:@"Image"];
-	[items setObject:[self newItem:@"Text" image:@"Gallery"] forKey:@"Text"];
-	allowedPanels = [NSArray arrayWithObjects:@"General", @"Image", @"Text", NSToolbarFlexibleSpaceItemIdentifier, nil];
-
-	[tp_image_dropdown removeAllItems];
-	[tp_text_dropdown removeAllItems];
-
-	id key;
-	TypePad *tp = [[[TypePad alloc] init] autorelease];
-	// TypePadAccount *uacc = [[tp accounts] objectForKey:[self defaultaccount]];
-
-	// set the items that need blogs
-	// NSArray *blogs = [tp defaultAccountWeblogs];
-	NSEnumerator *blog_enumerator = [[tp defaultAccountWeblogs] objectEnumerator];
-	while (key = [blog_enumerator nextObject]) {
-		TypePadWeblog *tpobj = key;
-		[myCollections setObject:[tpobj weblogID] forKey:[NSString stringWithFormat:@"Weblog: %@", [tpobj weblogTitle]]];
-		[tp_image_dropdown addItemWithTitle:[NSString stringWithFormat:@"Weblog: %@", [tpobj weblogTitle]]];
-		[tp_text_dropdown addItemWithTitle:[NSString stringWithFormat:@"Weblog: %@", [tpobj weblogTitle]]];
-	}
-	
-	// set the items that need galleries - defaultAccountGalleries
-	// NSArray *galleries = [tp defaultAccountGalleries];
-	NSEnumerator *gallery_enumerator = [[tp defaultAccountGalleries] objectEnumerator];
-	while (key = [gallery_enumerator nextObject]) {
-		TypePadGallery *tpobj = key;
-		[myCollections setObject:[tpobj galleryID] forKey:[NSString stringWithFormat:@"Gallery: %@", [tpobj galleryTitle]]];
-		[tp_image_dropdown addItemWithTitle:[NSString stringWithFormat:@"Gallery: %@", [tpobj galleryTitle]]];
-	}
-	
-	if ([tp_image_dropdown numberOfItems] == 0) {
-		[tp_image_dropdown setState:NSOffState];
-	}
-	if ([tp_text_dropdown numberOfItems] == 0) {
-		[tp_text_dropdown setState:NSOffState];
-	}
-
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	if ([userDefaults objectForKey:@"image destination id"]) {
-		if ([[userDefaults objectForKey:@"image destination type"] isEqualToString:@"1"]) {
-			[tp_image_dropdown selectItemWithTitle:[NSString stringWithFormat:@"Weblog: %@", [userDefaults objectForKey:@"image destination title"]]];
-		}
-		if ([[userDefaults objectForKey:@"image destination type"] isEqualToString:@"2"]) {
-			[tp_image_dropdown selectItemWithTitle:[NSString stringWithFormat:@"Gallery: %@", [userDefaults objectForKey:@"image destination title"]]];
-		}
-	}
-	if ([userDefaults objectForKey:@"text destination id"]) {
-		if ([[userDefaults objectForKey:@"text destination type"] isEqualToString:@"1"]) {
-			[tp_text_dropdown selectItemWithTitle:[NSString stringWithFormat:@"Weblog: %@", [userDefaults objectForKey:@"text destination title"]]];
-		}
-	}
-
-}
-
-- (void) init_vox {
-	[items setObject:[self newItem:@"General" image:@"General"] forKey:@"General"];
-	[items setObject:[self newItem:@"Audio" image:@"Weblog"] forKey:@"Audio"];
-	[items setObject:[self newItem:@"Image" image:@"Gallery"] forKey:@"Image"];
-	[items setObject:[self newItem:@"Text" image:@"Weblog"] forKey:@"Text"];
-	allowedPanels = [NSArray arrayWithObjects:@"General", @"Audio", @"Image", @"Text", NSToolbarFlexibleSpaceItemIdentifier, nil];
-	
-	[vx_image_dropdown removeAllItems];
-	[vx_text_dropdown removeAllItems];
-	
-	id key;
-	Vox *vx = [[[Vox alloc] init] autorelease];
-	// TypePadAccount *uacc = [[tp accounts] objectForKey:[self defaultaccount]];
-	
-	// set the items that need blogs
-	// NSArray *blogs = [tp defaultAccountWeblogs];
-	NSEnumerator *col_enumerator = [[vx defaultAccountCollections] objectEnumerator];
-	while (key = [col_enumerator nextObject]) {
-		VoxCollection *voxcol = key;
-		[myCollections setObject:[voxcol collectionID] forKey:[NSString stringWithFormat:@"Collection: %@", [voxcol collectionTitle]]];
-// NSLog(@"Mapping collection '%@' to id '%@'", [voxcol collectionTitle], [voxcol collectionID]);
-		[vx_image_dropdown addItemWithTitle:[NSString stringWithFormat:@"Collection: %@", [voxcol collectionTitle]]];
-		[vx_text_dropdown addItemWithTitle:[NSString stringWithFormat:@"Collection: %@", [voxcol collectionTitle]]];
-	}
-	if ([vx_image_dropdown numberOfItems] == 0) {
-		[vx_image_dropdown setState:NSOffState];
-	}
-	if ([vx_text_dropdown numberOfItems] == 0) {
-		[vx_text_dropdown setState:NSOffState];
-	}
-	
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	if ([userDefaults objectForKey:@"vox image destination id"]) {
-		if ([[userDefaults objectForKey:@"vox image destination type"] isEqualToString:@"1"]) {
-			[tp_image_dropdown selectItemWithTitle:[NSString stringWithFormat:@"Collection: %@", [userDefaults objectForKey:@"vox image destination title"]]];
-		}
-	}
-	if ([userDefaults objectForKey:@"vox text destination id"]) {
-		if ([[userDefaults objectForKey:@"vox text destination type"] isEqualToString:@"1"]) {
-			[tp_text_dropdown selectItemWithTitle:[NSString stringWithFormat:@"Collection: %@", [userDefaults objectForKey:@"vox text destination title"]]];
-		}
-	}
-}
-
-- (NSToolbarItem *) newItem:(NSString *) name image:(NSString *) image {
-	NSToolbarItem *item = [[[NSToolbarItem alloc] initWithItemIdentifier:name] autorelease];
-    [item setPaletteLabel:name];
-    [item setLabel:name];
-    [item setToolTip:@""];
-    [item setImage:[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:image ofType:@"tiff"]]];
-    [item setTarget:self];
-    [item setAction:@selector(switchViews:)];
-	return item;
-}
-
-- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag {
-    return [items objectForKey:itemIdentifier];
-}
-
-- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)theToolbar {
-    return [self toolbarDefaultItemIdentifiers:theToolbar];
-}
-
-- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)theToolbar {
-    return [self allowedPanels];
-}
-
-- (NSArray *)toolbarSelectableItemIdentifiers: (NSToolbar *)toolbar {
-    return [items allKeys];
-}
-
-- (void)switchViews:(NSToolbarItem *)item {
-	
-    NSString *sender;
-    if (item == nil){
-        sender = @"General";
-        [toolbar setSelectedItemIdentifier:sender];
-    } else {
-        sender = [item label];
-    }
-    NSView *prefsView;
-    [myWindow setTitle:sender];
-    if([sender isEqualToString:@"General"]){
-        prefsView = PrefsGeneral;
-    }else if([sender isEqualToString:@"Audio"]){
-        prefsView = PrefsVoxAudio;
-    }else if([sender isEqualToString:@"Image"]){
-        prefsView = [[self service] isEqualToString:@"TypePad"] ? PrefsTypePadImage : PrefsVoxImage;
-    }else if([sender isEqualToString:@"Text"]){
-        prefsView = [[self service] isEqualToString:@"TypePad"] ? PrefsTypePadText : PrefsVoxText;
-    }
-	
-	NSView *tempView = [[NSView alloc] initWithFrame:[[myWindow contentView] frame]];
-	[myWindow setContentView:tempView];
-	[tempView release];
-	
-	NSRect newFrame = [myWindow frame];
-	newFrame.size.height = [prefsView frame].size.height + ([myWindow frame].size.height - [[myWindow contentView] frame].size.height);
-	newFrame.size.width = [prefsView frame].size.width;
-	newFrame.origin.y += ([[myWindow contentView] frame].size.height - [prefsView frame].size.height);
-	
-	[myWindow setShowsResizeIndicator:NO];
-	[myWindow setFrame:newFrame display:YES animate:YES];
-	[myWindow setContentView:prefsView];
-}
-
-- (void) windowWillClose:(id) sender {
-// NSLog(@"Window closed\n");
-	[self save_generic];
-	if ([[self service] isEqualToString:@"TypePad"]) {
-		[self save_typepad];
-	}
-	if ([[self service] isEqualToString:@"Vox"]) {
-		[self save_vox];
-	}
-}
-
-/* toolbar */
-- (NSToolbar *) toolbar { return toolbar; }
-
-/* -setToolbar: */
-- (void) setToolbar: (NSToolbar *) Toolbar {
-    //NSLog(@"in -setToolbar:, old value of toolbar: %@, changed to: %@", toolbar, Toolbar);
-    if (toolbar != Toolbar) {
-        [toolbar autorelease];
-        toolbar = [Toolbar retain];
-    }
-}
-
-/* items */
-- (NSMutableDictionary *) items { return items; }
-
-/* -setItems: */
-- (void) setItems: (NSMutableDictionary *) Items {
-    //NSLog(@"in -setItems:, old value of items: %@, changed to: %@", items, Items);
-    if (items != Items) {
-        [items autorelease];
-        items = [Items retain];
-    }
-}
-
-/* allowedPanels */
-- (NSMutableArray *) allowedPanels { return allowedPanels; }
-
-/* -setAllowedPanels: */
-- (void) setAllowedPanels: (NSMutableArray *) AllowedPanels {
-    //NSLog(@"in -setAllowedPanels:, old value of allowedPanels: %@, changed to: %@", allowedPanels, AllowedPanels);
-    if (allowedPanels != AllowedPanels) {
-        [allowedPanels autorelease];
-        allowedPanels = [AllowedPanels retain];
-    }
-}
-
-/* service */
-- (NSString *) service { return service; }
-
-/* -setService: */
-- (void) setService: (NSString *) Service {
-    //NSLog(@"in -setService:, old value of service: %@, changed to: %@", service, Service);
-    if (service != Service) {
-        [service autorelease];
-        service = [Service retain];
-    }
-}
-
-/* myCollections */
-- (NSMutableDictionary *) myCollections { return myCollections; }
-
-/* -setMyCollections: */
-- (void) setMyCollections: (NSMutableDictionary *) MyCollections {
-    //NSLog(@"in -setMyCollections:, old value of myCollections: %@, changed to: %@", myCollections, MyCollections);
-    if (myCollections != MyCollections) {
-        [myCollections autorelease];
-        myCollections = [MyCollections retain];
-    }
-}
-
-- (void) save_generic {
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	[userDefaults setObject:[enable_growl objectValue] forKey:@"enable_growl"];
-	[userDefaults setObject:[save_login objectValue] forKey:@"save_login"];
-}
-
-- (void) save_typepad {
-// NSLog(@"- (void) save_typepad -- called\n");
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	if ([tp_image_dropdown numberOfItems] > 0) {
-		NSArray *image_target = [self parseTargetType:[tp_image_dropdown titleOfSelectedItem]];
-		if ([image_target count] > 0) {
-			[userDefaults setObject:[image_target objectAtIndex:0] forKey:@"image destination type"];
-			[userDefaults setObject:[image_target objectAtIndex:1] forKey:@"image destination id"];
-			[userDefaults setObject:[image_target objectAtIndex:2] forKey:@"image destination title"];
-		}
-	}
-	if ([tp_text_dropdown numberOfItems] > 0) {
-		NSArray *text_target = [self parseTargetType:[tp_text_dropdown titleOfSelectedItem]];
-		if ([text_target count] > 0) {
-			[userDefaults setObject:[text_target objectAtIndex:0] forKey:@"text destination type"];
-			[userDefaults setObject:[text_target objectAtIndex:1] forKey:@"text destination id"];
-			[userDefaults setObject:[text_target objectAtIndex:2] forKey:@"text destination title"];
-		}
-	}
-	[userDefaults synchronize];
-}
-
-- (void) save_vox {
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	if ([vx_image_dropdown numberOfItems] > 0) {
-		NSArray *image_target = [self parseTargetType:[vx_image_dropdown titleOfSelectedItem]];
-		if ([image_target count] > 0) {
-			[userDefaults setObject:[image_target objectAtIndex:0] forKey:@"vox image destination type"];
-			[userDefaults setObject:[image_target objectAtIndex:1] forKey:@"vox image destination id"];
-			[userDefaults setObject:[image_target objectAtIndex:2] forKey:@"vox image destination title"];
-		}
-	}
-	if ([vx_text_dropdown numberOfItems] > 0) {
-		NSArray *text_target = [self parseTargetType:[vx_text_dropdown titleOfSelectedItem]];
-		if ([text_target count] > 0) {
-			[userDefaults setObject:[text_target objectAtIndex:0] forKey:@"vox text destination type"];
-			[userDefaults setObject:[text_target objectAtIndex:1] forKey:@"vox text destination id"];
-			[userDefaults setObject:[text_target objectAtIndex:2] forKey:@"vox text destination title"];
-		}
-	}
-	[userDefaults synchronize];
-}
-
-- (NSArray *) parseTargetType: (NSString *) title {
-	NSMutableArray *ret = [[[NSMutableArray alloc] initWithCapacity:3] autorelease];
-	if ([title rangeOfString:@"Weblog: "].location != NSNotFound) {
-		[ret addObject:@"1"];
-		[ret addObject:[myCollections objectForKey:title]];
-		[ret addObject:[title substringFromIndex:8]];
-	}
-	if ([title rangeOfString:@"Gallery: "].location != NSNotFound) {
-		[ret addObject:@"2"];
-		[ret addObject:[myCollections objectForKey:title]];
-		[ret addObject:[title substringFromIndex:9]];
-	}
-	if ([title rangeOfString:@"TypeList: "].location != NSNotFound) {
-		[ret addObject:@"3"];
-		[ret addObject:[myCollections objectForKey:title]];
-		[ret addObject:[title substringFromIndex:10]];
-	}
-	if ([title rangeOfString:@"Collection: "].location != NSNotFound) {
-		[ret addObject:@"1"];
-		[ret addObject:[myCollections objectForKey:title]];
-		[ret addObject:[title substringFromIndex:12]];
-	}
-	return ret;
-}
-
-@end
Index: /unk/LoginWindowController.m
===================================================================
--- /trunk/LoginWindowController.m (revision 42)
+++  (revision )
@@ -1,120 +1,0 @@
-#import "LoginWindowController.h"
-
-@implementation LoginWindowController
-
-// init
-- (id)init {
-    if (self = [super init]) {
-        [self setRecentlogins:[[NSMutableArray alloc] init]];
-        [self setLastlogin:@""];
-    }
-    return self;
-}
-
-- (void)awakeFromNib {
-	[self init_login];
-}
-
-- (void) init_login {
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSEnumerator *enumerator = [[userDefaults objectForKey:@"recent usernames"] objectEnumerator];
-	id key;
-	while (key = [enumerator nextObject]) {
-		if ([usernamelist numberOfItems] < 9) {
-			if ([usernamelist indexOfItemWithObjectValue:key] == NSNotFound) {
-				[usernamelist addItemWithObjectValue:key];
-			}
-		}
-	}
-	if ([userDefaults objectForKey:@"save_login"]) {
-		if ([userDefaults objectForKey:@"username"]) {
-			[usernamelist selectItemWithObjectValue:[userDefaults objectForKey:@"username"]];
-		}
-		if ([userDefaults objectForKey:@"password"]) {
-			[password setStringValue:[userDefaults objectForKey:@"password"]];
-		}
-		if ([userDefaults objectForKey:@"service type"]) {
-			[services selectItemWithTitle:[userDefaults objectForKey:@"service type"]];
-		}
-	}
-}
-
-/* dealloc */
-- (void) dealloc {
-    [recentlogins release];
-    [lastlogin release];
-	
-    recentlogins = nil;
-    lastlogin = nil;
-    [super dealloc];
-}
-
-/* recentlogins */
-- (NSMutableArray *) recentlogins { return recentlogins; }
-
-/* -setRecentlogins: */
-- (void) setRecentlogins: (NSMutableArray *) Recentlogins {
-    //NSLog(@"in -setRecentlogins:, old value of recentlogins: %@, changed to: %@", recentlogins, Recentlogins);
-    if (recentlogins != Recentlogins) {
-        [recentlogins autorelease];
-        recentlogins = [Recentlogins retain];
-    }
-}
-
-/* lastlogin */
-- (NSString *) lastlogin { return lastlogin; }
-
-/* -setLastlogin: */
-- (void) setLastlogin: (NSString *) Lastlogin {
-    //NSLog(@"in -setLastlogin:, old value of lastlogin: %@, changed to: %@", lastlogin, Lastlogin);
-    if (lastlogin != Lastlogin) {
-        [lastlogin autorelease];
-        lastlogin = [Lastlogin retain];
-    }
-}
-
-- (IBAction)login:(id)sender {
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	// save our recent accounts list
-	[usernamelist addItemWithObjectValue:[usernamelist stringValue]];
-	[userDefaults setObject:[usernamelist objectValues] forKey:@"recent usernames"];
-	// save our account info
-	// TODO -- this should be done only if user allows
-	[userDefaults setObject:[usernamelist stringValue] forKey:@"username"];
-	[userDefaults setObject:[password stringValue] forKey:@"password"];
-	[userDefaults setObject:[services titleOfSelectedItem] forKey:@"service type"];
-	[userDefaults synchronize]; // force a quick sync of user info
-	// load our service ..
-	if ([[services titleOfSelectedItem] isEqualToString:@"TypePad"]) {
-		[self init_typepad];
-	}
-	if ([[services titleOfSelectedItem] isEqualToString:@"Vox"]) {
-		[self init_vox];
-	}
-}
-
-- (void) init_typepad {
-	TypePad *tp = [[[TypePad alloc] init] autorelease];
-	if ([tp addAccount:[usernamelist stringValue] pass:[password stringValue]]) {
-		[tp saveAccounts];
-		[tp appNotify:@"You are now connected to TypePad" title:@"Connected"];
-		[NSBundle loadNibNamed:@"TypePad.nib" owner:self];
-		[mywindow close];
-	} else {
-		NSRunAlertPanel(@"Alert", @"Login Failed", @"OK", nil, nil);
-	}
-}
-
-- (void) init_vox {
-	Vox *vx = [[[Vox alloc] init] autorelease];
-	if ([vx addAccount:[usernamelist stringValue] pass:[password stringValue]]) {
-		[vx saveAccounts];
-		[vx appNotify:@"You are now connected to Vox" title:@"Connected"];
-		[NSBundle loadNibNamed:@"Vox.nib" owner:self];
-		[mywindow close];
-	} else {
-		NSRunAlertPanel(@"Alert", @"Login Failed", @"OK", nil, nil);
-	}
-}
-
-@end
Index: /unk/Vox.h
===================================================================
--- /trunk/Vox.h (revision 36)
+++  (revision )
@@ -1,45 +1,0 @@
-//
-//  Vox.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/9/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "AtomApi.h"
-#import "VoxAccount.h"
-
-@interface Vox : NSObject {
-	NSMutableDictionary *accounts;
-	NSString *defaultaccount;
-	NSMutableDictionary *ntypes;
-}
-
-- (NSMutableDictionary *) ntypes;
-- (void) setNtypes: (NSMutableDictionary *) Ntypes;
-
-- (NSMutableDictionary *) accounts;
-- (void) setAccounts: (NSMutableDictionary *) Accounts;
-
-- (NSString *) defaultaccount;
-- (void) setDefaultaccount: (NSString *) Defaultaccount;
-
-- (BOOL) addAccount: (NSString *) login pass: (NSString *) pass;
-- (void) saveAccounts;
-
-	// --- //
-- (void) appNotify: (NSString *) message title: (NSString *) title;
-
-- (void) dispatchAction: (NSPasteboard *) pb;
-
-- (void) handleTypeOne: (NSString *) text;
-- (void) handleTypeThree: (NSArray *) list;
-
-- (int) handleTypes: (NSPasteboard *) pb;
-- (NSArray *) allowTypes;
-
-- (NSArray *) defaultAccountCollections;
-- (NSString *) defaultAccountPass;
-
-@end
Index: /unk/HACKING
===================================================================
--- /trunk/HACKING (revision 18)
+++  (revision )
@@ -1,3 +1,0 @@
-Hacking
-
- - Make sure you link the Growl framework
Index: /unk/Vox.m
===================================================================
--- /trunk/Vox.m (revision 40)
+++  (revision )
@@ -1,211 +1,0 @@
-//
-//  Vox.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/9/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "Vox.h"
-#import "VoxAtomApi.h"
-
-@implementation Vox
-
-- (id) init {
-	static Vox *sharedInstance = nil;
-	if (sharedInstance) {
-        [self autorelease];
-        self = [sharedInstance retain];
-    } else {
-        self = [super init];
-        if (self) {
-            sharedInstance = [self retain];
-			accounts = [[NSMutableDictionary alloc] init];
-			defaultaccount = [[NSString alloc] init];
-			ntypes = [[NSMutableDictionary alloc] init];
-        }
-    }
-    return self;
-}
-
-+ Vox {
-	static Vox * sharedInstance = nil;
-	if ( sharedInstance == nil ) {
-		sharedInstance = [[self alloc] init];
-	}
-	return sharedInstance;
-}
-
-/* dealloc */
-- (void) dealloc {
-    [accounts release];
-	[defaultaccount release];
-	[ntypes release];
-	
-    accounts = nil;
-	ntypes = nil;
-	defaultaccount = nil;
-    [super dealloc];
-}
-
-
-/* accounts */
-- (NSMutableDictionary *) accounts { return accounts; }
-
-	/* -setAccounts: */
-- (void) setAccounts: (NSMutableDictionary *) Accounts {
-    //NSLog(@"in -setAccounts:, old value of accounts: %@, changed to: %@", accounts, Accounts);
-    if (accounts != Accounts) {
-        [accounts autorelease];
-        accounts = [Accounts retain];
-    }
-}
-
-/* defaultaccount */
-- (NSString *) defaultaccount { return defaultaccount; }
-
-	/* -setDefaultaccount: */
-- (void) setDefaultaccount: (NSString *) Defaultaccount {
-    //NSLog(@"in -setDefaultaccount:, old value of defaultaccount: %@, changed to: %@", defaultaccount, Defaultaccount);
-    if (defaultaccount != Defaultaccount) {
-        [defaultaccount autorelease];
-        defaultaccount = [Defaultaccount retain];
-    }
-}
-
-/* ntypes */
-- (NSMutableDictionary *) ntypes { return ntypes; }
-
-	/* -setNtypes: */
-- (void) setNtypes: (NSMutableDictionary *) Ntypes {
-    //NSLog(@"in -setNtypes:, old value of ntypes: %@, changed to: %@", ntypes, Ntypes);
-    if (ntypes != Ntypes) {
-        [ntypes autorelease];
-        ntypes = [Ntypes retain];
-    }
-}
-
-- (BOOL) addAccount: (NSString *) login pass: (NSString *) pass {
-	VoxAccount *vxuser = [[[VoxAccount alloc] init] autorelease];
-	[vxuser setUsername:login];
-	[vxuser setPassword:pass];
-	[vxuser discoverCollections];
-	if ([vxuser hasCollections]) {
-		[accounts setObject:vxuser forKey:login];
-		[self setDefaultaccount:login];
-		return YES;
-	}
-	return NO;
-}
-
-- (void) saveAccounts {
-	NSMutableData *data = [NSMutableData data];
-	NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
-	// TODO -- keep our dataset as bin data, find a better way of doing this
-	// [archiver setOutputFormat:NSPropertyListXMLFormat_v1_0];
-	NSEnumerator *enumerator = [accounts keyEnumerator];
-	id key;
-	while (key = [enumerator nextObject]) {
-		[archiver encodeObject:[accounts objectForKey:key] forKey:key];
-	}
-	[archiver finishEncoding];
-	[archiver release];
-	
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	[userDefaults setObject:data forKey:@"Vox Accounts"];
-	[userDefaults synchronize];
-}
-
-
-/** other stuff **/
-
-- (void) appNotify: (NSString *) message title: (NSString *) title {
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	// NSString *usegrowl = [userDefaults objectForKey:@"enable_growl"];
-	if ([userDefaults objectForKey:@"enable_growl"]) {
-		[GrowlApplicationBridge notifyWithTitle:title description:message notificationName:@"Fence" iconData:nil priority:0 isSticky:NO clickContext:nil];
-	}
-}
-
-- (void) dispatchAction: (NSPasteboard *) pb {
-	int actionType = [self handleTypes:pb];
-	if (actionType == 3) {
-		[self handleTypeThree:[pb propertyListForType:@"NSFilenamesPboardType"]];
-	}
-	if (actionType == 1) {
-		[self handleTypeOne:[ntypes objectForKey:@"stringForType:_NSStringPboardType"]];
-	}
-}
-
-// text
-- (void) handleTypeOne: (NSString *) text {
-// NSLog(@"- (void) handleTypeOne: (NSString *) text - called\n");
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSString *postloc = [userDefaults objectForKey:@"text destination type"];
-	if ([postloc isEqualToString:@"1"]) {
-		if ([userDefaults objectForKey:@"vox text destination id"]) {
-			VoxAtomApi *client = [[VoxAtomApi alloc] init];
-			[client setAuth:[self defaultaccount] pass:[self defaultAccountPass]];
-			[client setDataarg:text];
-			[client newpost:@"quickpost" args:[NSDictionary dictionaryWithObjectsAndKeys:[userDefaults objectForKey:@"vox text destination id"], @"destinationid", nil]];
-			[self appNotify:[NSString stringWithFormat:@"A new post has been created."] title:@"Post created"];
-		}
-	}
-}
-
-// image
-- (void) handleTypeThree: (NSArray *) list {
-// NSLog(@"- (void) handleTypeThree: (NSArray *) list - called\n");
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSString *postloc = [userDefaults objectForKey:@"vox image destination type"];
-	if ([postloc isEqualToString:@"1"]) {
-		if ([userDefaults objectForKey:@"vox image destination id"]) {
-			NSEnumerator *enumerator = [list objectEnumerator]; 
-			NSString *path; 
-			while( path = [enumerator nextObject] ) { 
-// NSLog([NSString stringWithFormat:@"Uploading file %@", path]);
-				VoxAtomApi *client = [[[VoxAtomApi alloc] init] autorelease];
-				[client setAuth:[self defaultaccount] pass:[self defaultAccountPass]];
-				[client setDataarg:path];
-				[client newpost:@"collection" args:[NSDictionary dictionaryWithObjectsAndKeys:[userDefaults objectForKey:@"vox image destination id"], @"destinationid", nil]];
-				[self appNotify:[NSString stringWithFormat:@"File '%@' has been uploaded", [client filename]] title:@"File Uploaded"];
-			}
-		}
-	}
-}
-
-- (int) handleTypes: (NSPasteboard *) pb {
-// NSLog(@"- (int) handleTypes:(NSPasteboard *) pb - called\n");
-    NSArray *types = [self allowTypes];
-	unsigned int i, count = [types count];
-	int totalcount = 0;
-	id methods[] = {@"stringForType:", @"propertyListForType:"};
-	for (i = 0; i < count; i++) {
-		int m;
-		NSString *type = [types objectAtIndex:i];
-		for (m = 0; m < 2; m++) {
-			id obj = [pb performSelector:NSSelectorFromString(methods[m]) withObject:type];
-			if (obj) {
-				totalcount++;
-				[ntypes setObject:[obj description] forKey:[NSString stringWithFormat:@"%@_%@",  methods[m], type]];
-// NSLog(@"%@ - %@ - %@\n",  methods[m], type, [obj description]);
-			}
-		}
-	}
-	if (totalcount == 1) { return 1; }
-	return 3;
-}
-
-- (NSArray *) allowTypes {
-	return [NSArray arrayWithObjects:NSURLPboardType, NSStringPboardType, NSFilenamesPboardType, NSHTMLPboardType, nil];
-}
-
-- (NSArray *) defaultAccountCollections {
-	return [[accounts objectForKey:[self defaultaccount]] myCollections];
-}
-
-- (NSString *) defaultAccountPass {
-	return [[accounts objectForKey:[self defaultaccount]] password];
-}
-
-@end
Index: /unk/VoxTransParentWindow.h
===================================================================
--- /trunk/VoxTransParentWindow.h (revision 30)
+++  (revision )
@@ -1,9 +1,0 @@
-/* VoxTransParentWindow */
-
-#import <Cocoa/Cocoa.h>
-
-@interface VoxTransParentWindow : NSWindow {
-	NSPoint initialLocation;
-	NSUserDefaults *prefs;
-}
-@end
Index: /unk/TypePadGallery.h
===================================================================
--- /trunk/TypePadGallery.h (revision 41)
+++  (revision )
@@ -1,26 +1,0 @@
-//
-//  TypePadGallery.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 5/15/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface TypePadGallery : NSObject {
-	NSString *_GalleryID;
-	NSString *_GalleryURL;
-	NSString *_GalleryTitle;
-}
-
-- (NSString *) galleryID;
-- (void) setGalleryID: (NSString *) GalleryID;
-
-- (NSString *) galleryURL;
-- (void) setGalleryURL: (NSString *) GalleryURL;
-
-- (NSString *) galleryTitle;
-- (void) setGalleryTitle: (NSString *) GalleryTitle;
-
-@end
Index: /unk/TypePadWeblogComment.h
===================================================================
--- /trunk/TypePadWeblogComment.h (revision 41)
+++  (revision )
@@ -1,39 +1,0 @@
-//
-//  TypePadWeblogComment.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/19/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-
-@interface TypePadWeblogComment : NSObject {
-	NSString *blogid;
-	NSString *commentid;
-	NSString *author_name;
-	NSString *author_url;
-	NSString *author_email;
-	NSString *text;
-}
-
-- (NSString *) blogid;
-- (void) setBlogid: (NSString *) Blogid;
-
-- (NSString *) commentid;
-- (void) setCommentid: (NSString *) Commentid;
-
-- (NSString *) uthor_name;
-- (void) setUthor_name: (NSString *) Uthor_name;
-
-- (NSString *) uthor_url;
-- (void) setUthor_url: (NSString *) Uthor_url;
-
-- (NSString *) uthor_email;
-- (void) setUthor_email: (NSString *) Uthor_email;
-
-- (NSString *) text;
-- (void) setText: (NSString *) Text;
-
-@end
Index: /unk/VoxTransParentWindow.m
===================================================================
--- /trunk/VoxTransParentWindow.m (revision 41)
+++  (revision )
@@ -1,51 +1,0 @@
-#import "VoxTransParentWindow.h"
-
-@implementation VoxTransParentWindow
-
-- (id)initWithContentRect:(NSRect)contentRect
-				styleMask:(unsigned int)aStyle 
-				  backing:(NSBackingStoreType)bufferingType 
-					defer:(BOOL)flag
-{
-    
-    if (self = [super initWithContentRect:contentRect 
-								styleMask:NSBorderlessWindowMask 
-								  backing:NSBackingStoreBuffered 
-									defer:NO]) {
-        [self setLevel: NSStatusWindowLevel];
-        [self setBackgroundColor: [NSColor clearColor]];
-        [self setAlphaValue:1.0];
-        [self setOpaque:NO];
-        [self setHasShadow:NO];
-        return self;
-    }
-    return nil;
-}
-
-- (BOOL) canBecomeKeyWindow {
-    return YES;
-}
-
-- (void)mouseDragged:(NSEvent *)theEvent {
-    NSPoint currentLocation;
-    NSPoint newOrigin;
-    NSRect  screenFrame = [[NSScreen mainScreen] frame];
-    NSRect  windowFrame = [self frame];
-    currentLocation = [self convertBaseToScreen:[self mouseLocationOutsideOfEventStream]];
-    newOrigin.x = currentLocation.x - initialLocation.x;
-    newOrigin.y = currentLocation.y - initialLocation.y;
-    if( (newOrigin.y + windowFrame.size.height) > (NSMaxY(screenFrame) - [NSMenuView menuBarHeight]) ){
-		newOrigin.y = NSMaxY(screenFrame) - windowFrame.size.height - [NSMenuView menuBarHeight];
-    }
-    [self setFrameOrigin:newOrigin];
-}
-
-- (void)mouseDown:(NSEvent *)theEvent {
-    NSRect windowFrame = [self frame];
-    initialLocation = [self convertBaseToScreen:[theEvent locationInWindow]];
-    initialLocation.x -= windowFrame.origin.x;
-    initialLocation.y -= windowFrame.origin.y;
-}
-
-
-@end
Index: /unk/TypePadGallery.m
===================================================================
--- /trunk/TypePadGallery.m (revision 30)
+++  (revision )
@@ -1,90 +1,0 @@
-//
-//  TypePadGallery.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 5/15/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TypePadGallery.h"
-
-@implementation TypePadGallery
-
-- (id) init {
-    if (self = [super init]) {
-		_GalleryID = [[NSString alloc] init];
-		_GalleryURL = [[NSString alloc] init];
-		_GalleryTitle = [[NSString alloc] init];
-		[self retain];
-    }
-    return self;
-}
-
-/* dealloc */
-- (void) dealloc {
-    [_GalleryID release];
-    [_GalleryURL release];
-    [_GalleryTitle release];
-	
-    _GalleryID = nil;
-    _GalleryURL = nil;
-    _GalleryTitle = nil;
-    [super dealloc];
-}
-
-- (void) encodeWithCoder: (NSCoder *)coder {
-    // [super encodeWithCoder: coder];
-    [coder encodeObject: [self galleryID] forKey: @"_GalleryID"];
-    [coder encodeObject: [self galleryURL] forKey: @"_GalleryURL"];
-    [coder encodeObject: [self galleryTitle] forKey: @"_GalleryTitle"];
-}
-
-- (id) initWithCoder: (NSCoder *)coder {
-    // if ([super initWithCoder: coder]) {
-        [self setGalleryID: [coder decodeObjectForKey: @"_GalleryID"]];
-        [self setGalleryURL: [coder decodeObjectForKey: @"_GalleryURL"]];
-        [self setGalleryTitle: [coder decodeObjectForKey: @"_GalleryTitle"]];
-    // }
-    return self;
-}
-
-/* galleryID */
-- (NSString *) galleryID { return _GalleryID; }
-
-	/* -setGalleryID: */
-- (void) setGalleryID: (NSString *) GalleryID {
-    //NSLog(@"in -setGalleryID:, old value of _GalleryID: %@, changed to: %@", _GalleryID, GalleryID);
-	
-    if (_GalleryID != GalleryID) {
-        [_GalleryID autorelease];
-        _GalleryID = [GalleryID retain];
-    }
-}
-
-/* galleryURL */
-- (NSString *) galleryURL { return _GalleryURL; }
-
-	/* -setGalleryURL: */
-- (void) setGalleryURL: (NSString *) GalleryURL {
-    //NSLog(@"in -setGalleryURL:, old value of _GalleryURL: %@, changed to: %@", _GalleryURL, GalleryURL);
-	
-    if (_GalleryURL != GalleryURL) {
-        [_GalleryURL autorelease];
-        _GalleryURL = [GalleryURL retain];
-    }
-}
-
-/* galleryTitle */
-- (NSString *) galleryTitle { return _GalleryTitle; }
-
-	/* -setGalleryTitle: */
-- (void) setGalleryTitle: (NSString *) GalleryTitle {
-    //NSLog(@"in -setGalleryTitle:, old value of _GalleryTitle: %@, changed to: %@", _GalleryTitle, GalleryTitle);
-	
-    if (_GalleryTitle != GalleryTitle) {
-        [_GalleryTitle autorelease];
-        _GalleryTitle = [GalleryTitle retain];
-    }
-}
-
-@end
Index: /unk/TypePadDiscovery.h
===================================================================
--- /trunk/TypePadDiscovery.h (revision 2)
+++  (revision )
@@ -1,21 +1,0 @@
-//
-//  blogdiscovery.h
-//  blogdiscovery
-//
-//  Created by Nicholas Gerakines on 4/30/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "TypePad.h"
-#import "TypePadWeblog.h"
-#import "TypePadGallery.h"
-
-@interface TypePadDiscovery : TypePad {
-
-}
-- (void) discover: (NSString *)login password:(NSString *)password warp:(NSString *)warp;
-- (NSString *)makeNonce;
-- (NSString *) parseId:(NSString *)tmp;
-
-@end
Index: /unk/TypePadWeblogComment.m
===================================================================
--- /trunk/TypePadWeblogComment.m (revision 41)
+++  (revision )
@@ -1,139 +1,0 @@
-//
-//  TypePadWeblogComment.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/19/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TypePadWeblogComment.h"
-
-
-@implementation TypePadWeblogComment
-
-// init
-- (id)init {
-    if (self = [super init]) {
-        [self setBlogid:@""];
-        [self setCommentid:@""];
-        [self setUthor_name:@""];
-        [self setUthor_url:@""];
-        [self setUthor_email:@""];
-        [self setText:@""];
-    }
-    return self;
-}
-
-- (void) encodeWithCoder: (NSCoder *)coder {
-    [coder encodeObject: [self blogid] forKey: @"WeblogBlogid"];
-    [coder encodeObject: [self commentid] forKey: @"WeblogCommentid"];
-    [coder encodeObject: [self uthor_name] forKey: @"WeblogUthor_name"];
-    [coder encodeObject: [self uthor_url] forKey: @"WeblogUthor_url"];
-    [coder encodeObject: [self uthor_email] forKey: @"WeblogUthor_email"];
-    [coder encodeObject: [self text] forKey: @"WeblogText"];
-}
-
-- (id) initWithCoder: (NSCoder *)coder {
-	[self setBlogid: [coder decodeObjectForKey: @"WeblogBlogid"]];
-	[self setCommentid: [coder decodeObjectForKey: @"WeblogCommentid"]];
-	[self setUthor_name: [coder decodeObjectForKey: @"WeblogUthor_name"]];
-	[self setUthor_url: [coder decodeObjectForKey: @"WeblogUthor_url"]];
-	[self setUthor_email: [coder decodeObjectForKey: @"WeblogUthor_email"]];
-	[self setText: [coder decodeObjectForKey: @"WeblogText"]];
-    return self;
-}
-
-/* blogid */
-- (NSString *) blogid { return blogid; }
-
-/* -setBlogid: */
-- (void) setBlogid: (NSString *) Blogid {
-    //NSLog(@"in -setBlogid:, old value of blogid: %@, changed to: %@", blogid, Blogid);
-    if (blogid != Blogid) {
-        [blogid autorelease];
-        blogid = [Blogid retain];
-    }
-}
-
-/* commentid */
-- (NSString *) commentid { return commentid; }
-
-/* -setCommentid: */
-- (void) setCommentid: (NSString *) Commentid {
-    //NSLog(@"in -setCommentid:, old value of commentid: %@, changed to: %@", commentid, Commentid);
-    if (commentid != Commentid) {
-        [commentid autorelease];
-        commentid = [Commentid retain];
-    }
-}
-
-/* uthor_name */
-- (NSString *) uthor_name { return author_name; }
-
-/* -setUthor_name: */
-- (void) setUthor_name: (NSString *) Uthor_name {
-    //NSLog(@"in -setUthor_name:, old value of author_name: %@, changed to: %@", author_name, Uthor_name);
-    if (author_name != Uthor_name) {
-        [author_name autorelease];
-        author_name = [Uthor_name retain];
-    }
-}
-
-/* uthor_url */
-- (NSString *) uthor_url { return author_url; }
-
-/* -setUthor_url: */
-- (void) setUthor_url: (NSString *) Uthor_url {
-    //NSLog(@"in -setUthor_url:, old value of author_url: %@, changed to: %@", author_url, Uthor_url);
-    if (author_url != Uthor_url) {
-        [author_url autorelease];
-        author_url = [Uthor_url retain];
-    }
-}
-
-/* uthor_email */
-- (NSString *) uthor_email { return author_email; }
-
-/* -setUthor_email: */
-- (void) setUthor_email: (NSString *) Uthor_email {
-    //NSLog(@"in -setUthor_email:, old value of author_email: %@, changed to: %@", author_email, Uthor_email);
-    if (author_email != Uthor_email) {
-        [author_email autorelease];
-        author_email = [Uthor_email retain];
-    }
-}
-
-/* text */
-- (NSString *) text { return text; }
-
-/* -setText: */
-- (void) setText: (NSString *) Text {
-    //NSLog(@"in -setText:, old value of text: %@, changed to: %@", text, Text);
-    if (text != Text) {
-        [text autorelease];
-        text = [Text retain];
-    }
-}
-
-
-/* dealloc */
-- (void) dealloc {
-    [blogid release];
-    [commentid release];
-    [author_name release];
-    [author_url release];
-    [author_email release];
-    [text release];
-	
-    blogid = nil;
-    commentid = nil;
-    author_name = nil;
-    author_url = nil;
-    author_email = nil;
-    text = nil;
-    [super dealloc];
-}
-
-
-
-@end
Index: /unk/TypePadDiscovery.m
===================================================================
--- /trunk/TypePadDiscovery.m (revision 7)
+++  (revision )
@@ -1,77 +1,0 @@
-//
-//  blogdiscovery.m
-//  blogdiscovery
-//
-//  Created by Nicholas Gerakines on 4/30/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TypePadDiscovery.h"
-#import "AtomExtensions.h"
-
-@implementation TypePadDiscovery
-
-- (void) discover: (NSString *)login password:(NSString *)password warp:(NSString *)warp{
-	NSString *tpurl = [NSString stringWithFormat:@"https://www.typepad.com/t/atom/%@", warp];
-	NSURL *aURL = [NSURL URLWithString:tpurl];
-	NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:aURL];
-	NSString *nonce = [self makeNonce];
-	NSString *encodedNonce = [nonce stringUsingBase64Encoding];
-	NSString *created = [[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%dT%H:%M:%SZ" timeZone:nil locale:nil];
-	NSString *passwordDigest = [[[NSString stringWithFormat:@"%@%@%@", nonce, created, password] stringUsingSHA1RawHash] stringUsingBase64Encoding];
-	[request addValue:[aURL host] forHTTPHeaderField:@"Host"];
-	[request addValue:@"BlogDiscovery/0.1" forHTTPHeaderField:@"User-Agent"];
-	[request addValue:@"WSSE profile=\"UsernameToken\"" forHTTPHeaderField:@"Authorization"];
-	[request addValue:[NSString stringWithFormat:@"UsernameToken Username=\"%@\", PasswordDigest=\"%@\", Created=\"%@\", Nonce=\"%@\"", login, passwordDigest, created, encodedNonce] forHTTPHeaderField:@"X-WSSE"];
-	[request addValue:@"application/atom+xml" forHTTPHeaderField:@"Content-Type"];
-	[request addValue:@"0" forHTTPHeaderField: @"Content-Length"];
-	[request setHTTPMethod:@"GET"];
-	[request addValue:@"close" forHTTPHeaderField:@"Connection"];
-	NSURLResponse* response;
-	NSError* error;
-	NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
-	NSString *blork = [[NSString alloc] initWithData:responseData  encoding: NSASCIIStringEncoding];
-	/* NSLog(@"Response: %@\n", blork); */
-	NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithXMLString:blork options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:&error];
-	NSArray *nodes = [xmlDoc nodesForXPath:@"/feed/link[@rel=\"service.post\"]" error:&error];
-	int arrayCount = [nodes count];
-	int i = 0;
-	for (i = 0; i < arrayCount; i++) {
-		NSXMLElement *token = [nodes objectAtIndex:i];
-		if ([warp isEqualToString:@"weblog"]) {
-			TypePadWeblog *tpobj = [[TypePadWeblog alloc] init];
-			[tpobj setWeblogID:[self parseId:[[token attributeForName:@"href"] stringValue]]];
-			[tpobj setWeblogTitle:[[token attributeForName:@"title"] stringValue]];
-			[tpobj setWeblogURL:[[token attributeForName:@"href"] stringValue]];
-			/* NSLog([NSString stringWithFormat:@"Blog: %d\n", i]); */
-			/* NSLog(@"Id: %@\n", [tpobj WeblogID]); */
-			/* NSLog(@"Title: %@\n", [tpobj WeblogTitle]); */
-			/* NSLog(@"URL: %@\n", [tpobj WeblogURL]); */
-			[blogs setObject:[tpobj ExportData] forKey:[tpobj WeblogID]];
-		}
-		if ([warp isEqualToString:@"gallery"]) {
-			TypePadGallery *tpobj = [[TypePadGallery alloc] init];
-			[tpobj setGalleryID:[self parseId:[[token attributeForName:@"href"] stringValue]]];
-			[tpobj setGalleryTitle:[[token attributeForName:@"title"] stringValue]];
-			[tpobj setGalleryURL:[[token attributeForName:@"href"] stringValue]];
-			/* NSLog([NSString stringWithFormat:@"Gallery: %d\n", i]); */
-			/* NSLog(@"Id: %@\n", [tpobj GalleryID]); */
-			/* NSLog(@"Title: %@\n", [tpobj GalleryTitle]); */
-			/* NSLog(@"URL: %@\n", [tpobj GalleryURL]); */
-			[galleries setObject:[tpobj ExportData] forKey:[tpobj GalleryID]];
-		}
-	}
-}
-
-- (NSString *)makeNonce {
-	NSDate *timestamp = [NSDate date];
-	NSString *nonce = [[NSString stringWithFormat:@"%@:%@", [timestamp descriptionWithCalendarFormat:@"%Y-%m-%dT%H:%M:%SZ" timeZone:nil locale:nil], @"private"] stringUsingSHA1HexadecimalHash];
-	return [NSString stringWithFormat:@"%@ %@", [timestamp descriptionWithCalendarFormat:@"%Y-%m-%dT%H:%M:%SZ" timeZone:nil locale:nil], nonce];
-}
-
-- (NSString *) parseId:(NSString *)tmp {
-	NSArray *lines = [tmp componentsSeparatedByString:@"="];
-	return [lines objectAtIndex:1];
-}
-
-@end
Index: /unk/VoxImageDragArea.h
===================================================================
--- /trunk/VoxImageDragArea.h (revision 30)
+++  (revision )
@@ -1,8 +1,0 @@
-/* VoxImageDragArea */
-
-#import <Cocoa/Cocoa.h>
-
-@interface VoxImageDragArea : NSImageView
-{
-}
-@end
Index: /unk/ImageDragArea.h
===================================================================
--- /trunk/ImageDragArea.h (revision 30)
+++  (revision )
@@ -1,7 +1,0 @@
-/* ImageDragArea */
-
-#import <Cocoa/Cocoa.h>
-
-@interface ImageDragArea : NSImageView {
-}
-@end
Index: /unk/TypePadController.h
===================================================================
--- /trunk/TypePadController.h (revision 41)
+++  (revision )
@@ -1,14 +1,0 @@
-/* TypePadController */
-
-#import <Cocoa/Cocoa.h>
-
-@interface TypePadController : NSObject {
-	IBOutlet id bloglist;
-	IBOutlet id commentlist;
-}
-
-- (IBAction)refreshcomments:(id)sender;
-
-- (void) init_comemode;
-
-@end
Index: /unk/VoxImageDragArea.m
===================================================================
--- /trunk/VoxImageDragArea.m (revision 36)
+++  (revision )
@@ -1,34 +1,0 @@
-#import "VoxImageDragArea.h"
-#import "Vox.h"
-
-@implementation VoxImageDragArea
-
-- (void) setImage:(NSImage *)image { }
-
-- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
-	/* NSLog(@"- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender - called\n"); */
-    if ((NSDragOperationGeneric & [sender draggingSourceOperationMask]) == NSDragOperationGeneric) {
-        return NSDragOperationGeneric;
-	}
-	if ((NSDragOperationCopy & [sender draggingSourceOperationMask]) == NSDragOperationCopy) {
-		return NSDragOperationCopy;
-	}
-	return NSDragOperationNone;
-}
-
-- (void)draggingExited:(id <NSDraggingInfo>)sender { }
-
-- (void)draggingEnded:(id <NSDraggingInfo>)sender { }
-
-- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender { return YES; }
-
-- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender {
-	/* NSLog(@"- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender - called\n"); */
-	Vox *vx = [[[Vox alloc] init] autorelease];
-	[vx dispatchAction:[sender draggingPasteboard]];
-	[self setNeedsDisplay:YES];
-    return YES;
-}
-
-
-@end
Index: /unk/ImageDragArea.m
===================================================================
--- /trunk/ImageDragArea.m (revision 40)
+++  (revision )
@@ -1,38 +1,0 @@
-#import "ImageDragArea.h"
-#import "TypePad.h"
-
-@implementation ImageDragArea
-
-- (void) setImage:(NSImage *)image { }
-
-- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
-	/* NSLog(@"- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender - called\n"); */
-    if ((NSDragOperationGeneric & [sender draggingSourceOperationMask]) == NSDragOperationGeneric) {
-        return NSDragOperationGeneric;
-	}
-	if ((NSDragOperationCopy & [sender draggingSourceOperationMask]) == NSDragOperationCopy) {
-		return NSDragOperationCopy;
-	}
-	return NSDragOperationNone;
-}
-
-- (void)draggingExited:(id <NSDraggingInfo>)sender { }
-
-- (void)draggingEnded:(id <NSDraggingInfo>)sender { }
-
-- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender { return YES; }
-
-- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender {
-// NSLog$1(@"- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender - called\n");
-	TypePad *tp = [[[TypePad alloc] init] autorelease];
-	[tp dispatchAction:[sender draggingPasteboard]];
-	[self setNeedsDisplay:YES];
-    return YES;
-}
-
-- (void)dealloc {
-    [self unregisterDraggedTypes];
-    [super dealloc];
-}
-
-@end
Index: /unk/TypePadController.m
===================================================================
--- /trunk/TypePadController.m (revision 41)
+++  (revision )
@@ -1,27 +1,0 @@
-#import "TypePadController.h"
-#import "TypePad.h"
-#import "TypePadWeblog.h"
-
-@implementation TypePadController
-
-
-- (void)awakeFromNib {
-	[self init_comemode];
-}
-
-- (IBAction)refreshcomments:(id)sender {
-	// .. //
-}
-
-- (void) init_comemode {
-	[bloglist removeAllItems];
-	id key;
-	TypePad *tp = [[[TypePad alloc] init] autorelease];
-	NSEnumerator *blog_enumerator = [[tp defaultAccountWeblogs] objectEnumerator];
-	while (key = [blog_enumerator nextObject]) {
-		TypePadWeblog *tpobj = key;
-		[bloglist addItemWithTitle:[NSString stringWithFormat:@"Weblog: %@", [tpobj weblogTitle]]];
-	}
-}
-
-@end
Index: /unk/AtomExtensions.h
===================================================================
--- /trunk/AtomExtensions.h (revision 2)
+++  (revision )
@@ -1,28 +1,0 @@
-//
-//  AtomExtensions.h
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@interface NSString (AtomExtensions)
-- (NSString *)stringUsingBase64Encoding;
-- (NSString *)stringUsingBase64EncodingWithLineLength:(int)lineLength;
-- (NSString *)stringUsingBase64Decoding;
-- (NSData *)dataUsingBase64Decoding;
-- (NSString *)stringUsingSHA1HexadecimalHash;
-- (NSString *)stringUsingSHA1RawHash;
-- (NSString *)stringByUnescapingHTMLEntities;
-- (NSString *)stringByEscapingHTMLEntities;
-- (NSString *)stringByAddingPercentEscapes;
-- (NSString *)stringByReplacingPercentEscapes;
-@end
-
-@interface NSData (AtomExtensions)
-- (NSString *)stringUsingEncoding:(NSStringEncoding)encoding;
-- (NSString *)stringUsingBase64Encoding;
-- (NSString *)stringUsingBase64EncodingWithLineLength:(int)lineLength;
-@end
Index: /unk/TypePadAccount.h
===================================================================
--- /trunk/TypePadAccount.h (revision 41)
+++  (revision )
@@ -1,87 +1,0 @@
-//
-//  TypePadAccount.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/10/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-
-@interface TypePadAccount : NSObject {
-	NSString *username;
-	NSString *password;
-	NSString *nickname;
-	NSMutableArray *weblogs;
-	NSMutableArray *galleries;
-	NSMutableArray *typelists;
-	NSMutableArray *comments;
-	BOOL hasWeblog;
-	BOOL hasGallery;
-	BOOL hasTypeList;
-	NSString *defaultWeblog;
-	NSString *defaultGallery;
-}
-
-- (NSString *) username;
-- (void) setUsername: (NSString *) Username;
-
-- (NSString *) password;
-- (void) setPassword: (NSString *) Password;
-
-- (NSString *) nickname;
-- (void) setNickname: (NSString *) Nickname;
-
-- (BOOL) hasWeblog;
-- (void) setHasWeblog: (BOOL) flag;
-
-- (BOOL) hasGallery;
-- (void) setHasGallery: (BOOL) flag;
-
-- (BOOL) hasTypeList;
-- (void) setHasTypeList: (BOOL) flag;
-
-- (NSString *) defaultWeblog;
-- (void) setDefaultWeblog: (NSString *) DefaultWeblog;
-
-- (NSString *) defaultGallery;
-- (void) setDefaultGallery: (NSString *) DefaultGallery;
-
-///////  weblogs  ///////
-- (NSMutableArray *) weblogs;
-- (void) setWeblogs: (NSMutableArray *) Weblogs;
-- (unsigned int) countOfWeblogs;
-- (id) objectInWeblogsAtIndex: (unsigned int)index;
-- (void) insertObject: (id)anObject inWeblogsAtIndex: (unsigned int)index;
-- (void) removeObjectFromWeblogsAtIndex: (unsigned int)index;
-- (void) replaceObjectInWeblogsAtIndex: (unsigned int)index withObject: (id)anObject;
-
-///////  galleries  ///////
-- (NSMutableArray *) galleries;
-- (void) setGalleries: (NSMutableArray *) Galleries;
-- (unsigned int) countOfGalleries;
-- (id) objectInGalleriesAtIndex: (unsigned int)index;
-- (void) insertObject: (id)anObject inGalleriesAtIndex: (unsigned int)index;
-- (void) removeObjectFromGalleriesAtIndex: (unsigned int)index;
-- (void) replaceObjectInGalleriesAtIndex: (unsigned int)index withObject: (id)anObject;
-
-///////  typelists  ///////
-- (NSMutableArray *) typelists;
-- (void) setTypelists: (NSMutableArray *) Typelists;
-- (unsigned int) countOfTypelists;
-- (id) objectInTypelistsAtIndex: (unsigned int)index;
-- (void) insertObject: (id)anObject inTypelistsAtIndex: (unsigned int)index;
-- (void) removeObjectFromTypelistsAtIndex: (unsigned int)index;
-- (void) replaceObjectInTypelistsAtIndex: (unsigned int)index withObject: (id)anObject;
-
-///////  discovery  ///////
-
-- (void) discoverWeblogs;
-- (void) discoverGalleries;
-- (void) getComments:(NSString *) blogId;
-
-///////  utility  ///////
-- (NSString *) parseId:(NSString *)tmp;
-
-@end
Index: /unk/AppController.h
===================================================================
--- /trunk/AppController.h (revision 45)
+++  (revision )
@@ -1,11 +1,0 @@
-/* $Id $ */
-/* AppController */
-
-#import <Cocoa/Cocoa.h>
-#import <Growl/Growl.h>
-
-@interface AppController : NSObject {
-
-}
-
-@end
Index: /unk/AtomExtensions.m
===================================================================
--- /trunk/AtomExtensions.m (revision 2)
+++  (revision )
@@ -1,353 +1,0 @@
-//
-//  AtomExtensions.m
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "AtomExtensions.h"
-
-// Needed by the sha1 openssl functions
-// Must set Header Search Paths = /usr/include/openssl
-// Must set Other Linker Flags = -lcrypto -lssl
-#import <evp.h>
-
-@implementation NSString (AtomExtensions)
-static char gEncodingTable[ 64 ] = {
-	'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
-	'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
-	'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
-	'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'
-};
-
-- (NSString *)stringUsingBase64Encoding {
-	return [self stringUsingBase64EncodingWithLineLength:0];
-}
-
-- (NSString *)stringUsingBase64EncodingWithLineLength:(int)lineLength {
-	/*
-	 Encode the NSString. Some funny stuff about linelength -- it only makes
-	 sense to make it a multiple of 4. If it's not a multiple of 4, we make it
-	 so (by only checking it every 4 characters). 
-	 
-	 Further, if it's 0, we don't add any line breaks at all.
-	 */
-	
-    NSMutableString *result = nil;
-    unsigned long textIndex;
-    unsigned long textLength;
-    long charactersRemaining;
-    unsigned char inputBuffer[3], outputBuffer[4];
-    short i;
-    short charactersOnLine = 0, characterCopy;
-    unsigned long index;
-	
-	
-    textIndex = 0;
-	
-    textLength = [self length];
-    result = [NSMutableString stringWithCapacity:textLength];
-	
-    while (YES) {
-        charactersRemaining = textLength - textIndex;
-		
-        if (charactersRemaining <= 0) {
-            break;
-		}
-		
-        for (i = 0; i < 3; i++) {
-            index = textIndex + i;
-			
-            if (index < textLength) {
-				inputBuffer[i] = [self characterAtIndex:index];
-			} else {
-                inputBuffer[i] = 0;
-			}
-        } // for
-		
-        outputBuffer[0] = (inputBuffer[0] & 0xFC) >> 2;
-        outputBuffer[1] = ((inputBuffer[0] & 0x03) << 4) | ((inputBuffer[1] & 0xF0) >> 4);
-        outputBuffer[2] = ((inputBuffer[1] & 0x0F) << 2) | ((inputBuffer[2] & 0xC0) >> 6);
-        outputBuffer[3] = inputBuffer[2] & 0x3F;
-		
-        characterCopy = 4;
-		
-        switch (charactersRemaining) {
-            case 1: 
-                characterCopy = 2; 
-                break;
-				
-            case 2: 
-                characterCopy = 3; 
-                break;
-        } // switch
-        
-        for (i = 0; i < characterCopy; i++) {
-            [result appendFormat:@"%c", gEncodingTable[outputBuffer[i]] ];
-		}
-		
-        for (i = characterCopy; i < 4; i++) {
-            [result appendFormat:@"%c", '='];
-		}
-		
-        textIndex += 3;
-		
-        charactersOnLine += 4;
-		
-        if (lineLength > 0) { // DW 4/8/97 -- 0 means no line breaks 
-            if (charactersOnLine >= lineLength) {
-                charactersOnLine = 0;
-				
-                [result appendString:@"\n"];
-            }
-        }
-    } // while
-	
-	return result;
-}
-
-- (NSString *)stringUsingBase64Decoding {
-	return [[self dataUsingBase64Decoding] stringUsingEncoding:NSUTF8StringEncoding];
-}
-
-- (NSData *)dataUsingBase64Decoding {
-	NSMutableData *decodedData;
-	unsigned long textIndex;
-	unsigned long textLength;
-	unsigned char ch;
-	unsigned char inputBuffer[3], outputBuffer[4];
-	short i, indexInBuffer;
-	BOOL shouldIgnore;
-	BOOL isEndOfText = NO;
-	
-	textLength = [self length];
-	decodedData = [NSMutableData dataWithCapacity:textLength];
-	
-	textIndex = 0;
-	indexInBuffer = 0;
-	
-	while (YES) {
-		if (textIndex >= textLength) {
-			break;
-		}
-		
-		ch = [self characterAtIndex:textIndex++];
-		
-		shouldIgnore = NO;
-		
-		if ((ch >= 'A') && (ch <= 'Z')) {
-			ch = ch - 'A';
-		} else if ((ch >= 'a') && (ch <= 'z')) {
-			ch = ch - 'a' + 26;
-		} else if ((ch >= '0') && (ch <= '9')) {
-			ch = ch - '0' + 52;
-		} else if (ch == '+') {
-			ch = 62;
-		} else if (ch == '=') { // no op -- can't ignore this one 
-			isEndOfText = YES;
-		} else if (ch == '/') {
-			ch = 63;
-		} else {
-			shouldIgnore = YES;
-		}
-		
-		if (!shouldIgnore) {
-			short	charactersInBuffer = 3;
-			BOOL	shouldBreak = NO;
-			
-			if (isEndOfText) {
-				if (indexInBuffer == 0) {
-					break;
-				}
-				
-				if ((indexInBuffer == 1) || (indexInBuffer == 2)) {
-					charactersInBuffer = 1;
-				} else {
-					charactersInBuffer = 2;
-				}
-				
-				indexInBuffer = 3;
-				
-				shouldBreak = YES;
-			}
-			
-			inputBuffer[indexInBuffer++] = ch;
-			
-			if (indexInBuffer == 4) {
-				indexInBuffer = 0;
-				
-				outputBuffer[0] = (inputBuffer[0] << 2) | ((inputBuffer[1] & 0x30) >> 4);
-				
-				outputBuffer[1] = ((inputBuffer[1] & 0x0F) << 4) | ((inputBuffer[2] & 0x3C) >> 2);
-				
-				outputBuffer[2] = ((inputBuffer[2] & 0x03) << 6) | (inputBuffer[3] & 0x3F);
-				
-				for (i = 0; i < charactersInBuffer; i++) {
-					[decodedData appendBytes:&outputBuffer[i] length:1 ];
-				}
-			}
-			
-			if (shouldBreak) {
-				break;
-			}
-		}
-		
-	} // while
-	
-	return decodedData;
-}
-
-- (NSString *)stringUsingSHA1HexadecimalHash
-{
-    int i;
-    NSString *rawString = [self stringUsingSHA1RawHash];
-	int stringLength = [rawString length];
-	NSMutableString *hexString = [NSMutableString stringWithCapacity:stringLength];
-	
-    for(i=0; i < stringLength; i++) {
-        [hexString appendFormat:@"%02x", [rawString characterAtIndex:i]];
-    }
-	
-    return hexString;
-}
-
-- (NSString *)stringUsingSHA1RawHash {
-	// these are structs and arrays used by the evp message digest functions 
-    EVP_MD_CTX mdctx; 
-    const EVP_MD *md;
-    unsigned char md_value[EVP_MAX_MD_SIZE]; 
-    int md_len;
-    
-    OpenSSL_add_all_digests(); 
-    // create a SHA digest 
-    md = EVP_get_digestbyname("sha1"); 
-    EVP_DigestInit(&mdctx, md); 
-    EVP_DigestUpdate(&mdctx, [self cString], [self cStringLength]); 
-    EVP_DigestFinal(&mdctx, md_value, &md_len);
-    
-	// Must use NSASCIIStringEncoding encoding or it won't work
-    return [[[NSString alloc] initWithData:[NSData dataWithBytes:md_value length:md_len] encoding:NSASCIIStringEncoding] autorelease];
-}
-
-- (NSString *)stringByUnescapingHTMLEntities {
-	NSMutableString *unescapedString = [NSMutableString stringWithString:self];
-	[unescapedString replaceOccurrencesOfString:@"&amp;" withString:@"&" options:0 range:NSMakeRange(0, [unescapedString length])];
-	[unescapedString replaceOccurrencesOfString:@"&lt;" withString:@"<" options:0 range:NSMakeRange(0, [unescapedString length])];
-	[unescapedString replaceOccurrencesOfString:@"&gt;" withString:@">" options:0 range:NSMakeRange(0, [unescapedString length])];
-	[unescapedString replaceOccurrencesOfString:@"&quot;" withString:@"\"" options:0 range:NSMakeRange(0, [unescapedString length])];			
-	
-	return unescapedString;
-}
-
-- (NSString *)stringByEscapingHTMLEntities {
-	NSMutableString *escapedString = [NSMutableString stringWithString:self];
-	[escapedString replaceOccurrencesOfString:@"&" withString:@"&amp;" options:0 range:NSMakeRange(0, [escapedString length])];
-	[escapedString replaceOccurrencesOfString:@"<" withString:@"&lt;" options:0 range:NSMakeRange(0, [escapedString length])];
-	[escapedString replaceOccurrencesOfString:@">" withString:@"&gt;" options:0 range:NSMakeRange(0, [escapedString length])];
-	[escapedString replaceOccurrencesOfString:@"\"" withString:@"&quot;" options:0 range:NSMakeRange(0, [escapedString length])];			
-	
-	return escapedString;
-}
-
-- (NSString *)stringByAddingPercentEscapes {
-	return [(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, NULL, kCFStringEncodingUTF8) autorelease];	
-}
-
-- (NSString *)stringByReplacingPercentEscapes {
-	return [(NSString*)CFURLCreateStringByReplacingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, (CFStringRef) @"") autorelease];	
-}
-@end
-
-@implementation NSData (AtomExtensions)
-- (NSString *)stringUsingEncoding:(NSStringEncoding)encoding {
-	return [[[NSString alloc] initWithData:self encoding:encoding] autorelease];
-}
-
-- (NSString *)stringUsingBase64Encoding {
-	return [self stringUsingBase64EncodingWithLineLength:0];
-}
-
-- (NSString *)stringUsingBase64EncodingWithLineLength:(int)lineLength {
-	/*
-	 Encode the NSData. Some funny stuff about linelength -- it only makes
-	 sense to make it a multiple of 4. If it's not a multiple of 4, we make it
-	 so (by only checking it every 4 characters). 
-	 
-	 Further, if it's 0, we don't add any line breaks at all.
-	 */
-	
-	const unsigned char	*bytes = [self bytes];
-    NSMutableString *result = nil;
-    unsigned long textIndex;
-    unsigned long textLength;
-    long charactersRemaining;
-    unsigned char inputBuffer[3], outputBuffer[4];
-    short i;
-    short charactersOnLine = 0, characterCopy;
-    unsigned long index;
-	
-	
-    textIndex = 0;
-	
-    textLength = [self length];
-    result = [NSMutableString stringWithCapacity:textLength];
-	
-    while (YES) {
-        charactersRemaining = textLength - textIndex;
-		
-        if (charactersRemaining <= 0) {
-            break;
-		}
-		
-        for (i = 0; i < 3; i++) {
-            index = textIndex + i;
-			
-            if (index < textLength) {
-                inputBuffer[i] = bytes[index];
-			} else {
-                inputBuffer[i] = 0;
-			}
-        } // for
-		
-        outputBuffer[0] = (inputBuffer[0] & 0xFC) >> 2;
-        outputBuffer[1] = ((inputBuffer[0] & 0x03) << 4) | ((inputBuffer[1] & 0xF0) >> 4);
-        outputBuffer[2] = ((inputBuffer[1] & 0x0F) << 2) | ((inputBuffer[2] & 0xC0) >> 6);
-        outputBuffer[3] = inputBuffer[2] & 0x3F;
-		
-        characterCopy = 4;
-		
-        switch (charactersRemaining) {
-            case 1: 
-                characterCopy = 2; 
-                break;
-				
-            case 2: 
-                characterCopy = 3; 
-                break;
-        } // switch
-        
-        for (i = 0; i < characterCopy; i++) {
-            [result appendFormat:@"%c", gEncodingTable[outputBuffer[i]] ];
-		}
-		
-        for (i = characterCopy; i < 4; i++) {
-            [result appendFormat:@"%c", '='];
-		}
-		
-        textIndex += 3;
-		
-        charactersOnLine += 4;
-		
-        if (lineLength > 0) { // DW 4/8/97 -- 0 means no line breaks 
-            if (charactersOnLine >= lineLength) {
-                charactersOnLine = 0;
-				
-                [result appendString:@"\n"];
-            }
-        }
-    } // while
-	
-	return result;
-}
-@end
Index: /unk/VoxAtomApi.h
===================================================================
--- /trunk/VoxAtomApi.h (revision 36)
+++  (revision )
@@ -1,22 +1,0 @@
-//
-//  VoxAtomApi.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "AtomApi.h"
-
-@interface VoxAtomApi : AtomApi {
-
-}
-
-- (void) newpost:(NSString *) to args:(NSMutableDictionary *) args;
-
-- (NSString *) weblog_discover;
-- (NSString *) weblog_upload: (NSString *) file;
-- (NSString *) weblog_newpost: (NSString *) title content: (NSString *) content;
-
-@end
Index: /unk/VoxRoundedView.h
===================================================================
--- /trunk/VoxRoundedView.h (revision 30)
+++  (revision )
@@ -1,8 +1,0 @@
-/* VoxRoundedView */
-
-#import <Cocoa/Cocoa.h>
-
-@interface VoxRoundedView : NSView
-{
-}
-@end
Index: /unk/TypePadAccount.m
===================================================================
--- /trunk/TypePadAccount.m (revision 41)
+++  (revision )
@@ -1,399 +1,0 @@
-//
-//  TypePadAccount.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/10/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TypePadAccount.h"
-#import "TypePadWeblog.h"
-#import "TypePadGallery.h"
-#import "TypePadAtomApi.h"
-
-@implementation TypePadAccount
-
-// init
-- (id)init {
-    if (self = [super init]) {
-        [self setUsername:@""];
-        [self setPassword:@""];
-        [self setNickname:@""];
-        [self setWeblogs:[[NSMutableArray alloc] init]];
-        [self setGalleries:[[NSMutableArray alloc] init]];
-        [self setTypelists:[[NSMutableArray alloc] init]];
-		// [self setComments:[[NSMutableArray alloc] init]];
-		[self setHasWeblog:NO];
-        [self setHasGallery:NO];
-        [self setHasTypeList:NO];
-		[self setDefaultWeblog:@""];
-        [self setDefaultGallery:@""];
-    }
-    return self;
-}
-
-/* dealloc */
-- (void) dealloc {
-    [username release];
-    [password release];
-    [nickname release];
-    [weblogs release];
-    [galleries release];
-    [typelists release];
-	[comments release];
-    [defaultWeblog release];
-    [defaultGallery release];
-	
-    username = nil;
-    password = nil;
-    nickname = nil;
-    weblogs = nil;
-    galleries = nil;
-    typelists = nil;
-	comments = nil;
-    defaultWeblog = nil;
-    defaultGallery = nil;
-    [super dealloc];
-}
-
-- (void) encodeWithCoder: (NSCoder *)coder {
-    // [super encodeWithCoder: coder];
-    [coder encodeObject: [self username] forKey: @"WeblogUsername"];
-    [coder encodeObject: [self password] forKey: @"WeblogPassword"];
-    [coder encodeObject: [self nickname] forKey: @"WeblogNickname"];
-    [coder encodeObject: [self weblogs] forKey: @"WeblogWeblogs"];
-    [coder encodeObject: [self galleries] forKey: @"WeblogGalleries"];
-    [coder encodeObject: [self typelists] forKey: @"WeblogTypelists"];
-	// [coder encodeObject: [self comments] forKey: @"WeblogComments"];
-    [coder encodeBool: [self hasWeblog] forKey: @"WeblogHasWeblog"];
-    [coder encodeBool: [self hasGallery] forKey: @"WeblogHasGallery"];
-    [coder encodeBool: [self hasTypeList] forKey: @"WeblogHasTypeList"];
-    [coder encodeObject: [self defaultWeblog] forKey: @"WeblogDefaultWeblog"];
-    [coder encodeObject: [self defaultGallery] forKey: @"WeblogDefaultGallery"];
-}
-
-- (id) initWithCoder: (NSCoder *)coder {
-    // if ([super initWithCoder: coder]) {
-        [self setUsername: [coder decodeObjectForKey: @"WeblogUsername"]];
-        [self setPassword: [coder decodeObjectForKey: @"WeblogPassword"]];
-        [self setNickname: [coder decodeObjectForKey: @"WeblogNickname"]];
-        [self setWeblogs: [coder decodeObjectForKey: @"WeblogWeblogs"]];
-        [self setGalleries: [coder decodeObjectForKey: @"WeblogGalleries"]];
-        [self setTypelists: [coder decodeObjectForKey: @"WeblogTypelists"]];
-		// [self setComments: [coder decodeObjectForKey: @"WeblogComments"]];
-        [self setHasWeblog: [coder decodeBoolForKey: @"WeblogHasWeblog"]];
-        [self setHasGallery: [coder decodeBoolForKey: @"WeblogHasGallery"]];
-        [self setHasTypeList: [coder decodeBoolForKey: @"WeblogHasTypeList"]];
-        [self setDefaultWeblog: [coder decodeObjectForKey: @"WeblogDefaultWeblog"]];
-        [self setDefaultGallery: [coder decodeObjectForKey: @"WeblogDefaultGallery"]];
-    // }
-    return self;
-}
-
-#pragma mark -
-
-/* username */
-- (NSString *) username { return username; }
-
-/* -setUsername: */
-- (void) setUsername: (NSString *) Username {
-    //NSLog(@"in -setUsername:, old value of username: %@, changed to: %@", username, Username);
-    if (username != Username) {
-        [username autorelease];
-        username = [Username retain];
-    }
-}
-
-/* password */
-- (NSString *) password { return password; }
-
-/* -setPassword: */
-- (void) setPassword: (NSString *) Password {
-    //NSLog(@"in -setPassword:, old value of password: %@, changed to: %@", password, Password);
-    if (password != Password) {
-        [password autorelease];
-        password = [Password retain];
-    }
-}
-
-/* nickname */
-- (NSString *) nickname { return nickname; }
-
-/* -setNickname: */
-- (void) setNickname: (NSString *) Nickname {
-    //NSLog(@"in -setNickname:, old value of nickname: %@, changed to: %@", nickname, Nickname);
-    if (nickname != Nickname) {
-        [nickname autorelease];
-        nickname = [Nickname retain];
-    }
-}
-
-/* hasWeblog */
-- (BOOL) hasWeblog { return hasWeblog; }
-
-/* -setHasWeblog: */
-- (void) setHasWeblog: (BOOL) flag {
-    //NSLog(@"in -setHasWeblog, old value of hasWeblog: %@, changed to: %@", (hasWeblog ? @"YES": @"NO"), (flag ? @"YES": @"NO") );
-    hasWeblog = flag;
-}
-
-/* hasGallery */
-- (BOOL) hasGallery { return hasGallery; }
-
-/* -setHasGallery: */
-- (void) setHasGallery: (BOOL) flag {
-    //NSLog(@"in -setHasGallery, old value of hasGallery: %@, changed to: %@", (hasGallery ? @"YES": @"NO"), (flag ? @"YES": @"NO") );
-    hasGallery = flag;
-}
-
-/* hasTypeList */
-- (BOOL) hasTypeList { return hasTypeList; }
-
-/* -setHasTypeList: */
-- (void) setHasTypeList: (BOOL) flag {
-    //NSLog(@"in -setHasTypeList, old value of hasTypeList: %@, changed to: %@", (hasTypeList ? @"YES": @"NO"), (flag ? @"YES": @"NO") );	
-    hasTypeList = flag;
-}
-
-/* weblogs */
-- (NSMutableArray *) weblogs { return weblogs; }
-
-/* -setWeblogs: */
-- (void) setWeblogs: (NSMutableArray *) Weblogs {
-    //NSLog(@"in -setWeblogs:, old value of weblogs: %@, changed to: %@", weblogs, Weblogs);
-    if (weblogs != Weblogs) {
-        [weblogs autorelease];
-        weblogs = [Weblogs retain];
-    }
-}
-
-/* galleries */
-- (NSMutableArray *) galleries { return galleries; }
-
-/* -setGalleries: */
-- (void) setGalleries: (NSMutableArray *) Galleries {
-    //NSLog(@"in -setGalleries:, old value of galleries: %@, changed to: %@", galleries, Galleries);
-    if (galleries != Galleries) {
-        [galleries autorelease];
-        galleries = [Galleries retain];
-    }
-}
-
-/* typelists */
-- (NSMutableArray *) typelists { return typelists; }
-
-/* -setTypelists: */
-- (void) setTypelists: (NSMutableArray *) Typelists {
-    //NSLog(@"in -setTypelists:, old value of typelists: %@, changed to: %@", typelists, Typelists);
-    if (typelists != Typelists) {
-        [typelists autorelease];
-        typelists = [Typelists retain];
-    }
-}
-
-/* comments */
-- (NSMutableArray *) comments { return comments; }
-
-	/* -setTypelists: */
-- (void) setComments: (NSMutableArray *) Comments {
-    //NSLog(@"in -setComments:, old value of comments: %@, changed to: %@", comments, Comments);
-    if (comments != Comments) {
-        [comments autorelease];
-        comments = [Comments retain];
-    }
-}
-
-/* defaultWeblog */
-- (NSString *) defaultWeblog { return defaultWeblog; }
-
-/* -setDefaultWeblog: */
-- (void) setDefaultWeblog: (NSString *) DefaultWeblog {
-    //NSLog(@"in -setDefaultWeblog:, old value of defaultWeblog: %@, changed to: %@", defaultWeblog, DefaultWeblog);
-    if (defaultWeblog != DefaultWeblog) {
-        [defaultWeblog autorelease];
-        defaultWeblog = [DefaultWeblog retain];
-    }
-}
-
-/* defaultGallery */
-- (NSString *) defaultGallery { return defaultGallery; }
-
-/* -setDefaultGallery: */
-- (void) setDefaultGallery: (NSString *) DefaultGallery {
-    //NSLog(@"in -setDefaultGallery:, old value of defaultGallery: %@, changed to: %@", defaultGallery, DefaultGallery);
-    if (defaultGallery != DefaultGallery) {
-        [defaultGallery autorelease];
-        defaultGallery = [DefaultGallery retain];
-    }
-}
-
-
-#pragma mark -
-
-///////  weblogs  ///////
-
-- (unsigned int) countOfWeblogs {
-    return [[self weblogs] count];
-}
-
-- (id) objectInWeblogsAtIndex: (unsigned int)index {
-    id myWeblogs = [self weblogs];
-    unsigned int weblogsCount = [myWeblogs count];
-    if ( weblogsCount == 0 || index > (weblogsCount - 1) ) return nil;
-    return [myWeblogs objectAtIndex: index];
-}
-
-- (void) insertObject: (id)anObject inWeblogsAtIndex: (unsigned int)index {
-    id myWeblogs = [self weblogs];
-    unsigned int weblogsCount = [myWeblogs count];
-    if (index > weblogsCount) return;
-    if (anObject) [myWeblogs insertObject: anObject atIndex: index];
-}
-
-- (void) removeObjectFromWeblogsAtIndex: (unsigned int)index {
-    id myWeblogs = [self weblogs];
-    unsigned int weblogsCount = [myWeblogs count];
-    if ( weblogsCount == 0 || index > (weblogsCount - 1) ) return;
-	
-    [myWeblogs removeObjectAtIndex: index];
-}
-
-- (void) replaceObjectInWeblogsAtIndex: (unsigned int)index withObject: (id)anObject {
-    id myWeblogs = [self weblogs];
-    unsigned int weblogsCount = [myWeblogs count];
-    if ( weblogsCount == 0 || index > (weblogsCount - 1) ) return;
-    [myWeblogs replaceObjectAtIndex: index withObject: anObject];
-}
-
-#pragma mark -
-
-///////  galleries  ///////
-
-- (unsigned int) countOfGalleries {
-    return [[self galleries] count];
-}
-
-- (id) objectInGalleriesAtIndex: (unsigned int)index {
-    id myGalleries = [self galleries];
-    unsigned int galleriesCount = [myGalleries count];
-    if ( galleriesCount == 0 || index > (galleriesCount - 1) ) return nil;
-    return [myGalleries objectAtIndex: index];
-}
-
-- (void) insertObject: (id)anObject inGalleriesAtIndex: (unsigned int)index {
-    id myGalleries = [self galleries];
-    unsigned int galleriesCount = [myGalleries count];
-    if (index > galleriesCount) return;
-    if (anObject) [myGalleries insertObject: anObject atIndex: index];
-}
-
-- (void) removeObjectFromGalleriesAtIndex: (unsigned int)index {
-    id myGalleries = [self galleries];
-    unsigned int galleriesCount = [myGalleries count];
-    if ( galleriesCount == 0 || index > (galleriesCount - 1) ) return;
-    [myGalleries removeObjectAtIndex: index];
-}
-
-- (void) replaceObjectInGalleriesAtIndex: (unsigned int)index withObject: (id)anObject {
-    id myGalleries = [self galleries];
-    unsigned int galleriesCount = [myGalleries count];
-    if ( galleriesCount == 0 || index > (galleriesCount - 1) ) return;
-    [myGalleries replaceObjectAtIndex: index withObject: anObject];
-}
-
-#pragma mark -
-
-///////  typelists  ///////
-
-- (unsigned int) countOfTypelists {
-    return [[self typelists] count];
-}
-
-- (id) objectInTypelistsAtIndex: (unsigned int)index {
-    id myTypelists = [self typelists];
-    unsigned int typelistsCount = [myTypelists count];
-    if ( typelistsCount == 0 || index > (typelistsCount - 1) ) return nil;
-    return [myTypelists objectAtIndex: index];
-}
-
-- (void) insertObject: (id)anObject inTypelistsAtIndex: (unsigned int)index {
-    id myTypelists = [self typelists];
-    unsigned int typelistsCount = [myTypelists count];
-    if (index > typelistsCount) return;
-    if (anObject) [myTypelists insertObject: anObject atIndex: index];
-}
-
-- (void) removeObjectFromTypelistsAtIndex: (unsigned int)index {
-    id myTypelists = [self typelists];
-    unsigned int typelistsCount = [myTypelists count];
-    if ( typelistsCount == 0 || index > (typelistsCount - 1) ) return;
-    [myTypelists removeObjectAtIndex: index];
-}
-
-- (void) replaceObjectInTypelistsAtIndex: (unsigned int)index withObject: (id)anObject {
-    id myTypelists = [self typelists];
-    unsigned int typelistsCount = [myTypelists count];
-    if ( typelistsCount == 0 || index > (typelistsCount - 1) ) return;	
-    [myTypelists replaceObjectAtIndex: index withObject: anObject];
-}
-
-#pragma mark -
-
-- (void) discoverWeblogs {
-	TypePadAtomAPI *client = [[[TypePadAtomAPI alloc] init] autorelease];
-	[client setDataarg:@""];
-	[client setAuth:[self username] pass:[self password]];
-	[client newpost:@"3" args:nil];
-	NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithXMLString:[client resdata] options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:nil];
-	NSArray *nodes = [xmlDoc nodesForXPath:@"/feed/link[@rel=\"service.post\"]" error:nil];
-	int arrayCount = [nodes count];
-	int i = 0;
-	for (i = 0; i < arrayCount; i++) {
-		NSXMLElement *token = [nodes objectAtIndex:i];
-		TypePadWeblog *tpobj = [[TypePadWeblog alloc] init];
-		[tpobj setAuth:[self username] pass:[self password] ];
-		[tpobj setWeblogID:[self parseId:[[token attributeForName:@"href"] stringValue]]];
-		[tpobj setWeblogTitle:[[token attributeForName:@"title"] stringValue]];
-		[tpobj setWeblogURL:[[token attributeForName:@"href"] stringValue]];
-		[tpobj discoverCategories];
-		// TODO: Enable this once the functionality is complete.
-		// [tpobj getComments];
-		[weblogs addObject:tpobj];
-		[self setHasWeblog:YES];
-	}	
-	// [self appNotify:[NSString stringWithFormat:@"File '%@' has been sent", [client filename]] title:@"File Uploaded"];
-}
-
-- (void) discoverGalleries {
-	TypePadAtomAPI *client = [[[TypePadAtomAPI alloc] init] autorelease];
-	[client setDataarg:@""];
-	[client setAuth:[self username] pass:[self password]];
-	[client newpost:@"5" args:nil];
-	NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithXMLString:[client resdata] options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:nil];
-	NSArray *nodes = [xmlDoc nodesForXPath:@"/feed/link[@rel=\"service.post\"]" error:nil];
-	int arrayCount = [nodes count];
-	int i = 0;
-	for (i = 0; i < arrayCount; i++) {
-		NSXMLElement *token = [nodes objectAtIndex:i];
-		TypePadGallery *tpobj = [[TypePadGallery alloc] init];
-		[tpobj setGalleryID:[self parseId:[[token attributeForName:@"href"] stringValue]]];
-		[tpobj setGalleryTitle:[[token attributeForName:@"title"] stringValue]];
-		[tpobj setGalleryURL:[[token attributeForName:@"href"] stringValue]];
-		[galleries addObject:tpobj];
-		[self setHasGallery:YES];
-	}
-	// [self appNotify:[NSString stringWithFormat:@"File '%@' has been sent", [client filename]] title:@"File Uploaded"];
-}
-
-- (void) getComments:(NSString *) blogId {
-	
-}
-
-#pragma mark -
-
-- (NSString *) parseId:(NSString *)tmp {
-	NSArray *lines = [tmp componentsSeparatedByString:@"="];
-	return [lines objectAtIndex:1];
-}
-
-@end
Index: /unk/TransparentWindow.h
===================================================================
--- /trunk/TransparentWindow.h (revision 30)
+++  (revision )
@@ -1,16 +1,0 @@
-//
-//  TransparentWindow.h
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface TransparentWindow : NSWindow {
-    NSPoint initialLocation;
-	NSUserDefaults *prefs;
-}
-
-@end
Index: /unk/VoxAccount.h
===================================================================
--- /trunk/VoxAccount.h (revision 35)
+++  (revision )
@@ -1,39 +1,0 @@
-//
-//  VoxAccount.h
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-
-@interface VoxAccount : NSObject {
-	NSString *username;
-	NSString *password;
-	NSString *nickname;
-	NSMutableDictionary *myCollections;
-	BOOL hasCollections;
-}
-
-/* accessors */
-- (NSString *) username;
-- (void) setUsername: (NSString *) Username;
-
-- (NSString *) password;
-- (void) setPassword: (NSString *) Password;
-
-- (NSString *) nickname;
-- (void) setNickname: (NSString *) Nickname;
-
-- (NSMutableDictionary *) myCollections;
-- (void) setMyCollections: (NSMutableDictionary *) MyCollections;
-
-- (BOOL) hasCollections;
-- (void) setHasCollections: (BOOL) flag;
-
-- (void) discoverCollections;
-- (NSString *) parseId:(NSString *)tmp;
-
-@end
Index: /unk/AppController.m
===================================================================
--- /trunk/AppController.m (revision 30)
+++  (revision )
@@ -1,24 +1,0 @@
-#import "AppController.h"
-
-@implementation AppController
-
-- (id) init {
-    if (self = [super init]) {
-		[GrowlApplicationBridge setGrowlDelegate:self];
-    }
-    return self;
-}
-
-- (NSDictionary *) registrationDictionaryForGrowl {
-    NSArray *notifications = [NSArray arrayWithObject:@"Fence"];
-    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
-		notifications, GROWL_NOTIFICATIONS_ALL,
-		notifications, GROWL_NOTIFICATIONS_DEFAULT, nil];
-    return (dict);
-}
-
-- (IBAction)showPrefs:(id)sender {
-	[NSBundle loadNibNamed:@"Preferences.nib" owner:self];
-}
-
-@end
Index: /unk/VoxAtomApi.m
===================================================================
--- /trunk/VoxAtomApi.m (revision 40)
+++  (revision )
@@ -1,68 +1,0 @@
-//
-//  VoxAtomApi.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "VoxAtomApi.h"
-#import "AtomExtensions.h"
-#import "NSDataAdditions.h"
-
-@implementation VoxAtomApi
-
-// [self setfile:@"/path/to/file"];
-// [self newpost:@"gallery"];
-- (void) newpost:(NSString *) to args:(NSMutableDictionary *) args {
-	/* NSLog(@"-(void) newpost:(NSString *)to - called\n"); */
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSString *reqtype;
-	if ([to isEqualToString:@"weblogdiscovery"] || [to isEqualToString:@"3"]) {
-		/* NSLog(@"set as gallery post type\n"); */
-		reqtype = @"GET";
-		[self setApiurl:@"http://www.vox.com/atom/"];
-		[self weblog_discover];
-	}
-	if ([to isEqualToString:@"collection"] || [to isEqualToString:@"1"]) {
-// NSLog(@"set as weblog post type\n");
-		reqtype = @"POST";
-		[self setApiurl:[NSString stringWithFormat:@"http://www.vox.com/atom/svc=post/collection_id=%@", [args objectForKey:@"destinationid"]]];
-		[self weblog_upload: dataarg];
-	}
-	if ([to isEqualToString:@"quickpost"] || [to isEqualToString:@"2"]) {
-// NSLog(@"set as quickpost post type\n");
-		reqtype = @"POST";
-		[self setApiurl:[NSString stringWithFormat:@"http://www.vox.com/atom/collection_id=%@", [args objectForKey:@"destinationid"]]];
-		[self weblog_newpost:@"Quick Post" content:dataarg];
-	}
-	// http://www.vox.com/atom/svc=post/collection_id=
-	/* NSLog(@"Making request with request type %@\n", reqtype); */
-	[self makerequest:reqtype];
-}
-
-- (NSString *) weblog_discover {
-	/* NSLog(@"- (NSString *) weblog_newitem - called"); */
-	/* NSLog(@"Creating atom feed based on upload file %@\n", uploadfile); */
-	/* atomdata = [NSString stringWithFormat:@"<entry xmlns=\"http://purl.org/atom/ns#\"><title>%@</title><summary></summary><content mode=\"xml\"><div xmlns=\"http://www.w3.org/1999/xhtml\">%@</div></content></entry>", title, content]; */
-	atomdata = @"";
-	/* NSLog(@"Atom feed:\n%@\n", atomdata); */
-	return @"";
-}
-
-- (NSString *) weblog_upload: (NSString *) file {
-// NSLog(@"- (NSString *) weblog_upload - called");
-	NSData *data = [NSData dataWithContentsOfFile:file];
-	NSString *encodedFile = [data base64Encoding];
-	// TODO: enable standalone mode - <standalone xmlns=\"http://sixapart.com/atom/typepad#\">1</standalone>
-	atomdata = [NSString stringWithFormat:@"<entry xmlns=\"http://purl.org/atom/ns#\" xmlns:photo=\"http://sixapart.com/atom/photo#\"><title>%@</title><summary></summary><photo:filename>%@</photo:filename><content mode=\"base64\" type=\"image/%@\">%@</content><standalone xmlns=\"http://sixapart.com/atom/typepad#\">1</standalone></entry>",[file lastPathComponent],[file lastPathComponent], [file pathExtension], encodedFile];
-	return atomdata;
-}
-
-- (NSString *) weblog_newpost: (NSString *) title content: (NSString *) content {
-// NSLog(@"- (NSString *) weblog_newpost - called");
-	atomdata = [NSString stringWithFormat:@"<entry xmlns=\"http://purl.org/atom/ns#\"><title>%@</title><summary></summary><content mode=\"xml\"><div xmlns=\"http://www.w3.org/1999/xhtml\">%@</div></content></entry>", title, content];
-	return atomdata;
-}
-
-@end
Index: /unk/VoxRoundedView.m
===================================================================
--- /trunk/VoxRoundedView.m (revision 40)
+++  (revision )
@@ -1,81 +1,0 @@
-#import "VoxRoundedView.h"
-#import "Vox.h"
-
-@implementation VoxRoundedView
-
-- (id)initWithFrame:(NSRect)frameRect {
-	if ((self = [super initWithFrame:frameRect]) != nil) {
-		[self registerForDraggedTypes:[NSArray arrayWithObjects:
-			NSURLPboardType,
-			NSStringPboardType,
-			NSFilenamesPboardType,
-			NSHTMLPboardType,
-			nil
-			]
-			];
-	}
-	return self;
-}
-
-- (void)drawRect:(NSRect)rect {
-	NSColor *bgColor = [NSColor colorWithCalibratedWhite:0.0 alpha:0.35];
-	NSRect bgRect = rect;
-	int minX = NSMinX(bgRect);
-	int midX = NSMidX(bgRect);
-	int maxX = NSMaxX(bgRect);
-	int minY = NSMinY(bgRect);
-	int midY = NSMidY(bgRect);
-	int maxY = NSMaxY(bgRect);
-	float radius = 25.0;
-	NSBezierPath *bgPath = [NSBezierPath bezierPath];
-	[bgPath moveToPoint:NSMakePoint(midX, minY)];
-	[bgPath appendBezierPathWithArcFromPoint:NSMakePoint(maxX, minY) toPoint:NSMakePoint(maxX, midY) radius:radius];
-	[bgPath appendBezierPathWithArcFromPoint:NSMakePoint(maxX, maxY) toPoint:NSMakePoint(midX, maxY) radius:radius];
-	[bgPath appendBezierPathWithArcFromPoint:NSMakePoint(minX, maxY) toPoint:NSMakePoint(minX, midY) radius:radius];
-	[bgPath appendBezierPathWithArcFromPoint:bgRect.origin toPoint:NSMakePoint(midX, minY) radius:radius];
-	[bgPath closePath];
-	[bgColor set];
-	[bgPath fill];
-}
-
-- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
-	/* NSLog(@"- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender - called\n"); */
-	
-	/*
-	 NSPasteboard *pboard = [sender draggingPasteboard];
-	 NSArray *filenames = [pboard propertyListForType:NSFilenamesPboardType];
-// NSLog$1(@"draggingEntered: filenames: %@\n", [filenames description]);
-	 */
-	
-    if ((NSDragOperationGeneric & [sender draggingSourceOperationMask]) == NSDragOperationGeneric) {
-        return NSDragOperationGeneric;
-	}
-	if ((NSDragOperationCopy & [sender draggingSourceOperationMask]) == NSDragOperationCopy) {
-		return NSDragOperationCopy;
-	}
-	return NSDragOperationNone;
-}
-
-- (void)draggingExited:(id <NSDraggingInfo>)sender { }
-
-
-- (void)draggingEnded:(id <NSDraggingInfo>)sender { }
-
-- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender {
-    return YES;
-}
-
-- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender {
-	/* NSLog(@"- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender - called\n"); */
-	Vox *vx = [[[Vox alloc] init] autorelease];
-	[vx dispatchAction:[sender draggingPasteboard]];
-	[self setNeedsDisplay:YES];
-    return YES;
-}
-
-- (void)dealloc {
-    [self unregisterDraggedTypes];
-    [super dealloc];
-}
-
-@end
Index: /unk/VoxAccount.m
===================================================================
--- /trunk/VoxAccount.m (revision 36)
+++  (revision )
@@ -1,144 +1,0 @@
-//
-//  VoxAccount.m
-//  Fence
-//
-//  Created by Nicholas Gerakines on 6/11/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "VoxAccount.h"
-#import "VoxAtomApi.h"
-#import "VoxCollection.h"
-
-
-@implementation VoxAccount
-
-// init
-- (id)init {
-    if (self = [super init]) {
-        [self setUsername:[[NSString alloc] init]];
-        [self setPassword:[[NSString alloc] init]];
-        [self setNickname:[[NSString alloc] init]];
-        [self setMyCollections:[[NSMutableDictionary alloc] init]];
-    }
-    return self;
-}
-
-/* dealloc */
-- (void) dealloc {
-    [username release];
-    [password release];
-    [nickname release];
-    [myCollections release];
-	
-    username = nil;
-    password = nil;
-    nickname = nil;
-    myCollections = nil;
-    [super dealloc];
-}
-
-- (void) encodeWithCoder: (NSCoder *)coder {
-    [coder encodeObject: [self username] forKey: @"WeblogUsername"];
-    [coder encodeObject: [self password] forKey: @"WeblogPassword"];
-    [coder encodeObject: [self nickname] forKey: @"WeblogNickname"];
-    [coder encodeObject: [self myCollections] forKey: @"WeblogMyCollections"];
-    [coder encodeBool: [self hasCollections] forKey: @"WeblogHasCollections"];
-}
-
-- (id) initWithCoder: (NSCoder *)coder {
-	[self setUsername: [coder decodeObjectForKey: @"WeblogUsername"]];
-	[self setPassword: [coder decodeObjectForKey: @"WeblogPassword"]];
-	[self setNickname: [coder decodeObjectForKey: @"WeblogNickname"]];
-	[self setMyCollections: [coder decodeObjectForKey: @"WeblogMyCollections"]];
-	[self setHasCollections: [coder decodeBoolForKey: @"WeblogHasCollections"]];
-    return self;
-}
-
-/* username */
-- (NSString *) username { return username; }
-
-	/* -setUsername: */
-- (void) setUsername: (NSString *) Username {
-    //NSLog(@"in -setUsername:, old value of username: %@, changed to: %@", username, Username);
-	
-    if (username != Username) {
-        [username autorelease];
-        username = [Username retain];
-    }
-}
-
-/* password */
-- (NSString *) password { return password; }
-
-	/* -setPassword: */
-- (void) setPassword: (NSString *) Password {
-    //NSLog(@"in -setPassword:, old value of password: %@, changed to: %@", password, Password);
-	
-    if (password != Password) {
-        [password autorelease];
-        password = [Password retain];
-    }
-}
-
-/* nickname */
-- (NSString *) nickname { return nickname; }
-
-/* -setNickname: */
-- (void) setNickname: (NSString *) Nickname {
-    //NSLog(@"in -setNickname:, old value of nickname: %@, changed to: %@", nickname, Nickname);
-    if (nickname != Nickname) {
-        [nickname autorelease];
-        nickname = [Nickname retain];
-    }
-}
-
-/* myCollections */
-- (NSMutableDictionary *) myCollections { return myCollections; }
-
-/* -setMyCollections: */
-- (void) setMyCollections: (NSMutableDictionary *) MyCollections {
-    //NSLog(@"in -setMyCollections:, old value of myCollections: %@, changed to: %@", myCollections, MyCollections);
-    if (myCollections != MyCollections) {
-        [myCollections autorelease];
-        myCollections = [MyCollections retain];
-    }
-}
-
-/* hasCollections */
-- (BOOL) hasCollections { return hasCollections; }
-
-/* -setHasCollections: */
-- (void) setHasCollections: (BOOL) flag {
-    //NSLog(@"in -setHasCollections, old value of hasCollections: %@, changed to: %@", (hasCollections ? @"YES": @"NO"), (flag ? @"YES": @"NO") );
-    hasCollections = flag;
-}
-
-- (void) discoverCollections {
-	VoxAtomApi *client = [[[VoxAtomApi alloc] init] autorelease];
-	[client setDataarg:@""];
-	[client setAuth:[self username] pass:[self password]];
-	[client newpost:@"3" args:nil];
-	NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithXMLString:[client resdata] options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:nil];
-	NSArray *nodes = [xmlDoc nodesForXPath:@"/feed/link[@rel=\"service.post\"]" error:nil];
-	int arrayCount = [nodes count];
-	int i = 0;
-	for (i = 0; i < arrayCount; i++) {
-		NSXMLElement *token = [nodes objectAtIndex:i];
-		VoxCollection *voxcol = [[VoxCollection alloc] init];
-		[voxcol setCollectionID:[self parseId:[[token attributeForName:@"href"] stringValue]]];
-		[voxcol setCollectionTitle:[[token attributeForName:@"title"] stringValue]];
-		[myCollections setObject:voxcol forKey:[voxcol collectionID]];
-		[self setHasCollections:YES];
-	}	
-	// [self appNotify:[NSString stringWithFormat:@"File '%@' has been sent", [client filename]] title:@"File Uploaded"];
-}
-
-#pragma mark -
-
-- (NSString *) parseId:(NSString *)tmp {
-	NSArray *lines = [tmp componentsSeparatedByString:@"collection_id="];
-	return [lines objectAtIndex:1];
-}
-
-@end
Index: /unk/TransparentWindow.m
===================================================================
--- /trunk/TransparentWindow.m (revision 41)
+++  (revision )
@@ -1,59 +1,0 @@
-//
-//  TransparentWindow.m
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TransparentWindow.h"
-
-@implementation TransparentWindow
-
-- (id)initWithContentRect:(NSRect)contentRect
-				styleMask:(unsigned int)aStyle 
-				  backing:(NSBackingStoreType)bufferingType 
-					defer:(BOOL)flag
-{
-    
-    if (self = [super initWithContentRect:contentRect 
-								styleMask:NSBorderlessWindowMask 
-								  backing:NSBackingStoreBuffered 
-									defer:NO]) {
-        [self setLevel: NSStatusWindowLevel];
-        [self setBackgroundColor: [NSColor clearColor]];
-        [self setAlphaValue:1.0];
-        [self setOpaque:NO];
-        [self setHasShadow:NO];
-        return self;
-    }
-    return nil;
-}
-
-- (BOOL) canBecomeKeyWindow {
-    return YES;
-}
-
-- (void)mouseDragged:(NSEvent *)theEvent {
-    NSPoint currentLocation;
-    NSPoint newOrigin;
-    NSRect  screenFrame = [[NSScreen mainScreen] frame];
-    NSRect  windowFrame = [self frame];
-    currentLocation = [self convertBaseToScreen:[self mouseLocationOutsideOfEventStream]];
-    newOrigin.x = currentLocation.x - initialLocation.x;
-    newOrigin.y = currentLocation.y - initialLocation.y;
-    if( (newOrigin.y + windowFrame.size.height) > (NSMaxY(screenFrame) - [NSMenuView menuBarHeight]) ){
-		newOrigin.y = NSMaxY(screenFrame) - windowFrame.size.height - [NSMenuView menuBarHeight];
-    }
-    [self setFrameOrigin:newOrigin];
-}
-
-- (void)mouseDown:(NSEvent *)theEvent {
-    NSRect windowFrame = [self frame];
-    initialLocation = [self convertBaseToScreen:[theEvent locationInWindow]];
-    initialLocation.x -= windowFrame.origin.x;
-    initialLocation.y -= windowFrame.origin.y;
-}
-
-
-@end
Index: /unk/Info.plist
===================================================================
--- /trunk/Info.plist (revision 41)
+++  (revision )
@@ -1,32 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleHelpBookFolder</key>
-	<string>Fence Help</string>
-	<key>CFBundleHelpBookName</key>
-	<string>Fence Help</string>
-	<key>CFBundleIconFile</key>
-	<string>fence.icns</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.socklabs.Fence</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>0.8</string>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>
Index: /unk/TypePad.h
===================================================================
--- /trunk/TypePad.h (revision 41)
+++  (revision )
@@ -1,72 +1,0 @@
-//
-//  TypePad.h
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 5/1/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import <Growl/Growl.h>
-#import "TypePadWeblog.h"
-#import "TypePadGallery.h"
-
-//! The TypePad Class
-/*!
- This is the core TypePad class.
-*/
-@interface TypePad : NSObject {
-	int actionType;
-	NSMutableDictionary *ntypes;
-	NSMutableDictionary *accounts;
-	NSString *defaultaccount;
-}
-
-// accessors //
-- (int) actionType;
-- (void) setActionType: (int) ActionType;
-
-- (NSMutableDictionary *) ntypes;
-- (void) setNtypes: (NSMutableDictionary *) Ntypes;
-
-- (NSMutableDictionary *) accounts;
-- (void) setAccounts: (NSMutableDictionary *) Accounts;
-
-- (NSString *) defaultaccount;
-- (void) setDefaultaccount: (NSString *) Defaultaccount;
-
-// --- //
-- (void) weblog_newpost: (NSString *) text dest:(NSString *) dest;
-- (void) weblog_upload: (NSArray *) files dest:(NSString *) dest;
-- (void) gallery_upload: (NSArray *) files dest:(NSString *) dest;
-
-- (void) appNotify: (NSString *) message title: (NSString *) title;
-
-- (void) dispatchAction: (NSPasteboard *) pb;
-
-- (void) handleTypeOne: (NSString *) text;
-- (void) handleTypeThree: (NSArray *) list;
-
-- (int) handleTypes: (NSPasteboard *) pb;
-
-- (NSArray *) allowTypes;
-
-/*
-- (NSString *) parseId:(NSString *)tmp;
-- (void) save_blogs;
-- (void) save_galleries;
-- (void) load_blogs;
-- (void) load_galleries;
-*/
-
-- (void) gotoDonate;
-
-- (BOOL) addAccount: (NSString *) login pass: (NSString *) pass;
-
-- (void) saveAccounts;
-
-- (NSArray *) defaultAccountWeblogs;
-- (NSArray *) defaultAccountGalleries;
-- (NSString *) defaultAccountPass;
-
-@end
Index: /unk/ReadMe
===================================================================
--- /trunk/ReadMe (revision 2)
+++  (revision )
@@ -1,21 +1,0 @@
-Readme
-
-Thank you for using Fence. Fence is an application that allows TypePad users to upload and manipulate their blog by way of a minimalist desktop interface. Fence uses the provided Atom API for all of its operations.
-
-Installation
-
-Copy 'Fence.app' into your Applications folder.
-
-Usage
-
-Fence uses a minimalist interface for all of its operations. It is composed of a single semi-transparent window that is used to drag items onto. You can move the Application window by dragging it around the desktop as needed. Please note that Fence will float above other windows but will not steal window focus.
-
-To upload an image to your blog or gallery simply drag the file from your desktop or Finder onto Fence. You may also select images from iPhoto and drag them onto Fence to upload them directly from iPhoto.
-
-All of the user, blog and gallery preferences are set in the Preferences panel in the application menu. Be sure to set your TypePad username and password as well as the default weblog and gallery before you use the application.
-
-Credits
-
-Nick Gerakines <nick@socklabs.com>
-
-The helpfull members and contributors at CocoaDev ( http://www.cocoadev.com/ ) and SixApart ( http://www.sixapart.com/ )
Index: /unk/NSDataAdditions.h
===================================================================
--- /trunk/NSDataAdditions.h (revision 2)
+++  (revision )
@@ -1,20 +1,0 @@
-//
-//  NSDataAdditions.h
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface NSData (NSDataAdditions)
-+ (NSData *) dataWithBase64EncodedString:(NSString *) string;
-- (id) initWithBase64EncodedString:(NSString *) string;
-
-- (NSString *) base64Encoding;
-- (NSString *) base64EncodingWithLineLength:(unsigned int) lineLength;
-
-- (BOOL) hasPrefix:(NSData *) prefix;
-- (BOOL) hasPrefixBytes:(void *) prefix length:(unsigned int) length;
-@end
Index: /unk/TypePad.m
===================================================================
--- /trunk/TypePad.m (revision 41)
+++  (revision )
@@ -1,265 +1,0 @@
-//
-//  TypePad.m
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 5/1/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "TypePad.h"
-#import "TypePadAccount.h"
-#import "TypePadAtomApi.h"
-
-@implementation TypePad
-
-- (id) init {
-	static TypePad *sharedInstance = nil;
-	if (sharedInstance) {
-        [self autorelease];
-        self = [sharedInstance retain];
-    } else {
-        self = [super init];
-        if (self) {
-            sharedInstance = [self retain];
-			ntypes = [[NSMutableDictionary alloc] init];
-			accounts = [[NSMutableDictionary alloc] init];
-			defaultaccount = [[NSString alloc] init];
-        }
-    }
-    return self;
-}
-
-+ TypePad {
-	static TypePad * sharedInstance = nil;
-	if ( sharedInstance == nil ) {
-		sharedInstance = [[self alloc] init];
-	}
-	return sharedInstance;
-}
-
-/* dealloc */
-- (void) dealloc {
-    [ntypes release];
-    [accounts release];
-	[defaultaccount release];
-	
-    ntypes = nil;
-    accounts = nil;
-	defaultaccount = nil;
-    [super dealloc];
-}
-
-/* class accessors */
-/* actionType */
-- (int) actionType { return actionType; }
-
-/* -setActionType: */
-- (void) setActionType: (int) ActionType {
-    //NSLog(@"in -setActionType, old value of actionType: %i, changed to: %i", actionType, ActionType);
-    actionType = ActionType;
-}
-
-/* ntypes */
-- (NSMutableDictionary *) ntypes { return ntypes; }
-
-/* -setNtypes: */
-- (void) setNtypes: (NSMutableDictionary *) Ntypes {
-    //NSLog(@"in -setNtypes:, old value of ntypes: %@, changed to: %@", ntypes, Ntypes);
-    if (ntypes != Ntypes) {
-        [ntypes autorelease];
-        ntypes = [Ntypes retain];
-    }
-}
-
-/* accounts */
-- (NSMutableDictionary *) accounts { return accounts; }
-
-/* -setAccounts: */
-- (void) setAccounts: (NSMutableDictionary *) Accounts {
-    //NSLog(@"in -setAccounts:, old value of accounts: %@, changed to: %@", accounts, Accounts);
-    if (accounts != Accounts) {
-        [accounts autorelease];
-        accounts = [Accounts retain];
-    }
-}
-
-/* defaultaccount */
-- (NSString *) defaultaccount { return defaultaccount; }
-
-/* -setDefaultaccount: */
-- (void) setDefaultaccount: (NSString *) Defaultaccount {
-    //NSLog(@"in -setDefaultaccount:, old value of defaultaccount: %@, changed to: %@", defaultaccount, Defaultaccount);
-    if (defaultaccount != Defaultaccount) {
-        [defaultaccount autorelease];
-        defaultaccount = [Defaultaccount retain];
-    }
-}
-
-
-/** other stuff **/
-
-- (void) weblog_newpost: (NSString *) text dest:(NSString *) dest {
-	// NSLog(@"- (void) weblog_newpost: (NSString *) text - called\n");
-	TypePadAtomAPI *client = [[TypePadAtomAPI alloc] init];
-	[client setAuth:[self defaultaccount] pass:[self defaultAccountPass]];
-	[client setDataarg:text];
-	[client newpost:@"quickpost" args:[NSDictionary dictionaryWithObjectsAndKeys:dest, @"destinationid", nil]];
-	[self appNotify:[NSString stringWithFormat:@"A new post has been created."] title:@"Post created"];
-}
-
-- (void) weblog_upload: (NSArray *) files dest:(NSString *) dest {
-	// NSLog(@"- (void) weblog_upload: (NSArray *) files - called\n");
-	NSEnumerator *enumerator = [files objectEnumerator]; 
-	NSString *path; 
-	while( path = [enumerator nextObject] ) { 
-		// NSLog([NSString stringWithFormat:@"Uploading file %@", path]);
-		TypePadAtomAPI *client = [[[TypePadAtomAPI alloc] init] autorelease];
-		[client setAuth:[self defaultaccount] pass:[self defaultAccountPass]];
-		[client setDataarg:path];
-		[client newpost:@"0" args:[NSDictionary dictionaryWithObjectsAndKeys:dest, @"destinationid", nil]];
-		[self appNotify:[NSString stringWithFormat:@"File '%@' has been uploaded", [client filename]] title:@"File Uploaded"];
-	}
-}
-
-- (void) gallery_upload: (NSArray *)files dest:(NSString *) dest {
-	// NSLog(@"- (void) gallery_upload: (NSArray *) files - called\n");
-	NSEnumerator *enumerator = [files objectEnumerator]; 
-	NSString *path; 
-	while( path = [enumerator nextObject] ) { 
-		// NSLog([NSString stringWithFormat:@"Uploading file %@", path]);
-		TypePadAtomAPI *client = [[[TypePadAtomAPI alloc] init] autorelease];
-		[client setAuth:[self defaultaccount] pass:[self defaultAccountPass]];
-		[client setDataarg:path];
-		[client newpost:@"1" args:[NSDictionary dictionaryWithObjectsAndKeys:dest, @"destinationid", nil]];
-		[self appNotify:[NSString stringWithFormat:@"File '%@' has been uploaded", [client filename]] title:@"File Uploaded"];
-	}
-}
-
-- (void) appNotify: (NSString *) message title: (NSString *) title {
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	// NSString *usegrowl = [userDefaults objectForKey:@"enable_growl"];
-	if ([userDefaults objectForKey:@"enable_growl"]) {
-			[GrowlApplicationBridge notifyWithTitle:title description:message notificationName:@"Fence" iconData:nil priority:0 isSticky:NO clickContext:nil];
-	}
-}
-
-- (void) dispatchAction: (NSPasteboard *) pb {
-	actionType = [self handleTypes:pb];
-	switch (actionType) {
-		case 1:
-			[self handleTypeOne:[ntypes objectForKey:@"stringForType:_NSStringPboardType"]];
-			break;
-		case 3:
-			[self handleTypeThree:[pb propertyListForType:@"NSFilenamesPboardType"]];
-			break;
-		default:
-			NSLog(@"Something went horribly wrong.\n");
-	}
-}
-
-// text
-- (void) handleTypeOne: (NSString *) text {
-	// NSLog(@"- (void) handleTypeOne: (NSString *) text - called\n");
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSString *postloc = [userDefaults objectForKey:@"text destination type"];
-	if ([postloc isEqualToString:@"1"]) {
-		if ([userDefaults objectForKey:@"text destination id"]) {
-			[self weblog_newpost:text dest:[userDefaults objectForKey:@"text destination id"]];
-		}
-	}
-}
-
-// image
-- (void) handleTypeThree: (NSArray *) list {
-	// NSLog(@"- (void) handleTypeThree: (NSArray *) list - called\n");
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	NSString *postloc = [userDefaults objectForKey:@"image destination type"];
-	if ([postloc isEqualToString:@"1"]) {
-		if ([userDefaults objectForKey:@"image destination id"]) {
-			[self weblog_upload:list dest:[userDefaults objectForKey:@"image destination id"]];
-		}
-	}
-	if ([postloc isEqualToString:@"2"]) {
-		if ([userDefaults objectForKey:@"image destination id"] ) {
-			[self gallery_upload:list dest:[userDefaults objectForKey:@"image destination id"]];
-		}
-	}
-}
-
-- (int) handleTypes: (NSPasteboard *) pb {
-	// NSLog(@"- (int) handleTypes:(NSPasteboard *) pb - called\n");
-    NSArray *types = [self allowTypes];
-	unsigned int i, count = [types count];
-	int totalcount = 0;
-	id methods[] = {@"stringForType:", @"propertyListForType:"};
-	for (i = 0; i < count; i++) {
-		int m;
-		NSString *type = [types objectAtIndex:i];
-		for (m = 0; m < 2; m++) {
-			id obj = [pb performSelector:NSSelectorFromString(methods[m]) withObject:type];
-			if (obj) {
-				totalcount++;
-				[ntypes setObject:[obj description] forKey:[NSString stringWithFormat:@"%@_%@",  methods[m], type]];
-				// NSLog(@"%@ - %@ - %@\n",  methods[m], type, [obj description]);
-			}
-		}
-	}
-	if (totalcount == 1) { return 1; }
-	// NSString *possibleurl = [ntypes objectForKey:@"stringForType:_NSStringPboardType"];
-	// if (possibleurl) { return 2; }
-	return 3;
-}
-
-- (NSArray *) allowTypes {
-	return [NSArray arrayWithObjects:NSURLPboardType, NSStringPboardType, NSFilenamesPboardType, NSHTMLPboardType, nil];
-}
-
-- (void) gotoDonate {
-	[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://blog.socklabs.com/typepad-uploader/"]];
-}
-
-- (BOOL) addAccount: (NSString *) login pass: (NSString *) pass {
-	TypePadAccount *tpuser = [[[TypePadAccount alloc] init] autorelease];
-	[tpuser setUsername:login];
-	[tpuser setPassword:pass];
-	[tpuser discoverWeblogs];
-	[tpuser discoverGalleries];
-	if ([tpuser hasWeblog]) {
-		[accounts setObject:tpuser forKey:login];
-		[self setDefaultaccount:login];
-		return YES;
-	}
-	return NO;
-}
-
-- (void) saveAccounts {
-	NSMutableData *data = [NSMutableData data];
-	NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
-	// TODO -- keep our dataset as bin data, find a better way of doing this
-	// [archiver setOutputFormat:NSPropertyListXMLFormat_v1_0];
-	NSEnumerator *enumerator = [accounts keyEnumerator];
-	id key;
-	while (key = [enumerator nextObject]) {
-		[archiver encodeObject:[accounts objectForKey:key] forKey:key];
-	}
-	[archiver finishEncoding];
-	[archiver release];
-	
-	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-	[userDefaults setObject:data forKey:@"TypePad Accounts"];
-	[userDefaults synchronize];
-}
-
-- (NSArray *) defaultAccountWeblogs {
-	return [[accounts objectForKey:[self defaultaccount]] weblogs];
-}
-
-- (NSArray *) defaultAccountGalleries {
-	return [[accounts objectForKey:[self defaultaccount]] galleries];
-}
-
-- (NSString *) defaultAccountPass {
-	return [[accounts objectForKey:[self defaultaccount]] password];
-}
-
-@end
Index: /unk/NSDataAdditions.m
===================================================================
--- /trunk/NSDataAdditions.m (revision 2)
+++  (revision )
@@ -1,162 +1,0 @@
-//
-//  NSDataAdditions.m
-//  TypePad-Uploader
-//
-//  Created by Nicholas Gerakines on 4/28/06.
-//  Copyright 2006 __MyCompanyName__. All rights reserved.
-//
-
-#import "NSDataAdditions.h"
-
-static char encodingTable[64] = {
-	'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
-	'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
-	'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
-	'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/' };
-
-@implementation NSData (NSDataAdditions)
-+ (NSData *) dataWithBase64EncodedString:(NSString *) string {
-	return [[[NSData allocWithZone:nil] initWithBase64EncodedString:string] autorelease];
-}
-
-- (id) initWithBase64EncodedString:(NSString *) string {
-	NSMutableData *mutableData = nil;
-	
-	if( string ) {
-		unsigned long ixtext = 0;
-		unsigned long lentext = 0;
-		unsigned char ch = 0;
-		unsigned char inbuf[4], outbuf[3];
-		short i = 0, ixinbuf = 0;
-		BOOL flignore = NO;
-		BOOL flendtext = NO;
-		NSData *base64Data = nil;
-		const unsigned char *base64Bytes = nil;
-		
-		// Convert the string to ASCII data.
-		base64Data = [string dataUsingEncoding:NSASCIIStringEncoding];
-		base64Bytes = [base64Data bytes];
-		mutableData = [NSMutableData dataWithCapacity:[base64Data length]];
-		lentext = [base64Data length];
-		
-		while( YES ) {
-			if( ixtext >= lentext ) break;
-			ch = base64Bytes[ixtext++];
-			flignore = NO;
-			
-			if( ( ch >= 'A' ) && ( ch <= 'Z' ) ) ch = ch - 'A';
-			else if( ( ch >= 'a' ) && ( ch <= 'z' ) ) ch = ch - 'a' + 26;
-			else if( ( ch >= '0' ) && ( ch <= '9' ) ) ch = ch - '0' + 52;
-			else if( ch == '+' ) ch = 62;
-			else if( ch == '=' ) flendtext = YES;
-			else if( ch == '/' ) ch = 63;
-			else flignore = YES;
-			
-			if( ! flignore ) {
-				short ctcharsinbuf = 3;
-				BOOL flbreak = NO;
-				
-				if( flendtext ) {
-					if( ! ixinbuf ) break;
-					if( ( ixinbuf == 1 ) || ( ixinbuf == 2 ) ) ctcharsinbuf = 1;
-					else ctcharsinbuf = 2;
-					ixinbuf = 3;
-					flbreak = YES;
-				}
-				
-				inbuf [ixinbuf++] = ch;
-				
-				if( ixinbuf == 4 ) {
-					ixinbuf = 0;
-					outbuf [0] = ( inbuf[0] << 2 ) | ( ( inbuf[1] & 0x30) >> 4 );
-					outbuf [1] = ( ( inbuf[1] & 0x0F ) << 4 ) | ( ( inbuf[2] & 0x3C ) >> 2 );
-					outbuf [2] = ( ( inbuf[2] & 0x03 ) << 6 ) | ( inbuf[3] & 0x3F );
-					
-					for( i = 0; i < ctcharsinbuf; i++ )
-						[mutableData appendBytes:&outbuf[i] length:1];
-				}
-				
-				if( flbreak )  break;
-			}
-		}
-	}
-	
-	self = [self initWithData:mutableData];
-	return self;
-}
-
-#pragma mark -
-
-- (NSString *) base64Encoding {
-	return [self base64EncodingWithLineLength:0];
-}
-
-- (NSString *) base64EncodingWithLineLength:(unsigned int) lineLength {
-	const unsigned char	*bytes = [self bytes];
-	NSMutableString *result = [NSMutableString stringWithCapacity:[self length]];
-	unsigned long ixtext = 0;
-	unsigned long lentext = [self length];
-	long ctremaining = 0;
-	unsigned char inbuf[3], outbuf[4];
-	short i = 0;
-	short charsonline = 0, ctcopy = 0;
-	unsigned long ix = 0;
-	
-	while( YES ) {
-		ctremaining = lentext - ixtext;
-		if( ctremaining <= 0 ) break;
-		
-		for( i = 0; i < 3; i++ ) {
-			ix = ixtext + i;
-			if( ix < lentext ) inbuf[i] = bytes[ix];
-			else inbuf [i] = 0;
-		}
-		
-		outbuf [0] = (inbuf [0] & 0xFC) >> 2;
-		outbuf [1] = ((inbuf [0] & 0x03) << 4) | ((inbuf [1] & 0xF0) >> 4);
-		outbuf [2] = ((inbuf [1] & 0x0F) << 2) | ((inbuf [2] & 0xC0) >> 6);
-		outbuf [3] = inbuf [2] & 0x3F;
-		ctcopy = 4;
-		
-		switch( ctremaining ) {
-			case 1:
-				ctcopy = 2;
-				break;
-			case 2:
-				ctcopy = 3;
-				break;
-		}
-		
-		for( i = 0; i < ctcopy; i++ )
-			[result appendFormat:@"%c", encodingTable[outbuf[i]]];
-		
-		for( i = ctcopy; i < 4; i++ )
-			[result appendString:@"="];
-		
-		ixtext += 3;
-		charsonline += 4;
-		
-		if( lineLength > 0 ) {
-			if (charsonline >= lineLength) {
-				charsonline = 0;
-				[result appendString:@"\n"];
-			}
-		}
-	}
-	
-	return [NSString stringWithString:result];
-}
-
-#pragma mark -
-
-- (BOOL) hasPrefix:(NSData *) prefix {
-	unsigned int length = [prefix length];
-	if( ! prefix || ! length || [self length] < length ) return NO;
-	return ( memcmp( [self bytes], [prefix bytes], length ) == 0 );
-}
-
-- (BOOL) hasPrefixBytes:(void *) prefix length:(unsigned int) length {
-	if( ! prefix || ! length || [self length] < length ) return NO;
-	return ( memcmp( [self bytes], prefix, length ) == 0 );
-}
-@end
Index: /unk/TODO
===================================================================
--- /trunk/TODO (revision 38)
+++  (revision )
@@ -1,5 +1,0 @@
-TODO
- - [Prefs] use the Growl notification framework
- - [App] add audio file support for blogs
- - [App] add video file support for blogs
- - [App] add extensive applescript support
