YUI().Get.css('http://mt.foxxtrot.net/css/shFoxxtrot-min.css');
YUI().Get.script(['http://mt.foxxtrot.net/js/shFoxxtrot-min.js'], {onSuccess: function (o){SyntaxHighlighter.config.clipboardSwf = 'http://mt.foxxtrot.net/mt-static/flash/clipboard.swf';SyntaxHighlighter.all();}});
YUI().use('node', 'cookie', 'gallery-jsonp', function(Y) {
	var form = Y.one('#comments-form'),
			cookieName = 'mt_blog_user',
			cookieData = {
				path: "/",
				domain: ".blog.foxxtrot.net"
			},
			cookieTimeout = 14400,
			disableSubmit = function() {
				var pb = Y.get('preview_button'),
						 b = Y.get('post');
				if ( pb ) { pb.set('disabled', true); }
				if ( b )  {  b.set('disabled', true); }
			},
			getUser = function() {
				if (Y.Cookie.exists(cookieName)) {
					return Y.merge({
						isAnonymous: true,
            canPost: false,
            isAuthor: false,
            isBanned: false,
            isTrusted: false
					}, Y.Cookie.getSubs(cookieName));
				}
				return null;
			},
			saveUser = function(user) {
				var u = getUser(),
					author = form.get('author'),
					email = form.get('email'),
					url = form.get('url'),
					bakecookie = form.get('bakecookie'),
					cachePeriod = cookieTimeout * 1000;

				if (!u || u.isAnonymous) {
					u = Y.merge(u, {
						isAuthenticated: false,
            canComment: true,
            isAuthor: false,
            isBanned: false,
            isAnonymous: true,
            isTrusted: false
					});
				}
				if (author) { u.author = author.get('value'); }
				if (email) { u.email = email.get('value'); }
				if (url) { u.url = url.get('value'); }

				if ( u.isAnonymous && bakecookie && bakecookie.get('checked')) {
					cachePeriod = 365 * 24 * 60 * 60 * 1000;
				}
				cookieData.expires = new Date(Date.now() + cachePeriod);
				Y.Cookie.setSubs(cookieName, u, cookieData);
			},
			fetchUser = function() {
				if (!getUser()) {
					Y.jsonp('http://blog.foxxtrot.net/mt/comments.cgi?__mode=session_js&blog_id=1&ts=' + Date.now(), 
						{
							on: {
								success: function(userData) {
									saveUser(userData);
								}
							},
							format: function(url, proxy) {
								var lastChar = url.slice(-1),
										callback = 'jsonp=' + proxy;
					      if (lastChar !== '&' && lastChar !== '?') {
					          url += (url.indexOf('?') > -1) ? '&' : '?';
					      }
					      return url + callback;
							}
						});
				}
			};
	Y.on('click', function(ev) {
		form.get('preview').set('value', 1);
	}, '#comment-preview');
	if (form) {
		form.on('submit', function(ev) {
			var armor = form.get('armor');

			if (armor) {
				armor.set('value', 'e7559f6439f7dae31113d61bb03bbc6486b2fef7');
			}
			disableSubmit();
		});

		Y.on('unload', disableSubmit);
	}
	if( window.location.hash && window.location.hash.match( /^#_log(in|out)/ ) ) {
		Y.Cookie.remove(cookieName, cookieData);
		if (RegExp.$1 == 'in') { fetchUser(); }
	}
});
YUI().use('node', function(Y) {
	// Publisher configuration
	var publishers = Y.all('.publishers'),
	    eUC = encodeURIComponent,
	    SUB = Y.Lang.sub;
	Y.Get.script(['http://api.flattr.com/js/0.6/load.js'], {
		onSuccess: function() {
		publishers.each(function(entry) {
			var article = entry.ancestor('article'),
			    container = Y.Node.create('<li />'),
			    uri = article.one('a[rel=bookmark]').get('href'),
			    title = article.one('a[rel=bookmark]').get('text'),
			    list = entry.one('ul'),
                            data = {
				uid: '5566',
				url: uri,
				title: title,
				description: article.one('.asset-body').get('text').substring(0,999),
				category: 'text',
				language: 'en',
				button: 'compact'
			    };
                        
                        if (article.one('.entry-tags ul')) {
                            data.tags = article.one('.entry-tags ul').get('text');
                        }

                        // Load Flattr
			FlattrLoader.render(data, Y.Node.getDOMNode(container), "append");
			list.append(container);
			// End Load Flattr
		});
		}
	});
});

