function initTabBehavior() {
	var emailTab = new Tab("subscribe-email-link", "subscribe-email");
	var feedsTab = new Tab("subscribe-feeds-link", "subscribe-feeds");
	var tabContainer = new TabContainerWithMemory(emailTab, feedsTab);
	tabContainer.setClasses({active: "", inactive: "subscribe-tab-off"});
	tabContainer.showSelectedTab();
}

function initFormBehavior() {
	var container = "subscribe-email-result";
	Element.hide(container);

	$("subscribe-email-subscribe").onclick = function() {
		if (Form.validate(this.form)) {
			makeSubscriptionRequest(this.value, this.form, container);
		}
		return false;
	}
	$("subscribe-email-unsubscribe").onclick = function() {
		if (Form.validate(this.form)) {
			makeSubscriptionRequest(this.value, this.form, container);
		}
		return false;
	}
}

/*
 * Make the request to the subscription controller.
 */
function makeSubscriptionRequest(act, frm, containerId) {
	var fields = ["uf_plugin_framework_plugin", "uf_plugin_framework_action", "email", "name"];
	var queryParts = new Array();
	for (var i = 0; i < fields.length; i++) {
		var field = fields[i];
		queryParts.push(field + "=" + encodeURIComponent(frm.elements[field].value ? frm.elements[field].value : ""));
	}
	queryParts.push("act=" + escape(act));
	queryParts.push("xml=1");

	var url = frm.action;

	var container = new MessageContainer(containerId);
	var onStartRequest = function(req) {
		Form.disable(frm);
		container.display("Please wait...", "subscribe-email-result-loading");
	}
	var onSuccess = function(req) {
		container.display(req.responseText);
		Form.enable(frm);
	}
	var onFailure = function(req) {
		alert("Error: " + req.responseText + " (Status: " + req.status + ")");
		Form.enable(frm);
	}
	XmlHttp.post(url, queryParts.join("&"), onStartRequest, onSuccess, onFailure);
}
