Announcements = {
	cache: [],
	switchTo: function(position, id) {
		if (Announcements.cache[position]) {
			Announcements.morphTo(position, Announcements.cache[position]);
			return;
		}

		new Ajax.Request($('root').href + $('root').hreflang + '/announcements/ajax/' + id + '/', {
			onSuccess: function(response) {
				Announcements.morphTo(position, Announcements.cache[position] = response.responseText);
			}
		});
	},
	morphTo: function(position, html) {
		new Effect.Fade('announcement_container', {
			duration: .66,
			afterFinishInternal: function() {
				$('announcement_container').update(html);
				$('announcement_links_container').select('li').each(function(element, key) {
					element.className = key == position ? 'active' : 'not_active';
				});
				new Effect.Appear('announcement_container', {
					duration: .66
				});
			}
		});
	}
}

