$(function()
{
	$('body').bind('dom-update', function()
	{
		$('.post a.toggle-tag').bindOnce('toggle-tag', 'click', function(e)
		{
			e.preventDefault();

			var aDom = $(this);
			if (aDom.hasClass('inactive'))
				return;
			aDom.addClass('inactive');

			var enable = !aDom.parents('.post').hasClass('tagged');
			var url = $(this).attr('href') + '?json';
			url = url.replace('_enable_', enable ? '1' : '0');
			$.post(url).success(function(data)
			{
				aDom.removeClass('inactive');
				aDom.parents('.post').removeClass('tagged');
				if (enable)
					aDom.parents('.post').addClass('tagged');
				aDom.text(enable
					? aDom.attr('data-text-tagged')
					: aDom.attr('data-text-untagged'));
			}).error(function(xhr)
			{
				alert(xhr.responseJSON
					? xhr.responseJSON.message
					: 'Fatal error');
				aDom.removeClass('inactive');
			});
		});
	});
});