CmdUtils.CreateCommand({
	name: "30boxes",
	icon: "http://30boxes.com/favicon.ico",
	locale: "en-US",
	homepage: "http://theunfocused.net/moz/ubiquity/verbs/",
	author: {name: "Blair McBride", email: "blair@theunfocused.net"},
	license: "MPL",
	takes: {event: noun_arb_text},
	preview: function(previewBlock, inputObject) {
		var eventText = inputObject.text;
		
		if(eventText.length < 1) {
			previewBlock.innerHTML = "Adds an event to your 30Boxes calendar";
			return;
		}
		
		var previewTemplate = "Adds the following event to your 30Boxes calendar:<br /><b>${event}</b>";
		var previewData = {
			event: eventText
		};
		
		previewBlock.innerHTML = CmdUtils.renderTemplate(previewTemplate, previewData);
	},
	execute: function(inputObject) {
		var eventText = inputObject.text;
		
		if(eventText.length < 1) {
			displayMessage("30Boxes requires an event to be entered");
			return;
		}
		
		displayMessage("Sending event to your 30Boxes calendar...");
		
		// should use the proper API here, which would return a decipherable response
		// but it doesn't allow authorization to be automated. WTF?!
		// see http://30boxes.com/api/#user.Authorize
		
		var eventUrl = "http://30boxes.com/add.php";
		var eventParams = {e: eventText};
		
		jQuery.ajax({
			type: "GET",
			url: eventUrl,
			data: eventParams,
			error: function() {
				displayMessage("30Boxes error - calendar event not added");
			},
			success: function() {
				displayMessage("30Boxes calendar event added");
			}
		});
	}
});
